-
 

Package Summary

Tags No category tags.
Version 0.111.2
License Apache 2.0
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/ignitionrobotics/ros_ign.git
VCS Type git
VCS Version noetic
Last Updated 2023-03-08
Dev Status DEVELOPED
CI status
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

Bridge communication between ROS and Ignition Transport

Additional Links

No additional links.

Maintainers

  • Carlos Agüero

Authors

No additional authors.

Bridge communication between ROS and Ignition Transport

This package provides a network bridge which enables the exchange of messages between ROS and Ignition Transport.

The bridge is currently implemented in C++. At this point there’s no support for service calls. Its support is limited to only the following message types:

ROS type Ignition Transport type
std_msgs/Bool ignition::msgs::Boolean
std_msgs/ColorRGBA ignition::msgs::Color
std_msgs/Empty ignition::msgs::Empty
std_msgs/Int32 ignition::msgs::Int32
std_msgs/Float32 ignition::msgs::Float
std_msgs/Float64 ignition::msgs::Double
std_msgs/Header ignition::msgs::Header
std_msgs/String ignition::msgs::StringMsg
geometry_msgs/Quaternion ignition::msgs::Quaternion
geometry_msgs/Vector3 ignition::msgs::Vector3d
geometry_msgs/Point ignition::msgs::Vector3d
geometry_msgs/Pose ignition::msgs::Pose
geometry_msgs/PoseArray ignition::msgs::Pose_V
geometry_msgs/PoseStamped ignition::msgs::Pose
geometry_msgs/Transform ignition::msgs::Pose
geometry_msgs/TransformStamped ignition::msgs::Pose
geometry_msgs/Twist ignition::msgs::Twist
mav_msgs/Actuators (not on Noetic) ignition::msgs::Actuators
nav_msgs/OccupancyGrid ignition::msgs::OccupancyGrid
nav_msgs/Odometry ignition::msgs::Odometry
rosgraph_msgs/Clock ignition::msgs::Clock
sensor_msgs/BatteryState ignition::msgs::BatteryState
sensor_msgs/CameraInfo ignition::msgs::CameraInfo
sensor_msgs/FluidPressure ignition::msgs::FluidPressure
sensor_msgs/Imu ignition::msgs::IMU
sensor_msgs/Image ignition::msgs::Image
sensor_msgs/JointState ignition::msgs::Model
sensor_msgs/LaserScan ignition::msgs::LaserScan
sensor_msgs/MagneticField ignition::msgs::Magnetometer
sensor_msgs/NavSatFix ignition::msgs::NavSat
sensor_msgs/PointCloud2 ignition::msgs::PointCloudPacked
tf_msgs/TFMessage ignition::msgs::Pose_V
visualization_msgs/Marker ignition::msgs::Marker
visualization_msgs/MarkerArray ignition::msgs::Marker_V

Run rosmaster & rosrun ros_ign_bridge parameter_bridge -h for instructions.

Example 1a: Ignition Transport talker and ROS listener

First we start a ROS roscore:

# Shell A:
. /opt/ros/noetic/setup.bash
roscore

Then we start the parameter bridge which will watch the specified topics.

# Shell B:
. ~/bridge_ws/install/setup.bash
rosrun ros_ign_bridge parameter_bridge /chatter@std_msgs/String@ignition.msgs.StringMsg

Now we start the ROS listener.

# Shell C:
. /opt/ros/noetic/setup.bash
rostopic echo /chatter

Now we start the Ignition Transport talker.

# Shell D:
ign topic -t /chatter -m ignition.msgs.StringMsg -p 'data:"Hello"'

Example 1b: ROS talker and Ignition Transport listener

First we start a ROS roscore:

# Shell A:
. /opt/ros/noetic/setup.bash
roscore

Then we start the parameter bridge which will watch the specified topics.

# Shell B:
. ~/bridge_ws/install/setup.bash
rosrun ros_ign_bridge parameter_bridge /chatter@std_msgs/String@ignition.msgs.StringMsg

Now we start the Ignition Transport listener.

# Shell C:
ign topic -e -t /chatter

Now we start the ROS talker.

# Shell D:
. /opt/ros/noetic/setup.bash
rostopic pub /chatter std_msgs/String "data: 'Hi'" --once

Example 2: Run the bridge and exchange images

In this example, we’re going to generate Ignition Transport images using Gazebo classic, that will be converted into ROS images, and visualized with rqt_viewer.

First we start a ROS roscore:

# Shell A:
. /opt/ros/noetic/setup.bash
roscore

Then we start Gazebo.

# Shell B:
gazebo

Once Gazebo is running, click on the Insert tab, and then, insert a Camera object into the scene. Now, let’s see the topic where the camera images are published.

# Shell C:
ign topic -l | grep image
/default/camera/link/camera/image

Then we start the parameter bridge with the previous topic.

# Shell D:
. ~/bridge_ws/install/setup.bash
rosrun ros_ign_bridge parameter_bridge /default/camera/link/camera/image@sensor_msgs/Image@ignition.msgs.Image

Now we start the ROS GUI:

# Shell E:
. /opt/ros/noetic/setup.bash
rqt_image_view /default/camera/link/camera/image

