Skip to content
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
40 changes: 12 additions & 28 deletions .github/workflows/humble-binary-build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@ on:
pull_request:
branches:
- humble
- release/humble-*

jobs:
humble_binary:
Expand All @@ -27,50 +26,35 @@ jobs:
- name: Install dependencies
run: |
sudo apt-get update && sudo apt-get install -y \
wget \
libeigen3-dev \
ros-humble-xacro \
ros-humble-tinyxml2-vendor \
ros-humble-ros2-control \
ros-humble-realtime-tools \
ros-humble-control-toolbox \
ros-humble-hardware-interface \
ros-humble-joint-state-publisher \
ros-humble-joint-state-publisher-gui \
ros-humble-moveit \
ros-humble-realtime-tools \
ros-humble-robot-state-publisher \
ros-humble-ros2-control \
ros-humble-ros2-controllers \
ros-humble-test-msgs \
ros-humble-tinyxml2-vendor \
ros-humble-xacro
ros-humble-joint-state-publisher \
ros-humble-joint-state-publisher-gui \
ros-humble-robot-state-publisher
- name: Build and install flexiv_rdk
shell: bash
run: |
git clone https://github.com/flexivrobotics/flexiv_rdk.git -b release/v1.9
cd flexiv_rdk/thirdparty
source /opt/ros/humble/setup.bash
bash build_and_install_dependencies_not_in_ros2.sh ~/flexiv_install
cd ..
mkdir -p build && cd build
cmake .. -DCMAKE_INSTALL_PREFIX=~/flexiv_install
cmake --build . --target install --config Release
- name: Build and install flexiv_drdk
shell: bash
run: |
git clone https://github.com/flexivrobotics/flexiv_drdk.git -b release/v1.2
cd flexiv_drdk/thirdparty
source /opt/ros/humble/setup.bash
bash build_and_install_dependencies.sh ~/flexiv_install
cd flexiv_hardware/rdk/thirdparty
bash build_and_install_dependencies.sh ~/rdk_install
cd ..
mkdir -p build && cd build
cmake .. -DCMAKE_INSTALL_PREFIX=~/flexiv_install
cmake .. -DCMAKE_INSTALL_PREFIX=~/rdk_install
cmake --build . --target install --config Release
- name: Build and run tests
id: action-ros-ci
uses: ros-tooling/action-ros-ci@v0.4
with:
target-ros2-distro: ${{ env.ROS_DISTRO }}
vcs-repo-file-url: ${{ github.workspace }}/flexiv.humble.repos
package-name: |
flexiv_bringup
flexiv_description
flexiv_gripper
flexiv_hardware
flexiv_moveit_config
Expand All @@ -82,7 +66,7 @@ jobs:
{
"build": {
"cmake-args": [
"-DCMAKE_PREFIX_PATH=~/flexiv_install"
"-DCMAKE_PREFIX_PATH=~/rdk_install"
]
}
}
Expand Down
4 changes: 4 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
[submodule "flexiv_hardware/rdk"]
path = flexiv_hardware/rdk
url = https://github.com/flexivrobotics/flexiv_rdk
branch = main
10 changes: 0 additions & 10 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -46,13 +46,3 @@ repos:
language: system
files: \.(c|cc|cxx|cpp|cu|h|hh|hpp|hxx|java|js|m|proto)$
args: ["-fallback-style=none"]

