This ROS 2 package comprises two nodes, TransformPublisher
and TransformSubscriber
, designed to demonstrate the handling and communication of transformation data. The TransformPublisher
node periodically publishes transformation data, including translation and rotation, simulating a scenario like a camera's movement in relation to a drone. The TransformSubscriber
node subscribes to this transformation data and logs the received information, displaying the frame IDs, translation, and rotation. This package exemplifies the publisher-subscriber model in ROS 2 using the geometry_msgs/msg/TransformStamped
message type.
your_package/ |-- src/ | |-- publisher_member_function.cpp | |-- subscriber_member_function.cpp |-- CMakeLists.txt |-- package.xml
- src/: Contains the source files.
- publisher_member_function.cpp: Implements the transform publisher node.
- subscriber_member_function.cpp: Implements the transform subscriber node.
- CMakeLists.txt: CMake file for configuring the build of the ROS 2 package.
- package.xml: Provides metadata and dependencies of the package.
-
Place the Package: Copy your package directory into the
src
folder of your ROS 2 workspace. -
Compile the Package:
- Navigate to the root of your ROS 2 workspace.
- Execute
colcon build --packages-select your_package_name
to build your package. Replaceyour_package_name
with the actual name of your package. - Source the setup script after building:
source install/setup.bash
.
-
Run the Nodes:
- Start the publisher node with
ros2 run your_package_name transform_publisher
. - In a separate terminal (after sourcing the setup script), start the subscriber node with
ros2 run your_package_name transform_subscriber
.
- Start the publisher node with
-
Verify Operation: Check the output in the subscriber node's terminal to confirm it is correctly receiving and logging the transform data published by the publisher node.
This package is a practical example for understanding ROS 2's approach to handling and communicating transformation data, suitable for applications in robotics and simulations. Note: Mock data is used. Please take care of any dependencies that may occur in your system.