[🤔 ROS2?] /torso_controller/safe_command#

Caution

This documentation page has been auto-generated.

It may be missing some details.

/torso_controller/safe_command Quick Facts

Category

👋 Gestures and motions

Message type

trajectory_msgs/msg/JointTrajectory

Direction

⬅️ you normally publish to this topic.

This topic takes a sequence of positions that the torso joint needs to reach at given time interval; the motion is only executed if it does not lead to a self-collision.

Quick snippets#

Publish data on the topic#
$ ros2 topic pub /torso_controller/safe_command trajectory_msgs/msg/JointTrajectory # press Tab twice to complete

How to use in your code#

Publish to the topic#
 1#!/usr/bin/env python
 2
 3import rclpy
 4from rclpy.node import Node
 5
 6from trajectory_msgs.msg import JointTrajectory
 7
 8
 9class SafeCommandPublisher(Node):
10
11    def __init__(self):
12        super().__init__('torso_controller_safe_command_publisher')
13        self.publisher = self.create_publisher(
14            JointTrajectory,
15            '/torso_controller/safe_command',
16            10)
17        timer_period = 0.5  # seconds
18        self.timer = self.create_timer(timer_period, self.timer_callback)
19
20    def timer_callback(self):
21
22        msg = JointTrajectory()
23
24        # check https://docs.ros2.org/latest/api/trajectory_msgs/msg/JointTrajectory.html
25        # for the msg structure
26        # msg.data = ...
27
28        self.publisher.publish(msg)
29        self.get_logger().info('Publishing: "%s"' % msg.data)
30
31
32if __name__ == '__main__':
33    rclpy.init(args=args)
34
35    publisher = SafeCommandPublisher()
36
37    rclpy.spin(publisher)
38
39    rclpy.shutdown()