automaticaddison / mycobot_ros2

Automatic Addison support for the myCobot robotic arm by Elephant Robotics
BSD 3-Clause "New" or "Revised" License
4 stars 1 forks source link

new Gazebo cannot broadcast joint state to rviz #1

Open ryanyu512 opened 1 month ago

ryanyu512 commented 1 month ago

Hi,

Thanks for your friendly tutorial.

I have directly downloaded this repository for learning and find that robot arm pose cannot be correctly shown in rviz and guess that new Gazebo is no longer able to publish joint states to rviz for correct visualisation based on your setting.

I have changed ignition::gazebo and ignition-gazebo to gz::sim and gz-sim respectively.

<gazebo>
    <plugin filename="gz-sim-joint-position-controller-system" name="gz::sim::systems::JointPositionController">
        <joint_name>link1_to_link2</joint_name>
    </plugin>    
</gazebo>  
<gazebo>
    <plugin filename="gz-sim-joint-position-controller-system" name="gz::sim::systems::JointPositionController">
        <joint_name>link2_to_link3</joint_name>
    </plugin>    
</gazebo>  
<gazebo>
    <plugin filename="gz-sim-joint-position-controller-system" name="gz::sim::systems::JointPositionController">
        <joint_name>link3_to_link4</joint_name>
    </plugin>    
</gazebo>  
<gazebo>
    <plugin filename="gz-sim-joint-position-controller-system" name="gz::sim::systems::JointPositionController">
        <joint_name>link4_to_link5</joint_name>
    </plugin>    
</gazebo>  
<gazebo>
    <plugin filename="gz-sim-joint-position-controller-system" name="gz::sim::systems::JointPositionController">
        <joint_name>link5_to_link6</joint_name>
    </plugin>    
</gazebo>  
<gazebo>
    <plugin filename="gz-sim-joint-position-controller-system" name="gz::sim::systems::JointPositionController">
        <joint_name>link6_to_link6flange</joint_name>
    </plugin>    
</gazebo>  
<gazebo>
    <plugin filename="gz-sim-joint-position-controller-system" name="gz::sim::systems::JointPositionController">
        <joint_name>gripper_controller</joint_name>
    </plugin>    
</gazebo>  
<gazebo>
    <plugin filename="gz-sim-joint-position-controller-system" name="gz::sim::systems::JointPositionController">
        <joint_name>gripper_base_to_gripper_left2</joint_name>
    </plugin>    
</gazebo>  
<gazebo>
    <plugin filename="gz-sim-joint-position-controller-system" name="gz::sim::systems::JointPositionController">
        <joint_name>gripper_left3_to_gripper_left1</joint_name>
    </plugin>    
</gazebo>  
<gazebo>
    <plugin filename="gz-sim-joint-position-controller-system" name="gz::sim::systems::JointPositionController">
        <joint_name>gripper_base_to_gripper_right3</joint_name>
    </plugin>    
</gazebo>  
<gazebo>
    <plugin filename="gz-sim-joint-position-controller-system" name="gz::sim::systems::JointPositionController">
        <joint_name>gripper_base_to_gripper_right2</joint_name>
    </plugin>    
</gazebo>  
<gazebo>
    <plugin filename="gz-sim-joint-position-controller-system" name="gz::sim::systems::JointPositionController">
        <joint_name>gripper_right3_to_gripper_right1</joint_name>
    </plugin>    
</gazebo>    

And, I have also added the following section into mycobot_280_gazebo.urdf.xacro. I am not sure if you have missed something in this section since I find that this section is different when comparing mycobot_280_gazebo.urdf.xacro with mycobot_280_classic_gazebo.urdf.xacro.

<gazebo>
    <plugin filename="gz-sim-joint-state-publisher-system" name="gz::sim::systems::JointStatePublisher">
        <topic>joint_states</topic> 

        <joint_name>link1_to_link2</joint_name>      
        <joint_name>link2_to_link3</joint_name>
        <joint_name>link3_to_link4</joint_name>
        <joint_name>link4_to_link5</joint_name>
        <joint_name>link5_to_link6</joint_name>
        <joint_name>link6_to_link6flange</joint_name>
        <joint_name>gripper_controller</joint_name>
        <joint_name>gripper_base_to_gripper_left2</joint_name>
        <joint_name>gripper_left3_to_gripper_left1</joint_name>
        <joint_name>gripper_base_to_gripper_right3</joint_name>
        <joint_name>gripper_base_to_gripper_right2</joint_name>
        <joint_name>gripper_right3_to_gripper_right1</joint_name>
    </plugin>    
</gazebo> 

Unfortunately, I still cannot fix this issue. Any advice would be highly appreciated. Anyway, the classic gazebo can work perfectly with rviz based on your current setting.

Result: Screenshot from 2024-05-20 03-08-06

Config: ROS version: ROS2 iron OS: Ubuntu 22.04

Casey1129 commented 1 week ago

Hi, are you able to resole this issue?