Engineer/Robotic

[ROS] rosserial 사용하기

mjune.kim 2017. 5. 24. 09:55

안녕하세요. 꿈꾸는 개발자 몽키준입니다.

이번에는 rosserial 을 통해 아두이노와 ROS 간에 메세지를 전달하는 방법을 정리해보려고 합니다.

1. rosserial(wiki.ros.org/rosserial)

2. 설치 및 동작 확인
    @천동이님 블로그 참조(http://chandong83.blog.me/220851270328)


문제 및 해결
1) ESP8266WiFi.h not found
[문제 상황]

In file included from ../arduino-1.8.2/libraries/ros_lib/ros.h:40:0,
                 from ../arduino-1.8.2/libraries/ros_lib/examples/HelloWorld/HelloWorld.pde:6:
../arduino-1.8.2/libraries/ros_lib/Esp8266Hardware.h:36:25: fatal error: ESP8266WiFi.h: No such file or directory
 #include <ESP8266WiFi.h>
                         ^
compilation terminated.
exit status 1
Error compiling for board Arduino/Genuino Uno.

[해결책]

 ESP8266 Arduino library 를 추가한다. 자세한 설명은 아래 링크를 참고하시기 바랍니다. 단, 현재 진행중인 프로젝트(ASUL-E)에서는 아두이노 에서 별도의 tcp기반의 네트워크(wifi)를 사용하지 않기 때문에 여기에서는 해당 헤더를 코멘트 처리하였습니다.

https://github.com/ekstrand/ESP8266wifi


2) socket.error: [Errno 111] Connection refused
[문제 상황]

 $> rosrun rosserial_python serial_node.py _port:=/dev/ttyACM0 _baud:=57600

..........
socket.error: [Errno 111] Connection refused


[해결책] roscore 가 실행되지 않았거나 죽었을 경우 문제가 발생하였습니다.

$> ps -aux | grep roscore

$> roscore &