README
raspimouse_slam
slam_toolboxパッケージを使用してSLAM(自己位置推定と地図生成)を行うパッケージです。
Table of Contents
SLAM


Raspberry Pi Mouse上で、次のコマンドを実行します。LiDARを起動し、ゲームパッドでRaspberry Pi Mouseを制御できるようにします。
下記のコマンドではゲームパッドとしてLogicool Wireless Gamepad F710を使用しています。
[!NOTE] ゲームパッドの操作方法については、raspimouse_ros2_examples “joystick_control”を参照してください。
Setup
Raspberry Pi Mouseを起動します。使用するLiDARによってコマンドが違います。
Using Raspberry Pi Mouse
以下のコマンドを実行し、Raspberry Pi Mouseを起動します。
# RPLIDAR A1の場合
ros2 launch raspimouse_slam robot_bringup.launch.py lidar:=rplidar lidar_port:=/dev/ttyUSB0 joyconfig:=f710
# LDS-01の場合
ros2 launch raspimouse_slam robot_bringup.launch.py lidar:=lds lidar_port:=/dev/ttyUSB0 joyconfig:=f710
# URG-04LX-UG01の場合
ros2 launch raspimouse_slam robot_bringup.launch.py lidar:=urg lidar_port:=/dev/ttyACM0 joyconfig:=f710
Using Gazebo
以下のコマンドを実行し、Gazebo上でRaspberry Pi Mouseを起動します。Gazebo上での実行には、raspimouse_simパッケージのインストールが必要です。
# RPLIDAR A1の場合
ros2 launch raspimouse_gazebo raspimouse_with_lakehouse.launch.py lidar:=rplidar
# LDS-01の場合
ros2 launch raspimouse_gazebo raspimouse_with_lakehouse.launch.py lidar:=lds
# URG-04LX-UG01の場合
ros2 launch raspimouse_gazebo raspimouse_with_lakehouse.launch.py lidar:=urg
別のターミナルを立ち上げ、以下のコマンドを実行します。Gazebo上のRaspberry Pi Mouseを操作できるようになります。
# キーボードで操作する場合
ros2 run teleop_twist_keyboard teleop_twist_keyboard --ros-args -p stamped:=true
# ジョイスティックコントローラで操作する場合
ros2 launch raspimouse_ros2_examples teleop_joy.launch.py joydev:="/dev/input/js0" joyconfig:=f710 mouse:=false
Running SLAM
Remote PC上で次のコマンドを実行するとSLAMが開始されます。 RVizが立ち上がり、Raspberry Pi Mouseを動かすと地図が構築されていく様子が確認できます。実機とGazeboの両方で同一のコマンドです。
[!NOTE] Raspberry Pi MouseとRemote PCが通信するため、同一ネットワーク上で同じ
ROS_DOMAIN_ID
を指定する必要があります。詳しい設定方法は、RT Software TutorialsのROS 2タブを開いて参照してください。
ros2 launch raspimouse_slam pc_slam.launch.py
構築した地図をファイルへ保存するために、Remote PC 上で次のコマンドを実行します。
ros2 run nav2_map_server map_saver_cli -f ~/MAP_NAME
コマンドを実行するとMAP_NAME.pgm
とMAP_NAME.yaml
の2つのファイルが生成されます。