Skip to content

Commit d33e294

Browse files
committed
Minor docs and launch arg tweaks
1 parent ea00c92 commit d33e294

File tree

4 files changed

+48
-30
lines changed

4 files changed

+48
-30
lines changed

README.md

Lines changed: 38 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,22 @@
1-
# `drt_ur_gui`
1+
# DRT Universal Robots GUI
2+
23
`drt_ur_gui` is a ROS 2 based user interface written in python that enables remote operation of Universal Robotics collaborative robotic arms.
3-
- Intended to be used with UR Arms configured for Remote Control
4+
The key delivered features:
5+
46
- Enables command of UR Arms with out Polyscope touchscreen pendant interaction
7+
- Intended to be used with UR Arms configured for Remote Control
58
- Useful in operations where Polyscope interaction is difficult or unsafe
69

7-
10+
![alt text](./drt_ur_gui.png "DRT UR GUI")
811

912
## Installation
10-
Installation of `drt_ur_gui` is similar to most ROS 2 packages.
13+
14+
This package can be installed in any normal `colcon` workspace:
15+
1116
1) Clone `drt_ur_gui` into your workspace `src/` directory
12-
2) Use rosdep install `drt_ur_gui`'s dependencies
17+
2) Use rosdep to install `drt_ur_gui`'s dependencies
1318
3) Build your workspace
19+
1420
```bash
1521
cd src/
1622
git clone git@js-er-code.jsc.nasa.gov:imetro/drt_ur_gui.git
@@ -19,24 +25,37 @@ cd ..
1925
colcon build
2026
```
2127

22-
## Use
23-
On it's own `drt_ur_gui` is configured to command up to two URs at once using launch files (though it can be used to command more)
24-
#### One arm use
25-
- `one_arm.launch.py` is used to run a singular UR arm
26-
- `ros2 launch drt_ur_gui one_arm.launch.py`
27-
- Configured by `config/one_arm.yaml`
28-
- YAML Configured Parameters:
29-
- `dashboard_client_name`: name of the UR `dashboard_client` node, must match or UR communication will fail
30-
- `program`: sets the default program to be loaded to the UR when `/dashboard_client/load_program` is selected
31-
- `window.name`: sets the name that appears in the bar at the top of the UI window
32-
- `window.stylesheet`: Qt format stylesheet, enables users to customize the look and feel of the UI
33-
- `logo_file_name`: the filepath to the logo to be displayed in the UI window
34-
#### Two arm use
28+
## Usage
29+
30+
On its own `drt_ur_gui` is configured to command up to two URs at once using launch files.
31+
However, more configuration files can be used to command any number of active UR arms.
32+
33+
### One arm use
34+
35+
```bash
36+
# To connect to a hardware UR dashboard client
37+
ros2 launch drt_ur_gui one_arm.launch.py
38+
39+
# To launch a simulated client for development and testing
40+
ros2 launch drt_ur_gui one_arm.launch.py mock_dashboard:=true
41+
```
42+
43+
- `one_arm.launch.py` is used to run a singular UR arm using the settings in `config/one_arm.yaml`:
44+
- `dashboard_client_name`: name of the UR `dashboard_client` node, must match or UR communication will fail
45+
- `program`: sets the default program to be loaded to the UR when `/dashboard_client/load_program` is selected
46+
- `window.name`: sets the name that appears in the bar at the top of the UI window
47+
- `window.stylesheet`: Qt format stylesheet, enables users to customize the look and feel of the UI
48+
- `logo_file_name`: the filepath to the logo to be displayed in the UI window
49+
50+
### Dual arm use
51+
3552
- `two_arm.launch.py` is used to run two URs at once, typically in a "humanoid" left-right configuration
3653
- `ros2 launch drt_ur_gui two_arm.launch.py`
3754
- Configured by `config/two_arm_left.yaml` and `config/two_arm_right.yaml`
3855
- Parameters exposed in the two arm configuration files are the same as the one arm configuration parameters explained above
39-
#### *N* arm use and use with other robots
56+
57+
### *N* arm use and use with other robots
58+
4059
- `drt_ur_gui` can command any number of UR arms in (probably) any robot setup
4160
- Every `drt_ur_gui` backend node communicates with an arm's respective `dashboard_client` node
4261
- The UI can be run from the command line without configuration files as long as the correct `dashboard_client` node name is provided as a parameter

