Install WMX R2 Package#

With the Computer Setup complete (real-time kernel, ROS 2, and the WMX runtime in place), build the WMX R2 packages.

Configure the environment#

Add the following to your ~/.bashrc:

export ROS_DOMAIN_ID=70                         #use any number
export ROS_DISTRO=jazzy                         #support {jazzy, humble}
export RMW_IMPLEMENTATION=rmw_cyclonedds_cpp

source /opt/ros/$ROS_DISTRO/setup.bash
source ~/workspaces/movensys_ws/install/setup.bash

Apply the changes:

source ~/.bashrc

Install Required ROS2 Dependencies#

sudo apt update
# Install colcon and rosdep
sudo apt install python3-colcon-common-extensions python3-rosdep
# Install ROS2 dependencies for WMX R2 packages
sudo apt install -y ros-${ROS_DISTRO}-graph-msgs \
                    ros-${ROS_DISTRO}-moveit-ros \
                    ros-${ROS_DISTRO}-moveit-planners \
                    ros-${ROS_DISTRO}-moveit-plugins \
                    ros-${ROS_DISTRO}-moveit-setup-assistant \
                    ros-${ROS_DISTRO}-moveit-configs-utils \
                    ros-${ROS_DISTRO}-moveit-task-constructor-core \
                    ros-${ROS_DISTRO}-ros2-control \
                    ros-${ROS_DISTRO}-ros2-controllers \
                    ros-${ROS_DISTRO}-controller-manager \
                    ros-${ROS_DISTRO}-diff-drive-controller \
                    ros-${ROS_DISTRO}-joint-trajectory-controller \
                    ros-${ROS_DISTRO}-joint-state-broadcaster \
                    ros-${ROS_DISTRO}-xacro \
                    ros-${ROS_DISTRO}-topic-tools \
                    ros-${ROS_DISTRO}-rmw-cyclonedds-cpp

Create Workspace and Build#

Create workspace

mkdir -p ~/workspaces/movensys_ws/src
cd ~/workspaces/movensys_ws/src
git clone https://github.com/movensys/wmx-r2.git

Note

The manipulator and navigation descriptions are optional. If you only need motor control in a ROS 2 environment, you can safely ignore the missing movensys_manipulator_description and movensys_navigation_description dependency errors.

To resolve them, clone both repositories into your workspace:

cd ~/workspaces/movensys_ws/src
git clone https://github.com/movensys/movensys-manipulator.git
git clone https://github.com/movensys/movensys-navigation.git

Rosdep update

sudo rosdep init   # only needed once per system
rosdep update
cd ~/workspaces/movensys_ws
rosdep install --from-paths src --ignore-src -y

Build (wmx_r2_package depends on wmx_r2_message, so build the message package first):

cd ~/workspaces/movensys_ws

# Stage 1: build the message package first
colcon build --packages-select wmx_r2_message
source install/setup.bash

# Stage 2: build all remaining packages
colcon build
source install/setup.bash

Verify Installation#

ros2 pkg list | grep wmx && ros2 pkg executables wmx_r2_package

Expected:

wmx_r2_control
wmx_r2_message
wmx_r2_package
wmx_r2_package differential_drive_controller
wmx_r2_package gripper_controller
wmx_r2_package jog_keyboard_node
wmx_r2_package joint_state_broadcaster
wmx_r2_package joint_trajectory_controller
wmx_r2_package wmx_core_motion_node
wmx_r2_package wmx_engine_node
wmx_r2_package wmx_ethercat_node
wmx_r2_package wmx_io_node