HARDサマーワークショップに関するページです。ワークショップは全4回ですが、補講としてシミュレータでのロボットのつくり方は紹介します。これができると、自分達が開発したロボットをシミュレータで動作検証できます。
本記事では、カナダのSimon Fraser University, Autonomy Lab.のJacob PerronさんのフォークしたiRobot社のRoomba, Create2用のROSドライバーパッケージcreate_autonomyをベースに、エクステリアとセンサ配置を変更した上図のロボットhappy miniをつくります。
マイロボットのつくり方
- create_autonomyパッケージの中のファイルを修正してもできるがオリジナルと自分が改変したファイルを混同してしまうので、変更が必要なパッケージだけを別のディレクトリとする。次のダウンロード方法によりファイルを取得する。ダウンロードしたファイルにはhard2020のサンプルパッケージ一式が入っている。マイロボットに関係あるのは次のディレクトリ。
- ~/catkin_ws/src/hard2020/hard_gazebo:gazebo関連のパッケージ
- launch:シミュレーション環境として、ロボット以外の物体が存在しない環境並びに人と家のあるハードな環境の2つを用意した。前者はhard_empty_world.launch、後者はhard_world.launchで起動する。
- worlds:launchファイルで使用するworldファイル。この中のorgディレクトリにcreate_autonomyパッケージで使用しているworldファイルがあるので、hard2020.worldと比較して、変更するといろいろなワールドでシミュレーションが可能になる。
- ~/catkin_ws/src/hard2020/hard_description:ロボット記述ファイル
- meshes:シミュレータ用の3Dファイル。マイロボットhappy miniに必要なメッシュファイルやテクスチャファイルをminiディレクトリの中に作成する。
- urdf:ロボット記述ファイル。実機とシミュレータに関するロボットの構造やシミュレータの動作などを指定するファイルがある。マイロボットに合うように変更する必要がある。なお、urdfはUniversal Robot Description Formatの略で、ロボットの構造を記述するフォーマットである。ROSではURDFファイルを記述することでロボットモデルを作成する。URDFファイルの作り方は以下のサイトが参考になるでしょう。
- ~/catkin_ws/src/hard2020/hard_gazebo:gazebo関連のパッケージ
ダウンロード
- 端末を起動して以下のコマンドを実行してダウンロードする。hard2020のサンプルプログラム一式をパッケージとしてまとめている。
$ cd ~/catkin_ws/src
$ git clone https://github.com/demulab/hard2020.git
- ビルド
$ cd ~/catkin_ws
$ catkin build
- ノード名はユニークでないといけないので、既にHARD2020のハンズオンを実施した場合は名前が衝突しエラーになります。その場合は、衝突したノードのあるディレクトリをhard2020ディレクトリの中のディレクトリと置き換えてから再度catkin buildする。
準備
- create_autonomyパッケージをベースに作成したので、それをインストール、ビルドしていない場合は以下を参考にする。
実行
- 何もないシミュレーション環境
- 何もないempty world環境を起動する場合は、次のコマンドを実行してGazeboを起動する。
$ roslaunch hard_gazebo hard_empty_world.launch
- 何もないempty world環境を起動する場合は、次のコマンドを実行してGazeboを起動する。
- 人がいるシミュレーション環境
- 上図のような人と家がある環境を起動する場合は、次のコマンドを実行してGazeboを起動する。
$ roslaunch hard_gazebo hard_world.launch
- 上図のような人と家がある環境を起動する場合は、次のコマンドを実行してGazeboを起動する。
- Gazeboを起動したらあとは、今までハンズオンで実行した好きなノードを起動して楽しもう!
終わり
コメント