この記事は私が金沢工業大学ロボティクス学科で担当している2018年度後学期開講講義ロボットプログラミングⅡ用です。Windows Subsystem for Linux(WSL)にROSをインストールしたので、動作確認を兼ねてタートル(亀)で遊んでみましょう。この記事は以下の記事を参考にしています。
—————————————————————
1. タートルを動かそう
(1) デスクトップのXLaunchアイコンをダブルクリックしてXサーバーを起動する。Xサーバーを起動しないと端末以外のウインドウが開きません。Xサーバーを一度起動するとタスクマネージャーなどで終了させない限り動作している。通常はコンピュータを起動する度に一度起動すればよい。
- Select display settingsのウインドウになるのでデフォルトのまま「次へ」をクリックする。
- Select how to start clientのウインドウになるので、デフオルトのまま「次へ」をクリックする。
- Extra Settingsのウインドウになるので Clipboard、Primary Selection、Disable access controlにチェックを入れ、Native openglのチェックを外して「次へ」をクリックする。
- Finish configurationウインドウになるので、「Save configuration」をクリックしてから「完了」をクリックする。
- ファイアウォールなどを設定している場合は、次の図のように「Windowsセキュリティの重要な警告」というウインドウが開くので、「アクセスを許可する」をクリックする。
(2) デスクトップのUbuntu16.04アイコンをダブルクリックして新しい端末を開き、
$ roscore
と入力しEnterキーを押し、マスターを起動する。ノード間で通信するために必要。ノードはROSの実行プログラムのこと。
注:roscoreはマスターの他にパラメータサーバー、ログ用のノードも起動します。なお、roslaunchを使うと、roscoreがすでに立ち上がっていない場合は、自動的にroscoreを立ち上げます。
(3) デスクトップのUbuntu16.04アイコンをまだダブルクリックして新しい端末を開き、次のコマンドを入力し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ではトピックを使った通信の他にクライアント/サーバーモデルのサービスもある。
3.演習
以下のROSチュートリアルの1.2 ROSトピックから最後まで説明に従って、自分のノートパソコンで動作を確認しよう!
4.ホームワーク
- Linux標準教科書:必要事項を記入しダウンロードし、1章を読み、3章を実習しよう!
- 次のROSチュートリアル(初級)をやろう!
終わり
コメント