68 :
public controller_interface::MultiInterfaceController<hardware_interface::JointStateInterface,
69 rm_control::RobotStateInterface>
73 bool init(hardware_interface::RobotHW* robot_hw, ros::NodeHandle& root_nh, ros::NodeHandle& controller_nh)
override;
74 void update(
const ros::Time& time,
const ros::Duration& )
override;
77 void addChildren(KDL::SegmentMap::const_iterator segment);
78 void tfSubCallback(
const tf2_msgs::TFMessageConstPtr& msg);
79 void staticSubCallback(
const tf2_msgs::TFMessageConstPtr& msg);
82 std::map<std::string, urdf::JointMimicSharedPtr>* mimic_{};
83 unsigned int num_hw_joints_{};
84 bool use_tf_static_{};
85 bool ignore_timestamp_{};
86 double publish_rate_{};
87 ros::Time last_update_;
88 ros::Time last_publish_time_;
90 std::map<std::string, hardware_interface::JointStateHandle> jnt_states_;
91 std::map<std::string, SegmentPair> segments_, segments_fixed_;
93 tf2_ros::Buffer* tf_buffer_{};
94 rm_common::TfRtBroadcaster tf_broadcaster_;
95 rm_common::StaticTfRtBroadcaster static_tf_broadcaster_;
97 ros::Subscriber tf_sub_;
98 ros::Subscriber tf_static_sub_;
99 realtime_tools::RealtimeBuffer<tf2_msgs::TFMessage> tf_msg_;
100 realtime_tools::RealtimeBuffer<tf2_msgs::TFMessage> tf_static_msg_;