はじめに
こんにちは,初投稿です.
ロボットのプランナーについて紹介する発表会にオンラインで参加しました.しかし,リアルタイムで参加することが時間の都合上できなかったため,後ほど配信されるYoutubeの動画を見ました.
なお,以下のリンクは参加した発表会の動画と概要です.
発表会のテーマ:ROS Japan UG #55 Planner特集!
主催者:ROS Japan User Group:https://rosjp.connpass.com/
Youtubeのリンク:https://youtu.be/GEslxRk_978?si=hYQhy9BFwF2CWkow
発表会の概要:https://rosjp.connpass.com/event/313794/
感想
非常に勉強になりました.今回の発表会はロボットのプランニングについて紹介されていて,全体的に研究寄りの内容でした.特にマニピュレーションは勉強になりました.
備忘録
以下は発表会の備忘録です.
-
ROS1とROS2の違い
- ROSとはplumbing+tools+capabilities+commnuityで構成されている
- ROS1は情報が豊富,ROS2はROSのコンセプトを引き継いで再設計されたversion
- ROS1はTCPROS,ROS2はDDSI-RTPS (UDP)
- rqtはQtベースのデバッグフレームワーク
-
基盤モデルによるロボットのパスプランニングと制御
- 基盤モデルとはLLMといった言語モデルのこと
- モダリティがインプットされて頭の中(言語)で考えてアクションを起こす
- 環境や物体など,現在状態をどう言語に変換するか=低レイヤ認識
- マップ生成.報酬生成=高レイヤ認識
- ViLD[1]による物体認識,CLIP[2]によるクラス分類をした上でその物体をどこにしまうか,どのようにしまうかを人間の好みを考慮しつつMMLでタスク計画
- 認識APIや制御APIを準備した上でLLMを使ってロボットの制御のためのpythonコードを自動生成
- MDETR[3]で物体検出,audioCLIP[4]で音認識を行う
- ロボットになぜ動作が失敗したかをLLMでまとめさせて修正・再計画を行う
- 速度とFootstep Planから各関節指令を計算する部分はシミュレーションで強化学習 (4足歩行ロボット)
- 大規模なデータに基づいて構築された言語と画像列からグリッパの開閉やロボットの手先位置姿勢を出力する (ロボット基盤モデル)
- VLMは文章を入れたら物体認識がすぐにできる (学習不要)
-
ロボットマニピュレーションの作業・動作計画
-
RRT[5]による経路計画を行ってマグカップの取っ手を掴む
-
ロボットに教示が大変な時にプランニングを行う
-
OMPL[6]
- RRTが使われている
- ランダムサンプリングに基づくグラフ構造を生成
- ランダムサンプリングした所に点を打って経路を探す
-
逆運動学は難しい.手先の位置から関節角度を求めるとき
- 複数の解が存在する
- 解が求まらない
- 解けるもんだけ解く (解決案1)
- モンテカルロ法 (解決案2)
- ヤコビ行列や擬似逆行列によって逐次的に求める (解決案3) - 特異姿勢について(課題)
- オイラー角 (各座標軸周りの回転角)は回転の順序によって最終的な姿勢が異なる
- 姿勢によっては回転自由度が欠落してしまう
- クォータニオン (4次元単位超球上の1点)
-
-
車の自動運転 (Autoware)
- ROSと似ている
- 速度計算を行うモジュールが導入されている
- 障害物や後続車を考慮してレーンチェンジのタイミングを計算して経路を生成
- 複数の経路をサンプリングして最適解を選択
- 実際の走行データを元にPlanningを学習して高い適応力を獲得する
- CNNで軌道と走行状態を計算して最適化で後処理を行う
- 学習された非線形車両モデルを使って,非線形最適制御を実行
- 車の将来挙動を予測する
-
植物工場向けロボットのためのプランニング
- ロボットの運行スケジュールなどもブロックごとで管理
- ブロックを増やしてスケールアップ
- ロボットの移動経路について
- 有向グラフを活用した位置表現でロボットの行動を数学的に扱う
- 回転方向によってはロボットが壁に衝突してしまう.そこで,有向グラフで方向を定義して解く
- 経路計画はダイクストラ法を活用
- 有向グラフを活用した位置表現でロボットの行動を数学的に扱う
-
ROS2のgazeboにはトラブルが多い件について
- ROS1ではlidarの反射強度が埋め込めていた.
- Ros2ではROS1とは違ってversionが不明
- lidarのCPU rayがROS2にはない
- ROS1ではlidarの反射強度が埋め込めていた.
参考文献
[1]"[論文メモ]ViLD: Open-vocabulary Object Detection via Vision and Language Knowledge Distillation",https://yuiga.dev/blog/posts/vild_open-vocabulary_object_detection_via_vision_and_language_knowledge_distillation/
[2]"CLIP:言語と画像のマルチモーダル基盤モデル",https://trail.t.u-tokyo.ac.jp/ja/blog/22-12-02-clip/
[3]"MDETRについて",https://zenn.dev/ijiwarunahello/articles/c2d2c30e50da9f
[4]"AudioClip",https://docs.unity3d.com/ja/2019.4/ScriptReference/AudioClip.html
[5]"PythonによるRapidly-Exploring Random Trees (RRT)パスプランニングサンプルプログラム",https://myenigma.hatenablog.com/entry/2016/03/23/092002#google_vignette
[6]"OMPL",https://ompl.kavrakilab.org/