Bye Bye Moore

PoCソルジャーな零細事業主が作業メモを残すブログ

Gazebo Fortressで模擬ロボットを操縦してみる

Ignition Gazebo……あらためGazeboのLTS版であるGazebo Fortressの操作をしてみます。

実際のところ

”-v 4”はエラーの表示レベル設定で多めに表示するようなオプションです。

$ ign gazebo -v 4 -r visualize_lidar.sdf

ROS2を立ち上げてない状態でも、IGNに由来するトピックが一通り出ている事がわかります

$ ign topic -l
/clock
/gazebo/resource_paths
/gui/camera/pose
/lidar
/lidar/points
/lidar2
/lidar2/points
/model/vehicle_blue/odometry
/model/vehicle_blue/tf
/sensors/marker
/stats
/world/visualize_lidar_world/clock
/world/visualize_lidar_world/dynamic_pose/info
/world/visualize_lidar_world/pose/info
/world/visualize_lidar_world/scene/deletion
/world/visualize_lidar_world/scene/info
/world/visualize_lidar_world/state
/world/visualize_lidar_world/stats
$ sudo apt-get install ros-$ROS_DISTRO-ros-ign-bridge

ros-humble-actuator-msgs ros-humble-ros-gz-bridge
ros-humble-ros-gz-interfaces ros-humble-ros-ign-bridge
が入る模様

指令コマンド

先ほど導入したros_ign_bridgeを起動*1します。
構文は

$ ros2 run ros_ign_bridge parameter_bridge /TOPIC@ROS_MSG@IGN_MSG

なので、今回のように車輪型の場合は

$ ros2 run ros_ign_bridge parameter_bridge /model/vehicle_blue/cmd_vel@geometry_msgs/msg/[email protected]


別端末でtopicにコマンドをおくります
これは通常のROS2と同様

$ ros2 topic --once pub /model/vehicle_blue/cmd_vel geometry_msgs/Twist  "linear: { x: 0.1 }"

すると、Ignition Gazeboの画面上で車がノロノロと動き出し……目の前にあった赤い箱をなぎ倒して前進していきます(楽しい

キーボード操作

伝統のキーボード操作にも、もちろん対応しています
ros2-desktopからignition Gazeboを入れていれば多分入っていますが、なければ以下のコマンドを

$ sudo apt-get install ros-$ROS_DISTRO-teleop-twist-keyboard

で、実行

$ ros2 run teleop_twist_keyboard teleop_twist_keyboard --ros-args -r /cmd_vel:=/model/vehicle_blue/cmd_vel

キーボードで楽しく操縦ができます(愉快

*1:[ros_ign_bridge] is deprecated! Redirecting to use [ros_gz_bridge] instead! とか出るので、パッケージとしては古いみたいです……