You should see the current images in rqt_image_view which are coming from Gazebo (published as Ignition Msgs over Ignition Transport).

The screenshot shows all the shell windows and their expected content (it was taken using ROS Kinetic):

Ignition Transport images and ROS rqt

CHANGELOG

Changelog for package ros_ign_bridge

0.111.2 (2021-12-30)

  • [noetic] 🏁 Dome EOL (#197)
  • Don't double-build convert.cpp (#184)
  • 🥳 [Noetic] Tweaks to bridge tutorial (#180)
  • Contributors: Louise Poubel, Michael Carroll

0.111.1 (2021-07-20)

  • Check imu orientation field (#168)
  • [noetic] Update version docs, add Fortress (#166)
  • Fix catkin_testing warning (#163)
  • Add support for nav_msgs/OccupancyGrid (#137)
  • [noetic] Edifice support (#139)
  • Bridge int32 messages (#138)
  • Add visualization_msgs/Marker (#136)
    • Add support for std_msgs/ColorRGBA
    • Add support for visualization_msgs/Marker
  • Add support for Pose_V to PoseArray (#134)
  • Prevent segfault caused by missing values in sensor_msgs::JointState (#135)
  • Add dome + melodic to CI (#126)
  • [noetic] Update releases (#106)
  • Contributors: Alejandro Hernández Cordero, Ian Chen, Jose Luis Rivero, Louise Poubel, Martin Pecka, Michael Carroll, Nate Koenig, Tobias Fischer

0.111.0 (2020-07-23)

  • Noetic support (#93) Co-authored-by: Jose Luis Rivero <<jrivero@osrfoundation.org>>
  • Install only what's necessary, rename builtin_interfaces (#96)
  • Move headers to src, rename builtin_interfaces (#96)
  • Choose collection based on environment variable (#72)
    • Choose collection based on the environment variable IGNITION_VERSION
  • Contributors: Louise Poubel

0.9.2 (2020-05-14)

0.9.1 (2020-05-13)

0.9.0 (2020-05-13)

  • Add ignition::msgs::Pose_V to tf2_msgs::TFMessage conversion (#67)
    • add ign pose_v to ros tf2_message bridge
    • add tf2 msgs dependency
  • Add Float64 to ignition Double conversions. This is needed for suppo… (#64)
    • Add Float64 to ignition Double conversions. This is needed for supporting joint controller (such as for a pan/tilt gimbal)
    • Update README to reflect that bridge now supports double message conversions.
  • Update Melodic docs (#61)
  • Patches for Citadel release (#56)
    • Patches for Citadel release
    • Mention Citadel or Blueprint deps
  • Merge pull request #55 from osrf/fix_repo_url Update repo URL in README install isntructions
  • Update repo URL in README install isntructions
  • [Citadel] Citadel support (#48)
    • Citadel support
    • more citadel deps
    • addressing feedback, fix typos and better find logic
    • fix CI
  • Contributors: Jose Luis Rivero, chapulina, iche033, realdealneil

0.8.0 (2019-11-22)

  • Add support for std_msgs/Empty (#52)
  • Add support for std_msgs/Bool (#49) Signed-off-by: Michael Carroll <<michael@openrobotics.org>>
  • Add replaces for each package (#46)
  • Make all API and comments ROS-version agnostic Signed-off-by: Louise Poubel <<louise@openrobotics.org>>
  • Rename packages and fix compilation + tests Signed-off-by: Louise Poubel <<louise@openrobotics.org>>
  • Move files ros1 -> ros Signed-off-by: Louise Poubel <<louise@openrobotics.org>>
  • Contributors: Addisu Taddese, Louise Poubel, Michael Carroll, chapulina

0.7.0 (2019-08-15)

  • Merge pull request #38 from osrf/unidirectional Support unidirectional bridge topics
  • More examples
  • Merge pull request #37 from osrf/debug Adding debug and error statements
  • Switch to characters supported by ros
  • Merge branch 'debug' into unidirectional
  • More output, and rosconsole depend
  • Support specification of bridge direction
  • Adding debug and error statements
  • Contributors: Nate Koenig

0.6.3 (2019-08-04)

0.6.2 (2019-08-04)

0.6.1 (2019-08-04)

  • Update README.md
  • Contributors: Carlos Agüero

0.6.0 (2019-08-02)

  • Merge pull request #33 from osrf/issue_31 Fix issue #31
  • Image bridge using image_transport (#34)
    • Image bridge using image_transport
    • tests for image
    • correct metapackage

    * tests with catkin Signed-off-by: Louise Poubel <<louise@openrobotics.org>> * Revert changes from #32 Signed-off-by: Louise Poubel <<louise@openrobotics.org>>

  • Use intra-process field from messageInfo.
  • Contributors: Carlos Aguero, Nate Koenig, chapulina
  • 0.5.0
  • Battery state (#30)
  • Packed demo (#29)
    • adding demo for point cloud packed bridge
    • correct rviz file
    • RGBD bridged cloud demo
  • Merge pull request #28 from osrf/pointcloudpacked Bridge point cloud packed
  • Contributors: Nate Koenig, chapulina
  • Battery state (#30)
  • Packed demo (#29)
    • adding demo for point cloud packed bridge
    • correct rviz file
    • RGBD bridged cloud demo
  • Merge pull request #28 from osrf/pointcloudpacked Bridge point cloud packed
  • Contributors: Nate Koenig, chapulina

0.4.0 (2019-07-16)

  • tests and reverse bridge for pointcloud
  • Bridge point cloud packed
  • Contributors: Nate Koenig

0.3.1 (2019-07-01)

0.3.0 (2019-06-28)

  • 0.2.0
  • Conversion between nav_msgs/Odometry and ignition::msgs::Odometry (#22)
    • Conversion between nav_msgs/Odometry and ignition::msgs::Odometry.
    • Update documentation.
    • More time to run tests
    • Cleaning test_utils.
    • Remove explicit ROS dependencies for Travis.
    • diff drive demo with cmd_vel and odom
    • process child frame id
  • Fluid pressure (#20)
    • screenshots
    • missing IMU
    • Fluid pressure
    • Fix tests.
  • Demos package (#19)
    • Start of demos package: camera
    • IMU
    • depth camera
    • magnetometer
    • lidar, base launch
    • READMEs, RGBD camera
    • screenshots
    • missing IMU
    • set plugin path env
    • It's best to always set it
  • Point clouds for RGBD cameras (#17)
    • Beginning of point cloud package
    • Populating image data, but result is not correct. Must find out where's the source of the problem.
    • RGB -> BGR: why?
    • Cleanup code and example
    • pointcloud -> point_cloud
    • add keys - how was this working before?
    • install wget
    • well, we need ign-gz2 :sweat_smile:
    • README update
    • PR feedback
    • .travis/build: rosdep skip ignition keys (#18)
    • .travis/build: rosdep skip ignition keys
    • Update build
  • Move package to subfolder, add metapackage (#16)
  • Contributors: Carlos Agüero, Nate Koenig, chapulina

0.2.2 (2019-05-20)

0.2.1 (2019-05-11)

0.2.0 (2019-05-09)

0.1.0 (2019-03-20)

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged ros_ign_bridge at Robotics Stack Exchange

Package Summary

Tags No category tags.
Version 0.233.4
License Apache 2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/ignitionrobotics/ros_ign.git
VCS Type git
VCS Version galactic
Last Updated 2022-09-23
Dev Status DEVELOPED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

Bridge communication between ROS and Ignition Transport

Additional Links

No additional links.

Maintainers

  • Louise Poubel

Authors

  • Shivesh Khaitan

Bridge communication between ROS and Ignition Transport

This package provides a network bridge which enables the exchange of messages between ROS and Ignition Transport.

The bridge is currently implemented in C++. At this point there’s no support for service calls. Its support is limited to only the following message types:

ROS type Ignition Transport type
std_msgs/msg/Bool ignition::msgs::Boolean
std_msgs/msg/ColorRGBA ignition::msgs::Color
std_msgs/msg/Empty ignition::msgs::Empty
std_msgs/msg/Float32 ignition::msgs::Float
std_msgs/msg/Float64 ignition::msgs::Double
std_msgs/msg/Header ignition::msgs::Header
std_msgs/msg/Int32 ignition::msgs::Int32
std_msgs/msg/UInt32 ignition::msgs::UInt32
std_msgs/msg/String ignition::msgs::StringMsg
geometry_msgs/msg/Wrench ignition::msgs::Wrench
geometry_msgs/msg/Quaternion ignition::msgs::Quaternion
geometry_msgs/msg/Vector3 ignition::msgs::Vector3d
geometry_msgs/msg/Point ignition::msgs::Vector3d
geometry_msgs/msg/Pose ignition::msgs::Pose
geometry_msgs/msg/PoseStamped ignition::msgs::Pose
geometry_msgs/msg/Transform ignition::msgs::Pose
geometry_msgs/msg/TransformStamped ignition::msgs::Pose
geometry_msgs/msg/Twist ignition::msgs::Twist
mav_msgs/msg/Actuators (TODO) ignition::msgs::Actuators (TODO)
nav_msgs/msg/Odometry ignition::msgs::Odometry
rcl_interfaces/msg/ParameterValue ignition::msgs::Any
ros_ign_interfaces/msg/Contact ignition::msgs::Contact
ros_ign_interfaces/msg/Contacts ignition::msgs::Contacts
ros_ign_interfaces/msg/Dataframe ignition::msgs::Dataframe
ros_ign_interfaces/msg/Entity ignition::msgs::Entity
ros_ign_interfaces/msg/GuiCamera ignition::msgs::GUICamera
ros_ign_interfaces/msg/JointWrench ignition::msgs::JointWrench
ros_ign_interfaces/msg/Light ignition::msgs::Light
ros_ign_interfaces/msg/ParamVec ignition::msgs::Param
ros_ign_interfaces/msg/ParamVec ignition::msgs::Param_V
ros_ign_interfaces/msg/StringVec ignition::msgs::StringMsg_V
ros_ign_interfaces/msg/TrackVisual ignition::msgs::TrackVisual
ros_ign_interfaces/msg/VideoRecord ignition::msgs::VideoRecord
rosgraph_msgs/msg/Clock ignition::msgs::Clock
sensor_msgs/msg/BatteryState ignition::msgs::BatteryState
sensor_msgs/msg/CameraInfo ignition::msgs::CameraInfo
sensor_msgs/msg/FluidPressure ignition::msgs::FluidPressure
sensor_msgs/msg/Imu ignition::msgs::IMU
sensor_msgs/msg/Image ignition::msgs::Image
sensor_msgs/msg/JointState ignition::msgs::Model
sensor_msgs/msg/LaserScan ignition::msgs::LaserScan
sensor_msgs/msg/MagneticField ignition::msgs::Magnetometer
sensor_msgs/msg/NavSatFix ignition::msgs::NavSat
sensor_msgs/msg/PointCloud2 ignition::msgs::PointCloudPacked
tf2_msgs/msg/TFMessage ignition::msgs::Pose_V
trajectory_msgs/msg/JointTrajectory ignition::msgs::JointTrajectory

Run ros2 run ros_ign_bridge parameter_bridge -h for instructions.

Example 1a: Ignition Transport talker and ROS 2 listener

Start the parameter bridge which will watch the specified topics.

# Shell A:
. ~/bridge_ws/install/setup.bash
ros2 run ros_ign_bridge parameter_bridge /chatter@std_msgs/msg/String@ignition.msgs.StringMsg

Now we start the ROS listener.

# Shell B:
. /opt/ros/galactic/setup.bash
ros2 topic echo /chatter

Now we start the Ignition Transport talker.

# Shell C:
ign topic pub -t /chatter -m ignition.msgs.StringMsg -p 'data:"Hello"'

Example 1b: ROS 2 talker and Ignition Transport listener

Start the parameter bridge which will watch the specified topics.

# Shell A:
. ~/bridge_ws/install/setup.bash
ros2 run ros_ign_bridge parameter_bridge /chatter@std_msgs/msg/String@ignition.msgs.StringMsg

Now we start the Ignition Transport listener.

# Shell B:
ign topic -e -t /chatter

Now we start the ROS talker.

# Shell C:
. /opt/ros/galactic/setup.bash
ros2 topic pub /chatter std_msgs/msg/String "data: 'Hi'" --once

Example 2: Run the bridge and exchange images

In this example, we’re going to generate Ignition Transport images using Ignition Gazebo, that will be converted into ROS images, and visualized with rqt_image_viewer.

First we start Ignition Gazebo.

# Shell A:
ign gazebo sensors_demo.sdf

Let’s see the topic where camera images are published.

# Shell B:
ign topic -l | grep image
/rgbd_camera/depth_image
/rgbd_camera/image

Then we start the parameter bridge with the previous topic.

# Shell B:
. ~/bridge_ws/install/setup.bash
ros2 run ros_ign_bridge parameter_bridge /rgbd_camera/image@sensor_msgs/msg/Image@ignition.msgs.Image

Now we start the ROS GUI:

# Shell C:
. /opt/ros/galactic/setup.bash
ros2 run rqt_image_view rqt_image_view /rgbd_camera/image

You should see the current images in rqt_image_view which are coming from Gazebo (published as Ignition Msgs over Ignition Transport).

The screenshot shows all the shell windows and their expected content (it was taken using ROS 2 Galactic and Ignition Fortress):

Ignition Transport images and ROS rqt

Example 3: Static bridge

In this example, we’re going to run an executable that starts a bidirectional bridge for a specific topic and message type. We’ll use the static_bridge executable that is installed with the bridge.

The example’s code can be found under ros_ign_bridge/src/static_bridge.cpp. In the code, it’s possible to see how the bridge is hardcoded to bridge string messages published on the /chatter topic.

Let’s give it a try, starting with Ignition -> ROS 2.

On terminal A, start the bridge:

ros2 run ros_ign_bridge static_bridge

On terminal B, we start a ROS 2 listener:

ros2 topic echo /chatter std_msgs/msg/String

And terminal C, publish an Ignition message:

ign topic pub -t /chatter -m ignition.msgs.StringMsg -p 'data:"Hello"'

At this point, you should see the ROS 2 listener echoing the message.

Now let’s try the other way around, ROS 2 -> Ignition.

On terminal D, start an Igntion listener:

ign topic -e -t /chatter

And on terminal E, publish a ROS 2 message:

ros2 topic pub /chatter std_msgs/msg/String 'data: "Hello"' -1

You should see the Ignition listener echoing the message.

Example 4: Configuring the Bridge via YAML

When configuring many topics, it is easier to use a file-based configuration in a markup language. In this case, the ros_ign bridge supports using a YAML file to configure the various parameters.

The configuration file must be a YAML array of maps. An example configuration for 5 bridges is below, showing the various ways that a bridge may be specified:

 # Set just topic name, applies to both
- topic_name: "chatter"
  ros_type_name: "std_msgs/msg/String"
  ign_type_name: "ignition.msgs.StringMsg"

# Set just ROS topic name, applies to both
- ros_topic_name: "chatter_ros"
  ros_type_name: "std_msgs/msg/String"
  ign_type_name: "ignition.msgs.StringMsg"

# Set just IGN topic name, applies to both
- ign_topic_name: "chatter_ign"
  ros_type_name: "std_msgs/msg/String"
  ign_type_name: "ignition.msgs.StringMsg"

# Set each topic name explicitly
- ros_topic_name: "chatter_both_ros"
  ign_topic_name: "chatter_both_ign"
  ros_type_name: "std_msgs/msg/String"
  ign_type_name: "ignition.msgs.StringMsg"

# Full set of configurations
- ros_topic_name: "ros_chatter"
  ign_topic_name: "ign_chatter"
  ros_type_name: "std_msgs/msg/String"
  ign_type_name: "ignition.msgs.StringMsg"
  subscriber_queue: 5       # Default 10
  publisher_queue: 6        # Default 10
  lazy: true                # Default "false"
  direction: BIDIRECTIONAL  # Default "BIDIRECTIONAL" - Bridge both directions
                            # "IGN_TO_ROS" - Bridge Ignition topic to ROS
                            # "ROS_TO_IGN" - Bridge ROS topic to Ignition

To run the bridge node with the above configuration:

ros2 run ros_ign_bridge bridge_node --ros-args -p config_file:=$WORKSPACE/ros_ign/ros_ign_bridge/test/config/full.yaml

API

ROS 2 Parameters:

  • subscription_heartbeat - Period at which the node checks for new subscribers for lazy bridges.
  • config_file - YAML file to be loaded as the bridge configuration
CHANGELOG

Changelog for package ros_ign_bridge

0.233.4 (2022-02-07)

  • [galactic] backport test memory usage improvements (#215)
    • Improve modularity of ign/ros publisher tests (#194)
    • Break apart ros_subscriber test translation unit (#212)

    - Fix deprecated parameter declaration Co-authored-by: Louise Poubel <<louise@openrobotics.org>>

  • Contributors: Michael Carroll

0.233.3 (2021-12-30)

  • Separate galactic branch from ros2 branch (#201)
  • [ros2] 🏁 Dome EOL (#199)
  • New Light Message, also bridge Color (#187) Co-authored-by: ahcorde <<ahcorde@gmail.com>>
  • Statically link each translation unit (#193)
  • Break apart convert and factories translation unit (#192) Co-authored-by: Louise Poubel <<louise@openrobotics.org>>
  • Fixed ROS subscriber test in ros_ign_bridge (#189)
  • Enable QoS overrides (#181)
  • Fixed ros ign bridge documentation (#178)
  • Expose Contacts through ROS bridge (#175)
  • Contributors: Alejandro Hernández Cordero, Louise Poubel, Michael Carroll, Vatan Aksoy Tezer, William Lew

0.233.2 (2021-07-20)

  • [ros2] Update version docs, add Galactic and Fortress (#164)
  • Contributors: Louise Poubel

0.233.1 (2021-04-16)

  • Default to Edifice for Rolling (#150)
  • Ignore local publications for ROS 2 subscriber (#146)
    • Note: Does not work with all rmw implementations (e.g.: FastRTPS)
  • Update documentation for installation instructions and bridge examples (#142)
  • Edifice support (#140)
  • Add JointTrajectory message conversion (#121) Conversion between
    • ignition::msgs::JointTrajectory
    • trajectory_msgs::msg::JointTrajectory
  • Add TFMessage / Pose_V and Float64 / Double conversions (#117) Addresses issue #116
  • Updated prereq & branch name (#113)
  • Update releases (#108)
  • Updated README.md (#104)
  • Add support for Dome (#103)
  • Contributors: Alejandro Hernández Cordero, Andrej Orsula, Florent Audonnet, Jenn, Louise Poubel, Luca Della Vedova

0.221.1 (2020-08-19)

  • Add pkg-config as a buildtool dependency (#102)
  • Port ros_ign_bridge tests to ROS 2 (#98)
  • Rename test_utils.hpp (#98)
  • Contributors: Louise Poubel, ahcorde

0.221.0 (2020-07-23)

  • Install only what's necessary, rename builtin_interfaces (#95)
  • Move headers to src, rename builtin_interfaces (#95)
  • Integer support (#91) Adds Int32 to the bridge.
  • [ros2] Fixed CI - Added Foxy (#89) Co-authored-by: Louise Poubel <<louise@openrobotics.org>>
  • Ignore ros-args in parameter bridge (#65)
  • Update Dashing docs (#62)
  • Update dependencies to Citadel (#57)
  • [WIP] Port ign_ros_gazebo_demos to ROS2 (#58) Port ros_ign_image to ROS2 Port ros_ign_gazebo_demos to ROS2
  • Add support for std_msgs/Empty (#53)
  • Add support for std_msgs/Bool (#50)
  • [ros2] Port ros_ign_bridge to ROS2 (#45)
  • Enable ROS2 CI for Dashing branch (#43)
  • Make all API and comments ROS-version agnostic
  • Rename packages and fix compilation + tests
  • Move files ros1 -> ros
  • Contributors: Addisu Taddese, Alejandro Hernández Cordero, Jose Luis Rivero, Louise Poubel, Luca Della Vedova, Michael Carroll, Mohamed Ahmed, Shivesh Khaitan, chapulina

0.7.0 (2019-08-15)

  • Merge pull request #38 from osrf/unidirectional Support unidirectional bridge topics
  • More examples
  • Merge pull request #37 from osrf/debug Adding debug and error statements
  • Switch to characters supported by ros
  • Merge branch 'debug' into unidirectional
  • More output, and rosconsole depend
  • Support specification of bridge direction
  • Adding debug and error statements
  • Contributors: Nate Koenig

0.6.3 (2019-08-04)

0.6.2 (2019-08-04)

0.6.1 (2019-08-04)

  • Update README.md
  • Contributors: Carlos Agüero

0.6.0 (2019-08-02)

  • Merge pull request #33 from osrf/issue_31 Fix issue #31
  • Image bridge using image_transport (#34)
    • Image bridge using image_transport
    • tests for image
    • correct metapackage

    * tests with catkin Signed-off-by: Louise Poubel <<louise@openrobotics.org>> * Revert changes from #32 Signed-off-by: Louise Poubel <<louise@openrobotics.org>>

  • Use intra-process field from messageInfo.
  • Contributors: Carlos Aguero, Nate Koenig, chapulina
  • 0.5.0
  • Battery state (#30)
  • Packed demo (#29)
    • adding demo for point cloud packed bridge
    • correct rviz file
    • RGBD bridged cloud demo
  • Merge pull request #28 from osrf/pointcloudpacked Bridge point cloud packed
  • Contributors: Nate Koenig, chapulina
  • Battery state (#30)
  • Packed demo (#29)
    • adding demo for point cloud packed bridge
    • correct rviz file
    • RGBD bridged cloud demo
  • Merge pull request #28 from osrf/pointcloudpacked Bridge point cloud packed
  • Contributors: Nate Koenig, chapulina

0.4.0 (2019-07-16)

  • tests and reverse bridge for pointcloud
  • Bridge point cloud packed
  • Contributors: Nate Koenig

0.3.1 (2019-07-01)

0.3.0 (2019-06-28)

  • 0.2.0
  • Conversion between nav_msgs/Odometry and ignition::msgs::Odometry (#22)
    • Conversion between nav_msgs/Odometry and ignition::msgs::Odometry.
    • Update documentation.
    • More time to run tests
    • Cleaning test_utils.
    • Remove explicit ROS dependencies for Travis.
    • diff drive demo with cmd_vel and odom
    • process child frame id
  • Fluid pressure (#20)
    • screenshots
    • missing IMU
    • Fluid pressure
    • Fix tests.
  • Demos package (#19)
    • Start of demos package: camera
    • IMU
    • depth camera
    • magnetometer
    • lidar, base launch
    • READMEs, RGBD camera
    • screenshots
    • missing IMU
    • set plugin path env
    • It's best to always set it
  • Point clouds for RGBD cameras (#17)
    • Beginning of point cloud package
    • Populating image data, but result is not correct. Must find out where's the source of the problem.
    • RGB -> BGR: why?
    • Cleanup code and example
    • pointcloud -> point_cloud
    • add keys - how was this working before?
    • install wget
    • well, we need ign-gz2 :sweat_smile:
    • README update
    • PR feedback
    • .travis/build: rosdep skip ignition keys (#18)
    • .travis/build: rosdep skip ignition keys
    • Update build
  • Move package to subfolder, add metapackage (#16)
  • Contributors: Carlos Agüero, Nate Koenig, chapulina

0.2.2 (2019-05-20)

0.2.1 (2019-05-11)

0.2.0 (2019-05-09)

0.1.0 (2019-03-20)

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged ros_ign_bridge at Robotics Stack Exchange

Package Summary

Tags No category tags.
Version 0.221.2
License Apache 2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/ignitionrobotics/ros_ign.git
VCS Type git
VCS Version foxy
Last Updated 2023-06-08
Dev Status DEVELOPED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

Bridge communication between ROS and Ignition Transport

Additional Links

No additional links.

Maintainers

  • Alejandro Hernandez Cordero

Authors

  • Shivesh Khaitan
  • Louise Poubel

Bridge communication between ROS and Ignition Transport

This package provides a network bridge which enables the exchange of messages between ROS and Ignition Transport.

The bridge is currently implemented in C++. At this point there’s no support for service calls. Its support is limited to only the following message types:

ROS type Ignition Transport type
std_msgs/msg/Bool ignition::msgs::Boolean
std_msgs/msg/Empty ignition::msgs::Empty
std_msgs/msg/Float32 ignition::msgs::Float
std_msgs/msg/Float64 ignition::msgs::Double
std_msgs/msg/Header ignition::msgs::Header
std_msgs/msg/Int32 ignition::msgs::Int32
std_msgs/msg/String ignition::msgs::StringMsg
geometry_msgs/msg/Quaternion ignition::msgs::Quaternion
geometry_msgs/msg/Vector3 ignition::msgs::Vector3d
geometry_msgs/msg/Point ignition::msgs::Vector3d
geometry_msgs/msg/Pose ignition::msgs::Pose
geometry_msgs/msg/PoseStamped ignition::msgs::Pose
geometry_msgs/msg/Transform ignition::msgs::Pose
geometry_msgs/msg/TransformStamped ignition::msgs::Pose
geometry_msgs/msg/Twist ignition::msgs::Twist
mav_msgs/msg/Actuators (TODO) ignition::msgs::Actuators (TODO)
nav_msgs/msg/Odometry ignition::msgs::Odometry
rosgraph_msgs/msg/Clock ignition::msgs::Clock
sensor_msgs/msg/BatteryState ignition::msgs::BatteryState
sensor_msgs/msg/CameraInfo ignition::msgs::CameraInfo
sensor_msgs/msg/FluidPressure ignition::msgs::FluidPressure
sensor_msgs/msg/Imu ignition::msgs::IMU
sensor_msgs/msg/Image ignition::msgs::Image
sensor_msgs/msg/JointState ignition::msgs::Model
sensor_msgs/msg/LaserScan ignition::msgs::LaserScan
sensor_msgs/msg/MagneticField ignition::msgs::Magnetometer
sensor_msgs/msg/PointCloud2 ignition::msgs::PointCloudPacked
tf2_msgs/msg/TFMessage ignition::msgs::Pose_V
trajectory_msgs/msg/JointTrajectory ignition::msgs::JointTrajectory

Run ros2 run ros_ign_bridge parameter_bridge -h for instructions.

Example 1a: Ignition Transport talker and ROS 2 listener

Start the parameter bridge which will watch the specified topics.

# Shell A:
. ~/bridge_ws/install/setup.bash
ros2 run ros_ign_bridge parameter_bridge /chatter@std_msgs/msg/String@ignition.msgs.StringMsg

Now we start the ROS listener.

# Shell B:
. /opt/ros/foxy/setup.bash
ros2 topic echo /chatter

Now we start the Ignition Transport talker.

# Shell C:
ign topic pub -t /chatter -m ignition.msgs.StringMsg -p 'data:"Hello"'

Example 1b: ROS 2 talker and Ignition Transport listener

Start the parameter bridge which will watch the specified topics.

# Shell A:
. ~/bridge_ws/install/setup.bash
ros2 run ros_ign_bridge parameter_bridge /chatter@std_msgs/msg/String@ignition.msgs.StringMsg

Now we start the Ignition Transport listener.

# Shell B:
ign topic -e -t /chatter

Now we start the ROS talker.

# Shell C:
. /opt/ros/foxy/setup.bash
ros2 topic pub /chatter std_msgs/msg/String "data: 'Hi'" --once

Example 2: Run the bridge and exchange images

In this example, we’re going to generate Ignition Transport images using Ignition Gazebo, that will be converted into ROS images, and visualized with rqt_image_viewer.

First we start Ignition Gazebo.

# Shell A:
ign gazebo sensors_demo.sdf

Let’s see the topic where camera images are published.

# Shell B:
ign topic -l | grep image
/rgbd_camera/depth_image
/rgbd_camera/image

Then we start the parameter bridge with the previous topic.

# Shell B:
. ~/bridge_ws/install/setup.bash
ros2 run ros_ign_bridge parameter_bridge /rgbd_camera/image@sensor_msgs/msg/Image@ignition.msgs.Image

Now we start the ROS GUI:

# Shell C:
. /opt/ros/foxy/setup.bash
ros2 run rqt_image_view rqt_image_view /rgbd_camera/image

You should see the current images in rqt_image_view which are coming from Gazebo (published as Ignition Msgs over Ignition Transport).

The screenshot shows all the shell windows and their expected content (it was taken using ROS 2 Foxy and Ignition Edifice):

Ignition Transport images and ROS rqt

Example 3: Static bridge

In this example, we’re going to run an executable that starts a bidirectional bridge for a specific topic and message type. We’ll use the static_bridge executable that is installed with the bridge.

The example’s code can be found under ros_ign_bridge/src/static_bridge.cpp. In the code, it’s possible to see how the bridge is hardcoded to bridge string messages published on the /chatter topic.

Let’s give it a try, starting with Ignition -> ROS 2.

On terminal A, start the bridge:

ros2 run ros_ign_bridge static_bridge

On terminal B, we start a ROS 2 listener:

ros2 topic echo /chatter std_msgs/msg/String

And terminal C, publish an Ignition message:

ign topic pub -t /chatter -m ignition.msgs.StringMsg -p 'data:"Hello"'

At this point, you should see the ROS 2 listener echoing the message.

Now let’s try the other way around, ROS 2 -> Ignition.

On terminal D, start an Igntion listener:

ign topic -e -t /chatter

And on terminal E, publish a ROS 2 message:

ros2 topic pub /chatter std_msgs/msg/String 'data: "Hello"' -1

You should see the Ignition listener echoing the message.

CHANGELOG

Changelog for package ros_ign_bridge

0.221.2 (2021-07-20)

  • Ignore local publications for ROS 2 subscriber (#146)
    • Note: Does not work with all rmw implementations (e.g.: FastRTPS)
  • [ros2] Update documentation for installation instructions and bridge examples (#142)
  • [foxy] Edifice support (#140)
  • [ros2] Add JointTrajectory message conversion (#121) Conversion between
    • ignition::msgs::JointTrajectory
    • trajectory_msgs::msg::JointTrajectory
  • Add TFMessage / Pose_V and Float64 / Double conversions (#117) Addresses issue #116
  • updated prereq & branch name (#113)
  • [ros2] Update releases (#108)
  • Updated README.md (#104)
  • Add support for Dome (#103)
  • Contributors: Alejandro Hernández Cordero, Andrej Orsula, Florent Audonnet, Jenn, Louise Poubel, Luca Della Vedova

0.221.1 (2020-08-19)

  • Add pkg-config as a buildtool dependency (#102)
  • Port ros_ign_bridge tests to ROS 2 (#98)
  • Rename test_utils.hpp (#98)
  • Contributors: Louise Poubel, ahcorde

0.221.0 (2020-07-23)

  • Install only what's necessary, rename builtin_interfaces (#95)
  • Move headers to src, rename builtin_interfaces (#95)
  • Integer support (#91) Adds Int32 to the bridge.
  • [ros2] Fixed CI - Added Foxy (#89) Co-authored-by: Louise Poubel <<louise@openrobotics.org>>
  • Ignore ros-args in parameter bridge (#65)
  • Update Dashing docs (#62)
  • Update dependencies to Citadel (#57)
  • [WIP] Port ign_ros_gazebo_demos to ROS2 (#58) Port ros_ign_image to ROS2 Port ros_ign_gazebo_demos to ROS2
  • Add support for std_msgs/Empty (#53)
  • Add support for std_msgs/Bool (#50)
  • [ros2] Port ros_ign_bridge to ROS2 (#45)
  • Enable ROS2 CI for Dashing branch (#43)
  • Make all API and comments ROS-version agnostic
  • Rename packages and fix compilation + tests
  • Move files ros1 -> ros
  • Contributors: Addisu Taddese, Alejandro Hernández Cordero, Jose Luis Rivero, Louise Poubel, Luca Della Vedova, Michael Carroll, Mohamed Ahmed, Shivesh Khaitan, chapulina

0.7.0 (2019-08-15)

  • Merge pull request #38 from osrf/unidirectional Support unidirectional bridge topics
  • More examples
  • Merge pull request #37 from osrf/debug Adding debug and error statements
  • Switch to characters supported by ros
  • Merge branch 'debug' into unidirectional
  • More output, and rosconsole depend
  • Support specification of bridge direction
  • Adding debug and error statements
  • Contributors: Nate Koenig

0.6.3 (2019-08-04)

0.6.2 (2019-08-04)

0.6.1 (2019-08-04)

  • Update README.md
  • Contributors: Carlos Agüero

0.6.0 (2019-08-02)

  • Merge pull request #33 from osrf/issue_31 Fix issue #31
  • Image bridge using image_transport (#34)
    • Image bridge using image_transport
    • tests for image
    • correct metapackage

    * tests with catkin Signed-off-by: Louise Poubel <<louise@openrobotics.org>> * Revert changes from #32 Signed-off-by: Louise Poubel <<louise@openrobotics.org>>

  • Use intra-process field from messageInfo.
  • Contributors: Carlos Aguero, Nate Koenig, chapulina
  • 0.5.0
  • Battery state (#30)
  • Packed demo (#29)
    • adding demo for point cloud packed bridge
    • correct rviz file
    • RGBD bridged cloud demo
  • Merge pull request #28 from osrf/pointcloudpacked Bridge point cloud packed
  • Contributors: Nate Koenig, chapulina
  • Battery state (#30)
  • Packed demo (#29)
    • adding demo for point cloud packed bridge
    • correct rviz file
    • RGBD bridged cloud demo
  • Merge pull request #28 from osrf/pointcloudpacked Bridge point cloud packed
  • Contributors: Nate Koenig, chapulina

0.4.0 (2019-07-16)

  • tests and reverse bridge for pointcloud
  • Bridge point cloud packed
  • Contributors: Nate Koenig

0.3.1 (2019-07-01)

0.3.0 (2019-06-28)

  • 0.2.0
  • Conversion between nav_msgs/Odometry and ignition::msgs::Odometry (#22)
    • Conversion between nav_msgs/Odometry and ignition::msgs::Odometry.
    • Update documentation.
    • More time to run tests
    • Cleaning test_utils.
    • Remove explicit ROS dependencies for Travis.
    • diff drive demo with cmd_vel and odom
    • process child frame id
  • Fluid pressure (#20)
    • screenshots
    • missing IMU
    • Fluid pressure
    • Fix tests.
  • Demos package (#19)
    • Start of demos package: camera
    • IMU
    • depth camera
    • magnetometer
    • lidar, base launch
    • READMEs, RGBD camera
    • screenshots
    • missing IMU
    • set plugin path env
    • It's best to always set it
  • Point clouds for RGBD cameras (#17)
    • Beginning of point cloud package
    • Populating image data, but result is not correct. Must find out where's the source of the problem.
    • RGB -> BGR: why?
    • Cleanup code and example
    • pointcloud -> point_cloud
    • add keys - how was this working before?
    • install wget
    • well, we need ign-gz2 :sweat_smile:
    • README update
    • PR feedback
    • .travis/build: rosdep skip ignition keys (#18)
    • .travis/build: rosdep skip ignition keys
    • Update build
  • Move package to subfolder, add metapackage (#16)
  • Contributors: Carlos Agüero, Nate Koenig, chapulina

0.2.2 (2019-05-20)

0.2.1 (2019-05-11)

0.2.0 (2019-05-09)

0.1.0 (2019-03-20)

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged ros_ign_bridge at Robotics Stack Exchange