Ekumen-OS / andino_gz

Andino Simulation using Gazebo simulator
6 stars 1 forks source link

Adds ros_gz_bridge #21

Closed agalbachicar closed 5 months ago

agalbachicar commented 5 months ago

Goes on top of #16 and #17

It provides a standalone launchfile that maps andino ignition topics into ROS 2 topics. For further customization, other PRs can be done on top of this to namespace the topics or changing custom config file.

To try it out:

Shell 1:

$ ros2 launch andino_gz andino_gz.launch.py

And play the sim once it is ready.

Shell 2:

$ ros2 launch andino_gz gz_ros_bridge.launch.py 
[INFO] [launch]: All log files can be found below /home/agalbachicar/.ros/log/2024-01-24-18-56-57-054810-acquara-7162
[INFO] [launch]: Default logging verbosity is set to INFO
[INFO] [ros2-1]: process started with pid [7163]
[ros2-1] [INFO] [1706122618.186055080] [ros_gz_bridge]: Creating GZ->ROS Bridge: [/clock (gz.msgs.Clock) -> /clock (rosgraph_msgs/msg/Clock)] (Lazy 0)
[ros2-1] [INFO] [1706122618.187647452] [ros_gz_bridge]: Creating GZ->ROS Bridge: [/odom (gz.msgs.Odometry) -> /odom (nav_msgs/msg/Odometry)] (Lazy 0)
[ros2-1] [INFO] [1706122618.189525653] [ros_gz_bridge]: Creating GZ->ROS Bridge: [/model/andino/tf (gz.msgs.Pose_V) -> /tf (tf2_msgs/msg/TFMessage)] (Lazy 0)
[ros2-1] [INFO] [1706122618.190798682] [ros_gz_bridge]: Creating GZ->ROS Bridge: [/camera_info (gz.msgs.CameraInfo) -> /camera_info (sensor_msgs/msg/CameraInfo)] (Lazy 0)
[ros2-1] [INFO] [1706122618.191672258] [ros_gz_bridge]: Creating GZ->ROS Bridge: [/image_raw (gz.msgs.Image) -> /image_raw (sensor_msgs/msg/Image)] (Lazy 0)
[ros2-1] [INFO] [1706122618.192128863] [ros_gz_bridge]: Creating GZ->ROS Bridge: [/scan (gz.msgs.LaserScan) -> /scan (sensor_msgs/msg/LaserScan)] (Lazy 0)
[ros2-1] [INFO] [1706122618.192732229] [ros_gz_bridge]: Creating GZ->ROS Bridge: [/scan/points (gz.msgs.PointCloudPacked) -> /scan/points (sensor_msgs/msg/PointCloud2)] (Lazy 0)
[ros2-1] [INFO] [1706122618.193371537] [ros_gz_bridge]: Creating ROS->GZ Bridge: [/cmd_vel (geometry_msgs/msg/Twist) -> /cmd_vel (gz.msgs.Twist)] (Lazy 0)

Shell 3:

$ ros2 topic list
/camera_info
/clock
/cmd_vel
/image_raw
/joint_states
/odom
/parameter_events
/robot_description
/rosout
/scan
/scan/points
/tf
/tf_static

and also you can check:

$ ign topic -l
/camera_info
/clock
/cmd_vel
/gazebo/resource_paths
/gui/camera/pose
/image_raw
/model/andino/odometry
/model/andino/tf
/model/tugbot/battery/linear_battery/state
/model/tugbot/odometry
/model/tugbot/pose
/model/tugbot/tf
/scan
/scan/points
/sensors/marker
/stats
/world/world_demo/clock
/world/world_demo/dynamic_pose/info
/world/world_demo/model/tugbot/joint_state
/world/world_demo/model/tugbot/link/camera_back/sensor/color/camera_info
/world/world_demo/model/tugbot/link/camera_back/sensor/color/image
/world/world_demo/model/tugbot/link/camera_back/sensor/depth/camera_info
/world/world_demo/model/tugbot/link/camera_back/sensor/depth/depth_image
/world/world_demo/model/tugbot/link/camera_back/sensor/depth/depth_image/points
/world/world_demo/model/tugbot/link/camera_front/sensor/color/camera_info
/world/world_demo/model/tugbot/link/camera_front/sensor/color/image
/world/world_demo/model/tugbot/link/camera_front/sensor/depth/camera_info
/world/world_demo/model/tugbot/link/camera_front/sensor/depth/depth_image
/world/world_demo/model/tugbot/link/camera_front/sensor/depth/depth_image/points
/world/world_demo/model/tugbot/link/gripper/sensor/sensor_contact/scan
/world/world_demo/model/tugbot/link/gripper/sensor/sensor_contact/scan/points
/world/world_demo/model/tugbot/link/imu_link/sensor/imu/imu
/world/world_demo/model/tugbot/link/scan_back/sensor/scan_back/scan
/world/world_demo/model/tugbot/link/scan_back/sensor/scan_back/scan/points
/world/world_demo/model/tugbot/link/scan_front/sensor/scan_front/scan
/world/world_demo/model/tugbot/link/scan_front/sensor/scan_front/scan/points
/world/world_demo/model/tugbot/link/scan_omni/sensor/scan_omni/scan
/world/world_demo/model/tugbot/link/scan_omni/sensor/scan_omni/scan/points
/world/world_demo/pose/info
/world/world_demo/scene/deletion
/world/world_demo/scene/info
/world/world_demo/state
/world/world_demo/stats

If required, you can try loading rqt_gui:

https://github.com/ekumenlabs/andino_gz/assets/3825465/6e587939-bebc-48d6-9095-78520ad8b786

agalbachicar commented 5 months ago

CC @francocipollone