HARDサマーワークショップ第2回目で学んだことをベースにして次のプロジェクトを実施しよう。プロジェクトの達成に必要な知識はネットや書籍などで獲得してください。なお、ROSはいろいろなパッケージがありとても便利ですが、パッケージを使うだけでは力がつきません。ともすると、うまくナビゲーションするためにパラメータの調整だけで終わる場合もあります。ROSはノード間の通信方法やGazebo、Rvizなどのツールを使い、それ以外のノードはできるだけ自作することが大切です。ただ、中高生や学部1,2年生の場合は、自己推定に使われているAMCLやSLAMを理解して実装することは無理があると思います。まずは、自律移動ロボットを動かすナビゲーションの部分にチャレンジしましょう!
プロジェクト1
- 指定した時間[s]に指定した速度[m/s]と角速度[rad/s]で移動するプログラムを作ろう!
- 指定した距離[m]/角度[rad]だけ移動するプログラムを作ろう!
- 指定した位置(x, y)へ移動するプログラムを作成しよう。
- 指定した位置へ移動するためには、指定位置と現在位置を比較して、現在位置が指定位置に近づく(その差が0に近づく)ようにロボットの並進速度と角速度を制御する必要があります。
- ロボットの現在位置は/odomトピックからの情報を使ってください。
- 1辺がx[m]の正方形の軌跡を描くようにロボットを動かそう。
- 半径x[m]の円の軌跡を描くようにロボットを動かそう。
- オドメトリ関数を自作しよう!
- 距離[m] = 並進速度[m/s] × 時間[s]、回転角度[rad] = 角速度[rad/s] × 時間[s]
- ロボットの姿勢を考慮して、三角関数を使い進んだ距離と角度を計算する。距離はx軸、y軸に分ける考える。計測時間が必要になるのでネットで調べよう。
- 計算に必要な情報
- ルンバの車輪間の距離
- 車輪の直径
- 車輪の回転量
- プログラムができたら、/odomと比較して正しいか確認しよう。
- ウェイポイントナビゲーションの実装
- ROSのActionLibを使ったウェイポイントナビゲーションのPythonプログラムを説明しました。ActionLibを使わないで実装しよう。
- 自己位置は自作オドメトリ関数をできれば使うおう。無理な場合は/odomトピックの情報を使ってもよい。
- LIDARなどのセンサ情報処理についてはまだ学んでいないので障害物回避はしなくてもよい。
終わり
コメント