0
$\begingroup$
[gzserver-1] [WARN] [1740727008.299231808] [gazebo_ros2_control]: Skipping joint in the URDF named 'robotiq_85_left_knuckle_joint' which is not in the gazebo model. [gzserver-1] [WARN] [1740727008.299258395] [gazebo_ros2_control]: Skipping joint in the URDF named 'robotiq_85_right_knuckle_joint' which is not in the gazebo model. [gzserver-1] [WARN] [1740727008.299271323] [gazebo_ros2_control]: Skipping joint in the URDF named 'robotiq_85_left_inner_knuckle_joint' which is not in the gazebo model. [gzserver-1] [WARN] [1740727008.299282930] [gazebo_ros2_control]: Skipping joint in the URDF named 'robotiq_85_right_inner_knuckle_joint' which is not in the gazebo model. [gzserver-1] [WARN] [1740727008.299293680] [gazebo_ros2_control]: Skipping joint in the URDF named 'robotiq_85_left_finger_joint' which is not in the gazebo model. [gzserver-1] [WARN] [1740727008.299303988] [gazebo_ros2_control]: Skipping joint in the URDF named 'robotiq_85_right_finger_joint' which is not in the gazebo model. [gzserver-1] [INFO] [1740727008.299484269] [resource_manager]: Initialize hardware 'GazeboSystem' [gzserver-1] [INFO] [1740727008.299885554] [resource_manager]: Successful initialization of hardware 'GazeboSystem' [gzserver-1] [INFO] [1740727008.300206193] [resource_manager]: 'configure' hardware 'GazeboSystem' [gzserver-1] [INFO] [1740727008.560519130] [joint_state_broadcaster]: 'joints' or 'interfaces' parameter is empty. All available state interfaces will be published [gzserver-1] [ERROR] [1740727008.577030475] [resource_manager]: Not acceptable command interfaces combination: [gzserver-1] Start interfaces: [gzserver-1] [ [gzserver-1] robotiq_85_left_knuckle_joint/position [gzserver-1] ] [gzserver-1] Stop interfaces: [gzserver-1] [ [gzserver-1] ] [gzserver-1] Not existing: [gzserver-1] [ [gzserver-1] robotiq_85_left_knuckle_joint/position [gzserver-1] ] [gzserver-1] [gzserver-1] [ERROR] [1740727008.577153903] [controller_manager]: Could not switch controllers since prepare command mode switch was rejected. [spawner-7] [ERROR] [1740727008.580542151] [spawner_gripper_controller]: Failed to activate controller : gripper_controller [spawner-5] [INFO] [1740727008.616835091] [spawner_joint_state_broadcaster]: Configured and activated joint_state_broadcaster [INFO] [spawner-6]: process has finished cleanly [pid 13170] 

THIS IS MY YAML FILE:

controller_manager: ros__parameters: update_rate: 100 # Hz use_sim_time: true joint_state_broadcaster: type: joint_state_broadcaster/JointStateBroadcaster joint_trajectory_controller: type: joint_trajectory_controller/JointTrajectoryController gripper_controller: type: joint_trajectory_controller/JointTrajectoryController joint_trajectory_controller: ros__parameters: joints: - joint_1 - joint_2 - joint_3 - joint_4 - joint_5 - joint_6 interface_name: position command_interfaces: - position state_interfaces: - position - velocity state_publish_rate: 50.0 action_monitor_rate: 20.0 allow_partial_joints_goal: false constraints: stopped_velocity_tolerance: 0.01 goal_time: 0.0 joint_1: trajectory: 0.05 goal: 0.01 joint_2: trajectory: 0.05 goal: 0.01 joint_3: trajectory: 0.05 goal: 0.01 joint_4: trajectory: 0.05 goal: 0.01 joint_5: trajectory: 0.05 goal: 0.01 joint_6: trajectory: 0.05 goal: 0.01 gripper_controller: ros__parameters: joints: - robotiq_85_left_knuckle_joint interface_name: position command_interfaces: - position state_interfaces: - position - velocity state_publish_rate: 50.0 action_monitor_rate: 20.0 

THIS IS MY URDF OF GRIPPER.

