0
$\begingroup$

Rosanswers logo

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, rqt_tf_tree

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:

  1. paste a verbatim copy of the text you want to include
  2. select it
  3. 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.

$\endgroup$

1 Answer 1

0
$\begingroup$

Rosanswers logo

The reason why the other links did not show up in the rqt_tf_tree was because i was only using the robot description of the ur10 and not the description of the entire robot. so this question can be closed as there is no issue.


Originally posted by stefvanlierop with karma: 37 on 2020-02-26

This answer was ACCEPTED on the original site

Post score: 0

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.