Best Practice: Real robot & work cell XACRO
Hello everyone,
I have created a work cell XACRO which created the environment for my robot. In that xacro file I load some STLs define frames and joints between those frames. I also load the URDF file for my robot (UR10e) and connect it to my enviroment. This works well for the offline simulation. TF transformations work and the frames.pdf tree looks good.
When I want to use it with the real robot. I utilize the supplied launch file for the robot. This launch file also loads the URDF file for the robot and I believe this causes the issue.
With the launch file of the real robot RVIZ only shows the robot and not the environment. The frames.pdf tree also only shows the robot and no frames and joints that I defined in my work cell xacro.
How is this usually handled? I tried just removing the loading of the URDF file in my work cell xacro file (since its being loaded in the launch file), but it doesn't work.
No I probably could change the URDF provided in the driver and add my environment, but it seems there must be a better solution.
My xacro file I created like it was done here: https://industrial-training-master.readthedocs.io/en/kinetic/_source/session3/Workcell-XACRO.html
The driver launch file looks like this: https://github.com/UniversalRobots/Universal_Robots_ROS_Driver/blob/master/ur_robot_driver/launch/ur10e_bringup.launch
This is the error I get if the URDF is loaded both through the driver launch file and my xacro:
[ERROR] [1594919591.296496514]: Semantic description is not specified for the same robot as the URDF
[ERROR] [1594919591.296640878]: Link 'grinderTCP_frame' declared as part of a chain in group 'manipulator' is not known to the URDF
[ WARN] [1594919591.296670272]: Group 'manipulator' is empty.
[ WARN] [1594919591.296888466]: Link 'boundary_environment' is not known to URDF. Cannot disable collisons.
[ WARN] [1594919591.296921858]: Link 'grinder_attachment' is not known to URDF. Cannot disable collisons.
[ WARN] [1594919591.296959836]: Link 'boundary_environment' is not known to URDF. Cannot disable collisons.
[ WARN] [1594919591.296987063]: Link 'boundary_environment' is not known to URDF. Cannot disable collisons.
[ WARN] [1594919591.297015248]: Link 'grinder_attachment' is not known to URDF. Cannot disable collisons.
[ WARN] [1594919591.297044127]: Link 'grinder_attachment' is not known to URDF. Cannot disable collisons.
[ WARN] [1594919591.297122732]: Link 'grinder_attachment' is not known to URDF. Cannot disable collisons.
[ WARN] [1594919591.297150457]: Link 'grinder_attachment' is not known to URDF. Cannot disable collisons.
[ WARN] [1594919591.297177351]: Link 'grinder_attachment' is not known to URDF. Cannot disable collisons.
[ WARN] [1594919591.297203555]: Link 'grinder_attachment' is not known to URDF. Cannot disable collisons.
[ WARN] [1594919591.297234079]: Link 'grinder_attachment' is not known to URDF. Cannot disable collisons.
[ INFO] [1594919591.297349151]: Loading robot model 'ur10e'...
[ WARN] [1594919591.352429997]: Group 'manipulator' must have at least one valid joint
[ WARN] [1594919591.352460005]: Failed to add group 'manipulator'
[ERROR] [1594919591.352476859]: Group state 'AllZero' specified for group 'manipulator', but that group does not exist
[FATAL] [1594919591.380967177]: Group 'manipulator' was not found.
terminate called after throwing an instance of 'std::runtime_error'
what(): Group 'manipulator' was not found.
[myworkcell_node-3] process has died [pid 20110, exit code -6, cmd /home/dan/catkin_ws/devel/lib/grind_cell/myworkcell_node __name:=myworkcell_node __log:=/home/dan/.ros/log/6606bc4c-c777-11ea-ad82-98e74397a5e9/myworkcell_node-3.log].
log file: /home/dan/.ros/log/6606bc4c-c777-11ea-ad82-98e74397a5e9/myworkcell_node-3*.log
^C[DeterminePathplan-2] killing on exit
[AnalyzePointCloud-1] killing on exit
shutting down processing monitor...
... shutting down processing monitor complete
So how do you combine your own xacro file for the work cell with a launch file from a robot driver? I feel like altering anything in the driver seems wrong...
Help would be greatly appreciated!
Thanks!
Asked by dschimpf on 2020-07-16 12:21:49 UTC
Answers
So something that works seems to be opening the work cell xacro file from the driver launch file, and replacing the opening of the robot URDF. The frames.pdf tree looks good again.
Still wonder if this is best practice through.
Thanks!
Asked by dschimpf on 2020-07-16 12:55:05 UTC
Comments