Webots プロジェクト

このページには、Google Season of Docs で承認されたテクニカル ライティング プロジェクトの詳細が掲載されています。

プロジェクトの概要

オープンソース組織:
Webots
テクニカル ライター:
ソフト イリュージョン チャンネル
プロジェクト名:
Webots の動画チュートリアル シリーズ(ROS2 との統合)
プロジェクトの長さ:
標準期間(3 か月)

プロジェクトの説明

学んだ知見:

この動画チュートリアル シリーズでは、新規ユーザーが Webots を最大限に活用できるようにします。また、特定のシミュレーションを実現するための明確な手順を視聴者に提供します。

目標:

このシリーズの最後まで視聴すると、基本的な ROS2 ノードを作成して Webots を操作できるようになります。また、モバイル ロボットの高度なプロジェクトに自信を持って取り組めるようになります。この動画シリーズでは、ロボット工学分野の重要なコンセプトについても理論的に説明します。

動画シリーズの詳細:

  1. ROS 2 のインストールと Visual Studio Code でのリポジトリの設定。これには、ROS2 のコマンドによるインストールとその動作の基本が含まれます。次に、VS Code での ROS ワークスペースの設定と、VS Code の基本タブの機能も含まれます。

  2. 基本的な ROS2 と Webots の例。Webots ROS2 の例を使用して、Webots で ROS2 を使用してシミュレーションを行うと、どのような素晴らしいことができるかを視聴者に理解してもらいます。また、ROS2 と Webots 間の通信の基本理論も説明します。

  3. ROS2 サービスを使用して Webots を操作する。ROS サービスと ROS2 サービスの違いを説明しながら、ROS サービスの基本を説明します。次に、サービスを呼び出し、読み取り用にセンサー トピックを有効にし、運動用にアクチュエータを有効にするための段階的なチュートリアルを表示します。

  4. ROS2 Publisher でカスタム ロボットを制御します。 ROS2 パブリッシャーを使用して Webot にメッセージをパブリッシュする方法を学習します。キーボード出力をトピックにパブリッシュすることで、ロボットの動きを制御する例を実装できます。このトピックは、Webots のモーションの ROS サービスで使用できます。

  5. ROS2 Subscriber を使用してロボットからフィードバックを得る。この動画では、距離センサーのセンサー測定値をサブスクライブし、衝突しそうになったらロボットを停止します。つまり、これはインタラクティブなメッセージが公開される障害物回避ノードになります。

  6. ROS2 を使用したマスター(パブリッシャー)スレーブ(サブスクライバー)ロボット。この動画では、1 台のロボットをキーボードで操作し、もう 1 台のロボットを手動ロボットから逃げさせます。泥棒と警察のシナリオに似ています。 [これは 3、4、5 の動画の続きです]。これにより、視聴者は通信をテストでき、ROS に問題がある場合はシミュレーションに欠陥が見つかります。

  7. Rviz の設定(さまざまなセンサー出力の表示)。この動画では、他のセンサーをいくつか追加し、Rviz でデータを公開します。この動画の最後に、閲覧者は Rviz をセットアップ(可視化用の Lidar や Camera などのセンサーの追加)でき、構成を保存して次回から保存した構成を生成できます。

  8. 動画のデバッグ(Rostopic エコー、Rostopic 情報、RQT_graph) この動画では、デバッグ手法の理解を深めるために、いくつかのトピックで意図的に誤った機能を使用しています。以下では、RQT グラフを表示して、問題の原因となっているトピックを確認する手順について説明します。rostopic echo を使用してトピックがパブリッシュされているかどうかを確認し、最後に rostopic info をチェックして問題を確認します。問題を解決し、正常に機能する。

  9. デバッグ動画(rqt_console、rqt_gui) この動画では、ノードで Ros メッセージ(情報、デバッグ、エラーなど)を使用し、rqt_console の使用方法を説明します。この動画では、rqt_gui を使用してダミー メッセージをパブリッシュし、必要な機能を取得するように拡張します。これは、一部のバグを修正する代替方法として使用できます。

  10. 上級者向けトピックの動画: 未知の環境での SLAM ライブラリの統合(SLAM ツールボックスまたは LaMa)[パート 1] この動画では、SLAM の問題の基本理論から始めます。その後、上で学習したコンセプト インフラストラクチャを使用して、プロジェクトの核心を理解します。最後に、ターミナルから必要なノードを生成し、Rviz でマッピング出力を確認します。

  11. 高度なトピックの動画: 未知の環境(SLAM ツールボックスまたは LaMa)における SLAM ライブラリの統合について [パート 2] 10 番目の動画の続きとして、この動画では、すべてのノードをまとめて起動する起動ファイルを作成する方法と、ROS フレームワークのコンセプトを正しく理解するために rqt_graph を調べる方法を紹介します。最後に、パッケージによって生成された地図を地図サーバーを使用して保存します。

  12. 上級者向けトピックの動画: OpenCV の統合(AR タグの検出、Ar_track_alvar パッケージ)[パート 1] この動画では、AR タグと、コンピュータ ビジョンを使用したローカライズにおけるその重要性について説明します。その後、AR トラックの Alvar パッケージの仕組みを土台にして、これにより、プロジェクトの全体像を把握できます。最後に、Webots から ROS トピックへの動画フレームのストリーミングを可能にするサービスが作成されます。

  13. 上級者向けトピックの動画: OpenCV の統合(AR タグ検出、Ar_track_alvar パッケージ)[パート 2] この動画は、上記の画像ストリームがパッケージで使用され、ロボットと AR タグ間の変換のトピックが公開され、Rviz で確認できる 12 番目の動画の続きです。最後に、ロボットを動かすと、Rviz と rostopic メッセージでさまざまなタグが検出され、位置が変化します。

まとめ:

この GSOD プロジェクトは、ROS2 と Webots の統合に関する基本的な理解を可能にする自己依存型パッケージです。このパッケージには、トピック、サービス、ノード、起動ファイル、パブリッシャー、サブスクライバー、さまざまなデバッグツール、VS コードの使用など、ROS2 のコンセプトの実際の実装も含まれます。また、SLAM や OpenCV などの高度なトピックのプロジェクトも含まれます。これにより、ROS2 と Webots を使用したエンドツーエンドの作業のパラダイムを視聴者に示します。