Closed FrGe2016 closed 7 months ago
First of all, please take your time to properly format your questions (I did that now for you).
The error means that your hardware component did not load the requested interfaces. Remove the controller spawners from your launch file, launch your system and have a look with ros2 control list_hardware_components
and ros2 control list_hardware_interfaces
From your code snippets it seems that you override your macro g_ros2_control
for the gripper if you load that in the same URDF. Try to run xacro
manually and introspect the resulting URDF in an editor, is there <plugin>f_grip_hardware_interface/FGripHardwareInterface</plugin>
and <plugin>f_hardware_interface/FBotHardwareInterface</plugin>
for both components?
Thank for the urdf clue. Since both macro had the same name, the macro was called only for one of the controller only.
Closed issue
Not realy a bug probably just missunderstanding.
I have a homemade robotic arm. IT is controlled by 2 ESP32 one for the arm the other for the gripper. Based on dr denis.stogl roscon22 demonstration, i have made 2 hardware interface named FBotHardwareInterface and FGripHardwareInterface to read states and send commands with the good ESP32.
When i launch my file , every thing looks good: Loaded joint_state_broadcaster Configured and activated joint_state_broadcaster Loaded arm_controller Loaded gripper_controller
Then :
When i look closely B4 in the log i see that only the fbot_hardware_interface was activated. If i swithch controller lines, i have the opposite result .
Here are the associated files:
g_controllers.yaml
g.ros2_control_arm.xacro
g.ros2_control_gripper.xacro