Hi, i have been working with a UR10 and need to have the position of the TCP in real time. In a previous post, people recommended me to build a TF listener and when i got that working i could indeed track the position. I still had some position errors in general and therefore i downloaded and installed the Universal_Robots_ROS_Driver. But now, the TF_2 program does not seem to see links other then those specified by the original URDF of the UR10. I can see this when i echo the tf topic. I expect to see all links attached, but i only see the links that are defined in the URDF of the UR10. I find this really strange i get no errors and RVIZ does load all the links and elements that are specified. The moveit! setup assistant also loads all links.
I simply build the tf_listner from [this tutorial] (http://wiki.ros.org/tf/Tutorials/Writing%20a%20tf%20listener%20%28Python%29) and switched the names of the link. The links that i am missing should be attached to tool0 ans would go to a tool_tcp. Tool is the prefix i defined in the URDF. I also miss the table links who have the prefix table_
I only changed the default parameters to the parameters that i already have defined. Like the ip adress of the robot.
<?xml version="1.0"?>
<launch>
<arg name="debug" default="false" doc="Debug flag that will get passed on to ur_common.launch"/>
<arg name="robot_ip" default = "10.242.15.81" doc="IP address by which the robot can be reached."/>
<arg name="reverse_port" default="50001" doc="Port that will be opened by the driver to allow direct communication between the driver and the robot controller."/>
<arg name="script_sender_port" default="50002" doc="The driver will offer an interface to receive the program's URScript on this port. If the robot cannot connect to this port, `External Control` will stop immediately."/>
<arg name="tf_prefix" default="" doc="tf_prefix used for the robot."/>
<arg name="controllers" default="joint_state_controller scaled_pos_traj_controller speed_scaling_state_controller force_torque_sensor_controller" doc="Controllers that are activated by default."/>
<arg name="stopped_controllers" default="pos_traj_controller" doc="Controllers that are initally loaded, but not started."/>
<arg name="controller_config_file" default="$(find ur_robot_driver)/config/ur10_controllers.yaml" doc="Config file used for defining the ROS-Control controllers."/>
<arg name="robot_description_file" default="$(find ur_description)/launch/ur10_upload.launch" doc="Robot description launch file."/>
<arg name="kinematics_config" default="$(find ur_description)/config/ur10_default.yaml" doc="Kinematics config file used for calibration correction. This will be used to verify the robot's calibration is matching the robot_description."/>
<arg name="limited" default="false" doc="Use the description in limited mode (Every axis rotates from -PI to PI)"/> <arg name="headless_mode" default="false" doc="Automatically send URScript to robot to execute. On e-Series this does require the robot to be in 'remote-control' mode. With this, the URCap is not needed on the robot."/>
<include file="$(find ur_robot_driver)/launch/ur_common.launch">
<arg name="debug" value="$(arg debug)"/>
<arg name="use_tool_communication" value="false"/>
<arg name="controller_config_file" value="$(arg controller_config_file)"/>
<arg name="robot_description_file" value="$(arg robot_description_file)"/>
<arg name="robot_ip" value="$(arg robot_ip)"/>
<arg name="reverse_port" value="$(arg reverse_port)"/>
<arg name="script_sender_port" value="$(arg script_sender_port)"/>
<arg name="kinematics_config" value="$(arg kinematics_config)"/>
<arg name="limited" value="$(arg limited)"/>
<arg name="tf_prefix" value="$(arg tf_prefix)"/>
<arg name="controllers" value="$(arg controllers)"/>
<arg name="stopped_controllers" value="$(arg stopped_controllers)"/>
<arg name="headless_mode" value="$(arg headless_mode)"/>
</include>
</launch>
I activate this file with the calibration file that is required.
my launch file for the moveit part is this
<launch>
<arg name="sim" default="false" />
<arg name="limited" default="true"/>
<arg name="debug" default="false" />
<include file="$(find seallant_robot)/launch/planning_context.launch">
<arg name = "load_robot_description" value = "true"/>
</include>
<!-- Remap follow_joint_trajectory -->
<remap if="$(arg sim)" from="/follow_joint_trajectory" to="/arm_controller/follow_joint_trajectory"/>
<!-- Launch moveit -->
<include file="$(find seallant_robot)/launch/move_group.launch">
<arg name="limited" default="$(arg limited)"/>
<arg name="debug" default="$(arg debug)" />
<arg name="info" value="true"/> </include> <include file = "$(find seallant_robot)/launch/moveit_rviz.launch">
<arg name="config" value="true"/>
<arg name="debug" value="$(arg debug)"/>
</include>
</launch>
Quick info: ROS kinetic, UR10, Universal_Robots_ROS_Driver, Ubuntu 16.04,
if someone knows where to look for the problem, that would be awesome.
Originally posted by stefvanlierop on ROS Answers with karma: 37 on 2020-02-10
Post score: 0
Original comments
Comment by gvdhoorn on 2020-02-10:\
the TF does not seem to see links other then those specified by the original URDF of the UR10
this is a little vague. "the TF" does not really exist.
Please post a rqt_tf_tree
screenshot, a concrete example of some code that used to work but no longer does and show us how you start things (ie: which .launch
files, etc).
Update your original question text with this information. Use the edit
button/link to do that.
Comment by gvdhoorn on 2020-02-10:
Could you check the formatting of your question? Some of the copy-pastes have turned out a bit jumbled.
General workflow:
- paste a verbatim copy of the text you want to include
- select it
- press
ctrl+k
or click the Preformatted Text button (101010
)
Do not just select the first line for step 2. Make sure to select all text you want to format.
I simply build the tf_listner from this tutorial and switched the names of the links.
Yes, but which links. Names are important here.
I made some slight modifications to the bringup file
please mention which changes.
And also please tell us what doesn't work. What sort of errors do you see?
I can see this when i echo the tf topic
what do you see? What do you expect to see? Which transforms are missing?
Comment by gvdhoorn on 2020-02-12:
We'll probably need to see how you added your EEF and "table links" to the URDF/Xacro.
ur_robot_driver
uses a specific version of ur_description
(and related packages) and it could be your modifications are no longer being loaded after you switched.