안녕하세요
저는 현재 TurtleBot3 플랫폼을 사용하여 로봇 시스템을 개발하고 있는 사용자입니다.
프로젝트의 요구 사항에 따라 TurtleBot3의 기존 시스템에 BLDC 모터와 Dynamixel 모터 (XH430-V350 및 XH540-V270)를 추가하고, 이를 ROS2와 통신할 수 있도록 openCR 펌웨어를 수정하고 있습니다.
이 과정에서 몇 가지 기술적인 문제가 발생하여 문의드리고자 합니다.
####현재 시도한 방법 및 접근법
- 추가 모터 헤더 파일 생성 및 포함
추가 모터를 제어하기 위해 새로운 모터 헤더 파일을 생성하여 BLDC 및 Dynamixel 모터 제어를 위한 초기화 및 제어 함수를 작성하였습니다.
additional_motor_driver.h, additional_motor_driver.cpp 파일을 작성하여turtlebot3.h
에 선언 하였습니다.
- ROS2 통신 설정 및 콜백 함수 추가
main.cpp
파일에서 micro-ROS를 사용하여 ROS2 노드를 초기화하고, 모터 제어 메시지를 수신하기 위한 subscriber와 콜백 함수를 설정하였습니다.
또한, ROS2 메시지 콜백 함수에서 수신된 데이터를 기반으로 BLDC 및 Dynamixel 모터를 제어하도록 구현하였습니다.
문의 사항
- 추가 모터 제어 코드 통합:
*추가한 Dynamixel 모터(XH430-V350, XH540-V270) 및 BLDC 모터 제어 코드가 기존 TurtleBot3 시스템과 충돌 없이 동작할 수 있도록 통합하는 최적의 방법에 대해 조언을 부탁드립니다.
- ROS2 통신 설정:
-
micro-ROS를 사용하여 ROS2 노드와의 통신을 설정하는 과정에서 기존의 TurtleBot3 를 위한 openCR firmware와 통합을 하는 방법에 대한 조언을 부탁드립니다.
-
현재 시도 중인 콜백 함수 및 subscriber 제작 후 Turtlebot3_ROS2 firmware와의 통합이 올바른 접근법이 맞는지에 대한 조언을 부탁드립니다.
- 펌웨어 빌드 및 업로드:
- Arduino IDE와 OpenCR SDK, PlatformIO를 사용하여 펌웨어를 업로드하는 방법 중 권장되는 방법에 대해 문의드립니다.