diff --git a/design_drafts/components_architecture_and_urdf_examples.md b/design_drafts/components_architecture_and_urdf_examples.md index 0e8cdd4..734ff64 100644 --- a/design_drafts/components_architecture_and_urdf_examples.md +++ b/design_drafts/components_architecture_and_urdf_examples.md @@ -24,28 +24,28 @@ ros2_control implementation examples are presented for the following robot/robot Note: * Everything within the `` tag is implemented as a plugin. * The examples below have some `` tags defined. The names in those tags are primarily for demonstration, not part of a pre-defined XML schema. Each component may define their names inside the `` tag. - + #### 1. Industrial Robots with only one interface * the communication is done using proprietary API to communicate with robot control box * Data for all joints is exchanged in batch (at once) * Examples: KUKA RSI ```xml - + - ros2_control_demo_hardware/2DOF_System_Hardware_Position_Only + ros2_control_demo_hardware/RRBotSystemPositionOnlyHardware 2 2 ros2_control_components/PositionJoint - -1 - 1 + -1 + 1 ros2_control_components/PositionJoint - -1 - 1 + -1 + 1 ``` @@ -53,8 +53,8 @@ Note: Note: * `ros2_control_components/PositionJoint`type has implicitly: ```xml - position - position + + ``` #### 2. Industrial Robots with multiple interfaces (can not be written at the same time) @@ -63,39 +63,39 @@ Note: * Examples: KUKA FRI, ABB Yummy, Schunk LWA4p, etc. ```xml - + - ros2_control_demo_hardware/2DOF_System_Hardware_MultiInterface + ros2_control_demo_hardware/RRBotSystemMultiInterfaceHardware 2 2 ros2_control_components/MultiInterfaceJoint - position - velocity - effort - position - velocity - effort - -1 - 1 - -1 - 1 - -0.5 - 0.5 + + -1 + 1 + + + -1 + 1 + + + -0.5 + 0.5" + + + + ros2_control_components/MultiInterfaceJoint - position - position - velocity - effort - -1 - 1 - -1 - 1 - -0.5 - 0.5 + + -1 + 1 + + + + ``` @@ -111,35 +111,39 @@ Note: * Examples: (humanoid robots?) ```xml - + - ros2_control_demo_hardware/2DOF_System_Hardware_MultiInterface_MultiWrite + ros2_control_demo_hardware/RRBotSystemMultiInterfaceMultiWriteHardware 2 2 - ros2_control_components/MultiInterfaceJoint_MultiWrite - position - velocity - effort - position - velocity - effort - -1 - 1 - -1 - 1 - -0.5 - 0.5 + ros2_control_components/MultiInterfaceMultiWriteJoint + + -1 + 1 + + + -1 + 1 + + + -0.5 + 0.5" + + + + - ros2_control_components/MultiInterfaceJoint_MultiWrite - position - position - velocity - effort - -1 - 1 + ros2_control_components/MultiInterfaceMultiWriteJoint + + -1 + 1 + + + + ``` @@ -152,21 +156,21 @@ Note: * Examples: KUKA RSI with sensor connected to KRC (KUKA control box) ```xml - + - ros2_control_demo_hardware/2DOF_System_Hardware_Sensor + ros2_control_demo_hardware/RRBotSystemWithSensorHardware 2 2 ros2_control_components/PositionJoint - -1 - 1 + -1 + 1 ros2_control_components/PositionJoint - -1 - 1 + -1 + 1 ros2_control_components/ForceTorqueSensor @@ -179,9 +183,10 @@ Note: Note: * `ros2_control_components/PositionJoint`type has implicitly: ```xml - position - position + + ``` + with the `min` and `max` parameters belonging to the `commandInterfaceType` element. #### 4. Industrial Robots with externally connected sensor @@ -190,27 +195,27 @@ Note: * Sensor data are exchanged independently * Examples: KUKA RSI and FTS connected to ROS-PC -``` - +```xml + - ros2_control_demo_hardware/2DOF_System_Hardware_Position_Only + ros2_control_demo_hardware/RRBotSystemPositionOnlyHardware 2 2 ros2_control_components/PositionJoint - -1 - 1 + -1 + 1 ros2_control_components/PositionJoint - -1 - 1 + -1 + 1 - + - ros2_control_demo_hardware/2D_Sensor_Force_Torque + ros2_control_demo_hardware/ForceTorqueSensor2DHardware 0.43 @@ -228,28 +233,28 @@ Note: * Examples: Mara, Arduino-based-robots ```xml - + - ros2_control_demo_hardware/Position_Actuator_Hadware + ros2_control_demo_hardware/PositionActuatorHadware 1.23 3 ros2_control_components/PositionJoint - -1 - 1 + -1 + 1 - + - ros2_control_demo_hardware/Position_Actuator_Hadware + ros2_control_demo_hardware/PositionActuatorHadware 1.23 3 ros2_control_components/PositionJoint - -1 - 1 + -1 + 1 ``` @@ -260,58 +265,56 @@ Note: * Examples: Arduino-based-robots, custom robots ```xml - + - ros2_control_demo_hardware/Velocity_Actuator_Hadware + ros2_control_demo_hardware/VelocityActuatorHadware 1.23 3 ros2_control_components/VelocityJoint - velocity - -1 - 1 + + -1 + 1 + transmission_interface/SimpleTansmission ${1024/PI} - + - ros2_control_demo_hardware/Velocity_Actuator_Hadware + ros2_control_demo_hardware/VelocityActuatorHadware 1.23 3 ros2_control_components/VelocityJoint - velocity - -1 - 1 + + -1 + 1 + - + - ros2_control_demo_hardware/Position_Sensor_Hardware + ros2_control_demo_hardware/PositionSensorHardware 2 ros2_control_components/PositionJoint - position - ${-PI} - ${PI} + - + - ros2_control_demo_hardware/Position_Sensor_Hardware + ros2_control_demo_hardware/PositionSensorHardware 2 ros2_control_components/PositionJoint - position - ${-PI} - ${PI} + ``` @@ -325,24 +328,24 @@ Note: * Examples: Wrist of a humanoid robot ```xml - + - ros2_control_demo_hardware/Actuator_Hadware_MultiDOF + ros2_control_demo_hardware/ActuatorHadwareMultiDOF 1.23 3 ros2_control_components/PositionJoint - -1 - 1 + -1 + 1 ros2_control_components/PositionJoint - -1 - 1 + -1 + 1 - transmission_interface/SomeComplex_2x2_Transmission + transmission_interface/SomeComplex2by2Transmission {joint1, joint2} {output2, output2} 1.5 @@ -358,25 +361,19 @@ Note: * Examples: Camera, ForceTorqueSensor, Distance Sensors, IMU, etc. ```xml - + - ros2_control_demo_hardware/CameraWithIMU_Sensor + ros2_control_demo_hardware/CameraWithIMUSensor 2 ros2_control_components/IMUSensor - velocity - acceleration - -54 - 23 - -10 - 10 + + ros2_control_components/2DImageSensor - image - 0 - 255 + ``` @@ -387,16 +384,16 @@ Note: * Examples: Small Conveyor, Motor, etc. ```xml - + - ros2_control_demo_hardware/Velocity_Actuator_Hadware + ros2_control_demo_hardware/VelocityActuatorHadware 1.13 3 ros2_control_components/VelocityJoint - -1 - 1 + -1 + 1 transmission_interface/RotationToLinerTansmission