본문 바로가기

Robot/Robot Program - ROS

ROS에서 로보티즈 다이나믹셀 움직여보기 Dynamixel Workbench

얼마전에 로보티즈의 다이나믹셀 중에서 XM 시리즈를 잠시 사용해보고 꽤 좋았다는 이야기[바로가기]를 했었지요. 그리고, 그 후 Python API를 제공하길래 또 그걸 가지고 잠시 즐거운 시간을 보냈지요[바로가기]. 이제 ROS에서도 살짝 구동시켜볼려고 했습니다. 뭐 여러가지 접근법이 있겠지만,

제조사인 로보티즈가 배포하는 dynamixel-workbench로 시작해 볼 겁니다. 이게 GIT-HUB[바로가기]에서 받는게 최신 버전이더라구요. 이럴 경우는 ROS에서 catkin_ws의 src로 가서 git clone 하고 주소를 입력하면 copy되어 있습니다. 그리고 catkin_ws 폴더에서 catkin_make를 한 번 수행해야 합니다. 따라할 튜토리얼은

ROS 공식 홈페이지의 Dynamixel workbench single manager with GUI 문서[바로가기]입니다. 뭐 사실 그대로 따라하는 것 이상의 의미가 전혀없는 포스팅입니다.(언제나 그렇지만 말이죠^^) 그리고 이 포스팅에서 터미널에서 입력한 명령은 모두 튜토리얼 문서에 나오는 과정을 그대로 따라한 거라, 그 문서의 내용을 캡쳐했습니다. 이쯤되면 튜토리얼을 튜토리얼하겠다는 걸까요?^^

새롭게 my_dynamixel_workbench_tutorial을 만들고, launch 파일 하나를 만들겁니다.

그 내용에서 튜토리얼 문서와 달리 제 경우는 baud_rate를 100000으로 맞춰야 하더군요. 그게 XM 시리즈는 그런건지, 혹은 제가 누가 쓰다가 쓰다가 빌려준걸 불쌍하게 사용하는거라(^^) 설정이 변경된 것인지는 확인하지 않았습니다.^^

그리고

와 같이 연결하고 시리얼 어덥터의 설정은 RS-485로 맞추었습니다. 그래서 위 명령처럼 PC에 붙은 COM 포트에 쓰기 권한도 인가해야하는데, 그 명령이 위에 있는 명령입니다. 저는 ttyUSB0에 연결되었더라구요.^^. 어디에 붙었는지 궁금하시면 /dev/ttyU 까지만 입력하고 <TAB>키를 눌러보면 됩니다^^

이제 빌드를 하고... 만들어준 launch 파일을 실행합니다.

이런 화면이 나타나고... 그 끝에 Init Success라는 글자가 나타나야 합니다~~~

그리고... 모터 관리자를 실행하면 됩니다. 이 글을 여기까지 읽는 분이라면 ROS를 막 공부하기 시작한 분들일테니^^ 위 명령은 다른 터미널에서 실행하셔야 합니다.^^

그러면.. 이런 아이가 뜰겁니다.~~~ 우와~~하고.. 즐거워 하시면 되구요^^

max_position_limit과 min_position_limit을 적절히 변경하셔야 합니다. ROM 영역의 파라미터는 바로 변경이 안되고 그 옆 화면에서 찾아서 변경해 주면 됩니다.

그리고 Torque_Enable을 누르면 됩니다. 그리고 조그 셔틀을 꾹꾹 눌러보면 모터가 손쉽게 잘 움직이는 것을 확인할 수 있을 겁니다.^^

rqt_graph를 확인한 것입니다. 뭐 당연한듯 보이지만 말이죠^^

이건 rqt_plot에서 goal_position과 position_trajectory를 같이 확인해 본겁니다. 어떤 값을 목표값으로 인가했을 때, 바로 변하지 않고, 시간의 흐름에 따라 goal_position이 변경되는 것을 확인할 수 있습니다. 뭐 내부적으로 goal_position은 그대로 두고 trajectory만 변경시켜도 될 듯 한데... 뭐 아무튼 그렇습니다.^^ 

반응형