Flexiv Robots#
Set Up Flexiv Robot#
Complete the hardware setup and boot up the robot by following the Set Up the Robot guide in the Flexiv RDK documentation.
Connect the UI tablet (teach pendant) and verify you can enable the robot using Flexiv Elements.
Activate the RDK Server on the robot.
Enter Remote mode by setting the robot to
Auto (Remote)mode on the teach pendant.Connect the user computer to the same network as the robot and verify connectivity.
Note the robot serial number (e.g.,
Rizon4s-062839). This is required for all launch commands and should be substituted for<ROBOT_SN>in the instructions below.
Note
The following Flexiv Rizon models have been tested with Isaac ROS Manipulation:
Rizon 4s with Grav gripper (Flexiv-GN01)
The following software versions have been tested:
Flexiv Software Package: v3.10
Flexiv Elements Studio: v3.10
Robot Control App: v3.10
Arm Driver: 2.13.0
Other versions may work but have not been verified.
Build Flexiv Drivers from Source#
This section describes how to build the Flexiv ROS 2 robot driver from source. The flexiv_ros2 packages provide hardware interface, gripper control, streaming position controller, and MoveIt configuration for Flexiv Rizon robots.
Clone the NVIDIA Isaac ROS fork of
flexiv_ros2under${ISAAC_ROS_WS}/src:cd ${ISAAC_ROS_WS}/src && \ git clone -b nvidia/jazzy-controller-updates https://github.com/NVIDIA-ISAAC-ROS/flexiv_ros2
Initialize submodules:
cd ${ISAAC_ROS_WS}/src/flexiv_ros2 && \ git submodule update --init --recursive
Pin the Fast-DDS packages to versions that are ABI-compatible with the prebuilt
flexiv_rdkv1.8 binary:cd /tmp ARCH=$(dpkg --print-architecture) BASE=https://snapshots.ros.org/jazzy/2026-01-28/ubuntu/pool/main/r wget --no-check-certificate \ "${BASE}/ros-jazzy-fastcdr/ros-jazzy-fastcdr_2.2.5-1noble.20260121.192454_${ARCH}.deb" \ "${BASE}/ros-jazzy-fastrtps/ros-jazzy-fastrtps_2.14.5-2noble.20260121.193044_${ARCH}.deb" ls -l ros-jazzy-fastcdr_*.deb ros-jazzy-fastrtps_*.deb # confirm both files exist sudo apt-mark unhold ros-jazzy-fastcdr ros-jazzy-fastrtps sudo apt-get install -y --allow-downgrades --no-install-recommends \ ./ros-jazzy-fastcdr_2.2.5-1noble.20260121.192454_${ARCH}.deb \ ./ros-jazzy-fastrtps_2.14.5-2noble.20260121.193044_${ARCH}.deb sudo apt-mark hold ros-jazzy-fastcdr ros-jazzy-fastrtps
Import
ros2_controlandros2_controllersat ABI-compatible git tags so they are built from source alongside the driver:sudo apt-get install -y python3-vcstool cd ${ISAAC_ROS_WS} && \ vcs import src < src/flexiv_ros2/flexiv.repos bash ${ISAAC_ROS_WS}/src/flexiv_ros2/scripts/apply_source_fixes.sh
Install the ROS dependencies (including those of the source-built
ros2_controlandros2_controllers):cd ${ISAAC_ROS_WS} && \ rosdep update && \ rosdep install --from-paths src/flexiv_ros2 src/third_party/ros2_control src/third_party/ros2_controllers --ignore-src --rosdistro jazzy -r -y
Install Cyclone DDS and set it as the active RMW implementation:
sudo apt-get install -y ros-jazzy-rmw-cyclonedds-cpp export RMW_IMPLEMENTATION=rmw_cyclonedds_cpp
Build and install the
flexiv_rdklibrary:cd ${ISAAC_ROS_WS}/src/flexiv_ros2/flexiv_hardware/rdk && \ mkdir -p build && cd build && \ cmake .. -DCMAKE_INSTALL_PREFIX=${ISAAC_ROS_WS}/rdk_install -DRDK_SUPPORT_ROS2_JAZZY=ON && \ make install
Build the Flexiv ROS 2 packages:
cd ${ISAAC_ROS_WS} && \ colcon build --symlink-install \ --cmake-args -DCMAKE_PREFIX_PATH=${ISAAC_ROS_WS}/rdk_install -DCMAKE_BUILD_TYPE=Release \ --packages-up-to-regex "flexiv_*" gpio_controller streaming_position_controller && \ source install/setup.bash
Note
Ensure the Flexiv robot has RDK enabled on the robot server and that the workstation PC can reach the robot over the network. Refer to the Flexiv RDK documentation for network setup details.
Configure Grav Gripper#
The Flexiv Grav gripper is automatically initialized when launching the Flexiv driver with the load_gripper:=true argument.
Verify the gripper is physically attached to the Flexiv Rizon robot.
When launching the Flexiv driver, include the gripper:
ros2 launch flexiv_bringup rizon.launch.py robot_sn:=<ROBOT_SN> load_gripper:=true
Replace
<ROBOT_SN>with your robot’s serial number.
Troubleshooting#
The Flexiv driver fails to connect to the robot
Verify that the robot is in
Auto (Remote)mode on the teach pendant.Ensure the workstation and robot are on the same subnet and the robot can be pinged from the workstation.
Verify the robot serial number is correct and does not contain spaces (e.g.,
Rizon4s-062839).
The gripper does not respond
Ensure the gripper is physically connected and the gripper is lighting up.
Check that the gripper model name matches your hardware. The default is
Flexiv-GN01(Grav gripper).
Joint controller errors during gear insertion
Ensure you are using
rdk_control_mode:=joint_impedancewhen running the gear insertion workflow. The impedance mode provides the compliant behavior required for contact-rich tasks.If you see overshooting or unstable behavior, verify that the
action_scale_joint_spaceinisaac_ros_assets/isaac_ros_manipulation_dnn_policy/flexiv/params/env.yamlis set to0.00625for all joints.