LoginSignup
2
0

ignition gazebo + Rviz2の開発環境構築

Last updated at Posted at 2023-12-19

概要

この記事は、学ロボAdvent Calendar 2023の20日目の記事です!
ROS2を使う上で重要な可視化ツールのgazeboとrviz2について、その基本的な使い方を実際の実装を追いながら説明します。
今回扱うignition gazeboには少々厄介なバージョンの問題がありますが、それについて調べて分かったことなども記事内で説明しています。
自作ロボットのCADファイルを取り込んでgazebo上に表示するところから、slam toolboxとnavigation2を用いてマッピングと自律走行をシミュレーター上で行うところまでを解説します。
分量がかなり多くなってしまったので複数の記事に分割して書き、この記事はそれらの集積場としたいと思います。
また、私のgithubにてステップごとの実装を公開しているので、そちらも併せてご覧ください。
また、記事の内容に誤りや不備等ございましたら、ご指摘いただけると幸いです。

動作環境・バージョン

動作環境

Ubuntu22.04 :デュアルブートした実機PC
VScode :コーディングとターミナルの操作は基本的にVScodeで行った

バージョン

ROS2 : humble :幣チームで一般的に用いられているROS2のバージョン
gazebo : ignition fortless :ROS2公式がhumbleとの連携相手として推奨するバージョン

コンテンツ

自作ロボットのCADファイルを読み込んでgazeboに表示する

自作ロボットのCADファイルを生成し、blenderを用いてdaeファイルを作成します。それらをgazeboで読み込んで、自作ロボットをgazeboに表示しましょう。
また、gazeboの最低限の使い方―特にworldの作り方、も説明します。
自作ロボットのCADファイルを読み込んでgazeboに表示する

gazeboとROS2を連携してロボットを操作する

前回作成した自作ロボットに動力を付けた上で、ROS2から操作できるようにしていきましょう。gazeboとROS2の連携はメッセージのブリッジがやや面倒ですが、比較的効率の良いyamlファイルを用いたやり方を紹介します。
キー入力の検出は既存のパッケージを使うので、それらをプロジェクトで使用する方法も説明します。
さらに、gazeboとROS2を一つのコマンドで起動できるようにするlaunchファイルの書き方も紹介します。
gazeboとROS2を連携してロボットを操作する

Rvizを使用してロボットの状態を可視化する(gazebo)

gazeboと並ぶ可視化ツールのRvizを使ってみましょう。前回使用したロボットにLidarを付けて、取得データをRvizで表示してみます。
さらに、ロボットのtfやodometryといった基本情報をgazeboから送信して、Rvizに表示する方法を説明します。
Rvizを使用してロボットの状態を可視化する(gazebo)

slam toolboxとnavigation2を用いた自律走行を行う(gazebo)

slam toolboxとnavigation2を用いて、gazebo上でSLAM(地図生成と自己位置推定)とナビゲーション(経路生成と経路追従)を行ってみましょう。
slam toolboxとnavigation2をlaunchファイルから起動し、予め用意したパラメータを読み込ませてから起動する方法も説明します。
slam toolboxとnavigation2を用いた自律走行を行う(gazebo)

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0