<?xml version="1.0"?> <robot name="robotiq_85_gripper" xmlns:xacro="http://ros.org/wiki/xacro"> <xacro:include filename="$(find tm900_description)/xacro/robotiq_85_gripper.transmission.xacro" /> <!-- <xacro:property name="pi" value="3.14159"/> --> <xacro:macro name="robotiq_85_gripper" params="prefix parent *origin"> <joint name="${prefix}robotiq_85_base_joint" type="fixed"> <parent link="${parent}"/> <child link="${prefix}robotiq_85_base_link"/> <xacro:insert_block name="origin"/> </joint> <link name="${prefix}robotiq_85_base_link"> <visual> <geometry> <mesh filename="file://$(find tm900_description)/meshes/tm5-900/visual/robotiq_85_base_link.dae"/> </geometry> </visual> <collision> <geometry> <mesh filename="file://$(find tm900_description)/meshes/tm5-900/collision/robotiq_85_base_link.stl"/> </geometry> </collision> <inertial> <mass value="0.636951" /> <origin xyz="0.0 0.0 0.0" /> <inertia ixx = "0.000380" ixy = "0.000000" ixz = "0.000000" iyx = "0.000000" iyy = "0.001110" iyz = "0.000000" izx = "0.000000" izy = "0.000000" izz = "0.001171" /> </inertial> </link> <joint name="${prefix}robotiq_85_left_knuckle_joint" type="revolute"> <parent link="${prefix}robotiq_85_base_link"/> <child link="${prefix}robotiq_85_left_knuckle_link"/> <axis xyz="0 0 1"/> <origin rpy="${pi} 0.0 0.0" xyz="0.05490451627 0.03060114443 0.0"/> <limit lower="0.0" upper="0.804" velocity="2.0" effort="1000"/> </joint> <joint name="${prefix}robotiq_85_right_knuckle_joint" type="continuous"> <parent link="${prefix}robotiq_85_base_link"/> <child link="${prefix}robotiq_85_right_knuckle_link"/> <axis xyz="0 0 1"/> <origin rpy="0.0 0.0 0.0" xyz="0.05490451627 -0.03060114443 0.0"/> <limit lower="-3.14" upper="3.14" velocity="100.0" effort="1000"/> <mimic joint="${prefix}robotiq_85_left_knuckle_joint"/> </joint> <link name="${prefix}robotiq_85_left_knuckle_link"> <visual> <geometry> <mesh filename="file://$(find tm900_description)/meshes/tm5-900/visual/robotiq_85_knuckle_link.dae"/> </geometry> </visual> <collision> <geometry> <mesh filename="file://$(find tm900_description)/meshes/tm5-900/collision/robotiq_85_knuckle_link.stl"/> </geometry> </collision> <inertial> <mass value="0.018491" /> <origin xyz="0.0 0.0 0.0" /> <inertia ixx = "0.000009" ixy = "-0.000001" ixz = "0.000000" iyx = "-0.000001" iyy = "0.000001" iyz = "0.000000" izx = "0.000000" izy = "0.000000" izz = "0.000010" /> </inertial> </link> <link name="${prefix}robotiq_85_right_knuckle_link"> <visual> <geometry> <mesh filename="file://$(find tm900_description)/meshes/tm5-900/visual/robotiq_85_knuckle_link.dae"/> </geometry> </visual> <collision> <geometry> <mesh filename="file://$(find tm900_description)/meshes/tm5-900/collision/robotiq_85_knuckle_link.stl"/> </geometry> </collision> <inertial> <mass value="0.018491" /> <origin xyz="0.0 0.0 0.0" /> <inertia ixx = "0.000009" ixy = "-0.000001" ixz = "0.000000" iyx = "-0.000001" iyy = "0.000001" iyz = "0.000000" izx = "0.000000" izy = "0.000000" izz = "0.000010" /> </inertial> </link> <joint name="${prefix}robotiq_85_left_finger_joint" type="continuous"> <parent link="${prefix}robotiq_85_left_knuckle_link"/> <child link="${prefix}robotiq_85_left_finger_link"/> <origin xyz="-0.00408552455 -0.03148604435 0.0" rpy="0 0 0" /> </joint> <joint name="${prefix}robotiq_85_right_finger_joint" type="continuous"> <parent link="${prefix}robotiq_85_right_knuckle_link"/> <child link="${prefix}robotiq_85_right_finger_link"/> <origin xyz="-0.00408552455 -0.03148604435 0.0" rpy="0 0 0" /> </joint> <link name="${prefix}robotiq_85_left_finger_link"> <visual> <geometry> <mesh filename="file://$(find tm900_description)/meshes/tm5-900/visual/robotiq_85_finger_link.dae"/> </geometry> </visual> <collision> <geometry> <mesh filename="file://$(find tm900_description)/meshes/tm5-900/collision/robotiq_85_finger_link.stl"/> </geometry> </collision> <inertial> <mass value="0.027309" /> <origin xyz="0.0 0.0 0.0" /> <inertia ixx = "0.000003" ixy = "-0.000002" ixz = "0.000000" iyx = "-0.000002" iyy = "0.000021" iyz = "0.000000" izx = "0.000000" izy = "0.000000" izz = "0.000020" /> </inertial> </link> <link name="${prefix}robotiq_85_right_finger_link"> <visual> <geometry> <mesh filename="file://$(find tm900_description)/meshes/tm5-900/visual/robotiq_85_finger_link.dae"/> </geometry> </visual> <collision> <geometry> <mesh filename="file://$(find tm900_description)/meshes/tm5-900/collision/robotiq_85_finger_link.stl"/> </geometry> </collision> <inertial> <mass value="0.027309" /> <origin xyz="0.0 0.0 0.0" /> <inertia ixx = "0.000003" ixy = "-0.000002" ixz = "0.000000" iyx = "-0.000002" iyy = "0.000021" iyz = "0.000000" izx = "0.000000" izy = "0.000000" izz = "0.000020" /> </inertial> </link> <joint name="${prefix}robotiq_85_left_inner_knuckle_joint" type="continuous"> <parent link="${prefix}robotiq_85_base_link"/> <child link="${prefix}robotiq_85_left_inner_knuckle_link"/> <axis xyz="0 0 1"/> <origin xyz="0.06142 0.0127 0" rpy="${pi} 0.0 0.0" /> <limit lower="-3.14" upper="3.14" velocity="100.0" effort="0.1"/> <mimic joint="${prefix}robotiq_85_left_knuckle_joint" offset="0"/> </joint> <joint name="${prefix}robotiq_85_right_inner_knuckle_joint" type="continuous"> <parent link="${prefix}robotiq_85_base_link"/> <child link="${prefix}robotiq_85_right_inner_knuckle_link"/> <axis xyz="0 0 1"/> <origin xyz="0.06142 -0.0127 0" rpy="0 0 0"/> <limit lower="-3.14" upper="3.14" velocity="100.0" effort="0.1"/> <mimic joint="${prefix}robotiq_85_left_knuckle_joint" offset="0"/> </joint> <link name="${prefix}robotiq_85_left_inner_knuckle_link"> <visual> <geometry> <mesh filename="file://$(find tm900_description)/meshes/tm5-900/visual/robotiq_85_inner_knuckle_link.dae"/> </geometry> </visual> <collision> <geometry> <mesh filename="file://$(find tm900_description)/meshes/tm5-900/collision/robotiq_85_inner_knuckle_link.stl"/> </geometry> </collision> <inertial> <mass value="0.029951" /> <origin xyz="0.0 0.0 0.0" /> <inertia ixx = "0.000039" ixy = "0.000000" ixz = "0.000000" iyx = "0.000000" iyy = "0.000005" iyz = "0.000000" izx = "0.000000" izy = "0.000000" izz = "0.000035" /> </inertial> </link> <link name="${prefix}robotiq_85_right_inner_knuckle_link"> <visual> <geometry> <mesh filename="file://$(find tm900_description)/meshes/tm5-900/visual/robotiq_85_inner_knuckle_link.dae"/> </geometry> </visual> <collision> <geometry> <mesh filename="file://$(find tm900_description)/meshes/tm5-900/collision/robotiq_85_inner_knuckle_link.stl"/> </geometry> </collision> <inertial> <mass value="0.029951" /> <origin xyz="0.0 0.0 0.0" /> <inertia ixx = "0.000039" ixy = "0.000000" ixz = "0.000000" iyx = "0.000000" iyy = "0.000005" iyz = "0.000000" izx = "0.000000" izy = "0.000000" izz = "0.000035" /> </inertial> </link> <joint name="${prefix}robotiq_85_left_finger_tip_joint" type="continuous"> <parent link="${prefix}robotiq_85_left_inner_knuckle_link"/> <child link="${prefix}robotiq_85_left_finger_tip_link"/> <axis xyz="0 0 1"/> <origin xyz="0.04303959807 -0.03759940821 0.0" rpy="0.0 0.0 0.0"/> <limit lower="-3.14" upper="3.14" velocity="100.0" effort="0.1"/> <mimic joint="${prefix}robotiq_85_left_knuckle_joint" multiplier="-1"/> </joint> <joint name="${prefix}robotiq_85_right_finger_tip_joint" type="continuous"> <parent link="${prefix}robotiq_85_right_inner_knuckle_link"/> <child link="${prefix}robotiq_85_right_finger_tip_link"/> <axis xyz="0 0 1"/> <origin rpy="0.0 0.0 0.0" xyz="0.04303959807 -0.03759940821 0.0"/> <limit lower="-3.14" upper="3.14" velocity="100.0" effort="0.1"/> <mimic joint="${prefix}robotiq_85_left_knuckle_joint" multiplier="-1"/> </joint> <link name="${prefix}robotiq_85_left_finger_tip_link"> <visual> <geometry> <mesh filename="file://$(find tm900_description)/meshes/tm5-900/visual/robotiq_85_finger_tip_link.dae"/> </geometry> </visual> <collision> <geometry> <mesh filename="file://$(find tm900_description)/meshes/tm5-900/collision/robotiq_85_finger_tip_link.stl"/> </geometry> </collision> <inertial> <mass value="0.019555" /> <origin xyz="0.0 0.0 0.0" /> <inertia ixx = "0.000002" ixy = "0.000000" ixz = "0.000000" iyx = "0.000000" iyy = "0.000005" iyz = "0.000000" izx = "0.000000" izy = "0.000000" izz = "0.000006" /> </inertial> </link> <link name="${prefix}robotiq_85_right_finger_tip_link"> <visual> <geometry> <mesh filename="file://$(find tm900_description)/meshes/tm5-900/visual/robotiq_85_finger_tip_link.dae"/> </geometry> </visual> <collision> <geometry> <mesh filename="file://$(find tm900_description)/meshes/tm5-900/collision/robotiq_85_finger_tip_link.stl"/> </geometry> </collision> <inertial> <mass value="0.019555" /> <origin xyz="0.0 0.0 0.0" /> <inertia ixx = "0.000002" ixy = "0.000000" ixz = "0.000000" iyx = "0.000000" iyy = "0.000005" iyz = "0.000000" izx = "0.000000" izy = "0.000000" izz = "0.000006" /> </inertial> </link> <xacro:robotiq_85_gripper_transmission prefix="${prefix}" /> </xacro:macro> </robot> 

