Class JointTrajectoryCommandBroadcaster
Inheritance Relationships
Base Type
public controller_interface::ControllerInterface
Class Documentation
-
class JointTrajectoryCommandBroadcaster : public controller_interface::ControllerInterface
Joint Trajectory Command Broadcaster for leader-follower control in a ros2_control system.
JointStateBroadcaster publishes state interfaces from ros2_control as ROS messages. There is a possibility to publish all available states (typical use), or only specific ones. The latter is, for example, used when hardware provides multiple measurement sources for some of its states, e.g., position. It is possible to define a mapping of measurements from different sources stored in custom interfaces to standard dynamic names in JointState message. If “joints” or “interfaces” parameter is empty, all available states are published.
Publishes to:
joint_states (sensor_msgs::msg::JointState): Joint states related to movement (position, velocity, effort).
dynamic_joint_states (control_msgs::msg::DynamicJointState): Joint states regardless of its interface type.
- Param use_local_topics:
Flag to publish topics in local namespace.
- Param joints:
Names of the joints to publish.
- Param interfaces:
Names of interfaces to publish.
- Param map_interface_to_joint_state.{HW_IF_POSITION|HW_IF_VELOCITY|HW_IF_EFFORT}:
mapping between custom interface names and standard names in sensor_msgs::msg::JointState message.
Public Functions
-
JOINT_TRAJECTORY_COMMAND_BROADCASTER_PUBLIC JointTrajectoryCommandBroadcaster()
- JOINT_TRAJECTORY_COMMAND_BROADCASTER_PUBLIC controller_interface::InterfaceConfiguration command_interface_configuration () const override
- JOINT_TRAJECTORY_COMMAND_BROADCASTER_PUBLIC controller_interface::InterfaceConfiguration state_interface_configuration () const override
- JOINT_TRAJECTORY_COMMAND_BROADCASTER_PUBLIC controller_interface::return_type update (const rclcpp::Time &time, const rclcpp::Duration &period) override
- JOINT_TRAJECTORY_COMMAND_BROADCASTER_PUBLIC controller_interface::CallbackReturn on_init () override
- JOINT_TRAJECTORY_COMMAND_BROADCASTER_PUBLIC controller_interface::CallbackReturn on_configure (const rclcpp_lifecycle::State &previous_state) override
- JOINT_TRAJECTORY_COMMAND_BROADCASTER_PUBLIC controller_interface::CallbackReturn on_activate (const rclcpp_lifecycle::State &previous_state) override
- JOINT_TRAJECTORY_COMMAND_BROADCASTER_PUBLIC controller_interface::CallbackReturn on_deactivate (const rclcpp_lifecycle::State &previous_state) override
Protected Functions
-
bool init_joint_data()
-
bool check_joints_synced() const
-
double calculate_mean_error() const
-
void update_trigger_state(const rclcpp::Time ¤t_time)
-
bool check_trigger_active() const
Protected Attributes
-
std::shared_ptr<ParamListener> param_listener_
-
Params params_
-
std::unordered_map<std::string, std::string> map_interface_to_joint_state_
-
std::vector<std::string> joint_names_
-
std::vector<double> joint_offsets_
-
std::unordered_map<std::string, std::shared_ptr<rclcpp::Publisher<trajectory_msgs::msg::JointTrajectory>>> joint_trajectory_publishers_
-
std::unordered_map<std::string, std::shared_ptr<realtime_tools::RealtimePublisher<trajectory_msgs::msg::JointTrajectory>>> realtime_joint_trajectory_publishers_
-
std::unordered_map<std::string, trajectory_msgs::msg::JointTrajectory> group_traj_msgs_
-
std::unordered_map<std::string, std::vector<std::string>> group_joint_names_
-
std::unordered_map<std::string, std::vector<double>> group_joint_offsets_
-
std::unordered_map<std::string, std::string> group_topic_names_
-
std::unordered_map<std::string, std::vector<std::string>> group_reverse_joints_
-
std::vector<std::string> trajectory_groups_
-
std::unordered_map<std::string, std::unordered_map<std::string, double>> name_if_value_mapping_
-
urdf::Model model_
-
bool is_model_loaded_ = false
-
std::shared_ptr<rclcpp::Subscription<sensor_msgs::msg::JointState>> joint_states_subscriber_
-
std::unordered_map<std::string, double> follower_joint_positions_
-
bool joints_synced_ = false
-
bool first_publish_ = true
-
rclcpp::Time trigger_start_time_ = {0, 0, RCL_ROS_TIME}
-
bool trigger_counting_ = false
-
bool mode_changed_in_this_trigger_ = false