Developer Guide

  • 2022.3
  • 10/25/2022
  • Public Content

Kudan Visual SLAM

This tutorial tells you how to run a Kudan Visual SLAM (KdVisual) system using a ROS 2 bag as the input containing data of a robot exploring an area.
  • The ROS 2 tool rviz2 is used to visualize how KdVisual interprets the data from the ROS 2 bag.
  • Find more information about Kudan Visual SLAM here.
  • Find more information on Kudan in general here.

Download the Optional Kudan Visual SLAM (KdVisual) Bundle

  1. Download the Robot Complete Kit with the optional Kudan Visual SLAM (KdVisual) bundle.
    1. Go to the Product Download page.
    2. Select the Robot Complete Kit.
    3. Click
      Customize Download
    4. Make sure that
      AMR Kudan SLAM
      is selected:
      This may be in Step 1 or Step 3 depending on the use case you selected.
    5. Click
      until you get to
    6. Click
    7. During installation, you are prompted to enter your product key, so copy the product key displayed on the download page.
  2. Copy
    from the developer workstation to the Home directory on your target system. You can use a USB flash drive to copy the file.

Install EI for AMR

  1. Set up a proxy (optional): If a proxy is required to connect to the Internet, add the proxy settings as described below, updating
    to your actual proxy.
    1. Add proxies in
      echo 'Acquire::http::proxy "http://<http_proxy>:port";' | sudo tee -a /etc/apt/apt.conf.d/proxy.conf echo 'Acquire::https::proxy "http://<https_proxy>:port";' | sudo tee -a /etc/apt/apt.conf.d/proxy.conf
    2. Change the environment.
      • Change the environment for all users on the system:
        sudo su echo 'export http_proxy="http://<http_proxy>:port"' >> /etc/environment echo 'export https_proxy="http://<https_proxy>:port"' >> /etc/environment echo 'export ftp_proxy="http://<ftp_proxy>:port"' >> /etc/environment echo 'export no_proxy="<no_proxy>"' >> /etc/environment exit source /etc/environment
        These steps are needed only once per host. They do not have to be done for different users or different logins of the same user.
      • Change the environment for the current user only:
        echo 'export http_proxy="http://<http_proxy>:port"' >> ~/.bashrc echo 'export https_proxy="http://<https_proxy>:port"' >> ~/.bashrc echo 'export ftp_proxy="http://<ftp_proxy>:port"' >> ~/.bashrc echo 'export no_proxy="<no_proxy>"' >> ~/.bashrc source ~/.bashrc
        Read and follow best practices as described in this Linux* wiki about environment variables.
        Edit the /etc/sudoers file with visudo:
        sudo visudo # Add after other lines that add Defaults: Defaults env_keep += "ftp_proxy http_proxy https_proxy no_proxy"
  2. Run the following commands to go to the directory, change permission of the executable edgesoftware file, and install the bundle:
    cd edge_insights_for_amr chmod 775 edgesoftware sudo groupadd docker sudo usermod -aG docker $USER newgrp docker ./edgesoftware install
  3. Type the product key at the prompt:
    The product key is displayed on the download page. Contact Support Forum if it is not.
  4. Based on components selected and system configuration, you might be prompted for additional actions. For example, if your system is behind a proxy, you are asked to enter proxy settings.
    When the installation is complete, you see an installation complete message and the installation status for each module.
  5. If any of the installed modules report a failure in the Status column due to a break in the internet connection or for any other reason, run the install again:
    ./edgesoftware install
  6. Set the correct ownership:
    sudo chown $USER:$USER * -R
  7. Verify that all Docker* images were downloaded:
    docker image list
    Expected output includes all downloaded containers:
    REPOSITORY TAG IMAGE ID CREATED SIZE amr-nav2 2022.3 eiforamr-full-flavour-sdk 2022.3 amr-object-detection 2022.3 . .
Installation failure logs are available at:

Run the Sample Application

  1. Check if your installation has the amr-kudan-slam Docker* image.
    docker images |grep amr-kudan-slam #if you have it installed, the result is: amr-kudan-slam
    If the image is not installed, continuing with these steps
    triggers a build that takes longer than an hour
    (sometimes, a lot longer depending on the system resources and internet connection).
  2. If the image is not installed, Intel recommends repeating the Download the Optional Kudan Visual SLAM (KdVisual) Bundle step.
  3. Go to the
    cd <edge_insights_for_amr_path>/Edge_Insights_for_Autonomous_Mobile_Robots_*/AMR_containers
  4. Prepare the environment setup:
    source ./01_docker_sdk_env/docker_compose/common/docker_compose.source export CONTAINER_BASE_PATH=`pwd` export ROS_DOMAIN_ID=17 # If the bags were not extracted before do it now unzip 01_docker_sdk_env/docker_compose/ -d 01_docker_sdk_env/docker_compose/ sudo chmod 0777 -R 01_docker_sdk_env/docker_compose/06_bags
  5. Run the Kudan Visual SLAM algorithm using a ROS 2 bag simulating a robot exploring an area:
    docker-compose -f 01_docker_sdk_env/docker_compose/05_tutorials/kudan-slam-cpu.tutorial.yml up
    In rviz2, you can see what KdVisual does with the input from the ROS 2 bag.
  6. To close this execution, close the rviz2 window, and press
    in the terminal.
  7. Clean up the Docker* images:
    docker-compose -f 01_docker_sdk_env/docker_compose/05_tutorials/kudan-slam-cpu.tutorial.yml down --remove-orphans
  8. KdVisual can also offload some processing to the GPU. To demonstrate this, use this example:
    Offloading to the GPU only works on systems with 11th Generation Intel® Core™ processors with Intel® Iris® X
    Integrated Graphics.
    docker-compose -f 01_docker_sdk_env/docker_compose/05_tutorials/kudan-slam-gpu.tutorial.yml up
  9. On a different terminal, check how much of the GPU is used using intel-gpu-top:
    sudo apt-get install intel-gpu-tools sudo intel_gpu_top
  10. To close this execution, close the rviz2 window, and press
    in the terminal.
  11. Cleanup the Docker* images:
    docker-compose -f 01_docker_sdk_env/docker_compose/05_tutorials/kudan-slam-gpu.tutorial.yml down --remove-orphans


If the following error is encountered:
amr-kudan-slam | [kdvisual_ros2_rgbd-1] /workspace/src/gpu/l0_rt_helpers.h:56: L0 error 78000001
The render group might be on a different id then 109 which is placed in the yaml files used in the examples.
To find what id the render group has on your system:
getent group render cat /etc/group |grep render
If the result is different then: render:x:109 change the yml file:
gedit 01_docker_sdk_env/docker_compose/05_tutorials/kudan-slam-gpu.tutorial.yml # and/or gedit 01_docker_sdk_env/docker_compose/05_tutorials/kudan-slam-cpu.tutorial.yml # Change the at the line 26 from 109, to the number you got above.
For general robot issues, go to: Troubleshooting for Robot Tutorials.

Product and Performance Information


Performance varies by use, configuration and other factors. Learn more at