From 4cf674ff6967499d770b5afa06e1401224973de8 Mon Sep 17 00:00:00 2001 From: YusukeKato Date: Fri, 1 Mar 2024 16:38:28 +0900 Subject: [PATCH] =?UTF-8?q?=E3=82=AB=E3=83=A1=E3=83=A9=E3=83=A9=E3=82=A4?= =?UTF-8?q?=E3=83=B3=E3=83=88=E3=83=AC=E3=83=BC=E3=82=B9=E3=81=A8SLAM&Navi?= =?UTF-8?q?gation=E3=81=AE=E8=AA=AC=E6=98=8E=E3=82=92=E8=BF=BD=E5=8A=A0=20?= =?UTF-8?q?(#38)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Shota Aoki --- docs/raspimouse/ros/samples.md | 9 +++ docs/raspimouse/simulator/install.md | 7 ++ docs/raspimouse/simulator/samples.md | 96 ++++++++++++++++++++++++++++ 3 files changed, 112 insertions(+) diff --git a/docs/raspimouse/ros/samples.md b/docs/raspimouse/ros/samples.md index e3d089c..f0e7877 100644 --- a/docs/raspimouse/ros/samples.md +++ b/docs/raspimouse/ros/samples.md @@ -160,6 +160,15 @@ robot: Raspberry Pi Mouse +## カメラによるライントレース {: #camera-line-follower} + +=== "ROS 2" + 実行手順は[ROS 2サンプル集のcamera_line_follower](https://github.com/rt-net/raspimouse_ros2_examples#camera_line_follower){target=_blank rel=noopener} + を参照してください。 + PCから操縦する場合はネットワークと環境変数を設定してください。 + + + ## LiDARでSLAM {: #slam} === "ROS" diff --git a/docs/raspimouse/simulator/install.md b/docs/raspimouse/simulator/install.md index a9c1727..ff81499 100644 --- a/docs/raspimouse/simulator/install.md +++ b/docs/raspimouse/simulator/install.md @@ -68,9 +68,16 @@ Raspberry Pi Mouse Simulator([rt-net/raspimouse_sim](https://github.com/rt-net ```sh git clone -b humble-devel https://github.com/rt-net/raspimouse_ros2_examples.git + git clone -b humble-devel https://github.com/rt-net/raspimouse_slam_navigation_ros2.git rosdep install -r -y -i --from-paths raspimouse* ``` + キーボードで操作するためのパッケージをインストール + + ```sh + git clone -b dashing https://github.com/ros2/teleop_twist_keyboard.git + ``` + パッケージをビルド ```sh diff --git a/docs/raspimouse/simulator/samples.md b/docs/raspimouse/simulator/samples.md index 3dd0100..bf8e812 100644 --- a/docs/raspimouse/simulator/samples.md +++ b/docs/raspimouse/simulator/samples.md @@ -67,3 +67,99 @@ robot: Raspberry Pi Mouse ``` ![](https://rt-net.github.io/images/raspberry-pi-mouse/raspimouse_sim_object_tracking.gif) + +## RGBカメラによるライントレース {: #camera_line_follower} + +=== "ROS 2" + 次のコマンドを実行します。 + + シミュレータの起動 + + ```sh + ros2 launch raspimouse_gazebo raspimouse_with_line_follower_field.launch.py use_rgb_camera:=true camera_downward:=true + ``` + + カメラライントレースを実行 + + ```sh + ros2 launch raspimouse_ros2_examples camera_line_follower.launch.py mouse:=false use_camera_node:=false + ``` + + 走行開始 + + ```sh + ros2 topic pub --once /switches raspimouse_msgs/msg/Switches "{switch0: false, switch1: false, switch2: true}" + ``` + + 走行停止 + + ```sh + ros2 topic pub --once /switches raspimouse_msgs/msg/Switches "{switch0: true, switch1: false, switch2: false}" + ``` + + カメラライントレースにおけるパラメータは[こちら](https://github.com/rt-net/raspimouse_ros2_examples?tab=readme-ov-file#parameters)を参照してください。 + + ![](https://rt-net.github.io/images/raspberry-pi-mouse/raspimouse_sim_camerafollower_short.gif) + +## SLAM {: #slam} + +=== "ROS 2" + 次のコマンドを実行します。 + + シミュレータの起動 + + ```sh + ros2 launch raspimouse_gazebo raspimouse_with_lakehouse.launch.py lidar:=urg + ``` + + `lidar`は`urg`、`lds`、`rplidar`のいずれかを指定してください。 + + キーボードで操作 + + ```sh + ros2 run teleop_twist_keyboard teleop_twist_keyboard + ``` + + SLAMを実行 + + ```sh + ros2 launch raspimouse_slam pc_slam.launch.py + ``` + + Raspberry Pi Mouseを走らせて地図を作成 + + ![](https://rt-net.github.io/images/raspberry-pi-mouse/raspimouse_sim_slam.png) + + 作成した地図を保存 + + ```sh + ros2 run nav2_map_server map_saver_cli -f ~/MAP_NAME + ``` + + `MAP_NAME`は任意の名前を指定できます。 + + ![](https://rt-net.github.io/images/raspberry-pi-mouse/raspimouse_sim_slam_short.gif) + +## Navigation {: #navigation} + +=== "ROS 2" + 次のコマンドを実行します。 + + シミュレータの起動 + + ```sh + ros2 launch raspimouse_gazebo raspimouse_with_lakehouse.launch.py lidar:=urg + ``` + + `lidar`は`urg`、`lds`、`rplidar`のいずれかを指定してください。 + + Navigationを実行 + + ```sh + ros2 launch raspimouse_navigation pc_navigation.launch.py map:=$HOME/MAP_NAME.yaml + ``` + + 引数`map`にはSLAMで作成した地図ファイルのパスを指定してください。 + + ![](https://rt-net.github.io/images/raspberry-pi-mouse/raspimouse_sim_navigation_short.gif) +