シュウジマブログ

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

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

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

環境

  • 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

ROSを自動起動する - Qiita

rviz Tutorials

RViz: waiting for master

Could not contact ROS master at [http://localhost:11311], retrying...

f:id:masa_flyu:20190622140048j:plain

原因

roscore起動してない

対策

何もしてないシェルで以下のコマンドを打つ

roscore

このコマンドが起動している間しか,あらゆるrosの機能は動作しない.

知ってたけど忘れてた.この先もチュートリアルは暗黙的な処置が多い気がするので気をつける.

エラーは出ないのに動かない

ja/rviz/Tutorials/Markers: Basic Shapes - ROS Wiki

にて.

エラーは出ないのにrvizに何も表示されない. f:id:masa_flyu:20190622140911j:plain f:id:masa_flyu:20190622140720j:plain

原因

以下の行を見落とし

次に、Markers displayを追加します。デフォルトで指定されているvisualization_markerは配信されているものと同じであることに注意してください。

f:id:masa_flyu:20190622135733j:plain

正直読んでも意味がわからない.

対策

ROS有識者の友人に聞いたところ,以下のように設定する.

Addを選択

f:id:masa_flyu:20190622141709j:plain

Markerを選択してOKを選択

f:id:masa_flyu:20190622141723j:plain

Markerが追加されたことを確認

f:id:masa_flyu:20190622141744j:plain

Fixed Frameに「my_frame」と記述してエンター

f:id:masa_flyu:20190622141811j:plain

すると以下のように1秒ごとに変わる図形が表示される

f:id:masa_flyu:20190622141916j:plainf:id:masa_flyu:20190622141924j:plainf:id:masa_flyu:20190622141930j:plain

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