우선 이 강의가 만들어질 때와 달리 버전이 바뀐 것이 있기에 달라진 설정이 있었다. 강좌의 package.xml 파일과 달리 나의 package.xml은 아래 그림과 같이 포맷 2로 쓰였다.
그래서 <run_depend> 대신에 위와 같이 <build_export_depend> , <exec_depend>가 생겼는데 그래서 다음의 문서를 참고해서 위와 같이 수정하였다.
다음으로는 직접적인 코드에서의 알아낸 내용이다. make가 끝난 뒤 roscore도 키고 아래의 명령어를 치면 ros_tutorial_msg라는 토픽이 열린다.
$ rosrun oroca_ros_tutorials ros_tutorial_msg_publisher
$ rostopic echo /ros_tutorial_msg
이걸로 실제 메시지를 볼 수가 있다.
rqt를 통해서도 이를 알 수 있는데 이 이름은 전적으로 cpp 코드를 짤 때 정해진다. 그래서 토픽 이름을 위와 같이 ros_turotial_Msg라고 해놓으면 subscriber는 읽지를 못한다.
rqt_graph 를 통해서 보아도 publisher, subscriber가 생기기만 하고 통신은 되지 않고 있다.
아래는 cpp 코드의 사진.
publish 관련 cpp 코드에서
라는 부분이 있는데 10이란 것은 1초에 10번 보내겠다는 뜻이다. baudrate의 설정에 따라서 바꿀 수 있을 듯 하다.
이제는 예를 들어 publish되고 있는 topic의 데이터 타입만 알게 되면 그것을 subscribe해서 쓸 수 있게 되었다는 이야기이다. 다음의 링크를 따라서 imu data를 subscribe 해 보았다.
위와 같이 publish 되고 있는 정보들 중 /mavros/imu/data를 subscribe 하고 싶다면 일단 rqt를 통해서 그 데이터의 type을 알아낸 다음 그 형식에 맞추어서 subscriber를 짜 주면 된다~!!! 그리고 예제를 따라서 해 보았더니 실제로 잘 작동했다!!!
'개발' 카테고리의 다른 글
visual studio에서 파이썬 패키지 사용하기 (0) | 2018.12.10 |
---|---|
ros에서 opencv 사용 및 webcam 사용하기 (1) | 2018.12.09 |
오드로이드 카메라 oCam-1MGN-U 사용법 (0) | 2018.12.04 |
오드로이드 ubuntu & ros 설치 (1) | 2018.12.03 |
C && C++ 개발을 위한 Visual Studio Community 설치 및 설정 (0) | 2018.12.01 |