syuntoku14 / fusion2urdf

A Fusion 360 Script to export URDF
MIT License
481 stars 163 forks source link

ROS: link 'part' is not unique. #54

Open DragonflyRobotics opened 2 years ago

DragonflyRobotics commented 2 years ago

I just exported my model to URDF. I made no modifications to the entire folder that it exported but when I do this: catkin_make source devel/setup.bash roslaunch urdf_description display.launch

It gives me this:

auto-starting new master
process[master]: started with pid [10409]
ROS_MASTER_URI=http://localhost:11311

setting /run_id to e18b03b2-70e2-11ec-bfbe-6fb4c5786c98
process[rosout-1]: started with pid [10419]
started core service [/rosout]
process[joint_state_publisher-2]: started with pid [10422]
process[robot_state_publisher-3]: started with pid [10427]
process[rviz-4]: started with pid [10428]
[ERROR] [1641688030.198076933]: link 'BL_Dual_Motor_Mount_1' is not unique.
[robot_state_publisher-3] process has died [pid 10427, exit code 1, cmd /opt/ros/noetic/lib/robot_state_publisher/robot_state_publisher __name:=robot_state_publisher __log:=/home/krishna/.ros/log/e18b03b2-70e2-11ec-bfbe-6fb4c5786c98/robot_state_publisher-3.log].
log file: /home/krishna/.ros/log/e18b03b2-70e2-11ec-bfbe-6fb4c5786c98/robot_state_publisher-3*.log
[ERROR] [1641688030.634928152]: link 'BL_Dual_Motor_Mount_1' is not unique.

BL_Dual_Motor_Mount_1 is the part. I checked the main .xacro file and indeed, there are 2 copies of each parts' link. I compared its contents and the origin was different. If I comment out 1 of the parts, this error goes away but another one for a different part appears. Why is it making duplicates? Is this a model issue or a script issue?

Then I tried running the gazebo launch and it gave me this:

setting /run_id to 3aa4dcb0-70e4-11ec-bfbe-6fb4c5786c98
process[rosout-1]: started with pid [10956]
started core service [/rosout]
process[spawn_urdf-2]: started with pid [10959]
process[gazebo-3]: started with pid [10963]
process[gazebo_gui-4]: started with pid [10969]
[ INFO] [1641688609.720169761]: Finished loading Gazebo ROS API Plugin.
[ INFO] [1641688609.721285673]: waitForService: Service [/gazebo/set_physics_properties] has not been advertised, waiting...
[ INFO] [1641688609.820866858]: Finished loading Gazebo ROS API Plugin.
[ INFO] [1641688609.822126267]: waitForService: Service [/gazebo_gui/set_physics_properties] has not been advertised, waiting...
[ INFO] [1641688610.111645532]: waitForService: Service [/gazebo/set_physics_properties] is now available.
[ INFO] [1641688610.132856637]: Physics dynamic reconfigure ready.
Error [parser_urdf.cc:3183] Unable to call parseURDF on robot model
Error [parser.cc:488] parse as old deprecated model file failed.

To get all the files, visit my Github repo: [HERE](https://github.com/Project-Zeta-v2/Project-Zeta/tree/main/CAD/URDF/zeta_urdf_description

Please let me know if you need any other information to solve or reproduce this issue.

iceikking888 commented 1 year ago

Yello,

I ran into the same type of issue. For my issue, 2 different links were repeated twice.

In the .xacro file, comparing links with the same name, the only difference was the location of the origin. Otherwise, everything else was the same.

In the .gazebo file, although there are repeated links, there was no difference between them:

As for the .xacro file, the best thing to do is:

  1. comment out the repeated link
  2. check the model by launching display.launch and see if the link is in the correct location
    • if the link is in the correct location, then delete the commented link
    • otherwise, switch what is commented and uncommented and check the model again