Skip to content

Commit d678f5f

Browse files
Release/0.6.1 (#2)
1 parent 6e6342e commit d678f5f

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

65 files changed

+176355
-88
lines changed

.github/workflows/build.yml

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -36,8 +36,3 @@ jobs:
3636
flexiv_test_nodes
3737
skip-tests: true
3838
vcs-repo-file-url: https://raw.githubusercontent.com/ros2/ros2/${{ env.ROS_DISTRO }}/ros2.repos
39-
- name: Upload artifact
40-
uses: actions/upload-artifact@v1
41-
with:
42-
name: colcon-logs-${{ matrix.os }}
43-
path: ros_ws/log

README.md

Lines changed: 40 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -5,23 +5,15 @@
55

66
For ROS2 users to easily work with [RDK](https://github.com/flexivrobotics/flexiv_rdk), the APIs of RDK are wrapped into ROS packages in `flexiv_ros2`. Key functionalities like real-time joint torque and position control are supported, and the integration with `ros2_control` framework and MoveIt 2 is also implemented.
77

8-
## License
9-
10-
Flexiv RDK is licensed under the [Apache 2.0 license](https://www.apache.org/licenses/LICENSE-2.0.html).
11-
128
## References
139

1410
[Flexiv RDK main webpage](https://rdk.flexiv.com/) contains important information like RDK user manual and network setup.
1511

16-
## OS and distribution support
17-
18-
Supported OS:
12+
## Compatibility
1913

20-
- Linux: Ubuntu 20.04
21-
22-
Supported ROS2 distribution:
23-
24-
- [Foxy Fitzroy](https://docs.ros.org/en/foxy/index.html)
14+
| **Supported OS** | **Supported ROS2 distribution** |
15+
|---------------------------|---------------------------------------------------------|
16+
| Ubuntu 20.04 | [Foxy Fitzroy](https://docs.ros.org/en/foxy/index.html) |
2517

2618
## Getting Started
2719

@@ -33,21 +25,21 @@ This project was developed for ROS2 Foxy on Ubuntu 20.04. Other versions of Ubun
3325

3426
```bash
3527
sudo apt install -y \
36-
python3-colcon-common-extensions \
37-
python3-rosdep2
38-
libeigen3-dev \
39-
ros-foxy-xacro \
40-
ros-foxy-tinyxml2-vendor \
41-
ros-foxy-ros2-control \
42-
ros-foxy-realtime-tools \
43-
ros-foxy-control-toolbox \
44-
ros-foxy-moveit \
45-
ros-foxy-ros2-controllers \
46-
ros-foxy-test-msgs \
47-
ros-foxy-joint-state-publisher \
48-
ros-foxy-joint-state-publisher-gui \
49-
ros-foxy-robot-state-publisher \
50-
ros-foxy-rviz2
28+
python3-colcon-common-extensions \
29+
python3-rosdep2 \
30+
libeigen3-dev \
31+
ros-foxy-xacro \
32+
ros-foxy-tinyxml2-vendor \
33+
ros-foxy-ros2-control \
34+
ros-foxy-realtime-tools \
35+
ros-foxy-control-toolbox \
36+
ros-foxy-moveit \
37+
ros-foxy-ros2-controllers \
38+
ros-foxy-test-msgs \
39+
ros-foxy-joint-state-publisher \
40+
ros-foxy-joint-state-publisher-gui \
41+
ros-foxy-robot-state-publisher \
42+
ros-foxy-rviz2
5143
```
5244

5345
3. Setup workspace:
@@ -88,18 +80,30 @@ source ~/flexiv_ros2_ws/install/setup.bash
8880

8981
**NOTE**: the instruction below is only a quick reference, see the [Flexiv ROS2 Documentation](https://rdk.flexiv.com/manual/ros2_packages.html) for more information.
9082

91-
*(Details about the launch file can be found in [flexiv_bringup](/flexiv_bringup))*
83+
The prerequisites of using ROS2 with Flexiv Rizon robot are [enable RDK on the robot server](https://rdk.flexiv.com/manual/getting_started.html#enable-rdk-on-robot-server) and [establish connection](https://rdk.flexiv.com/manual/getting_started.html#establish-connection) between the workstation PC and the robot.
84+
85+
The main launch file to start the robot driver is the `rizon.launch.py` - it loads and starts the robot hardware, joint state broadcaster, controllers and opens RViZ. The arguments for the launch file are as follows:
9286

93-
1. Start robot, simulator or fake hardware:
87+
- `robot_ip` (*required*) - IP address of the robot server (remote).
88+
- `local_ip` (*required*) - IP address of the workstation PC (local).
89+
- `rizon_type` (default: *rizon4*) - type of the Flexiv Rizon robot.
90+
- `use_fake_hardware` (default: *false*) - starts `FakeSystem` instead of real hardware. This is a simple simulation that mimics joint command to their states.
91+
- `start_rviz` (deafult: *true*) - starts RViz automatically with the launch file.
92+
- `fake_sensor_commands` (default: *false*) - enables fake command interfaces for sensors used for simulations. Used only if `use_fake_hardware` parameter is true.
93+
- `robot_controller` (default: *rizon_arm_controller*) - robot controller to start. Available controllers: *forward_position_controller*, *rizon_arm_controller*, *joint_impedance_controller*.
94+
95+
*(Details about other launch files can be found in [`flexiv_bringup`](/flexiv_bringup))*
96+
97+
### Example Commands
98+
99+
1. Start robot, or fake hardware:
94100

95101
- Test with real robot:
96102

97103
```bash
98-
ros2 launch flexiv_bringup rizon.launch.py robot_ip:=<RobotIP> local_ip:=<LocalIP>
104+
ros2 launch flexiv_bringup rizon.launch.py robot_ip:=[robot_ip] local_ip:=[local_ip]
99105
```
100106

101-
The launch file loads and starts the robot hardware, controllers and opens RViZ. Stop RViZ from auto-start use `start_rviz:=false` launch file argument.
102-
103107
**NOTE**: Getting the following output in terminal is OK: `Warning: Invalid frame ID "link1" passed to canTransform argument source_frame - frame does not exist`. This happens because `joint_state_broadcaster` node need some time to start.
104108

105109
- Test with fake hardware (`ros2_control` capability):
@@ -108,22 +112,20 @@ source ~/flexiv_ros2_ws/install/setup.bash
108112
ros2 launch flexiv_bringup rizon.launch.py robot_ip:=dont-care local_ip:=dont-care use_fake_hardware:=true
109113
```
110114

111-
`use_fake_hardware` argument starts `FakeSystem` instead of real hardware. This is a simple simulation that mimics joint command to their states.
112-
113115
2. Publish commands to controllers
114116

115-
- The default controller in the launch file is `rizon_arm_controller`. To send the goal position to the controller by using the node from `flexiv_test_nodes`, start the following command in a new terminal:
117+
- To send the goal position to the controller by using the node from `flexiv_test_nodes`, start the following command in a new terminal:
116118

117119
```bash
118120
ros2 launch flexiv_bringup test_joint_trajectory_controller.launch.py
119121
```
120122

121-
You can change the joint position goals in `flexiv_bringup/config/joint_trajectory_position_publisher.yaml`.
123+
The joint position goals can be changed in `flexiv_bringup/config/joint_trajectory_position_publisher.yaml`.
122124

123125
- To test another controller, define it using the `robot_controller` launch argument, for example the `joint_impedance_controller`:
124126

125127
```bash
126-
ros2 launch flexiv_bringup rizon.launch.py robot_ip:=<RobotIP> local_ip:=<LocalIP> robot_controller:=joint_impedance_controller
128+
ros2 launch flexiv_bringup rizon.launch.py robot_ip:=[robot_ip] local_ip:=[local_ip] robot_controller:=joint_impedance_controller
127129
```
128130

129131
**NOTE**: The command starts the robot in the joint torque mode. In this mode, gravity and friction are compensated **only** for the robot **without** any attached objects (e.g. the gripper, camera).
@@ -143,7 +145,7 @@ source ~/flexiv_ros2_ws/install/setup.bash
143145
You can also run the MoveIt example and use the `MotionPlanning` plugin in RViZ to start planning:
144146

145147
```bash
146-
ros2 launch flexiv_bringup rizon_moveit.launch.py robot_ip:=<RobotIP> local_ip:=<LocalIP>
148+
ros2 launch flexiv_bringup rizon_moveit.launch.py robot_ip:=[robot_ip] local_ip:=[local_ip]
147149
```
148150

149151
Test with fake hardware:

flexiv_bringup/launch/rizon.launch.py

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,15 @@ def generate_launch_description():
1515
# Declare arguments
1616
declared_arguments = []
1717

18+
declared_arguments.append(
19+
DeclareLaunchArgument(
20+
"rizon_type",
21+
description="Type of the Flexiv Rizon robot.",
22+
default_value="rizon4",
23+
choices=["rizon4", "rizon4s"],
24+
)
25+
)
26+
1827
declared_arguments.append(
1928
DeclareLaunchArgument(
2029
"robot_ip",
@@ -71,6 +80,7 @@ def generate_launch_description():
7180
)
7281

7382
# Initialize Arguments
83+
rizon_type = LaunchConfiguration("rizon_type")
7484
robot_ip = LaunchConfiguration("robot_ip")
7585
local_ip = LaunchConfiguration("local_ip")
7686
start_rviz = LaunchConfiguration("start_rviz")
@@ -85,7 +95,7 @@ def generate_launch_description():
8595
PathJoinSubstitution([FindExecutable(name="xacro")]),
8696
" ",
8797
PathJoinSubstitution(
88-
[FindPackageShare("flexiv_description"), "urdf", "rizon4.urdf.xacro"]
98+
[FindPackageShare("flexiv_description"), "urdf", "rizon.urdf.xacro"]
8999
),
90100
" ",
91101
"robot_ip:=",
@@ -94,6 +104,9 @@ def generate_launch_description():
94104
"local_ip:=",
95105
local_ip,
96106
" ",
107+
"rizon_type:=",
108+
rizon_type,
109+
" ",
97110
"use_fake_hardware:=",
98111
use_fake_hardware,
99112
" ",

flexiv_bringup/launch/rizon_moveit.launch.py

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,15 @@ def generate_launch_description():
2727
# Declare command-line arguments
2828
declared_arguments = []
2929

30+
declared_arguments.append(
31+
DeclareLaunchArgument(
32+
"rizon_type",
33+
description="Type of the Flexiv Rizon robot.",
34+
default_value="rizon4",
35+
choices=["rizon4", "rizon4s"],
36+
)
37+
)
38+
3039
declared_arguments.append(
3140
DeclareLaunchArgument(
3241
"robot_ip",
@@ -66,6 +75,7 @@ def generate_launch_description():
6675
)
6776
)
6877

78+
rizon_type = LaunchConfiguration("rizon_type")
6979
robot_ip = LaunchConfiguration("robot_ip")
7080
local_ip = LaunchConfiguration("local_ip")
7181
use_fake_hardware = LaunchConfiguration("use_fake_hardware")
@@ -74,7 +84,7 @@ def generate_launch_description():
7484

7585
# Get URDF via xacro
7686
flexiv_urdf_xacro = os.path.join(
77-
get_package_share_directory("flexiv_description"), "urdf", "rizon4.urdf.xacro"
87+
get_package_share_directory("flexiv_description"), "urdf", "rizon.urdf.xacro"
7888
)
7989

8090
robot_description_content = Command(
@@ -89,6 +99,9 @@ def generate_launch_description():
8999
"local_ip:=",
90100
local_ip,
91101
" ",
102+
"rizon_type:=",
103+
rizon_type,
104+
" ",
92105
"use_fake_hardware:=",
93106
use_fake_hardware,
94107
" ",
@@ -100,7 +113,7 @@ def generate_launch_description():
100113

101114
# MoveIt configuration
102115
flexiv_srdf_xacro = os.path.join(
103-
get_package_share_directory("flexiv_moveit_config"), "srdf", "rizon4.srdf.xacro"
116+
get_package_share_directory("flexiv_moveit_config"), "srdf", "rizon.srdf.xacro"
104117
)
105118
robot_description_semantic_content = Command(
106119
[
@@ -109,7 +122,7 @@ def generate_launch_description():
109122
flexiv_srdf_xacro,
110123
" ",
111124
"name:=",
112-
"rizon4",
125+
"rizon",
113126
]
114127
)
115128

flexiv_bringup/package.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
<?xml-model href="http://download.ros.org/schema/package_format3.xsd" schematypens="http://www.w3.org/2001/XMLSchema"?>
33
<package format="3">
44
<name>flexiv_bringup</name>
5-
<version>0.6.0</version>
5+
<version>0.6.1</version>
66
<description>Package with launch files and run-time configurations for Flexiv robots with `ros2_control`</description>
77
<maintainer email="[email protected]">Mun Seng Phoon</maintainer>
88
<license>Apache License 2.0</license>

flexiv_controllers/package.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
<?xml-model href="http://download.ros.org/schema/package_format3.xsd" schematypens="http://www.w3.org/2001/XMLSchema"?>
33
<package format="3">
44
<name>flexiv_controllers</name>
5-
<version>0.6.0</version>
5+
<version>0.6.1</version>
66
<description>Flexiv custom ros2 controllers</description>
77
<maintainer email="[email protected]">Mun Seng Phoon</maintainer>
88
<license>Apache License 2.0</license>

flexiv_description/launch/view_rizon.launch.py

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313

1414
def generate_launch_description():
1515
pkg_share = FindPackageShare("flexiv_description")
16+
rizon_type = LaunchConfiguration("rizon_type")
1617
default_rviz_config_path = PathJoinSubstitution(
1718
[pkg_share, "rviz", "view_rizon.rviz"]
1819
)
@@ -21,8 +22,11 @@ def generate_launch_description():
2122
PathJoinSubstitution([FindExecutable(name="xacro")]),
2223
" ",
2324
PathJoinSubstitution(
24-
[FindPackageShare("flexiv_description"), "urdf", "rizon4.urdf.xacro"]
25+
[FindPackageShare("flexiv_description"), "urdf", "rizon.urdf.xacro"]
2526
),
27+
" ",
28+
"rizon_type:=",
29+
rizon_type,
2630
]
2731
)
2832

@@ -60,6 +64,12 @@ def generate_launch_description():
6064

6165
return LaunchDescription(
6266
[
67+
DeclareLaunchArgument(
68+
name="rizon_type",
69+
default_value="rizon4",
70+
description="Type of the Flexiv Rizon robot.",
71+
choices=["rizon4", "rizon4s"],
72+
),
6373
DeclareLaunchArgument(
6474
name="gui",
6575
default_value="False",
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
# Blender MTL File: 'None'
2+
# Material Count: 1
3+
4+
newmtl robot
5+
Ns 15.686281
6+
Ka 0.150000 0.150000 0.150000
7+
Kd 0.487364 0.487364 0.527718
8+
Ks 0.600013 0.600013 0.600013
9+
Ke 0.0 0.0 0.0
10+
Ni 1.000000
11+
d 1.000000
12+
illum 2

0 commit comments

Comments
 (0)