ros2_control - jazzy
Loading...
Searching...
No Matches
Classes | Typedefs | Enumerations | Functions | Variables
hardware_interface Namespace Reference

Classes

struct  ActuatorInfo
 Contains semantic info about a given actuator loaded from URDF for a transmission. More...
 
class  ActuatorInterface
 Virtual Class to implement when integrating a 1 DoF actuator into ros2_control. More...
 
class  AsyncComponentThread
 
class  CommandInterface
 
struct  ComponentInfo
 
struct  ControllerInfo
 Controller Information. More...
 
class  Handle
 A handle used to get and set a value on a given interface. More...
 
class  HandleDataType
 
class  HardwareComponent
 
struct  HardwareComponentCycleStatus
 
struct  HardwareComponentInfo
 Hardware Component Information. More...
 
class  HardwareComponentInterface
 Virtual base class for all hardware components (Actuators, Sensors, and Systems). More...
 
struct  HardwareComponentInterfaceParams
 Parameters required for the initialization of a specific hardware component plugin. Typically used for on_init methods of hardware interfaces, and is parsed by the user. This struct is typically populated with data from HardwareComponentParams from each component. More...
 
struct  HardwareComponentParams
 Parameters required for the initialization of a specific hardware component plugin. Typically used for init, initialise and load methods of hardware components. This struct is typically not accessible to user. This struct is typically populated with data from ResourceManagerParams. More...
 
struct  HardwareComponentStatisticsData
 
struct  HardwareInfo
 This structure stores information about hardware defined in a robot's URDF. More...
 
struct  HardwareReadWriteStatus
 
struct  InterfaceDescription
 
struct  InterfaceInfo
 
struct  JointInfo
 Contains semantic info about a given joint loaded from URDF for a transmission. More...
 
class  LoanedCommandInterface
 
class  LoanedStateInterface
 
struct  MimicJoint
 This structure stores information about a joint that is mimicking another joint. More...
 
class  ResourceManager
 
struct  ResourceManagerParams
 Parameters required for the construction and initial setup of a ResourceManager. This struct is typically populated by the ControllerManager. More...
 
class  ResourceStorage
 
class  SensorInterface
 Virtual Class to implement when integrating a stand-alone sensor into ros2_control. More...
 
class  StateInterface
 
class  SystemInterface
 Virtual Class to implement when integrating a complex system into ros2_control. More...
 
struct  TransmissionInfo
 Contains semantic info about a given transmission loaded from URDF. More...
 

Typedefs

using Actuator = HardwareComponent
 
using HANDLE_DATATYPE = std::variant< std::monostate, double, bool >
 
using CallbackReturn = rclcpp_lifecycle::node_interfaces::LifecycleNodeInterface::CallbackReturn
 
using Sensor = HardwareComponent
 
using System = HardwareComponent
 

Enumerations

enum class  MimicAttribute { NOT_SET , TRUE , FALSE }
 This enum is used to store the mimic attribute of a joint.
 
enum class  return_type : std::uint8_t { OK = 0 , ERROR = 1 , DEACTIVATE = 2 }
 
enum class  TriggerType { READ , WRITE }
 

Functions

std::vector< HardwareInfoparse_control_resources_from_urdf (const std::string &urdf)
 Search XML snippet from URDF for information about a control component.
 
std::vector< InterfaceDescriptionparse_state_interface_descriptions (const std::vector< ComponentInfo > &component_info)
 
void parse_state_interface_descriptions (const std::vector< ComponentInfo > &component_info, std::unordered_map< std::string, InterfaceDescription > &state_interfaces_map)
 
std::vector< InterfaceDescriptionparse_command_interface_descriptions (const std::vector< ComponentInfo > &component_info)
 
void parse_command_interface_descriptions (const std::vector< ComponentInfo > &component_info, std::unordered_map< std::string, InterfaceDescription > &command_interfaces_map)
 
double stod (const std::string &s)
 Helper function to convert a std::string to double in a locale-independent way.
 
bool parse_bool (const std::string &bool_string)
 
template<typename T >
std::vector< T > parse_array (const std::string &array_string)
 
std::vector< std::string > parse_string_array (const std::string &string_array_string)
 
constexpr bool lifecycleStateThatRequiresNoAction (const lifecycle_msgs::msg::State::_id_type state)
 
std::string interfaces_to_string (const std::vector< std::string > &start_interfaces, const std::vector< std::string > &stop_interfaces)
 
void get_hardware_related_interfaces (const std::vector< std::string > &hw_command_itfs, const std::vector< std::string > &start_stop_interfaces_list, std::vector< std::string > &hw_interfaces)
 

Variables

constexpr char DEFAULT_REGISTRY_KEY [] = "ros2_control"
 
constexpr char DEFAULT_INTROSPECTION_TOPIC [] = "~/introspection_data"
 
constexpr char HW_IF_POSITION [] = "position"
 Constant defining position interface name.
 
constexpr char HW_IF_VELOCITY [] = "velocity"
 Constant defining velocity interface name.
 
