Intel® Robot SDK

Intel® Robot SDK is the tool to generate Robotics Software Development Kit (SDK) designed for autonomous devices, including the ROS2 core and capabilities packages like perception, planning, control driver etc. It provides flexible build and runtime configurations to enable several different use cases to be allocated to chosen hardware components. For example, one can use the GPU or VPU to accelerate CNN models.

After build, the SDK is installed on Ubuntu18.04 with below items on development machine for further development.

  • ROS2 core

  • ROS2 Object Analytics(OA) with RealSense™ and Movidius NCS2

  • ROS2 OpenVINO for people detection

  • Gazebo 9 with Gazebo-ros2 simulator

  • ROS2 navigation

  • rviz2

  • ROS2 tutorial for Intel® components

Robot support

  • Turtlebot 3 Waffle

Hardware Requirements

  • An x86_64 computer running Ubuntu 18.04 or ADLink Neuron Board

  • Intel® Movidius Neural Compute Stick 2

  • Intel® RealSense™ D400 Series

Software Requirements

  • We support Ubuntu Linux 18.04(Bionic Beaver) on 64-bit. We do not support Mac OS X and Windows.

  • Robot SDK

Installation Steps

  • Automated installation
git clone https://github.com/intel/robot_sdk.git
cd robot_sdk
./products/tb3/tb3_install.sh
  • Manual installation
# Build ROS2 packages
./robot_sdk.sh product tb3                   # select tb3 as target product
./robot_sdk.sh sync-src all --force          # sync all ROS2 source code to sdk_ws folder, clean folder with "--force"
./robot_sdk.sh build all --include-deps --cmake-args -DCMAKE_BUILD_TYPE=Release
                                             # build all ROS2 packges and build dependences with "--include-deps"
./robot_sdk.sh install                       # install generated ROS2 workspace to /opt/robot_sdk/ folder

# Remove ROS2 packages
./robot_sdk.sh clean                         # remove build folders.
./robot_sdk.sh uninstall                     # uninstall generated ROS2 workspace from /opt/robot_sdk and delete sdk_ws build folder

The build workspace overlay will be like this:

.
└── sdk_ws
    ├── core_ws # ROS2 core packages from https://github.com/intel/robot_sdk/tree/master/products/tb3/core/ros2.repos.
    │   ├── build
    │   ├── install
    │   └── src
    ├── device_ws # Turtlebot3 packages from https://github.com/intel/robot_sdk/tree/master/products/tb3/device/repos/turtlebot3.repos.
    │   ├── build
    │   ├── install
    │   └── src
    └── modules_ws # Intel® packages from https://github.com/intel/robot_sdk/tree/master/products/tb3/repos/intel.repos.
        ├── build
        ├── install
        └── src

Develop ROS 2 packages

After Robot SDK build environment installed, you could source setup.bash and develop ROS 2 package.

  • Edit installed component (navigation2 for example)
cd ~/robot_sdk
source /opt/robot_sdk/robot_sdk_setup.bash
cd sdk_ws/device_ws
colcon build --symlink-install --base-paths src/navigation2
source install/local_setup.bash
  • Create new project
#First source the robot sdk setup, then create a workspace for your new project, for example:
source /opt/robot_sdk/robot_sdk_setup.bash
mkdir ~/ros2_ws
#Then add your repo to the workspace:
mkdir ~/ros2/src/my_repo

Using colcon to build a custom package.

Report Issue

If run into any issue of SDK, feel free to report issue in this project.

Known Issues

  • Multi-robot will impact each other while run in same network, ROS2 recommends to use "domain ID" but in this system, it might break the communication between NUC and OpenCR board. Make sure "domain ID" should be unset in TB3 environment. Issue reported to eProsima/Micro-XRCE-DDS-Agent/issues/66.

  • Turtlebot3 not work while Micro-XRCE-DDS-Agent build twice. Issue reported to eProsima/Micro-XRCE-DDS-Agent/issues/70.