THIS IS MY URDF:

<?xml version="1.0"?> <robot xmlns:xacro="http://www.ros.org/wiki/xacro" name="tm5-900"> <!-- Arguments --> <xacro:arg name="ns" default="" /> <xacro:arg name="prefix" default="" /> <xacro:arg name="color" default="none" /> <xacro:arg name="trans_hw_iface" default="hardware_interface/PositionJointInterface" /> <!-- Include common files --> <xacro:include filename="$(find tm900_description)/xacro/macro.gazebo.xacro" /> <xacro:include filename="$(find tm900_description)/xacro/macro.transmission.xacro" /> <xacro:include filename="$(find tm900_description)/xacro/macro.materials.xacro" /> <!-- Include robot specific files --> <xacro:include filename="$(find tm900_description)/xacro/macro.tm5-900-nominal.urdf.xacro" /> <!-- Include end-effector files --> <xacro:include filename="$(find tm900_description)/xacro/robotiq_85_gripper.urdf.xacro" /> <xacro:include filename="$(find tm900_description)/xacro/robotiq_85_gripper.transmission.xacro" /> <!-- Include sensor files --> <xacro:include filename="$(find tm900_description)/xacro/camera_d435i.xacro" /> <!-- Load gazebo, transmission, materials --> <xacro:tmr_gazebo ns="$(arg ns)" prefix="$(arg prefix)" /> <xacro:tmr_transmission prefix="$(arg prefix)" hw_iface="$(arg trans_hw_iface)" /> <xacro:tmr_materials/> <!-- Load robot --> <xacro:property name="color" value="$(arg color)"/> <xacro:if value="${color == 'none'}"> <xacro:tm5-900 ns="$(arg ns)" prefix="$(arg prefix)" /> </xacro:if> <xacro:unless value="${color == 'none'}"> <xacro:tm5-900 ns="$(arg ns)" prefix="$(arg prefix)" color="${color}" format="obj" /> </xacro:unless> <!-- Add gripper if enabled --> <!-- Trong file tm5-900.urdf.xacro --> <xacro:robotiq_85_gripper prefix="$(arg prefix)" parent="$(arg prefix)flange"> <origin xyz="0 0 0" rpy="0 -1.57 1.57"/> </xacro:robotiq_85_gripper> <ros2_control name="GazeboSystem" type="system"> <hardware> <plugin>gazebo_ros2_control/GazeboSystem</plugin> </hardware> <!-- Robot Arm Joints --> <joint name="joint_1"> <!-- Thêm ${prefix} --> <command_interface name="position"> </command_interface> <state_interface name="position"/> <state_interface name="velocity"/> <initial_position>0.0</initial_position> </joint> <!-- Các joints khác tương tự --> <joint name="joint_2"> <!-- Thêm ${prefix} --> <command_interface name="position"> </command_interface> <state_interface name="position"/> <state_interface name="velocity"/> <initial_position>0.0</initial_position> </joint> <joint name="joint_3"> <!-- Thêm ${prefix} --> <command_interface name="position"> </command_interface> <state_interface name="position"/> <state_interface name="velocity"/> <initial_position>0.0</initial_position> </joint> <joint name="joint_4"> <!-- Thêm ${prefix} --> <command_interface name="position"> </command_interface> <state_interface name="position"/> <state_interface name="velocity"/> <initial_position>0.0</initial_position> </joint> <joint name="joint_5"> <!-- Thêm ${prefix} --> <command_interface name="position"> </command_interface> <state_interface name="position"/> <state_interface name="velocity"/> <initial_position>0.0</initial_position> </joint> <joint name="joint_6"> <!-- Thêm ${prefix} --> <command_interface name="position"> </command_interface> <state_interface name="position"/> <state_interface name="velocity"/> <initial_position>0.0</initial_position> </joint> <!-- Thêm các joint khác của robot arm --> <!-- Gripper Joints --> <joint name="robotiq_85_left_knuckle_joint"> <command_interface name="position"> </command_interface> <state_interface name="position"/> <state_interface name="velocity"/> </joint> <!-- Các khớp phụ chỉ cần state_interface --> <joint name="robotiq_85_right_knuckle_joint"> <state_interface name="position"/> <state_interface name="velocity"/> </joint> <joint name="robotiq_85_left_inner_knuckle_joint"> <state_interface name="position"/> <state_interface name="velocity"/> </joint> <joint name="robotiq_85_right_inner_knuckle_joint"> <state_interface name="position"/> <state_interface name="velocity"/> </joint> <joint name="robotiq_85_left_finger_joint"> <state_interface name="position"/> <state_interface name="velocity"/> </joint> <joint name="robotiq_85_right_finger_joint"> <state_interface name="position"/> <state_interface name="velocity"/> </joint> <!-- Thêm các joint khác của gripper --> </ros2_control> <gazebo> <plugin name="gazebo_ros2_control" filename="libgazebo_ros2_control.so"> <robotNamespace>$(arg ns)</robotNamespace> <parameters>$(find tm900_description)/config/tm900_controllers.yaml</parameters> <robot_param>robot_description</robot_param> <robot_param_node>robot_state_publisher</robot_param_node> </plugin> </gazebo> </robot> 
~/tm900_ws$ ros2 control list_hardware_interfaces command interfaces joint_1/position [available] [claimed] joint_2/position [available] [claimed] joint_3/position [available] [claimed] joint_4/position [available] [claimed] joint_5/position [available] [claimed] joint_6/position [available] [claimed] state interfaces joint_1/position joint_1/velocity joint_2/position joint_2/velocity joint_3/position joint_3/velocity joint_4/position joint_4/velocity joint_5/position joint_5/velocity joint_6/position joint_6/velocity 
$\endgroup$

1 Answer 1

0
$\begingroup$

The problem is the output in the very first line of your log:

[gzserver-1] [WARN] [1740727008.299231808] [gazebo_ros2_control]: Skipping joint in the URDF named 'robotiq_85_left_knuckle_joint' which is not in the gazebo model. 

Run xacro on your file and have a look at the resulting URDF, is everything included as expected?

$\endgroup$
1
  • $\begingroup$ I have a question, when I attach the gripper to the flange of the robot arm. Then RVIZ2 still displays successfully but Gazebo fails. What do you think is the problem? $\endgroup$ Commented Mar 5 at 9:01

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.