telemetry_bridge__py
telemetry_bridge__py
Section titled “telemetry_bridge__py”ROS 2 node that receives KUKA robot telemetry over TCP and publishes to ROS topics.
Overview
Section titled “Overview”Listens for incoming TCP connections on port 60002 (configurable), receives 128-byte telemetry packets from KUKA robot, and publishes decoded data to standard ROS message types.
Published Topics
Section titled “Published Topics”/kuka/pose(geometry_msgs/PoseStamped) - Cartesian position and orientation (quaternion)/kuka/velocity(geometry_msgs/TwistStamped) - Calculated Cartesian velocity/kuka/velocity_cartesian(std_msgs/Float32) - Velocity magnitude in mm/s/kuka/joint_states(sensor_msgs/JointState) - Joint angles for axes A1-A6/kuka/sequence_number(std_msgs/Int32) - Telemetry packet sequence number/kuka/queue_size(std_msgs/Int32) - Command queue size on robot
ros2 run telemetry_bridge__py ROS_telemetry_serverParameters
Section titled “Parameters”port(default: 60002) - TCP port to listen onframe_id(default: “kuka_base”) - Frame ID for published messages
Example with custom parameters
Section titled “Example with custom parameters”ros2 run telemetry_bridge__py ROS_telemetry_server --ros-args -p port:=60003 -p frame_id:=robot_baseTelemetry Packet Format (output from KUKA - consumed here)
Section titled “Telemetry Packet Format (output from KUKA - consumed here)”128-byte binary packet:
- Bytes 0-23: Cartesian position (X, Y, Z in mm) and orientation (A, B, C in degrees)
- Bytes 24-47: Joint angles A1-A6 (degrees)
- Bytes 48-63: Sequence number, in-flight count, queue size, flags
- Bytes 64-75: Actual velocity, active tool/base indices
Requirements
Section titled “Requirements”- ROS 2 Jazzy
- Python 3
- Standard ROS message packages:
geometry_msgs,sensor_msgs,std_msgs
License
Section titled “License”Apache-2.0