私はチュートリアルすらまともにこなせないアホです.
環境
- Ubuntu 16.04 (macOS上にParallels Desktopを用いて仮想環境を構築)
- ROS Kinetic
ROS Tutorials
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
rviz Tutorials
RViz: waiting for master
Could not contact ROS master at [http://localhost:11311], retrying...
原因
roscore起動してない
対策
何もしてないシェルで以下のコマンドを打つ
roscore
このコマンドが起動している間しか,あらゆるrosの機能は動作しない.
知ってたけど忘れてた.この先もチュートリアルは暗黙的な処置が多い気がするので気をつける.
エラーは出ないのに動かない
ja/rviz/Tutorials/Markers: Basic Shapes - ROS Wiki
にて.
エラーは出ないのにrvizに何も表示されない.
原因
以下の行を見落とし
次に、Markers displayを追加します。デフォルトで指定されているvisualization_markerは配信されているものと同じであることに注意してください。
正直読んでも意味がわからない.
対策
ROS有識者の友人に聞いたところ,以下のように設定する.
Addを選択
Markerを選択してOKを選択
Markerが追加されたことを確認
Fixed Frameに「my_frame」と記述してエンター
すると以下のように1秒ごとに変わる図形が表示される