[ROS] pc로 아두이노 달린 로봇 조종하기 rosserial

먼저 pc랑 아두이노가 연결된 pc를 연결해야 한다.
두 pc에 모두 ros가 깔려 있어야 하니 먼저 ros 환경을 기본으로 세팅된 상태라고 할 때,

개인적으로는 우분투를 사용했다.

이 이전 포스팅인 ros로 두 기계 연결하기 를 참고해서 일단 두 기계를 연결한다.

그 다음 (위에 연결 과정에서 roscore는 실행되고 있다고 가정한다.)
먼저 publish node를 run해서 정보를 publish 해야 한다.
pc로 아두이노를 조종해야 하므로 pc에서 정보를 publish하고
아두이노에서는 정보를 subscribe한다.

이 명령어는
$rosrun [package_name] [node_name]

예를 들어 package 이름이 network_test이고,
publish할 정보를 담고 있는 node가 msg_publish.cpp 이면 ( cpp 파일을 사용함> 그러려면 아마 package만들때 roscpp 로 dependency 설정을 해줘야 하는 걸로 알고 있음)

$rosrun network_test msg_publish 이렇게 치면 정보를 publish하는 상태가 된다.

그리고 아두이노 측에서 
정보를 subscribe하는 아두이노 코드 파일을 작성한 뒤에 
아두이노에 업로드를 하고,
$rosrun rosserial_python serial_node.py _port:=dev/ttyACM0
를 치면 subscribe 준비하고 있다 뭐 이런 comment들이 뜬다. (dev/ttyACM0는 아두이노의 port번호이다)

이제 publisher pc 쪽에서 정보를 보내면
아두이노 쪽 라파 cmd에서 수신한 정보를 띄울것이다~~~


이걸 깨닫기 까지는 오래걸렸는데
막상 정리하고 나니 간단하다.ㅠㅠ

ros.org 사이트에 들어가면 튜토리얼, 메세지, 노드 등 ros에 대한 설명이 무척 많으니 참고하시길~~


댓글

이 블로그의 인기 게시물

[ROS] ros 두 기계 연결하기 (networking). 개쉬움.

[ROS - rosserial] unable to sync with device 오류

[ROS] 아두이노로 alphabot 알파봇 모터 바퀴 움직이기.