/Universal_Robots_ROS2_Ignition_Simulation

Primary LanguagePythonBSD 3-Clause "New" or "Revised" LicenseBSD-3-Clause

Universal_Robots_ROS2_Ignition_Simulation

Example files and configurations for Ignition Gazebo simulation of Universal Robots' manipulators.

Build status

ROS2 Distro Branch Build status Released packages
Galactic galactic Galactic Binary Build
Galactic Semi-Binary Build
Galactic Source Build
ur_simulation_ignition
Rolling rolling Rolling Binary Build
Rolling Semi-Binary Build
Rolling Source Build
ur_simulation_ignition

Explanation of different build types

NOTE: There are three build stages checking current and future compatibility of the package.

  1. Binary builds - against released packages (main and testing) in ROS distributions. Shows that direct local build is possible.

    Uses repos file: src/Universal_Robots_ROS2_Ignition_Simulation/Universal_Robots_ROS2_Ignition_Simulation-not-released.<ros-distro>.repos

  2. Semi-binary builds - against released core ROS packages (main and testing), but the immediate dependencies are pulled from source. Shows that local build with dependencies is possible and if fails there we can expect that after the next package sync we will not be able to build.

    Uses repos file: src/Universal_Robots_ROS2_Ignition_Simulation/Universal_Robots_ROS2_Ignition_Simulation.repos

  3. Source build - also core ROS packages are build from source. It shows potential issues in the mid future.

Using the repository

Skip any of below steps is not applicable.

Setup ROS Workspace

  1. Create a colcon workspace:

    export COLCON_WS=~/workspace/ros_ws_foxy
    mkdir -p $COLCON_WS/src
    

    NOTE: Feel free to change ~/workspace/ros_ws_foxy to whatever absolute path you want.

    NOTE: Over time you will probably have multiple ROS workspaces, so it makes sense to them all in a subfolder. Also, it is good practice to put the ROS version in the name of the workspace, for different tests you could just add a suffix to the base name ros_ws_foxy.

  2. Download the required repositories and install package dependencies: NOTE: Current version is tested with Ignition version 5 ("edifice"). To get everything working properly set IGNITION_VERSION environment variable:

    export IGNITION_VERSION=edifice
    

    Then proceed with:

    cd $COLCON_WS
    git clone git@github.com:UniversalRobots/Universal_Robots_ROS2_Ignition_Simulation.git src/Universal_Robots_ROS2_Ignition_Simulation
    vcs import src --input src/Universal_Robots_ROS2_Ignition_Simulation/Universal_Robots_ROS2_Ignition_Simulation.<ros-distro>.repos
    rosdep install --ignore-src --from-paths src -y -r       # install also is there are unreleased packages
    cd ..
    

Configure and Build Workspace:

To configure and build workspace execute following commands:

cd $COLCON_WS
colcon build --symlink-install --mixin rel-with-deb-info compile-commands ccache

Running Executable

ros2 launch ur_simulation_ignition ur_sim_control.launch.py

Move robot using test script from ur_bringup package:

ros2 launch ur_bringup test_joint_trajectory_controller.launch.py

Example using MoveIt with simulated robot:

ros2 launch ur_simulation_ignition ur_sim_moveit.launch.py