Advantech Robotic Suite/OpenVINO

From ESS-WIKI
Revision as of 08:01, 29 March 2023 by Hank.peng (talk | contribs) (Architecture)
Jump to: navigation, search

Introduction

Intel OpenVINO is an open-source toolkit for optimizing and deploying deep learning models. It provides boosted deep learning performance for vision, audio, and language models from popular frameworks like TensorFlow, PyTorch, and more.

Intel have already published OpenVINO container in the Edge Insights for Autonomous Mobile Robots (EI for AMR), EI for AMR is a container modularize toolkit for user to develop, build, and deploy end-to-end mobile robot applications with this purpose-built, open, and modular software development kit that includes libraries, middleware, and sample applications based on the open-source Robot Operating System 2* (ROS 2).

Advantech ROS2 Suite support OpenVINO on verified Advantech platform, user can download and install OpenVINO from EI for AMR portal: https://www.intel.com/content/www/us/en/developer/topic-technology/edge-5g/edge-solutions/autonomous-mobile-robots.html

 

Featured Components

  • Intel® Distribution of OpenVINO™ Toolkit
  • Intel® oneAPI Base Toolkit
  • Intel® RealSense™ SDK 2.0
  • Algorithms of FastMap for 3D mapping
  • ROS 2 Sample Applications

 

Benefits

  • Enables code to be implemented once and deployed to multiple hardware configurations.
  • Accelerates deployment of customer ROS 2-based applications by reducing evaluation and development time.
  • Provides prevalidated, scalable EI for AMR platforms through development partners.

 

Support Platform

Intel EI for AMR support 10 gen and newer Intel CPU and GPU, below list Advantech devices that are Intel ESDQ tested.

Device CPU Type
MIO-5375 Intel Core i5-1145G7E 2.60GHz
ARK-3532 Intel Core i7-10700E 2.90GHz

 

 


Architecture

Ros openvino chart.png

 

 

 

Download

Step1. Sign up and login to the Intel® Developer Zone

 

Ros2 intel-developer-zone.png

 

Step2. Search for “EI for AMR”

 

Ros2 intel-developer-zone ei-for-amr search.png

 

Step3. Click on Edge Insights for Autonomous Mobile Robots (EI for AMR)

 

Ros2 intel-developer-zone ei-for-amr.png

 

Step4. Click on “Download” buttion to start options page

Ros2 intel-developer-zone ei-for-amr download.png

 

Step5. Customize your EI for AMR for the installation

Ros2 intel-developer-zone ei-for-amr customize.png

 

 

Selectable Options

