環境:ubuntu 14.04LTS ROS=indigo
ROSとArduino間でメッセージ通信をすることができるrosserialを使おうとしたところ、
インストールはできたのですが、includeやライブラリの登録のときにおかしな挙動をしました。その解決方法を記して置きます。
ArduinoのROS用ライブラリであるros_libがうまく設定できなかったり、できたと思ったら、ビルドエラーが表示されたりしました。
その前に、どんなエラーかと言いますと、
#includeを含んだ文をビルドすると、
/opt/ros/indigo/include/rosserial_msgs/TopicInfo.h:9:18: fatal error: string: そのようなファイルやディレクトリはありません
と表示されました。
結論、あるサイトを参考に実行したところ解決しました。
それが、http://cir-kit.github.io/blog/2015/03/10/use-rosserial-first/です。
具体的な方法も下に記して置きます
/////arduinoのインストールとrosserialパッケージの追加///////
sudo apt-get install ros-indigo-rosserial ros-indigo-rosserial-arduino
sudo apt-get install arduino
arduino
↑実行するとhomeにsketchbook/librariesが作成される
cd ~/catkin_ws/src
git clone https://github.com/ros-drivers/rosserial.git
cd ../
echo "source ~/catkin_ws/install/setup.bash" >> ~/.bashrc
↑下の3つを今後省略するために(必須ではない)
catkin_make
catkin_make install
source install/setup.bash
///////////////以上////////////
ここまでがインストール関係です。次にArduino IDEにrosと通信するためのライブラリのros_libの追加をします。
cd ~/sketchbook/libraries
rosrun rosserial_arduino make_libraries.py .
これで追加されたはずです。もしrosrunの部分がうまくいってないようでしたら、catkin_make installあたりをもう一度行ってください。
おそらくですがcatkin_make installの後にターミナルを閉じてしまうと、設定が戻ってしまってrosrunがうまくいかない可能性があります。
これでrosserialを使えるようになりました。後はIDEのファイル→スケッチの例→ros_lib→HelloWorldなどを実行して
rostopic echo /chater
などで確認してください。