この記事は私が金沢工業大学ロボティクス学科で担当している2019年度後学期開講講義ロボットプログラミングⅡ用です。Windows Subsystem for Linux(WSL)にROSをインストールしたので、動作確認を兼ねてタートル(亀)で遊んでみましょう。この記事は以下の記事を参考にしています。
—————————————————————
(1) 端末を開き、
- $
roscore
と入力しEnterキーを押し、マスターを起動する。これはノード間で通信するために必要である。ノードはROSの実行プログラムのこと。
注:roscoreはマスターの他にパラメータサーバー、ログ用のノードも起動します。なお、roslaunchを使うと、roscoreがすでに立ち上がっていない場合は、自動的にroscoreを立ち上げます。
(3) 新しく別の端末を開き、次のコマンドを入力しEnterキーを押すと
- $
rosrun turtlesim turtlesim_node
タートルのいる水色のウインドウが開く。rosrunコマンドの使い方は、rosrun [パッケージ名] [ノード名]で、パッケージのノードを起動する。パッケージはある機能を実現するためのプログラムの集まり。この例では、turtlesimというパッケージの中のturtlesim_nodeノードを起動している。
(4) キーボードでタートルを操作。新しい端末を開き次のコマンドを入力する。
- $
rosrun turtlesim turtle_teleop_key
キーボードの矢印キーで亀を動かすことができる。動かない場合は、ここで入力した端末をクリックして選択する。タートルのいるTurtleSimウインドウや他の端末をクリックして選択した場合は動かないので注意。
2.解説
動作を確認するためにタートルと遊んだので少しお勉強。タートルが矢印キーで動く仕組みは、turtlesimノードがturtle_teleop_keyノードから送られた(publish、出版)キーのデータを受け取り(subscribe、購読)、タートルを動かしている。このデータのことをROSではトピック(topic)とよぶ。これはPublish/Subscribe (出版/購読型モデル)モデルに基づいている。ROSではトピックを使った通信の他にクライアント/サーバーモデルのサービスもある。
新しい端末を開き、以下のコマンドを実行しよう。
- $ rqt_graph
rqt_graphはノード、トピックの視覚化ツールで、楕円がノード名、矢印がトピック名となる。この例では、teleop_turtleノードからturtlesismノードへ速度指令値となる/turtle1/cmd_velトピックが送られていることがわかる。
3.演習
以下のROSチュートリアルの1.2 ROSトピックから最後まで説明に従って、自分のノートパソコンで動作を確認しよう!
4.ホームワーク
- Linux標準教科書:必要事項を記入しダウンロードし、1章を読み、3章を実習しよう!
- 次のROSチュートリアル(初級)をやろう!
終わり
コメント