ros2_control - galactic
hardware_info.hpp
1 // Copyright 2020 ros2_control Development Team
2 //
3 // Licensed under the Apache License, Version 2.0 (the "License");
4 // you may not use this file except in compliance with the License.
5 // You may obtain a copy of the License at
6 //
7 // http://www.apache.org/licenses/LICENSE-2.0
8 //
9 // Unless required by applicable law or agreed to in writing, software
10 // distributed under the License is distributed on an "AS IS" BASIS,
11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 // See the License for the specific language governing permissions and
13 // limitations under the License.
14 
15 #ifndef HARDWARE_INTERFACE__HARDWARE_INFO_HPP_
16 #define HARDWARE_INTERFACE__HARDWARE_INFO_HPP_
17 
18 #include <string>
19 #include <unordered_map>
20 #include <vector>
21 
22 namespace hardware_interface
23 {
29 {
34  std::string name;
36  std::string min;
38  std::string max;
40  std::string data_type;
42  int size;
43 };
44 
50 {
52  std::string name;
54  std::string type;
59  std::vector<InterfaceInfo> command_interfaces;
64  std::vector<InterfaceInfo> state_interfaces;
66  std::unordered_map<std::string, std::string> parameters;
67 };
68 
70 struct JointInfo
71 {
72  std::string name;
73  std::vector<std::string> interfaces;
74  std::string role;
75  double mechanical_reduction = 1.0;
76  double offset = 0.0;
77 };
78 
81 {
82  std::string name;
83  std::vector<std::string> interfaces;
84  std::string role;
85  double offset = 0.0;
86 };
87 
90 {
91  std::string name;
92  std::string type;
93  std::vector<JointInfo> joints;
94  std::vector<ActuatorInfo> actuators;
96  std::unordered_map<std::string, std::string> parameters;
97 };
98 
101 {
103  std::string name;
105  std::string type;
107  std::string hardware_class_type;
109  std::unordered_map<std::string, std::string> hardware_parameters;
114  std::vector<ComponentInfo> joints;
119  std::vector<ComponentInfo> sensors;
124  std::vector<ComponentInfo> gpios;
129  std::vector<TransmissionInfo> transmissions;
130 };
131 
132 } // namespace hardware_interface
133 #endif // HARDWARE_INTERFACE__HARDWARE_INFO_HPP_
Definition: actuator.hpp:29
Contains semantic info about a given actuator loaded from XML (URDF)
Definition: hardware_info.hpp:81
Definition: hardware_info.hpp:50
std::vector< InterfaceInfo > command_interfaces
Definition: hardware_info.hpp:59
std::unordered_map< std::string, std::string > parameters
(Optional) Key-value pairs of component parameters, e.g. min/max values or serial number.
Definition: hardware_info.hpp:66
std::vector< InterfaceInfo > state_interfaces
Definition: hardware_info.hpp:64
std::string name
Name of the component.
Definition: hardware_info.hpp:52
std::string type
Type of the component: sensor, joint, or GPIO.
Definition: hardware_info.hpp:54
This structure stores information about hardware defined in a robot's URDF.
Definition: hardware_info.hpp:101
std::string type
Type of the hardware: actuator, sensor or system.
Definition: hardware_info.hpp:105
std::unordered_map< std::string, std::string > hardware_parameters
(Optional) Key-value pairs for hardware parameters.
Definition: hardware_info.hpp:109
std::string hardware_class_type
Class of the hardware that will be dynamically loaded.
Definition: hardware_info.hpp:107
std::vector< ComponentInfo > gpios
Definition: hardware_info.hpp:124
std::vector< ComponentInfo > joints
Definition: hardware_info.hpp:114
std::string name
Name of the hardware.
Definition: hardware_info.hpp:103
std::vector< ComponentInfo > sensors
Definition: hardware_info.hpp:119
std::vector< TransmissionInfo > transmissions
Definition: hardware_info.hpp:129
Definition: hardware_info.hpp:29
std::string max
(Optional) Maximal allowed values of the interface.
Definition: hardware_info.hpp:38
std::string name
Definition: hardware_info.hpp:34
int size
(Optional) If the handle is an array, the size of the array. Used by GPIOs.
Definition: hardware_info.hpp:42
std::string min
(Optional) Minimal allowed values of the interface.
Definition: hardware_info.hpp:36
std::string data_type
(Optional) The datatype of the interface, e.g. "bool", "int". Used by GPIOs.
Definition: hardware_info.hpp:40
Contains semantic info about a given joint loaded from XML (URDF)
Definition: hardware_info.hpp:71
Contains semantic info about a given transmission loaded from XML (URDF)
Definition: hardware_info.hpp:90
std::unordered_map< std::string, std::string > parameters
(Optional) Key-value pairs of custom parameters
Definition: hardware_info.hpp:96