- repo: local
hooks:
- id: ament_lint_cmake
name: ament_lint_cmake
description: Check format of CMakeLists.txt files.
stages: [pre-commit]
entry: ament_lint_cmake
language: system
files: CMakeLists.txt$
120 changes: 24 additions & 96 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -36,54 +36,54 @@ This project was developed for ROS 2 Foxy (Ubuntu 20.04), Humble (Ubuntu 22.04)
python3-colcon-common-extensions \
python3-rosdep2 \
libeigen3-dev \
wget \
ros-humble-xacro \
ros-humble-tinyxml2-vendor \
ros-humble-ros2-control \
ros-humble-realtime-tools \
ros-humble-control-toolbox \
ros-humble-hardware-interface \
ros-humble-joint-state-publisher \
ros-humble-joint-state-publisher-gui \
ros-humble-moveit \
ros-humble-realtime-tools \
ros-humble-robot-state-publisher \
ros-humble-ros2-control \
ros-humble-ros2-controllers \
ros-humble-rviz2 \
ros-humble-test-msgs \
ros-humble-tinyxml2-vendor \
ros-humble-xacro \
ros-humble-joint-state-publisher \
ros-humble-joint-state-publisher-gui \
ros-humble-robot-state-publisher \
ros-humble-rviz2
```

3. Setup workspace:

```bash
mkdir -p ~/flexiv_ros2_ws/src
cd ~/flexiv_ros2_ws/src
git clone https://github.com/flexivrobotics/flexiv_ros2.git -b humble
git clone https://github.com/flexivrobotics/flexiv_ros2.git
cd flexiv_ros2/
git submodule update --init --recursive
```

4. Install dependencies:

```bash
cd ~/flexiv_ros2_ws
vcs import src < src/flexiv_ros2/flexiv.humble.repos --recursive --skip-existing
touch src/flexiv_rdk/COLCON_IGNORE
rosdep update
rosdep install --from-paths src --ignore-src --rosdistro humble -r -y
```

5. Choose a directory for installing `flexiv_rdk` library and all its dependencies. For example, a new folder named `flexiv_install` under the home directory: `~/flexiv_install`. Compile and install to the installation directory:
> [!NOTE]
> Skip step 5 and 6 if you have compile and install [flexiv_rdk](https://github.com/flexivrobotics/flexiv_rdk).

5. Choose a directory for installing `flexiv_rdk` library and all its dependencies. For example, a new folder named `rdk_install` under the home directory: `~/rdk_install`. Compile and install to the installation directory:

```bash
cd ~/flexiv_ros2_ws/src/flexiv_rdk/thirdparty
source /opt/ros/humble/setup.bash
bash build_and_install_dependencies_not_in_ros2.sh ~/flexiv_install
cd ~/flexiv_ros2_ws/src/flexiv_ros2/flexiv_hardware/rdk/thirdparty
bash build_and_install_dependencies.sh ~/rdk_install
```

6. Configure and install `flexiv_rdk`:

```bash
cd ~/flexiv_ros2_ws/src/flexiv_rdk
rm -rf build && mkdir build && cd build
cmake .. -DCMAKE_INSTALL_PREFIX=~/flexiv_install
cd ~/flexiv_ros2_ws/src/flexiv_ros2/flexiv_hardware/rdk
mkdir build && cd build
cmake .. -DCMAKE_INSTALL_PREFIX=~/rdk_install
cmake --build . --target install --config Release
```

Expand All @@ -92,49 +92,12 @@ This project was developed for ROS 2 Foxy (Ubuntu 20.04), Humble (Ubuntu 22.04)
```bash
cd ~/flexiv_ros2_ws
source /opt/ros/humble/setup.bash
colcon build --symlink-install --cmake-args -DCMAKE_PREFIX_PATH=~/flexiv_install
colcon build --symlink-install --cmake-args -DCMAKE_PREFIX_PATH=~/rdk_install
source install/setup.bash
```

### Flexiv DRDK Installation (Optional)

If you are using a Flexiv dual robot setup, you can install `flexiv_drdk` as well.

1. Clone `flexiv_drdk` into the workspace source directory and ignore it from colcon build:

```bash
cd ~/flexiv_ros2_ws/src
git clone https://github.com/flexivrobotics/flexiv_drdk.git -b release/v1.2
touch flexiv_drdk/COLCON_IGNORE
```

2. Install dependencies and build `flexiv_drdk` by choosing an installation directory, e.g., `~/flexiv_install`:

```bash
cd ~/flexiv_ros2_ws/src/flexiv_drdk/thirdparty
source /opt/ros/humble/setup.bash
bash build_and_install_dependencies.sh ~/flexiv_install
```

3. Configure and install `flexiv_drdk`:

```bash
cd ~/flexiv_ros2_ws/src/flexiv_drdk
rm -rf build && mkdir build && cd build
cmake .. -DCMAKE_INSTALL_PREFIX=~/flexiv_install
cmake --build . --target install --config Release
```

4. Rebuild the workspace with both RDK and DRDK installation paths:

```bash
cd ~/flexiv_ros2_ws
colcon build --symlink-install --cmake-args -DCMAKE_PREFIX_PATH=~/flexiv_install
```

> [!IMPORTANT]
> [!NOTE]
> Remember to source the setup file and the workspace whenever a new terminal is opened:
>
> ```bash
> source /opt/ros/humble/setup.bash
> source ~/flexiv_ros2_ws/install/setup.bash
Expand All @@ -154,15 +117,11 @@ The main launch file to start the robot driver is the `rizon.launch.py` - it loa
- `rdk_control_mode` (default: *joint_position*) - Flexiv RDK control mode for ROS 2 joint position and velocity interfaces. Options: *joint_position* or *joint_impedance*
- `load_gripper` (default: *false*) - loads the Flexiv Grav gripper as the end-effector of the robot and the gripper control node.
- `use_fake_hardware` (default: *false*) - starts `FakeSystem` instead of real hardware. This is a simple simulation that mimics joint command to their states.
- `start_rviz` (default: *true*) - starts RViz automatically with the launch file.
- `start_rviz` (deafult: *true*) - starts RViz automatically with the launch file.
- `fake_sensor_commands` (default: *false*) - enables fake command interfaces for sensors used for simulations. Used only if `use_fake_hardware` parameter is true.
- `robot_controller` (default: *rizon_arm_controller*) - robot controller to start. Available controllers: *rizon_arm_controller*

