ROSチュートリアル3

目的

前回に続きwikiのチュートリアルをやっていきます。

今回はメッセージについてです。ROSではトピックとサービスを使った通信方法があります。

このトピックのデータ型をメッセージと呼びます。

messageを使う

メッセージファイルはROSメッセージの型を説明する単純なテキストファイルです。 これはメッセージのソースコードを異なる言語で作成するのに使います。

msgディレクトリに保管されています。

メッセージは1行ごとに型と名前が記載されているテキストファイルです。

型には下記のようなものが使用できます。

  • int8, int16, int32, int64 (plus uint*)
  • float32, float64
  • string
  • time, duration
  • variable-length array[] and fixed-length array[C]
  • Header

メッセージの定義

メッセージを定義してみましょう。

                        $ cd ~/catkin_ws/src/beginner_tutorials
                        $ mkdir msg
                        $ echo "int64 num" > msg/Num.msg
                    

package.xmlの編集

次にpackage.xmlを編集します。

下記の2行のコメントアウトを外してください。

                        message_generation
                        message_runtime
                    

CMakeLists.txtの編集

次にCMakeLists.txtを編集します。

まずは、CMakeLists.txtから下記の行を見つけてください。

下記のようになるように、コメントアウトを外して、追記してください。

                        find_package(catkin REQUIRED COMPONENTS
                            roscpp
                            rospy
                            std_msgs
                            message_generation
                        )
                    

実行時依存も有効になることをチェックします。

同様に下記の行を見つけて有効になっていることをチェックしてください。

                        catkin_package (
                            ...
                            CATKIN_DEPENDS message_runtime ...
                            ... )
                    

次にメッセージファイルを追加します。

同様にして、CMakeLists.txtから下記の行を見つけて、同じになるように編集してください。

                        add_message_files(
                            FILES
                            Num.msg
                        )
                    

さらに、同様にしてメッセージ生成generate_messages()の呼び出しも有効にします。

                        generate_messages(
                            DEPENDENCIES
                            std_msgs
                        )
                    

make

makeします

                    $ cd ../..
                    $ catkin_make
                    $ cd -
                

rosmsg

rosmsgを使ってメッセージを確認することができます。

                    $ rosmsg show beginner_tutorials/Num
                    $ rosmsg show Num
                

おわりに

いかがでしたでしょうか。 わからないことなどがありましたら、ご質問だくさい。

2015/7/28

参考サイト