Webots プロジェクト

このページには、Google シーズンのドキュメントで受け入れられているテクニカル ライティング プロジェクトの詳細が記載されています。

プロジェクトの概要

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

プロジェクトの説明

学んだ知見:

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

目標:

このシリーズを修了すると、基本的な ROS2 ノードを作成して Webot を操作できるようになるだけでなく、モバイル ロボットの高度なプロジェクトに自信を持って取り組めるようになります。また、この動画シリーズでは、ロボット工学の分野におけるいくつかの重要な概念について、理論に基づいてわかりやすく説明しています。

動画シリーズの詳細:

  1. ROS 2 のインストールと、Visual Studio Code でのリポジトリの設定。これには、ROS2 のコマンドを使用したインストールと、その動作の基本が含まれます。次に、VS Code での ROS ワークスペースの設定と、VS Code の基本的なタブの機能についても説明します。

  2. 基本的な ROS2 と Webots の例Webots ROS2 の例をいくつか使用して、シミュレーション用に ROS2 と Webots を組み合わせると何ができるのかを視聴者に理解してもらうために使用します。これには、ROS2 と Webot 間のコミュニケーションに関する基本理論も含まれます。

  3. ROS2 サービスを使用して Webot を操作する。ROS と ROS2 のサービスの違いを解説する ROS サービスの教育の基礎。次に、サービスを呼び出し、センサー トピックで測定値を有効にし、アクチュエータを動作させるための段階的なチュートリアルを示します。

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

  5. ROS2 サブスクライバーを使用してロボットからフィードバックを取得します。この動画では、距離センサーのセンサー信号を受信して、ロボットが衝突しそうな場合に停止します。つまり、これは障害回避ノードであり、インタラクティブ メッセージがパブリッシュされます。

  6. ROS2 を備えたマスター(パブリッシャー)スレーブ(サブスクライバー)ロボット。この動画では、キーボードを装着したロボットを 1 台ずつ操作し、もう 1 台を手動ロボットから逃げさせます。これは泥棒と警官のシナリオに似ています :) [これは 3、4、5 本の動画の続きになります]。これにより、閲覧者はコミュニケーションをテストできるようになり、ROS に問題が発生した場合にシミュレーションに不具合が生じます。

  7. Rviz をセットアップします(異なるセンサー出力が表示されます)。 この動画では、他のセンサーをいくつか追加し、そのデータを Rviz で公開します。この動画の最後に、視聴者は Rviz をセットアップして(可視化のために Lidar やカメラなどのセンサーを追加するなど)、設定を保存し、次回から保存した設定を生成できるようになります。

  8. 動画のデバッグ(Rostopic echo、Rostopic info、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 ライブラリの統合(SLAM ツールボックス(LaMa))[パート 2] 10 本目の動画の続きとして、すべてのノードをまとめて起動するための起動ファイルを作成し、ROS フレームワークのコンセプトを適切に理解するために rqt_graph を調べる方法について説明します。最後に、パッケージによって生成された地図を、マップサーバーを使用して保存します。

  12. 高度なトピック動画: OpenCV の統合(AR タグ検出、Ar_track_alvar パッケージ)[パート 1] まず、AR タグの概要と、コンピュータ ビジョンを使用したローカライズにおけるその重要性について説明します。その後、AR トラックの Alvar パッケージの仕組みに基づいて構築します。これは、プロジェクトの全体的な展望を示すのに役立ちます。最後に、Webot から ROS トピックへの動画フレームのストリームを可能にするサービスが提供されます。

  13. 高度なトピック動画: OpenCV の統合(AR タグ検出、 Ar_track_alvar パッケージ)[パート 2] この動画は、上記の画像ストリームをパッケージで使用して、ロボットと AR タグの間の変換に関するトピックを公開し、Rviz で視聴できる 12 本目の動画の続きです。最後に、ロボットを動かすと、さまざまなタグが配置され、Rviz と Rostopic メッセージでそれらの位置が変化するのがわかります。

まとめ:

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