Image Version Description
AMR WWAN 5G Modem Docker Image Version 2022.3 This docker image provides a unified high level API for communicating with mobile broadband modems, regardless of the protocol used to communicate with the actual device (Generic AT, vendor-specific AT, QCDM, QMI, MBIM…)
AMR Collaborative SLAM Docker Image Version 2022.3 The Collaborative SLAM docker delivers the Collaborative SLAM vSLAM algorithm that provides high precision location accuracy and multi-robot map merging both in mapping and localization mode. The docker includes libraries and binaries based on ROS Foxy
AMR SLAM toolbox Docker Image Version 2022.3 This docker-image is a set of tools and capabilities for 2D SLAM.
AMR OpenVINO SDK Docker Image Version 2022.3 The AMR OpenVINO container includes the AMR ROS2 container, as well as the OpenVINO™development toolkit, the OpenVINO™ DL Gstreamer plugins and the Wandering demonstration application, This docker-image is based on ros2-foxy-sdk image and includes openvino and object-detection components
AMR ADBSCAN Docker Image Version 2022.3 This docker-image is an improvement over the classic DBSCAN algorithm where the clustering parameters are adaptive based on the range, and especially suitable for processing Lidar data. It improves the object detection range by 20-30% on average.
AMR ROS2 FOXY SDK Docker Image Version 2022.3 The AMR container includes the ROS2 middleware and tools, Intel® RealSense™ SDK and ROS2 wrapper, GStreamer* and build tools, ROS2 packages (Cartographer, Navigation, RTAB_MAP) and the Fast Mapping application (the Intel-optimized version of octomap). This docker-image is based on ros-base image and includes multiple components and provides a SDk image useful for multiple use cases. The image contains most of the small size packages/components: adbscan, battery_bridge, vda5050, cartographer, nav2, rtabmap, fastmapping, gazebo, gstreamer, kobuki, realsense, ros-arduino, ros1-bridge, rplidar, sick-nanoscan, turtlebot3, turtlesim, aaeon-amr-interface
AMR Kobuki Docker Image Version 2022.3 This docker-image is based on ros-base image and includes kobuki-ros-interface, kobuki-drivers and kobuki-core components.
AMR Battery Bridge Docker Image Version 2022.3 This container includes a component of Basic Fleet Management Client - battery bridge. It helps to read the battery value from kobuki driver in ROS2 to bridge to operating system battery value. With which, the correct battery value from robot can be reflected to Basic Fleet Management use cases.
AMR IMU Tools Docker Image Version 2022.3 This docker image is based on ros-base image and contains: imu_filter_madgwick, imu_complementary_filter, rviz_imu_plugin
AMR Nav2 Docker Image Version 2022.3 This docker-image is based on ros-base image and includes nav2-ros-package components.
AMR Full Flavour SDK Docker Image Version 2022.3 This docker-image is a comprehensive image which includes all the released components: adbscan, battery_bridge, vda5050, cartographer, nav2, rtabmap, fastmapping, gazebo, gstreamer, kobuki, realsense, ros-arduino, ros1-bridge, rplidar, sick-nanosca, sick-nanoscan, turtlebot3, turtlesim, aaeon-amr-interface, OpenVINO, OneAPI, Object-detection, Wandering and many more.
AMR VDA Navigator Docker Image Version 2022.3 This docker-image is based on ros-base image. The VDA Navigator is a basic waypoint navigator.
AMR Rtabmap Docker Image Version 2022.3 This docker-image is based on nav2 image and includes nav2 stack, rtabmap and rtabmap-ros-wrapper components.
AMR Fleet Management Docker Image Version 2022.3 This container includes a component of Basic Fleet Management Client - The Intel® In-Band Manageability Framework (INBM) (https://github.com/intel/intel-inb-manageability). The Intel® In-Band Manageability Framework is software which enables an administrator to perform critical Device Management operations over-the-air remotely from the cloud. It also facilitates the publishing of telemetry and critical events and logs from an IoT device to the cloud enabling the administrator to take corrective actions if, and when necessary.
AMR Kudan Slam Docker Image Version 2022.3 This docker-image achieves much faster processing time, higher accuracy and more robustness in dynamic situations.
AMR Collab Slam gpu Docker Image Version 2022.3 The Collaborative SLAM gpu docker delivers the Collaborative SLAM vSLAM algorithm that provides high precision location accuracy and multi-robot map merging both in mapping and localization mode. The docker includes libraries and binaries based on ROS Foxy.
AMR Gazebo Docker Image Version 2022.3 This docker-image is based on ros-base image and includes gazebo-ros-package components.
AMR RPLIDAR Docker Image Version 2022.3 This docker-image is based on ros-base image and includes rplidar-ros-package components.
AMR Fast Mapping Docker Image Version 2022.3 This docker-image is based on ros-base image and includes fast-mapping ros component.
AMR ROS1 Bridge Docker Image Version 2022.3 This docker-image is based on ros-base image and includes ros1-bridge component.
AMR Wandering Docker Image Version 2022.3 This docker-image is based on nav2 image and includes nav2-stack and wandering component.
AMR Object Detection Docker Image Version 2022.3 This container includes a component of Basic Fleet Management Client and/or AMR SDK - the Object Detection. It enables the images from camera feed to be inferenced and provide classification on the objects. The inferencing can be done locally or remotely (to OpenVINO™ Model Server) depends on the setting.
AMR ROS2 OpenVINO Docker Image Version 2022.3 This docker image provides a ROS2-adapted runtime framework for neural network inference which allows to quickly deploy applications and solutions for vision inference.
AMR VDA5050 ROS2 Bridge Docker Image Version 2022.3 This docker image is based on ros-base image. The VDA5050 ROS2 Bridge translates VDA5050 messages into ROS2 messages which can be received and executed by ROS2 components in an AMR SDK based AMR control system.
AMR Realsense Docker Image Version 2022.3 This docker-image is based on ros-base image and includes realsense-sdk and realsense-ros2-wrapper components.
AMR Cartographer Docker Image Version 2022.3 This docker-image is based on ros-base image and includes cartographer and cartographer-ros-package components.
AMR Aaeon amr interface Docker Image Version 2022.3 This docker-image is based on ros-base image and includes AAEON-ros2-interface and AAEON-transport-drivers components.
AMR Robot Localization Docker Image Version 2022.3 This docker image is based on ros-base image. Robot_localization is a collection of state estimation nodes, each of which is an implementation of a nonlinear state estimator for robots moving in 3D space.
AMR Ros Arduino Docker Image Version 2022.3 This docker-image is based on ros-base image and includes Micro XRCE-DDS Agent component.
AMR Sick Nanoscan Docker image Version 2022.3 This docker-image is based on ros-base image and includes SICK-nanoscan-ros-package component.
AMR Gstreamer Docker Image Version 2022.3 This docker-image is based on ros-base image and includes gstreamer, realsense-sdk and realsense-ros2-wrapper components.
AMR Turtlesim Docker Image Version 2022.3 This docker-image is based on ros-base image and includes turtlesim-ros-package components.
AMR FDO Client Docker Image Version 2022.3 This container includes the FDO device entity of the Fido FDO Specification (https://fidoalliance.org/specifications/download-iot-specifications/). The device being manufactured, later the device being provisioned. Typical this is the autonomous mobile robot (AMR). For the complete FDO technology preview all four FDO containers are required.
AMR ROS Base Docker Image Version 2022.3 This docker-image is based on ros:foxy image and includes many generic ros2-packages and other needed components. It is used as base image for all other amr side released images.

 

Step6. Download the installer

After complete the package selection, click “Download” to get the installer file (edge_insights_for_amr.zip). Once the download is complete, copy the file to your target edge device and run the installer.

Ros2 intel-developer-zone ei-for-amr download-01.png

 

 

Step7. Keep your Product Key for the step during installation

Please keep your product key, you will be prompted to enter it during installation.

Ros2 intel-developer-zone ei-for-amr productkey.png

 

Installation

Step1. Unzip edge_insights_for_amr.zip and run edgesoftware to start installation

 

unzip edge_insights_for_amr.zip
cd edge_insights_for_amr/
chmod +x edgesoftware
sudo groupadd docker
sudo usermod -aG docker $USER
newgrp docker
sudo ./edgesoftware install

 

Step2. Change owner for the folder of EI for AMR

 

cd edge_insights_for_amr/
sudo chown $USER:$USER * -R

 

Run Sample Application

In this section, we will setup EI for AMR environment variables and run automated yml file that opens a ROS 2 sample application inside the EI for AMR Docker container.

 

Setup environment variables

 

  • Go to the AMR_containers folder:

 

cd Edge_Insights_for_Autonomous_Mobile_Robots_2022.3/AMR_containers/

 

  • Prepare the environment setup:

 

source ./01_docker_sdk_env/docker_compose/common/docker_compose.source
export CONTAINER_BASE_PATH=`pwd`
export ROS_DOMAIN_ID=12

 


Turtlesim Tutorial

Turtlesim is a tool made for teaching ROS and ROS packages, below steps will introduct you to start the tutorial.

Step1. Run docker-compose to launch tutorial

To start turtlesim.tutorial:

CHOOSE_USER=eiforamr docker-compose -f 01_docker_sdk_env/docker_compose/05_tutorials/turtlesim.tutorial.yml down

 

TurtleSim start a window and shows the turtle at initial location.

Ros2 ei-for-amr-01.png

 

Rqt also start for the user to control turtle location.

Ros2 ei-for-amr-02.png

 

Step2. Control turtle location

Now you can call service to control turtle1 location:

1. From rqt menu, go to “Plugins” > “Services” > “Service Caller”

2. Choose to move turtle1 by choosing (from the Service drop-down list) “”/turtle1/teleport_absolute"

3. Make sure you changed x and y coordinates for the original values.

4. Press “Call”, the turtle should move.

Ros2 ei-for-amr-04.png

 

The turtle1 will move to the new location that you changed.

Ros2 ei-for-amr-03.png

 

To close this, do one of the following:

1. Type Ctrl-c in the terminal where you did the up command.

2. Close the rqt window.

3. Run this command in another terminal:

CHOOSE_USER=eiforamr docker-compose -f 01_docker_sdk_env/docker_compose/05_tutorials/turtlesim.tutorial.yml down

 

Object Detection Tutorial

Step1. Run docker-compose to launch tutorial

To start openvino_GPU.tutorial:

CHOOSE_USER=root docker-compose -f 01_docker_sdk_env/docker_compose/05_tutorials/openvino_GPU.tutorial.yml up

 

Ros2 ei-for-amr-05.png

 

Face Detection Tutorial