Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Use new ur_description_model #97

Merged
merged 10 commits into from
May 20, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 0 additions & 4 deletions .ci.rosinstall

This file was deleted.

8 changes: 4 additions & 4 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,25 +21,25 @@ jobs:
env:
- ROS_DISTRO: melodic
ROS_REPO: main
UPSTREAM_WORKSPACE: .ci.rosinstall
UPSTREAM_WORKSPACE: .melodic.rosinstall
DOCKER_RUN_OPTS: --network static_test_net
BEFORE_INIT: 'apt-get update -qq && apt-get install -y iproute2 iputils-ping && ip addr && ping -c5 192.168.56.101'
IMMEDIATE_TEST_OUTPUT: true
- ROS_DISTRO: noetic
ROS_REPO: main
UPSTREAM_WORKSPACE: .ci.rosinstall
UPSTREAM_WORKSPACE: .noetic.rosinstall
DOCKER_RUN_OPTS: --network static_test_net
BEFORE_INIT: 'apt-get update -qq && apt-get install -y iproute2 iputils-ping && ip addr && ping -c5 192.168.56.101'
IMMEDIATE_TEST_OUTPUT: true
- ROS_DISTRO: melodic
ROS_REPO: testing
UPSTREAM_WORKSPACE: .ci.rosinstall
UPSTREAM_WORKSPACE: .melodic.rosinstall
DOCKER_RUN_OPTS: --network static_test_net
BEFORE_INIT: 'apt-get update -qq && apt-get install -y iproute2 iputils-ping && ip addr && ping -c5 192.168.56.101'
IMMEDIATE_TEST_OUTPUT: true
- ROS_DISTRO: noetic
ROS_REPO: testing
UPSTREAM_WORKSPACE: .ci.rosinstall
UPSTREAM_WORKSPACE: .noetic.rosinstall
DOCKER_RUN_OPTS: --network static_test_net
BEFORE_INIT: 'apt-get update -qq && apt-get install -y iproute2 iputils-ping && ip addr && ping -c5 192.168.56.101'
IMMEDIATE_TEST_OUTPUT: true
Expand Down
4 changes: 4 additions & 0 deletions .melodic.rosinstall
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
- git:
uri: https://github.com/ros-industrial/universal_robot.git
local-name: universal_robot
version: melodic-devel-staging
8 changes: 8 additions & 0 deletions .noetic.rosinstall
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
- git:
uri: https://github.com/ros-industrial/universal_robot.git
local-name: universal_robot
version: melodic-devel-staging
- git:
uri: https://github.com/ros-industrial/ur_msgs.git
local-name: ur_msgs
version: melodic-devel
16 changes: 16 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -247,6 +247,22 @@ Use this with any client interface such as [MoveIt!](https://moveit.ros.org/) or
rosrun rqt_joint_trajectory_controller rqt_joint_trajectory_controller
```

### Replacing the robot description

In a real-world scenario you will want to replace the robot description with a description
containing the whole scene where the robot is acting in. For this, all the bringup launchfiles offer
the argument `robot_description_file` that should point to a launchfile loading the robot
description.

While the `load_urXXX.launch` files from the [ur_description](http://wiki.ros.org/ur_description)
package contain a lot of arguments to change the robot model, this driver only forwards the
`kinematics_config` parameter file. For further adaption please create your own `load_urXXX.launch`
file that fits your application and pass this to the `urXXX_bringup.launch` files from this package.

If you prefer decoupling loading the robot description and starting the driver, you can start the
`ur_control.launch` launchfile directly after the `robot_description` has been uploaded to the
parameter server.

## Troubleshooting

This section will cover some previously raised issues.
Expand Down
48 changes: 36 additions & 12 deletions ur_robot_driver/doc/ROS_INTERFACE.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,10 +26,13 @@ Debug flag that will get passed on to ur_common.launch

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.

##### kinematics_config (default: "$(find ur_e_description)/config/ur3e_default.yaml")
##### kinematics_config (default: "$(find ur_description)/config/ur3e/default_kinematics.yaml")

Kinematics config file used for calibration correction. This will be used to verify the robot's calibration is matching the robot_description.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggestion: be vocal about the fact that the default value will not result in accurate FK results -- as it's really just a default, with the values of a "random robot".

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Added a note in 00b09ba


**Note:** The `default_kinematics.yaml` file will not reflect the kinematic parameters of your
robot. Make sure to [generate your own config file](https://github.com/UniversalRobots/Universal_Robots_ROS_Driver#extract-calibration-information).

##### limited (default: "false")

Use the description in limited mode (Every axis rotates from -PI to PI)
Expand All @@ -38,7 +41,7 @@ Use the description in limited mode (Every axis rotates from -PI to PI)

Port that will be opened by the driver to allow direct communication between the driver and the robot controller.

##### robot_description_file (default: "$(find ur_e_description)/launch/ur3e_upload.launch")
##### robot_description_file (default: "$(find ur_description)/launch/load_ur3e.launch")

Robot description launch file.

Expand Down Expand Up @@ -120,10 +123,13 @@ Debug flag that will get passed on to ur_common.launch

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.

##### kinematics_config (default: "$(find ur_description)/config/ur10_default.yaml")
##### kinematics_config (default: "$(find ur_description)/config/ur10/default_kinematics.yaml")

Kinematics config file used for calibration correction. This will be used to verify the robot's calibration is matching the robot_description.

**Note:** The `default_kinematics.yaml` file will not reflect the kinematic parameters of your
robot. Make sure to [generate your own config file](https://github.com/UniversalRobots/Universal_Robots_ROS_Driver#extract-calibration-information).

##### limited (default: "false")

Use the description in limited mode (Every axis rotates from -PI to PI)
Expand All @@ -132,7 +138,7 @@ Use the description in limited mode (Every axis rotates from -PI to PI)

Port that will be opened by the driver to allow direct communication between the driver and the robot controller.

##### robot_description_file (default: "$(find ur_description)/launch/ur10_upload.launch")
##### robot_description_file (default: "$(find ur_description)/launch/load_ur10.launch")

Robot description launch file.

Expand Down Expand Up @@ -178,6 +184,9 @@ Automatically send URScript to robot to execute. On e-Series this does require t

Kinematics config file used for calibration correction. This will be used to verify the robot's calibration is matching the robot_description. Pass the same config file that is passed to the robot_description.

**Note:** The `default_kinematics.yaml` file will not reflect the kinematic parameters of your
robot. Make sure to [generate your own config file](https://github.com/UniversalRobots/Universal_Robots_ROS_Driver#extract-calibration-information).

##### launch_prefix (Required)

Please add description. See file "launch/ur_control.launch".
Expand Down Expand Up @@ -276,6 +285,9 @@ Automatically send URScript to robot to execute. On e-Series this does require t

Kinematics config file used for calibration correction. This will be used to verify the robot's calibration is matching the robot_description.

**Note:** The `default_kinematics.yaml` file will not reflect the kinematic parameters of your
robot. Make sure to [generate your own config file](https://github.com/UniversalRobots/Universal_Robots_ROS_Driver#extract-calibration-information).

##### limited (default: "false")

Use the description in limited mode (Every axis rotates from -PI to PI)
Expand Down Expand Up @@ -362,10 +374,13 @@ Debug flag that will get passed on to ur_common.launch

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.

##### kinematics_config (default: "$(find ur_description)/config/ur5_default.yaml")
##### kinematics_config (default: "$(find ur_description)/config/ur5/default_kinematics.yaml")

Kinematics config file used for calibration correction. This will be used to verify the robot's calibration is matching the robot_description.

**Note:** The `default_kinematics.yaml` file will not reflect the kinematic parameters of your
robot. Make sure to [generate your own config file](https://github.com/UniversalRobots/Universal_Robots_ROS_Driver#extract-calibration-information).

##### limited (default: "false")

Use the description in limited mode (Every axis rotates from -PI to PI)
Expand All @@ -374,7 +389,7 @@ Use the description in limited mode (Every axis rotates from -PI to PI)

Port that will be opened by the driver to allow direct communication between the driver and the robot controller.

##### robot_description_file (default: "$(find ur_description)/launch/ur5_upload.launch")
##### robot_description_file (default: "$(find ur_description)/launch/load_ur5.launch")

Robot description launch file.

Expand Down Expand Up @@ -416,10 +431,13 @@ Debug flag that will get passed on to ur_common.launch

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.

##### kinematics_config (default: "$(find ur_e_description)/config/ur5e_default.yaml")
##### kinematics_config (default: "$(find ur_description)/config/ur5e/default_kinematics.yaml")

Kinematics config file used for calibration correction. This will be used to verify the robot's calibration is matching the robot_description.

**Note:** The `default_kinematics.yaml` file will not reflect the kinematic parameters of your
robot. Make sure to [generate your own config file](https://github.com/UniversalRobots/Universal_Robots_ROS_Driver#extract-calibration-information).

##### limited (default: "false")

Use the description in limited mode (Every axis rotates from -PI to PI)
Expand All @@ -428,7 +446,7 @@ Use the description in limited mode (Every axis rotates from -PI to PI)

Port that will be opened by the driver to allow direct communication between the driver and the robot controller.

##### robot_description_file (default: "$(find ur_e_description)/launch/ur5e_upload.launch")
##### robot_description_file (default: "$(find ur_description)/launch/load_ur5e.launch")

Robot description launch file.

Expand Down Expand Up @@ -506,10 +524,13 @@ Debug flag that will get passed on to ur_common.launch

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.

##### kinematics_config (default: "$(find ur_description)/config/ur3_default.yaml")
##### kinematics_config (default: "$(find ur_description)/config/ur3/default_kinematics.yaml")

Kinematics config file used for calibration correction. This will be used to verify the robot's calibration is matching the robot_description.

**Note:** The `default_kinematics.yaml` file will not reflect the kinematic parameters of your
robot. Make sure to [generate your own config file](https://github.com/UniversalRobots/Universal_Robots_ROS_Driver#extract-calibration-information).

##### limited (default: "false")

Use the description in limited mode (Every axis rotates from -PI to PI)
Expand All @@ -518,7 +539,7 @@ Use the description in limited mode (Every axis rotates from -PI to PI)

Port that will be opened by the driver to allow direct communication between the driver and the robot controller.

##### robot_description_file (default: "$(find ur_description)/launch/ur3_upload.launch")
##### robot_description_file (default: "$(find ur_description)/launch/load_ur3.launch")

Robot description launch file.

Expand Down Expand Up @@ -560,10 +581,13 @@ Debug flag that will get passed on to ur_common.launch

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.

##### kinematics_config (default: "$(find ur_e_description)/config/ur10e_default.yaml")
##### kinematics_config (default: "$(find ur_description)/config/ur10e/default_kinematics.yaml")

Kinematics config file used for calibration correction. This will be used to verify the robot's calibration is matching the robot_description.

**Note:** The `default_kinematics.yaml` file will not reflect the kinematic parameters of your
robot. Make sure to [generate your own config file](https://github.com/UniversalRobots/Universal_Robots_ROS_Driver#extract-calibration-information).

##### limited (default: "false")

Use the description in limited mode (Every axis rotates from -PI to PI)
Expand All @@ -572,7 +596,7 @@ Use the description in limited mode (Every axis rotates from -PI to PI)

Port that will be opened by the driver to allow direct communication between the driver and the robot controller.

##### robot_description_file (default: "$(find ur_e_description)/launch/ur10e_upload.launch")
##### robot_description_file (default: "$(find ur_description)/launch/load_ur10e.launch")

Robot description launch file.

Expand Down
5 changes: 2 additions & 3 deletions ur_robot_driver/launch/ur10_bringup.launch
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,8 @@
<arg name="controllers" default="joint_state_controller scaled_pos_joint_traj_controller speed_scaling_state_controller force_torque_sensor_controller" doc="Controllers that are activated by default."/>
<arg name="stopped_controllers" default="pos_joint_traj_controller joint_group_vel_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="robot_description_file" default="$(find ur_description)/launch/load_ur10.launch" doc="Robot description launch file."/>
<arg name="kinematics_config" default="$(find ur_description)/config/ur10/default_kinematics.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="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" pass_all_args="true">
Expand Down
5 changes: 2 additions & 3 deletions ur_robot_driver/launch/ur10e_bringup.launch
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,8 @@
<arg name="controllers" default="joint_state_controller scaled_pos_joint_traj_controller speed_scaling_state_controller force_torque_sensor_controller" doc="Controllers that are activated by default."/>
<arg name="stopped_controllers" default="pos_joint_traj_controller joint_group_vel_controller" doc="Controllers that are initally loaded, but not started."/>
<arg name="controller_config_file" default="$(find ur_robot_driver)/config/ur10e_controllers.yaml" doc="Config file used for defining the ROS-Control controllers."/>
<arg name="robot_description_file" default="$(find ur_e_description)/launch/ur10e_upload.launch" doc="Robot description launch file."/>
<arg name="kinematics_config" default="$(find ur_e_description)/config/ur10e_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="robot_description_file" default="$(find ur_description)/launch/load_ur10e.launch" doc="Robot description launch file."/>
<arg name="kinematics_config" default="$(find ur_description)/config/ur10e/default_kinematics.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="use_tool_communication" default="false" doc="On e-Series robots tool communication can be enabled with this argument"/>
<arg name="tool_voltage" default="0" doc="Tool voltage set at the beginning of the UR program. Only used, when `use_tool_communication` is set to true."/>
<arg name="tool_parity" default="0" doc="Parity configuration used for tool communication. Only used, when `use_tool_communication` is set to true."/>
Expand All @@ -20,7 +20,6 @@
<arg name="tool_tx_idle_chars" default="3.5" doc="Number of idle chars in TX channel used for tool communication. Only used, when `use_tool_communication` is set to true."/>
<arg name="tool_device_name" default="/tmp/ttyUR" doc="Local device name used for tool communication. Only used, when `use_tool_communication` is set to true."/>
<arg name="tool_tcp_port" default="54321" doc="Port on which the robot controller publishes the tool comm interface. Only used, when `use_tool_communication` is set to true."/>
<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" pass_all_args="true"/>
Expand Down
5 changes: 2 additions & 3 deletions ur_robot_driver/launch/ur16e_bringup.launch
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,8 @@
<arg name="controllers" default="joint_state_controller scaled_pos_joint_traj_controller speed_scaling_state_controller force_torque_sensor_controller" doc="Controllers that are activated by default."/>
<arg name="stopped_controllers" default="pos_joint_traj_controller joint_group_vel_controller" doc="Controllers that are initally loaded, but not started."/>
<arg name="controller_config_file" default="$(find ur_robot_driver)/config/ur16e_controllers.yaml" doc="Config file used for defining the ROS-Control controllers."/>
<arg name="robot_description_file" default="$(find ur_e_description)/launch/ur16e_upload.launch" doc="Robot description launch file."/>
<arg name="kinematics_config" default="$(find ur_e_description)/config/ur16e_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="robot_description_file" default="$(find ur_description)/launch/load_ur16e.launch" doc="Robot description launch file."/>
<arg name="kinematics_config" default="$(find ur_description)/config/ur16e/default_kinematics.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="use_tool_communication" default="false" doc="On e-Series robots tool communication can be enabled with this argument"/>
<arg name="tool_voltage" default="0" doc="Tool voltage set at the beginning of the UR program. Only used, when `use_tool_communication` is set to true."/>
<arg name="tool_parity" default="0" doc="Parity configuration used for tool communication. Only used, when `use_tool_communication` is set to true."/>
Expand All @@ -20,7 +20,6 @@
<arg name="tool_tx_idle_chars" default="3.5" doc="Number of idle chars in TX channel used for tool communication. Only used, when `use_tool_communication` is set to true."/>
<arg name="tool_device_name" default="/tmp/ttyUR" doc="Local device name used for tool communication. Only used, when `use_tool_communication` is set to true."/>
<arg name="tool_tcp_port" default="54321" doc="Port on which the robot controller publishes the tool comm interface. Only used, when `use_tool_communication` is set to true."/>
<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" pass_all_args="true"/>
Expand Down
Loading