ros2_control - rolling
|
Joint State Broadcaster for all or some state in a ros2_control system. More...
#include <joint_state_broadcaster.hpp>
Public Member Functions | |
JOINT_STATE_BROADCASTER_PUBLIC controller_interface::InterfaceConfiguration | command_interface_configuration () const override |
Get configuration for controller's required command interfaces. More... | |
JOINT_STATE_BROADCASTER_PUBLIC controller_interface::InterfaceConfiguration | state_interface_configuration () const override |
Get configuration for controller's required state interfaces. More... | |
JOINT_STATE_BROADCASTER_PUBLIC controller_interface::return_type | update (const rclcpp::Time &time, const rclcpp::Duration &period) override |
JOINT_STATE_BROADCASTER_PUBLIC controller_interface::CallbackReturn | on_init () override |
Extending interface with initialization method which is individual for each controller. | |
JOINT_STATE_BROADCASTER_PUBLIC controller_interface::CallbackReturn | on_configure (const rclcpp_lifecycle::State &previous_state) override |
JOINT_STATE_BROADCASTER_PUBLIC controller_interface::CallbackReturn | on_activate (const rclcpp_lifecycle::State &previous_state) override |
JOINT_STATE_BROADCASTER_PUBLIC controller_interface::CallbackReturn | on_deactivate (const rclcpp_lifecycle::State &previous_state) override |
Public Member Functions inherited from controller_interface::ControllerInterface | |
CONTROLLER_INTERFACE_PUBLIC bool | is_chainable () const final |
CONTROLLER_INTERFACE_PUBLIC std::vector< hardware_interface::StateInterface::ConstSharedPtr > | export_state_interfaces () final |
CONTROLLER_INTERFACE_PUBLIC std::vector< hardware_interface::CommandInterface::SharedPtr > | export_reference_interfaces () final |
CONTROLLER_INTERFACE_PUBLIC bool | set_chained_mode (bool chained_mode) final |
CONTROLLER_INTERFACE_PUBLIC bool | is_in_chained_mode () const final |
Public Member Functions inherited from controller_interface::ControllerInterfaceBase | |
virtual CONTROLLER_INTERFACE_PUBLIC void | assign_interfaces (std::vector< hardware_interface::LoanedCommandInterface > &&command_interfaces, std::vector< hardware_interface::LoanedStateInterface > &&state_interfaces) |
Method that assigns the Loaned interfaces to the controller. More... | |
virtual CONTROLLER_INTERFACE_PUBLIC void | release_interfaces () |
Method that releases the Loaned interfaces from the controller. More... | |
CONTROLLER_INTERFACE_PUBLIC return_type | init (const std::string &controller_name, const std::string &urdf, unsigned int cm_update_rate, const std::string &node_namespace, const rclcpp::NodeOptions &node_options) |
CONTROLLER_INTERFACE_PUBLIC const rclcpp_lifecycle::State & | configure () |
Custom configure method to read additional parameters for controller-nodes. | |
CONTROLLER_INTERFACE_PUBLIC ControllerUpdateStatus | trigger_update (const rclcpp::Time &time, const rclcpp::Duration &period) |
CONTROLLER_INTERFACE_PUBLIC std::shared_ptr< rclcpp_lifecycle::LifecycleNode > | get_node () |
CONTROLLER_INTERFACE_PUBLIC std::shared_ptr< const rclcpp_lifecycle::LifecycleNode > | get_node () const |
CONTROLLER_INTERFACE_PUBLIC const rclcpp_lifecycle::State & | get_lifecycle_state () const |
CONTROLLER_INTERFACE_PUBLIC unsigned int | get_update_rate () const |
CONTROLLER_INTERFACE_PUBLIC bool | is_async () const |
CONTROLLER_INTERFACE_PUBLIC const std::string & | get_robot_description () const |
virtual CONTROLLER_INTERFACE_PUBLIC rclcpp::NodeOptions | define_custom_node_options () const |
template<typename ParameterT > | |
auto | auto_declare (const std::string &name, const ParameterT &default_value) |
Declare and initialize a parameter with a type. More... | |
CONTROLLER_INTERFACE_PUBLIC void | wait_for_trigger_update_to_finish () |
Protected Member Functions | |
bool | init_joint_data () |
void | init_joint_state_msg () |
void | init_dynamic_joint_state_msg () |
bool | use_all_available_interfaces () 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::shared_ptr< rclcpp::Publisher< sensor_msgs::msg::JointState > > | joint_state_publisher_ |
std::shared_ptr< realtime_tools::RealtimePublisher< sensor_msgs::msg::JointState > > | realtime_joint_state_publisher_ |
std::unordered_map< std::string, std::unordered_map< std::string, double > > | name_if_value_mapping_ |
std::shared_ptr< rclcpp::Publisher< control_msgs::msg::DynamicJointState > > | dynamic_joint_state_publisher_ |
std::shared_ptr< realtime_tools::RealtimePublisher< control_msgs::msg::DynamicJointState > > | realtime_dynamic_joint_state_publisher_ |
urdf::Model | model_ |
bool | is_model_loaded_ = false |
Protected Attributes inherited from controller_interface::ControllerInterfaceBase | |
std::vector< hardware_interface::LoanedCommandInterface > | command_interfaces_ |
std::vector< hardware_interface::LoanedStateInterface > | state_interfaces_ |
Joint State Broadcaster for all or some state 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.
use_local_topics | Flag to publish topics in local namespace. |
joints | Names of the joints to publish. |
interfaces | Names of interfaces to publish. |
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. |
Publishes to:
|
overridevirtual |
Get configuration for controller's required command interfaces.
Method used by the controller_manager to get the set of command interfaces used by the controller. Each controller can use individual method to determine interface names that in simples case have the following format: <joint>/<interface>
. The method is called only in inactive
or active
state, i.e., on_configure
has to be called first. The configuration is used to check if controller can be activated and to claim interfaces from hardware. The claimed interfaces are populated in the command_interfaces_ member.
Implements controller_interface::ControllerInterfaceBase.
|
protected |
|
overridevirtual |
Get configuration for controller's required state interfaces.
Method used by the controller_manager to get the set of state interface used by the controller. Each controller can use individual method to determine interface names that in simples case have the following format: <joint>/<interface>
. The method is called only in inactive
or active
state, i.e., on_configure
has to be called first. The configuration is used to check if controller can be activated and to claim interfaces from hardware. The claimed interfaces are populated in the state_interfaces_ member.
Implements controller_interface::ControllerInterfaceBase.
|
overridevirtual |
Control step update. Command interfaces are updated based on on reference inputs and current states. The method called in the (real-time) control loop.
[in] | time | The time at the start of this control loop iteration |
[in] | period | The measured time since the last control loop iteration |
Implements controller_interface::ControllerInterfaceBase.