There are extra or different launch arguments for Flexiv AICO1, AICO2, and dual robot setups. *(Details about other launch files can be found in [`flexiv_bringup`](/flexiv_bringup))*

- `robot_sn_left` (*required for dual robot setup*) - Serial number of the left robot to connect to. Remove any space, for example: Rizon4-123456
- `robot_sn_right` (*required for dual robot setup*) - Serial number of the right robot to connect to. Remove any space, for example: Rizon4R-654321
- `external_axis_type` (default: *AICO1-4-V1*) - type of the Flexiv AICO1 robot platform. Options: *AICO1-4-V1* or *AICO1-4-V2*
*(Details about other launch files can be found in [`flexiv_bringup`](/flexiv_bringup))*

### Example Commands

Expand Down Expand Up @@ -193,20 +152,6 @@ There are extra or different launch arguments for Flexiv AICO1, AICO2, and dual

The joint position goals can be changed in `flexiv_bringup/config/joint_trajectory_position_publisher.yaml`

#### AICO1 and AICO2 Example Commands

**AICO1-4** robot:

```bash
ros2 launch flexiv_bringup aico1.launch.py robot_sn:=[robot_sn] rizon_type:=Rizon4 external_axis_type:=AICO1-4-V1
```

**AICO2-4** robot:

```bash
ros2 launch flexiv_bringup aico2.launch.py rizon_type:=Rizon4 robot_sn_left:=[robot_sn_left] robot_sn_right:=[robot_sn_right] external_axis_type:=AICO2-4-V1
```

### Using MoveIt

You can also run the MoveIt example and use the `MotionPlanning` plugin in RViZ to start planning:
Expand All @@ -221,23 +166,6 @@ Test with fake hardware:
ros2 launch flexiv_bringup rizon_moveit.launch.py robot_sn:=Rizon4-123456 use_fake_hardware:=true
```

With dual robot setup:

```bash
ros2 launch flexiv_bringup rizon_dual_moveit.launch.py robot_sn_left:=[robot_sn_left] robot_sn_right:=[robot_sn_right]
```

With AICO1-4 setup:

```bash
ros2 launch flexiv_bringup aico1_moveit.launch.py robot_sn:=[robot_sn] rizon_type:=Rizon4 external_axis_type:=AICO1-4-V1
```

With AICO2-4 setup:

```bash
ros2 launch flexiv_bringup aico2_moveit.launch.py rizon_type:=Rizon4 robot_sn_left:=[robot_sn_left] robot_sn_right:=[robot_sn_right] external_axis_type:=AICO2-4-V1

### Robot States

The robot driver (`rizon.launch.py`) publishes the following feedback states to the respective ROS topics:
Expand Down
9 changes: 0 additions & 9 deletions flexiv.humble.repos

This file was deleted.

9 changes: 0 additions & 9 deletions flexiv_bringup/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,13 +6,4 @@ This package contains launch files: the main driver launcher, the MoveIt launch
- `rizon_moveit.launch.py` - runs MoveIt together with the main driver. The controller for robot joints started in this launch file is *rizon_arm_controller*.
- `test_joint_trajectory_controller.launch` - sends joint trajectory goals to the *rizon_arm_controller*.

There are also launch files for other robot setups:

- `aico1.launch.py` - the main launcher for Flexiv AICO1 robot.
- `aico1_moveit.launch.py` - runs MoveIt together with the main driver for Flexiv AICO1 robot.
- `aico2.launch.py` - the main launcher for Flexiv AICO2 robot.
- `aico2_moveit.launch.py` - runs MoveIt together with the main driver for Flexiv AICO2 robot.
- `rizon_dual.launch.py` - the main launcher for Flexiv Rizon dual robot setup.
- `rizon_dual_moveit.launch.py` - runs MoveIt together with the main driver for Flexiv Rizon dual robot setup.

**NOTE**: The example launch files run the demo nodes from the `flexiv_test_nodes` package, with the parameters defined in `/config`.
38 changes: 0 additions & 38 deletions flexiv_bringup/config/aico1_4_v1_controllers.yaml

This file was deleted.

40 changes: 0 additions & 40 deletions flexiv_bringup/config/aico1_4_v2_controllers.yaml

This file was deleted.

Loading