You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The README has been updated on the main branch, also with respect to the binary installation.
This commit ties them together, pointing to humble-specific endpoints,
where necessary.
branch supports only ROS2 Humble. For other ROS2 versions, please see the respective
169
+
branches.
170
+
171
+
Once installed, please make sure to actually [source ROS2](https://docs.ros.org/en/humble/Tutorials/Beginner-CLI-Tools/Configuring-ROS2-Environment.html#source-the-setup-files) before proceeding.
172
+
173
+
3. Make sure that `colcon`, its extensions and `vcs` are installed:
Now you should be able to use the MoveIt Plugin in rviz2 to plan and execute trajectories with the
173
-
robot as explained [here](https://moveit.picknik.ai/galactic/doc/tutorials/quickstart_in_rviz/quickstart_in_rviz_tutorial.html).
174
-
175
-
## Network Setup
176
-
177
-
There are many possible ways to connect a UR robot. This section describes a good example using static IP addresses and a direct connection from the PC to the Robot to minimize latency introduced by network hardware. Though a good network switch usually works fine, as well.
178
-
179
-
1. Connect the UR control box directly to the remote PC with an ethernet cable.
180
-
181
-
2. Open the network settings from the UR teach pendant (Setup Robot -> Network) and enter these settings:
182
-
183
-
```
184
-
IP address: 192.168.1.102
185
-
Subnet mask: 255.255.255.0
186
-
Default gateway: 192.168.1.1
187
-
Preferred DNS server: 192.168.1.1
188
-
Alternative DNS server: 0.0.0.0
189
-
```
190
-
191
-
3. On the remote PC, turn off all network devices except the "wired connection", e.g. turn off wifi.
192
-
193
-
4. Open Network Settings and create a new Wired connection with these settings. You may want to name this new connection `UR` or something similar:
194
-
195
-
```
196
-
IPv4
197
-
Manual
198
-
Address: 192.168.1.101
199
-
Netmask: 255.255.255.0
200
-
Gateway: 192.168.1.1
201
-
```
202
-
203
-
5. Verify the connection from the PC with e.g. ping.
204
-
205
-
```
206
-
ping 192.168.1.102
207
-
```
208
-
209
-
## Connect to External Control via URCap
210
-
211
-
This section describes installation and launching of the URCap program from the pendant. It allows ROS to control the robot externally. Generally, you will launch the driver via ROS then start URCap from the pendant.
212
-
213
-
1. To enable external control of the UR robot from a remote PC you need to install the [**externalcontrol-1.0.5.urcap**](/ur_robot_driver/resources) which can be downloaded from [Universal_Robots_ExternalControl_URCap](https://github.com/UniversalRobots/Universal_Robots_ExternalControl_URCap/releases).
214
-
215
-
**Note:** For installing this URCap a minimal PolyScope version of 3.7 or 5.1 (in case of e-Series) is necessary.
216
-
217
-
2. For installing the necessary URCap and creating a program, please see the individual tutorial on how to [setup a CB3 robot](/ur_robot_driver/doc/installation/install_urcap_cb3.rst) or how to [setup an e-Series robot](/ur_robot_driver/doc/installation/install_urcap_e_series.rst)
218
-
219
-
3. On the remote PC, launch the suitable launch file which starts the robot driver and controllers (see details in [Usage](#usage) section).
220
-
221
-
4. From the Program Robot tab of the teach pendant, load `external_control.urp`. Click on the "Control by..." section of the program to check the Host IP of the external PC. If it needs to be modified, make the modification under the Installation tab (as prompted on screen). You do not need to modify the Custom Port.
222
-
223
-
5. When the Host IP is correct, click the play button to connect with the external PC.
224
-
225
-
## Usage
226
-
227
-
For starting the driver there are two main launch files in the `ur_robot_driver` package.
228
-
229
-
-`ur_control.launch.py` - starts ros2_control node including hardware interface, joint state broadcaster and a controller. This launch file also starts `dashboard_client` if real robot is used.
230
-
-`ur_dashboard_client.launch.py` - start the dashboard client for UR robots.
231
-
232
-
Also, there are predefined launch files for all supported types of UR robots.
233
-
234
-
The arguments for launch files can be listed using `ros2 launch ur_robot_driver <launch_file_name>.launch.py --show-args`.
235
-
The most relevant arguments are the following:
236
-
237
-
-`ur_type` (*mandatory*) - a type of used UR robot (*ur3*, *ur3e*, *ur5*, *ur5e*, *ur10*, *ur10e*, or *ur16e*).
238
-
-`robot_ip` (*mandatory*) - IP address by which the root can be reached.
239
-
-`use_fake_hardware` (default: *false*) - use simple hardware emulator from ros2_control.
240
-
Useful for testing launch files, descriptions, etc. See explanation below.
241
-
-`initial_positions` (default: dictionary with all joint values set to 0) - Allows passing a dictionary to set the initial joint values for the fake hardware from [ros2_control](http://control.ros.org/). It can also be set from a yaml file with the `load_yaml` commands as follows:
In this example, the **initial_positions_file** is a xacro argument that contains the absolute path to a yaml file. An example of the initial positions yaml file is as follows:
246
-
```
247
-
elbow_joint: 1.158
248
-
shoulder_lift_joint: -0.953
249
-
shoulder_pan_joint: 1.906
250
-
wrist_1_joint: -1.912
251
-
wrist_2_joint: -1.765
252
-
wrist_3_joint: 0.0
253
-
```
254
-
255
-
- `fake_sensor_commands` (default: *false*) - enables setting sensor values for the hardware emulators.
256
-
Useful for offline testing of controllers.
257
-
- `robot_controller` (default: *joint_trajectory_controller*) - controller for robot joints to be started.
258
-
Available controllers: *joint_trajectory_controller*, *scaled_joint_trajectory_controller*.
259
-
Note: *joint_state_broadcaster*, *speed_scaling_state_broadcaster*, *force_torque_sensor_broadcaster*, and *io_and_status_controller* will always start.
260
-
261
-
*HINT*: list all loaded controllers using `ros2 control list_controllers` command.
262
-
263
-
**NOTE**: The package can simulate hardware with the ros2_control `FakeSystem`. This emulator enables an environment for testing of "piping" of hardware and controllers, as well as testing robot's descriptions. For more details see [ros2_control documentation](https://ros-controls.github.io/control.ros.org/) for more details.
**NOTE**: Instead of using the global launch file for control stack, there are also prepeared launch files for each type of UR robots named. They accept the same arguments are the global one and are used by:
287
-
```
288
-
ros2 launch ur_robot_driver <ur_type>.launch.py
289
-
```
290
-
291
-
##### 2. Sending commands to controllers
292
-
293
-
Before running any commands, first check the controllers' state using `ros2 control list_controllers`.
294
-
295
-
- Send some goal to the Joint Trajectory Controller by using a demo node from [ros2_control_demos](https://github.com/ros-controls/ros2_control_demos) package by starting the following command in another terminal:
For using the driver with the URSim docker image please follow instructions [here](https://docs.ros.org/en/ros2_packages/rolling/api/ur_robot_driver/usage.html#usage-with-official-ur-simulator).
0 commit comments