Ubuntu 시스템으로 로봇 제어할 때 OpenCR 필요한 이유?

dynamixel SDK 와 u2d2 를 활용하면 컴퓨터-u2d2-dynamixel 의 형태로 모터 명령과 현재 모터 엔코더 값을 받을 수 있는 것으로 파악하였습니다. 그렇다면 openCR 은 왜 필요하게 되나요 특히 darwin op3 의 system block diagram 에서 actuator 와 sub controller 인 openCR 은 왜 연결이 되어 있나요?

단순히 전원 공급을 openCR 로 하기 때문인가요?

image

Darwin OP3의 시스템에서 OpenCR의 역할은 단순히 전원 공급만이 아니라, 중요한 중재자 역할보조 컨트롤러의 역할을 수행하기 때문입니다. 다음은 OpenCR이 왜 필요하고 어떤 역할을 하는지 자세히 설명하겠습니다.


1. Darwin OP3 시스템에서 OpenCR의 역할

OpenCR은 컴퓨터와 Dynamixel 사이의 단순한 브릿지 이상의 역할을 하며, Darwin OP3의 전반적인 하드웨어 통합을 위한 핵심 보조 컨트롤러로 사용됩니다.

(1) 모터 제어 및 데이터 수집 중재

  • Darwin OP3는 여러 개의 Dynamixel 모터(주로 XM 및 X 시리즈)를 사용합니다. 이들을 효율적으로 제어하고 데이터를 수집하기 위해 OpenCR이 모든 Dynamixel 모터의 제어와 통신을 중재합니다.
  • OpenCR은 RS485 통신을 사용하여 여러 Dynamixel 모터를 Daisy Chain 형태로 연결하며, PC에서 내려오는 명령을 분배하고, 모터로부터 데이터를 수집해 PC로 전달합니다.

(2) 로컬 제어와 리소스 분산

  • PC에서 직접 모든 Dynamixel 모터를 제어하려면, 모든 통신과 계산이 PC에서 처리되어야 합니다. 이는 통신 병목현상을 야기하거나 실시간 제어가 어려워질 수 있습니다.
  • OpenCR은 로컬에서 일부 제어 작업(예: PID 제어, 로봇 균형 유지 등)을 수행하여 PC의 부담을 줄이고, 실시간성을 보장합니다.

(3) 다양한 센서 및 액추에이터 통합

  • Darwin OP3는 Dynamixel 외에도 여러 센서(예: IMU, 초음파 센서)와 액추에이터를 사용합니다. OpenCR은 이러한 센서와 액추에이터를 통합적으로 관리하며, 필요한 데이터를 수집해 PC로 전달합니다.
  • 특히, IMU(관성 센서) 데이터는 로봇의 균형 제어나 움직임 계산에 필수적이며, OpenCR이 이를 처리합니다.

(4) 전원 관리

  • OpenCR은 Dynamixel 모터뿐 아니라 다른 센서와 보드에도 전원을 분배하는 전원 허브 역할을 수행합니다.
  • 단순히 전원을 공급하는 역할이 아니라, 전압 조정 및 보호 회로를 통해 안정적인 전원을 제공합니다.

2. Darwin OP3 시스템에서 OpenCR의 필요성

Darwin OP3 시스템 다이어그램에서 OpenCR이 포함된 이유는 다음과 같습니다:

  1. 하드웨어 통합 허브 역할: OpenCR은 다양한 센서와 모터, 그리고 상위 컨트롤러(PC 또는 SBC, 예: Intel NUC) 간의 통합을 제공합니다.
  2. 실시간 제어 보장: 로봇의 움직임이나 균형 제어는 실시간으로 이루어져야 합니다. OpenCR은 PC와의 통신 지연 문제를 최소화하며, 실시간으로 데이터를 처리할 수 있는 로컬 컨트롤러 역할을 합니다.
  3. 전력 관리 및 보호: OpenCR은 로봇 전체의 전력 관리 및 분배를 담당하며, Dynamixel 모터 및 다른 전자 부품에 안정적인 전원을 공급합니다.
  4. 확장성 제공: Darwin OP3의 설계는 로봇이 다양한 작업을 수행할 수 있도록 확장성을 고려합니다. OpenCR은 USB, UART, I2C, GPIO 등의 인터페이스를 제공하여 추가 센서 및 주변 장치 연결을 지원합니다.

3. U2D2와 OpenCR의 차이점

특징 U2D2 OpenCR
역할 USB to RS485 변환기 보조 컨트롤러 및 통합 관리
제어 대상 Dynamixel 모터만 제어 Dynamixel, 센서, 다른 액추에이터 통합 제어
실시간 제어 능력 없음 있음 (로컬 제어 가능)
전원 관리 기능 없음 있음 (전압 안정화 및 보호 회로 포함)
추가 센서 연결 불가능 가능 (IMU, 초음파, GPIO 장치 등 연결 가능)

4. 결론

OpenCR은 Darwin OP3와 같은 로봇 시스템에서 필수적인 로컬 컨트롤러 및 허브 역할을 수행합니다. U2D2와 같은 단순 변환기로는 OpenCR이 제공하는 통합 관리, 실시간 제어, 전원 관리 기능을 대체할 수 없습니다. OpenCR은 PC와 모터, 센서를 연결하고 제어하는 중재자 역할을 수행하며, 로봇의 안정적인 동작과 효율적인 통합을 위해 설계되었습니다.