Turtlebot モバイル ロボット ガゼボ シミュレーションと自動ナビゲーション (詳細レベル)

目的: Turtlebot3 Burger の動き、スラム、シミュレーション環境での自動ナビゲーション環境を制御します
。 ROS はデュアル システムで動作します。(他のバージョンの ROS の場合は、ソフトウェア パッケージをダウンロードするときに独自の ROS に変更してください)
手順:
(1). シミュレーション環境の作成:
1. ガゼボを開く:
2 つの方法:roscore内部で開く方法rosrun gazebo_ros gazeboと、直接開く方法:ターミナルを開きますgazebo
。 2. メニュー バーから [編集] > [建物エディタ] を選択するか、ショートカット キー Ctrl+B を使用して環境エディタを開きます。 3.
ここに画像の説明を挿入左側のエリア Wall (壁) を選択し、右上の 2 次元ビュー エリアを選択します。インターフェースの側面 マウスの左ボタンをクリックして壁の描画を開始し、マウスを移動して壁をドラッグします。壁とその長さがオレンジ色の高さで表示されます。もう一度マウスの左ボタンをクリックして壁の終点を確認します。引き続きマウスを前の壁の終点に移動して次の壁の描画を開始するか、マウスの右ボタンをクリックしてこの壁の描画を終了するかを選択できます。
ここに画像の説明を挿入4. 閉じたシミュレーション環境を描画します。描画が完了したら、壁を編集および調整できます。編集する壁をマウスの左ボタンでダブルクリックすると、インスペクタがポップアップします。インスペクタでは、位置などのパラメータが表示されます。 、壁の長さ、厚さ、高さを調整できます。ここでは外壁の長さの設定は変更できず、内壁と外壁の高さは1.5m、デフォルトの厚さは0.15mに設定されています。
ここに画像の説明を挿入5. 壁にマテリアルとテクスチャ フィーチャを追加し、左側領域の下部にあるテクスチャの追加 (テクスチャの追加) でレンガ (レンガ) オプションを選択し、マウスの左ボタンで 3D ビュー領域の外壁をクリックして、外壁にレンガを追加する 木目とテクスチャ。外壁にはレンガを、内壁には木を追加します。
ここに画像の説明を挿入6. メニュー バーで [ファイル] > [名前を付けて保存] を選択して、現在編集しているシミュレーション環境ファイルを保存します。保存パスを選択し (最初にファイルを作成できます)、それに my_building (カスタマイズ可能な名前) という名前を付けます。保存後、フォルダーが作成されていることがわかります。 my_building という名前のファイルが生成されます。これには、model.config と model.sdf の 2 つのファイルが含まれます。

ここに画像の説明を挿入(2) モバイル ロボット ガゼボ シミュレーション:
1. 依存パッケージをインストールします。

sudo apt-get install ros-noetic-joy ros-noetic-teleop-twist-joy ros-noetic-teleop-twist-keyboard ros-noetic-laser-proc ros-noetic-rgbd-launch ros-noetic-depthimage-to-laserscan ros-noetic-rosserial-arduino ros-noetic-rosserial-python ros-noetic-rosserial-server ros-noetic-rosserial-client ros-noetic-rosserial-msgs ros-noetic-amcl ros-noetic-map-server ros-noetic-move-base ros-noetic-urdf ros-noetic-xacro ros-noetic-compressed-image-transport ros-noetic-rqt-image-view ros-noetic-gmapping ros-noetic-navigation ros-noetic-interactive-markers

(注: 私は noetic を使用しています。独自の ROS バージョンに変更する必要があります)
2. ROS ワークスペースを作成し、Turtlebot モバイル ロボット ソフトウェア パッケージをダウンロードします。

mkdir -p ~/turtlebot_ws/src/ 
cd ~/turtlebot_ws/src/
git clone https://github.com/ROBOTIS-GIT/turtlebot3_msgs.git
git clone https://github.com/ROBOTIS-GIT/turtlebot3.git
git clone https://github.com/ROBOTIS-GIT/turtlebot3_simulations.git
cd ~/turtlebot_ws 
catkin_make

ダウンロードに問題がある場合は、モバイル ホットスポットに変更するように注意してください。
問題がなければ、

export TURTLEBOT3_MODEL=burger  

(.bashrc ファイルに入れることができます)

source ~/turtlebot_ws/devel/setup.bash
roslaunch turtlebot3_gazebo turtlebot3_world.launch

次に、自分で作成したシミュレーション環境をインポートして保存し (挿入部分、通常は下部にあります)、名前を付けて
ここに画像の説明を挿入保存し (世界に名前を付けて保存)、~/tutlebot_ws/src/turtlebot3_simulations/turtlebot3_gazebo/worlds/ に保存します。私のものは
ここに画像の説明を挿入myworld1.world** (サフィックスは .world である必要があります)**
~/tutlebot_ws/src/turtlebot3_simulations/turtlebot3_gazebo/launch/turtlebot3_world.launch ファイルを開き、シミュレーション環境をロードするコマンドを次のように変更します。

<arg name="world_name" value="$(find turtlebot3_gazebo)/worlds/myworld1.world"/>

このファイルで、シミュレーション環境に Turtlebot3 モデルをロードする初期位置を変更します。

 <arg name="x_pos" default="0.6"/>
  <arg name="y_pos" default="-0.5"/>
  <arg name="z_pos" default="0.0"/>

(ロボットをマップ内に保持してください)
ここに画像の説明を挿入3. キーボードは、シミュレーション環境でのロボットの動きを制御します。

export TURTLEBOT3_MODEL=burger      
source ~/turtlebot_ws/devel/setup.bash
roslaunch turtlebot3_teleop turtlebot3_teleop_key.launch

4. マップの構築と保存:
シミュレーション環境とキーボード コントロール ウィンドウを実行したままにし、新しいターミナル ウィンドウを開いて slam ファイルを実行します。

export TURTLEBOT3_MODEL=burger
source ~/turtlebot_ws/devel/setup.bash
roslaunch turtlebot3_slam turtlebot3_slam.launch

キーボードはロボットを制御して環境内を移動し、満足のいくマップを作成した後、次のコマンドを使用してマップを保存します。

rosrun map_server map_saver -f ~tutlebot_ws/src/turtlebot3/turtlebot3_navigation

(3) 自動ナビゲーション:
シミュレーション環境を実行したままにし、他のウィンドウで実行中のファイルを閉じて、自動ナビゲーション ファイルを実行します。

export TURTLEBOT3_MODEL=burger
source ~/turtlebot_ws/devel/setup.bash
roslaunch turtlebot3_navigation turtlebot3_navigation.launch

マウスの左ボタンで rviz ツールバーの「2D ポーズ推定」を選択し、マップ上の位置と一致するようにシミュレーション環境内のロボットの位置を再配置します。次に、rviz ツールバーで「2D ナビゲーション目標」オプションを選択し、ボタンを長押しします。マウスの左ボタンで地図上のロボットの位置を指定し、ナビゲーション目標点を指定します。マウスを放すと短時間で最適な経路が計画され、ロボットは目標点に向かって移動を開始します。

ここに画像の説明を挿入
ここに画像の説明を挿入ここで終わります。ワークスペースを作成する

おすすめ

転載: blog.csdn.net/m0_56895840/article/details/127766039