ROS의 학습 43탄: Dynamixel
#프로그래밍 ROS<Dynamixel>
개시하다
ROS(Robot Operating System)를 더 파악하려는 목적이다.
컨디션
컴퓨터.
디바이스
raspberry pi 4B+
RAM 설치
4.00GB(7.89GB 사용)
OS
ubuntu-mate-20.04.1-desktop-amd64
ROS
Distribution
noetic
Dynamixel
제조사
ROBOTIS
시리즈
XM430-W350-R
사양 상세 설명
https://emanual.robotis.com/docs/en/dxl/x/xm430-w350/
로보트
제조사
ROBOTIS
시리즈
OpenMANUPILATOR-X
사양 상세 설명
https://emanual.robotis.com/docs/en/platform/openmanipulator_x/overview/
DynamixelSDK
Dynamixel 포장 처리
환경 구조
①단계: 작업공간으로 이동하는 src
~/catkin/src
② 단계:git로 클론 만들기
git clone https://github.com/ROBOTIS-GIT/DynamixelSDK.git
③단계: 작업공간으로 이동
cd ..
④단계: DynamixelSDK를 ROS에 적용
catkin_make
여기까지의 작업이 끝나면dynamixelsdk와dynamixelsdk_examples와 관련된 프로그램 라이브러리를 사용할 수 있습니다. 또한 cpp와python 두 언어의 프로그램도 준비되어 있습니다. 그것들을 참고하여 사용 방법을 배울 수 있습니다.
dynamixel_sdk_examples 정보
dynamixel_sdk_examples에 세 가지 정보가 있어요.
~/catkin/src
git clone https://github.com/ROBOTIS-GIT/DynamixelSDK.git
cd ..
catkin_make
uint8 id
int32 position
uint8 id1
uint8 id2
int32 position1
int32 position2
uint8 id1
uint8 id2
string item1
string item2
int32 value1
int32 value2
dynamixel_sdk_examples 서비스
dynamixel_sdk_examples는 세 가지 서비스가 있어요.
uint8 id
---
int32 position
uint8 id1
uint8 id2
---
int32 position1
int32 position2
uint8 id1
uint8 id2
string item1
string item2
---
int32 value1
int32 value2
견본
dynamixel_sdk_examples
의 샘플 프로그램을 실행해 보았습니다.rosrun dynamixel_sdk_examples read_write_node
이 프로그램은 c++로 작성되었습니다. 왜냐하면 그 프로그램 코드는
read_write_node
의~/catkin_ws/src/DynamixelSDK/ros/dynamixel_sdk_examples/src
에 쓰여 있기 때문입니다. 필요하면 거기를 변경할 수 있습니다. read_write_node.cpp
에서 catki_ws
이번에 이 프로그램의 기본 ID는 1과 2이고 다이나믹스의 ID는 11~15이기 때문에 이 두 ID를 11, 12로 설정합니다. 실행할 때 포트를 식별해야 하기 때문에sudo666/dev/tty USB를 통해 접근 권한을 부여해야 합니다.
실행 결과
다음은 실행 결과와 다른 단말기 조작
catkin_make
의 상황을 나타낸다./set_position에서 readwrite_노드 구독 id와position을 제공하여 다이나믹스를 시작할 수 있습니다.
다이나믹스 가동
아까 결과로 id와position을 먼저 발표하면 모터를 구동할 수 있습니다.
출시 후
/set_position
다음 정보가 재생됩니다.이때 실제 로봇의 상황은 다음과 같다.
가 성공적으로 작동했습니다. 다이나믹스가 모터를 가동할 때의 수치에 대해 다이나믹스의ControlTable를 확인해야 합니다.
감상
드디어 Dynamixel을 ROS로 구동할 수 있게 되었다. 환경에 대한 구축이 잘 되지 않아 계속 막혀 있었다. 하지만 그 어려움을 넘어서면 이해가 깊어진다. 어쨌든 지령선에서 시작했지만 모터 하나를 구동할 수 있었다. 여기까지 이해했다.이후 지난번 거북이를 움직인 것과 같다. 다시 말하면dynamixel이joy정보를 구독할 수 있는 프로그램을 만들면 컨트롤러의 제어도 가능해질 것으로 예상된다. 다음을 기대한다.
참고 문헌
ROBOTIS e-Manual DYNAMIXEL SDK
( https://emanual.robotis.com/docs/en/software/dynamixel/dynamixel_sdk/overview/ ) 2021/6/3
Reference
이 문제에 관하여(ROS의 학습 43탄: Dynamixel), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/Yuya-Shimizu/items/04d73333bf0a870be13f텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)