constexpr char HW_IF_ACCELERATION [] = "acceleration"
 Constant defining acceleration interface name.
 
constexpr char HW_IF_EFFORT [] = "effort"
 Constant defining effort interface name.
 
constexpr char HW_IF_TORQUE [] = "torque"
 Constant defining torque interface name.
 
constexpr char HW_IF_FORCE [] = "force"
 Constant defining force interface name.
 
constexpr char HW_IF_CURRENT [] = "current"
 Constant defining current interface name.
 
constexpr char HW_IF_TEMPERATURE [] = "temperature"
 Constant defining temperature interface name.
 
constexpr char HW_IF_PROPORTIONAL_GAIN [] = "proportional"
 
constexpr char HW_IF_INTEGRAL_GAIN [] = "integral"
 Constant defining integral gain interface name.
 
constexpr char HW_IF_DERIVATIVE_GAIN [] = "derivative"
 Constant defining derivative gain interface name.
 
constexpr char HW_IF_INTEGRAL_CLAMP_MAX [] = "integral_clamp_max"
 Constant defining integral clamp interface name.
 
constexpr char HW_IF_INTEGRAL_CLAMP_MIN [] = "integral_clamp_min"
 Constant defining integral clamp interface name.
 
constexpr char HW_IF_FEEDFORWARD [] = "feedforward"
 Constant defining the feedforward interface name.
 
auto trigger_and_print_hardware_state_transition
 

Detailed Description

Author
Sai Kishor Kothakota
: Denis Stogl

Function Documentation

◆ parse_command_interface_descriptions() [1/2]

std::vector< InterfaceDescription > hardware_interface::parse_command_interface_descriptions ( const std::vector< ComponentInfo > &  component_info)
Parameters
[in]component_infoinformation about a component (gpio, joint, sensor)
Returns
vector filled with information about hardware's CommandInterfaces for the component which are exported

◆ parse_command_interface_descriptions() [2/2]

void hardware_interface::parse_command_interface_descriptions ( const std::vector< ComponentInfo > &  component_info,
std::unordered_map< std::string, InterfaceDescription > &  command_interfaces_map 
)
Parameters
[in]component_infoinformation about a component (gpio, joint, sensor)
[out]command_interfaces_mapunordered_map filled with information about hardware's CommandInterfaces for the component which are exported

◆ parse_control_resources_from_urdf()

std::vector< HardwareInfo > hardware_interface::parse_control_resources_from_urdf ( const std::string &  urdf)

Search XML snippet from URDF for information about a control component.

Parameters
[in]urdfstring with robot's URDF
Returns
vector filled with information about robot's control resources
Exceptions
std::runtime_errorif a robot attribute or tag is not found

◆ parse_state_interface_descriptions() [1/2]

std::vector< InterfaceDescription > hardware_interface::parse_state_interface_descriptions ( const std::vector< ComponentInfo > &  component_info)
Parameters
[in]component_infoinformation about a component (gpio, joint, sensor)
Returns
vector filled with information about hardware's StateInterfaces for the component which are exported

◆ parse_state_interface_descriptions() [2/2]

void hardware_interface::parse_state_interface_descriptions ( const std::vector< ComponentInfo > &  component_info,
std::unordered_map< std::string, InterfaceDescription > &  state_interfaces_map 
)
Parameters
[in]component_infoinformation about a component (gpio, joint, sensor)
[out]state_interfaces_mapunordered_map filled with information about hardware's StateInterfaces for the component which are exported

◆ stod()

double hardware_interface::stod ( const std::string &  s)

Helper function to convert a std::string to double in a locale-independent way.

Exceptions
std::invalid_argumentif not a valid number from https://github.com/ros-planning/srdfdom/blob/ad17b8d25812f752c397a6011cec64aeff090c46/src/model.cpp#L53

Variable Documentation

◆ HW_IF_PROPORTIONAL_GAIN

constexpr char hardware_interface::HW_IF_PROPORTIONAL_GAIN[] = "proportional"
constexpr

Gains interface constants Constant defining proportional gain interface name

◆ trigger_and_print_hardware_state_transition

auto hardware_interface::trigger_and_print_hardware_state_transition
Initial value:
=
[](
auto transition, const std::string transition_name, const std::string & hardware_name,
const lifecycle_msgs::msg::State::_id_type & target_state)
{
RCUTILS_LOG_INFO_NAMED(
"resource_manager", "'%s' hardware '%s' ", transition_name.c_str(), hardware_name.c_str());
const rclcpp_lifecycle::State new_state = transition();
bool result = new_state.id() == target_state;
if (result)
{
RCUTILS_LOG_INFO_NAMED(
"resource_manager", "Successful '%s' of hardware '%s'", transition_name.c_str(),
hardware_name.c_str());
}
else
{
RCUTILS_LOG_ERROR_NAMED(
"resource_manager", "Failed to '%s' hardware '%s'", transition_name.c_str(),
hardware_name.c_str());
}
return result;
}