シュウジマブログ

Apple製品,技術系の話をするブログ

ROSチュートリアルでつまづいたことメモ

私はチュートリアルすらまともにこなせないアホです.

環境

  • Ubuntu 16.04 (macOS上にParallels Desktopを用いて仮想環境を構築)
  • ROS Kinetic

rosmsg

ja/ROS/Tutorials/CreatingMsgAndSrv - ROS Wiki

2.2 rosmsg を使う

にて

$ rosmsg show beginner_tutorials/Num

でエラー表示

Unable to load msg [beginner_tutorials/Num]: Cannot locate message [Num]: unknown package [beginner_tutorials] on search path [{'rosconsole': ['/opt/ros/kinetic/share/rosconsole/msg'], 'catkin': ['/opt/ros/kinetic/share/catkin/msg'], 'rviz_visual_tools': ['/opt/ros/kinetic/share/rviz_visual_tools/msg'], 'moveit_planners_chomp': ['/opt/ros/kinetic/share/moveit_planners_chomp/msg'], 'urdf': ['/opt/ros/kinetic/share/urdf/msg'], 'rosgraph': ['/opt/ros/kinetic/share/rosgraph/msg'], 'rqt_py_console': ['/opt/ros/kinetic/share/rqt_py_console/msg'], 'moveit_ros_planning': ['/opt/ros/kinetic/share/moveit_ros_planning/msg'], 'rqt_graph': ['/opt/ros/kinetic/share/rqt_graph/msg'], 'nodelet_tutorial_math': ['/opt/ros/kinetic/share/nodelet_tutorial_math/msg'], 'qt_gui': ['/opt/ros/kinetic/share/qt_gui/msg'], 'filters': ['/opt/ros/kinetic/share/filters/msg'],
(後略)
原因

環境変数$ROS_PACKAGE_PATHが正しく設定されていない.

echo $ROS_PACKAGE_PATH
/home/parallels/catkin_ws/src:/opt/ros/kinetic/share

のようにcatkin_wsが含まれているべきだが,

echo $ROS_PACKAGE_PATH
/opt/ros/kinetic/share

となっていた.

また,設定を変更してもターミナル再起動のたびに元に戻ってしまう.

対策

catkin_ws内にあるsetup.bashを利用することで,環境変数を正しく設定することができる.

~/.bashrc を

sudo nano ~/.bashrc

などで開き,以下の1行を付加

source ~/catkin_ws/devel/setup.bash

これで,ターミナル起動時に毎回setup.bashが呼び出され,環境変数が正しく設定されるとのこと.

ただし,以下の記事によれば,.bashrcよりも.bash_profileの方が適切な感じ???とりあえず.bashrcに置いてるひとが多数いたので私は.bashrcに置いています.

.bash_profileと.bashrcのまとめ - Qiita

ROSを自動起動する - Qiita

当ブログをご利用いただく際には免責事項をお読みください。