Robot Operating System (2)

前回に引き続いて、ROSについてもう少しテストをしてみました。
今回は、C++のコードによる通信プログラムと、そのメッセージをプロットしたりノードの状態を表示するツールを使ってみました。

参照元:
ビルドについて
http://forestofazumino.web.fc2.com/ros/ros_simple_program.html
ソースコード
http://forestofazumino.web.fc2.com/ros/ros_message.html

わかりやすい説明で書かれていてとても参考になりました。
環境は前回のものを使います。(ROS Indigo/ Ubuntu 14.04)

ワークスペース、パッケージの作成

$ mkdir ~/sample_ws
$ mkdir ~/sample_ws/src
$ cd ~/sample_ws/src
$ catkin_create_pkg sample std_msgs roscpp rospy
$ cd ~/sample_ws
$ catkin_make

C++を使うために、roscppが必要のようです。

ソースは、
~/sample_ws/src/sample/src
において、
~/sample_ws/sample/CMakeLists.txt
を編集します。
add_executable(pub_test1 src/pub_test1.cpp)
add_executable(sub_test1 src/sub_test1.cpp)
target_link_libraries(pub_test1 ${catkin_LIBRARIES})
target_link_libraries(sub_test1 ${catkin_LIBRARIES})

コマンドの実行
rosrun sample pub_test1
rosrun sample sub_test1

pub_test1.cpp

sub_test1.cpp

sub_test1の実行結果

rgt_plotコマンド

rqt_graphコマンド

ノード間でメッセージをやりとりして一つのシステムが構成される柔軟なしくみになっているのがよく理解できます。言語を選べるということはその言語が得意とするライブラリも選べるということなので、たくさんの機能があるのもうなずけます。