drt_ur_gui.png

321 KB
Loading

launch/one_arm.launch.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -31,10 +31,10 @@ def generate_launch_description():
3131
declared_arguments = []
3232
declared_arguments.append(
3333
DeclareLaunchArgument(
34-
"use_fake_hardware",
34+
"mock_dashboard",
3535
default_value="false",
3636
choices=["true", "false"],
37-
description="Start robot with simulated hardware mirroring command to its states",
37+
description="Launch the mock dashboard node to simulated UR commands and state",
3838
)
3939
)
4040
declared_arguments.append(
@@ -43,14 +43,14 @@ def generate_launch_description():
4343
default_value="false",
4444
choices=["true", "false"],
4545
description="Force service timeouts by adding lag to the 'connect' service in the \
46-
mock Dashboard Client node (only works with use_fake_hardware=true)",
46+
mock Dashboard Client node (only works with mock_dashboard=true)",
4747
)
4848
)
4949
declared_arguments.append(
5050
DeclareLaunchArgument("ns", default_value="", description="Namespace for the hardware robot")
5151
)
5252

53-
use_fake_hardware = LaunchConfiguration("use_fake_hardware")
53+
mock_dashboard = LaunchConfiguration("mock_dashboard")
5454
connect_lag = LaunchConfiguration("connect_lag")
5555
ns = LaunchConfiguration("ns")
5656

@@ -74,7 +74,7 @@ def generate_launch_description():
7474
"connect_lag": connect_lag,
7575
}
7676
],
77-
condition=IfCondition(use_fake_hardware),
77+
condition=IfCondition(mock_dashboard),
7878
sigterm_timeout="0",
7979
)
8080

launch/two_arm.launch.py

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -30,21 +30,20 @@ def generate_launch_description():
3030
declared_arguments = []
3131
declared_arguments.append(
3232
DeclareLaunchArgument(
33-
"use_fake_hardware",
33+
"mock_dashboard",
3434
default_value="false",
3535
choices=["true", "false"],
36-
description="Start robot with simulated hardware mirroring command to its states",
36+
description="Launch the mock dashboard node to simulated UR commands and state",
3737
)
3838
)
3939
declared_arguments.append(
4040
DeclareLaunchArgument("ns", default_value="", description="Namespace for the hardware robot")
4141
)
4242

43-
use_fake_hardware = LaunchConfiguration("use_fake_hardware")
43+
mock_dashboard = LaunchConfiguration("mock_dashboard")
4444
ns = LaunchConfiguration("ns")
4545

4646
config_right = os.path.join(get_package_share_directory("drt_ur_gui"), "config", "two_arm_right.yaml")
47-
4847
config_left = os.path.join(get_package_share_directory("drt_ur_gui"), "config", "two_arm_left.yaml")
4948

5049
right_arm_nodes = [
@@ -63,7 +62,7 @@ def generate_launch_description():
6362
name="right_dashboard_client", # must match dashboard_client_name in config/two_arm_right.yaml
6463
output="screen",
6564
namespace=ns,
66-
condition=IfCondition(use_fake_hardware),
65+
condition=IfCondition(mock_dashboard),
6766
sigterm_timeout="0",
6867
),
6968
]
@@ -84,7 +83,7 @@ def generate_launch_description():
8483
name="left_dashboard_client",
8584
output="screen",
8685
namespace=ns,
87-
condition=IfCondition(use_fake_hardware),
86+
condition=IfCondition(mock_dashboard),
8887
sigterm_timeout="0",
8988
),
9089
]

0 commit comments

Comments
 (0)