|
Package Summary
Tags | No category tags. |
Version | 0.244.14 |
License | Apache 2.0 |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/gazebosim/ros_gz.git |
VCS Type | git |
VCS Version | humble |
Last Updated | 2024-04-16 |
Dev Status | MAINTAINED |
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
Additional Links
Maintainers
- Brandon Ong
Authors
This is a shim package
For ros_gz_bridge
Changelog for package ros_ign_bridge
0.244.14 (2024-04-08)
0.244.13 (2024-01-23)
0.244.12 (2023-12-13)
0.244.11 (2023-05-23)
0.244.10 (2023-05-03)
0.244.9 (2022-11-03)
0.244.8 (2022-10-28)
0.244.7 (2022-10-12)
- Merge branch \'ros2\' into ports/galactic_to_ros2
- Merge branch \'galactic\' into ports/galactic_to_ros2
- Make tests faster and more robust (#272)
- Improve documentation around yaml configuration (#271)
- Fix small typo in bridge README (#270)
- Port NavSat (#224) from ROS 1 to ROS 2 (#268) Co-authored-by: Tyler Howell <76003804+TyHowellWork@users.noreply.github.com>
- Add ParamVec and bridge from Ignition
(#261)
- Introduces [ros_ign_interfaces::msg::ParamVec]{.title-ref} for storing a list of Parameters that are int, bool, double, or string.
- Introduces bridge for [ignition::msgs::param]{.title-ref} to [ros_ign_interfaces::msg::ParamVec]{.title-ref}
- Introduces bridge for [ignition::msgs::param_v]{.title-ref} to [ros_ign_interfaces::msg::ParamVec]{.title-ref}
- Add support for converting Any <-> ParamValue
(#260)
- Add support for converting Any <-> ParamValue
- Feature: set QoS options to override durability (#250) (#259) Co-authored-by: Louise Poubel <louise@openrobotics.org> Co-authored-by: Daisuke Nishimatsu <42202095+wep21@users.noreply.github.com>
- Add node component and yaml-configured bridge node
(#238)
- Refactor in support of adding yaml-configured node
- Add rssi to Dataframe.msg
(#249)
- Adding rssi field to ros_ign_interfaces/Dataframe.msg
- Use the python generator for tests as well
(#234)
- Use the python generator for tests as well
- Generate boilerplate files from Python scripts (#233) The way that we add factories can be a bit error-prone, as there are a lot of strings that cannot be checked at compilation time. This changes several of the boilerplate files to be generated automatically by python scripts, in line with how ros1_bridge does it.
-
[galactic] Backport GuiCamera, StringVec, TrackVisual, VideoRecord (#241)
- [ros_ign_interfaces] Add more interface definitions.
- Add converion functions for the added messages
- Update the factory factory function with the new messages
- Add new messages to docs
* Add test cases for the new messages conversions Co-authored-by: Ivan Santiago Paunovic <ivanpauno@ekumenlabs.com>
Add Dataframe message and bridging (#239)
Factory interface needs virtual destructor (#232)
-
Optional \"lazy\" bridge subscribers (#225) This allows for the bridge to be created in such a way that it is \"lazy\". In this case \"lazy\" means:
- The publication (output) side of the bridge is always on and actively looking for subscriptions.
- The subscription (input) side of the bridge is only turned on in the case that there are subscriptions on the output side.
Contributors: Carlos Ag
Wiki Tutorials
Source Tutorials
Package Dependencies
Deps | Name | |
---|---|---|
1 | ament_cmake | |
1 | ament_index_cpp | |
1 | ros_gz_bridge |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged ros_ign_bridge at Robotics Stack Exchange
|
Package Summary
Tags | No category tags. |
Version | 0.244.14 |
License | Apache 2.0 |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/gazebosim/ros_gz.git |
VCS Type | git |
VCS Version | humble |
Last Updated | 2024-04-16 |
Dev Status | MAINTAINED |
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
Additional Links
Maintainers
- Brandon Ong
Authors
This is a shim package
For ros_gz_bridge
Changelog for package ros_ign_bridge
0.244.14 (2024-04-08)
0.244.13 (2024-01-23)
0.244.12 (2023-12-13)
0.244.11 (2023-05-23)
0.244.10 (2023-05-03)
0.244.9 (2022-11-03)
0.244.8 (2022-10-28)
0.244.7 (2022-10-12)
- Merge branch \'ros2\' into ports/galactic_to_ros2
- Merge branch \'galactic\' into ports/galactic_to_ros2
- Make tests faster and more robust (#272)
- Improve documentation around yaml configuration (#271)
- Fix small typo in bridge README (#270)
- Port NavSat (#224) from ROS 1 to ROS 2 (#268) Co-authored-by: Tyler Howell <76003804+TyHowellWork@users.noreply.github.com>
- Add ParamVec and bridge from Ignition
(#261)
- Introduces [ros_ign_interfaces::msg::ParamVec]{.title-ref} for storing a list of Parameters that are int, bool, double, or string.
- Introduces bridge for [ignition::msgs::param]{.title-ref} to [ros_ign_interfaces::msg::ParamVec]{.title-ref}
- Introduces bridge for [ignition::msgs::param_v]{.title-ref} to [ros_ign_interfaces::msg::ParamVec]{.title-ref}
- Add support for converting Any <-> ParamValue
(#260)
- Add support for converting Any <-> ParamValue
- Feature: set QoS options to override durability (#250) (#259) Co-authored-by: Louise Poubel <louise@openrobotics.org> Co-authored-by: Daisuke Nishimatsu <42202095+wep21@users.noreply.github.com>
- Add node component and yaml-configured bridge node
(#238)
- Refactor in support of adding yaml-configured node
- Add rssi to Dataframe.msg
(#249)
- Adding rssi field to ros_ign_interfaces/Dataframe.msg
- Use the python generator for tests as well
(#234)
- Use the python generator for tests as well
- Generate boilerplate files from Python scripts (#233) The way that we add factories can be a bit error-prone, as there are a lot of strings that cannot be checked at compilation time. This changes several of the boilerplate files to be generated automatically by python scripts, in line with how ros1_bridge does it.
-
[galactic] Backport GuiCamera, StringVec, TrackVisual, VideoRecord (#241)
- [ros_ign_interfaces] Add more interface definitions.
- Add converion functions for the added messages
- Update the factory factory function with the new messages
- Add new messages to docs
* Add test cases for the new messages conversions Co-authored-by: Ivan Santiago Paunovic <ivanpauno@ekumenlabs.com>
Add Dataframe message and bridging (#239)
Factory interface needs virtual destructor (#232)
-
Optional \"lazy\" bridge subscribers (#225) This allows for the bridge to be created in such a way that it is \"lazy\". In this case \"lazy\" means:
- The publication (output) side of the bridge is always on and actively looking for subscriptions.
- The subscription (input) side of the bridge is only turned on in the case that there are subscriptions on the output side.
Contributors: Carlos Ag
Wiki Tutorials
Source Tutorials
Package Dependencies
Deps | Name | |
---|---|---|
1 | ament_cmake | |
1 | ament_index_cpp | |
1 | ros_gz_bridge |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged ros_ign_bridge at Robotics Stack Exchange
|
Package Summary
Tags | No category tags. |
Version | 0.244.14 |
License | Apache 2.0 |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/gazebosim/ros_gz.git |
VCS Type | git |
VCS Version | humble |
Last Updated | 2024-04-16 |
Dev Status | MAINTAINED |
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
Additional Links
Maintainers
- Brandon Ong
Authors
This is a shim package
For ros_gz_bridge
Changelog for package ros_ign_bridge
0.244.14 (2024-04-08)
0.244.13 (2024-01-23)
0.244.12 (2023-12-13)
0.244.11 (2023-05-23)
0.244.10 (2023-05-03)
0.244.9 (2022-11-03)
0.244.8 (2022-10-28)
0.244.7 (2022-10-12)
- Merge branch \'ros2\' into ports/galactic_to_ros2
- Merge branch \'galactic\' into ports/galactic_to_ros2
- Make tests faster and more robust (#272)
- Improve documentation around yaml configuration (#271)
- Fix small typo in bridge README (#270)
- Port NavSat (#224) from ROS 1 to ROS 2 (#268) Co-authored-by: Tyler Howell <76003804+TyHowellWork@users.noreply.github.com>
- Add ParamVec and bridge from Ignition
(#261)
- Introduces [ros_ign_interfaces::msg::ParamVec]{.title-ref} for storing a list of Parameters that are int, bool, double, or string.
- Introduces bridge for [ignition::msgs::param]{.title-ref} to [ros_ign_interfaces::msg::ParamVec]{.title-ref}
- Introduces bridge for [ignition::msgs::param_v]{.title-ref} to [ros_ign_interfaces::msg::ParamVec]{.title-ref}
- Add support for converting Any <-> ParamValue
(#260)
- Add support for converting Any <-> ParamValue
- Feature: set QoS options to override durability (#250) (#259) Co-authored-by: Louise Poubel <louise@openrobotics.org> Co-authored-by: Daisuke Nishimatsu <42202095+wep21@users.noreply.github.com>
- Add node component and yaml-configured bridge node
(#238)
- Refactor in support of adding yaml-configured node
- Add rssi to Dataframe.msg
(#249)
- Adding rssi field to ros_ign_interfaces/Dataframe.msg
- Use the python generator for tests as well
(#234)
- Use the python generator for tests as well
- Generate boilerplate files from Python scripts (#233) The way that we add factories can be a bit error-prone, as there are a lot of strings that cannot be checked at compilation time. This changes several of the boilerplate files to be generated automatically by python scripts, in line with how ros1_bridge does it.
-
[galactic] Backport GuiCamera, StringVec, TrackVisual, VideoRecord (#241)
- [ros_ign_interfaces] Add more interface definitions.
- Add converion functions for the added messages
- Update the factory factory function with the new messages
- Add new messages to docs
* Add test cases for the new messages conversions Co-authored-by: Ivan Santiago Paunovic <ivanpauno@ekumenlabs.com>
Add Dataframe message and bridging (#239)
Factory interface needs virtual destructor (#232)
-
Optional \"lazy\" bridge subscribers (#225) This allows for the bridge to be created in such a way that it is \"lazy\". In this case \"lazy\" means:
- The publication (output) side of the bridge is always on and actively looking for subscriptions.
- The subscription (input) side of the bridge is only turned on in the case that there are subscriptions on the output side.
Contributors: Carlos Ag
Wiki Tutorials
Source Tutorials
Package Dependencies
Deps | Name | |
---|---|---|
1 | ament_cmake | |
1 | ament_index_cpp | |
1 | ros_gz_bridge |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged ros_ign_bridge at Robotics Stack Exchange
ros_ign_bridge package from ros_ign reporos_ign ros_ign_bridge ros_ign_gazebo ros_ign_gazebo_demos ros_ign_image ros_ign_point_cloud |
|
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
Additional Links
Maintainers
- Carlos Agüero
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):
Changelog for package ros_ign_bridge
0.111.2 (2021-12-30)
- [noetic]
Wiki Tutorials
Source Tutorials
Package Dependencies
System Dependencies
Dependant Packages
Messages
Services
Plugins
Recent questions tagged ros_ign_bridge at Robotics Stack Exchange
ros_ign_bridge package from ros_ign reporos_ign ros_ign_bridge ros_ign_gazebo ros_ign_gazebo_demos ros_ign_image ros_ign_interfaces ros_ign_point_cloud |
|
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
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):
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 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]
Wiki Tutorials
Source Tutorials
Package Dependencies
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged ros_ign_bridge at Robotics Stack Exchange
ros_ign_bridge package from ros_ign reporos_ign ros_ign_bridge ros_ign_gazebo ros_ign_gazebo_demos ros_ign_image ros_ign_interfaces ros_ign_point_cloud |
|
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
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):
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 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