raspimouse_navigation
Navigation package for Raspberry Pi Mouse
README
raspimouse_navigation
Nav2パッケージを使用してRaspberry Pi Mouseを自律移動させるパッケージです。
Table of Contents
Navigation

[!NOTE] サンプルの実行には、Raspberry Pi MouseとRemote PCが同じネットワーク上で同じ
ROS_DOMAIN_ID
を指定している必要があります。
Setup
Using Raspberry Pi Mouse
Raspberry Pi Mouse上で、次のコマンドを実行します。Raspberry Pi MouseのモータとLiDARを制御するためのノードを起動します。
# RPLIDAR A1の場合
ros2 launch raspimouse_navigation robot_navigation.launch.py lidar:=rplidar
# LDS-01の場合
ros2 launch raspimouse_navigation robot_navigation.launch.py lidar:=lds
# URG-04LX-UG01の場合
ros2 launch raspimouse_navigation robot_navigation.launch.py lidar:=urg lidar_port:=/dev/ttyACM0
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
Launching Navigation
自己位置推定と経路生成用のノードを起動し、RVizを立ち上げます。 引数のmapパラメータには、SLAMで生成した地図(.yamlファイル)を指定してください。
Using Raspberry Pi Mouse
Remote PC上で、次のコマンドを実行します。
ros2 launch raspimouse_navigation pc_navigation.launch.py map:=$HOME/MAP_NAME.yaml
Using Gazebo
Gazebo上のRaspberry Pi Mouseに対して実行する場合はuse_sim_time:=true
オプションを指定します。
ros2 launch raspimouse_navigation pc_navigation.launch.py map:=$HOME/MAP_NAME.yaml use_sim_time:=true
Running Navigation
RVizが起動したら、初期位置・姿勢を合わせます。RVizの画面上部の2D Pose Estimateをクリックします。
地図上でRaspberry Pi Mouseが存在すべき尤もらしい位置をクリックし、そのままホールドします。
ホールドしながらカーソルを動かし、表示されている矢印の向きをRaspberry Pi Mouseの尤もらしい向きに合わせてからボタンを離します。

初期位置・姿勢の指示が完了したら、次は目標位置・姿勢を指示します。RVizの画面上部のNavigation2 Goalをクリックします。
地図上で、初期位置・姿勢を合わせた時と同様に、地図上をクリックして目標位置を、ホールドしたままカーソルを動かして目標姿勢を指示します。目標姿勢の指示が完了すると、Raspberry Pi Mouseが自律移動を開始します。

Stopping the robot
下記画像のようなナビゲーション用のパネルがRViz左下に表示されます。 Cancelボタンを押すと自律移動が中断されます。

Raspberry Pi Mouseを停止させる別の方法として、モータへの電源供給を止める方法もあります。
次のコマンドを実行すると、ソフトウェア側からモータ電源をON / OFFできます。
# モータ電源をOFFにする
ros2 service call /motor_power std_srvs/srv/SetBool data:\ false
# モータ電源をONにする
ros2 service call /motor_power std_srvs/srv/SetBool data:\ true
安全に気をつけながらRaspberry Pi Mouseに搭載されたスイッチを操作してモータ用電源をOFFにします。
Parameters
use_sim_time
Type:
bool
Default:
false
シミュレーション動作時は
true
、実機動作時はfalse
を指定します。このパラメータは内部で起動されるNav2
関連ノードで使用されます。
Nav2のパラメータについては、以下を参照してください。