Advantech Robotic Suite/DeviceOn

From ESS-WIKI
Revision as of 03:56, 1 June 2023 by Hank.peng (talk | contribs) (ROS2 Node Container)
Jump to: navigation, search

DeviceOn

 

A surge in market demand for Industrial IoT products has rapidly increased the number of connected devices that are currently deployed and managed across different locations. It is essential to effectively manage, monitor, and control thousands of connected devices while ensuring uninterrupted service. Devices must work properly and securely after they have been deployed - without requiring frequent visits from service technicians. Customers require secure access to their devices in order to detect, troubleshoot, and undertake time-critical actions.

More information please refer to DeviceOn

 

 

DeviceOn Connection

 

DeviceOn Trial Portal

 

Step1. Register a new account from DeviceOn Trial Protal.

Deviceon-trial 01.png

 

Deviceon-trial 02.png

 

Step2. Verify account from DeviceOn Account Registration e-mail.

Deviceon-trial 05.png

 

 

 

Setup WISE-Agent

Step1. Login DeviceOn Trial Portal.

Step2. Click on Add device icon.

Deviceon-trial 04.png

 

Step3. Launch WISE Agent setup program.

Step4. Copy Credential URL and paste it to the WISE Agent setup program while it prompt to input.

Step5. Copy IoT Key and paste it to the WISE Agent setup program while it prompt to input.

 

You can refer to Edge Installation & Onboarding to get for detail description about install WISE-Agent and setup WISE-Agent for connecting to DeviceOn.

 

Remote Management

Device Management

After your device onboarding, you could view, edit device basic information, remote control, and retrieve sensor data on your devices. Nine sub items under Device, Device List contain device name, upgrade status, power management and etc. Device Monitoring to give device loading at present. To remote diagnostic and debug through Remote Control. Next, all of plugin sensor data from Device Data. To grouping your device through the Device Group. For batch real-time or schedule control through Task defined. Rule Engine to set a threshold rule for your devices data in real-time.

From "Device List" table, click on device name or device details to get device information.

RTENOTITLE

You could get the device detail information such as, device IP, version, MAC, Memory, BIOS, operation system in this page.

RTENOTITLE

 

 

 


ROS2 Node Container

In this section, we will introduct you how to deploy a ROS2 node into your edge device. ROS 2 nodes running in Docker containers offers several benefits:

  • Isolation

Docker containers provide robust isolation, allowing each node to run in a separate environment. This prevents interference between nodes, which is particularly important in ROS, where nodes can be software components from different teams or developers. Container isolation ensures their independence.

  • Portability

Docker containers offer platform independence, meaning you can run the same ROS 2 nodes on different operating systems (e.g., Linux, Windows, macOS) and hardware platforms without worrying about dependencies and environment configurations. This makes deploying and running ROS 2 nodes in different environments much easier.

  • Easy Deployment

Using Docker containers simplifies the deployment process of ROS 2 nodes. You can package the nodes along with their dependencies and configurations into a Docker image and run it in any Docker-supported environment. This eliminates the hassle of dependency installations and configurations while ensuring node consistency across different environments.

  • Scalability

Docker containers provide lightweight and scalable deployment solutions. You can run multiple instances of the same or different ROS 2 node containers and manage them using container orchestration tools like Docker Compose or Kubernetes. This makes running ROS 2 nodes in distributed systems easier and allows dynamic adjustment of the number and configuration of nodes based on demand.

In summary, running ROS 2 nodes in Docker containers offers benefits such as isolation, portability, easy deployment, and scalability. These advantages make it convenient and flexible to develop, test, and deploy ROS 2 applications in different environments.

 

DeviceOn Container Management

DeviceOn support Container Management function for you to deploy, monitor, and manage each container on different devices. You can manage and monitor the health of containers within minutes. Container Management function also provide a variety of container restart strategies for you to set the restart policy. Through the dashboard, you can quickly understand the running status of the container in the managed device. In addition, for container developers.

Azure Container Repository allows you to build, store, and manage container images and artifacts in a private registry for all types of container deployments. Use Azure container registries with your existing container development and deployment pipelines. Azure Container Registry is supported as a public cloud solution in the DeviceOn and support Harbor  as a private cloud container repository. For more detailed information and operation steps, please refer to DeviceOn Manual - Container Management Section .

 

 

Container Registry Configuration

Helloworld ROS2 node is a sample ROS2 container and is already pre-upload to the DeviceOn Container Registry. You can find it in the Registry Detail page of "Demo Registry".

RTENOTITLE

 

Click on the registry name "Demo Registry", you can see how many containers in the container registry are available for you to deploy.

ROS2 Suite RegistryDetail.png

 

 

ROS2 Node Deployment

Below steps will introduce you to deploy a ROS2 container to your edge device. 

Step1. From left side bar, open "My Devices" page from "Container" function and then:

  • Choose your device group.
  • Choose your device from your device group.
  • Click on Containers icon to see container list in this device.

ROS2 ContainerManage 2.png

 

Step2. Click "Add" icon to go into add container page.

ROS2 ContainerManage 3.png

 

Step3. In the "Add Container" page, select parameters like below:

  • Mode: Device Mode
  • Container Name: <Give a container name by yourdelf>.
  • Auto Start: On
  • Source Image: Registries
  • Registry: Demo Registry
  • Image: helloworld-ros2-node-<platform-architecture>

      Note, if your device is a Intel x86_64 architecture , please choose "helloworld-ros2-node-x86_64". If your device is a ARM architecture, please choose "helloworld-ros2-node-aarch64". 

      Now, you can click "Confirm" to start deploy helloworld-ros2-node to your device.

 

RTENOTITLE

 

After several seconds, you can see the container is deployed into your device and status of helloworld-ros2-node is running.

ROS2 ContainerManage 6.png

 

Step5. Now, helloworld-ros2-node is running and publishing "Hello World: <count>" message continuously, To subscribe the data that helloworld-ros2-node published, open a terminal from your device and execute below command:

 

Helloworld-ros2-node-message.png

 

1. Setup ROS2 environmant variables:

$ source /opt/ros/${ROS_DISTRO}/setup.bash

 

2. Subscribe the topic of helloworld node:

$ ros2 topic echo /topic

Result:

data: 'Hello World: 2663'
---
data: 'Hello World: 2664'
---
data: 'Hello World: 2665'
---
data: 'Hello World: 2666'
---
data: 'Hello World: 2667'
---
data: 'Hello World: 2668'
---
data: 'Hello World: 2669'
---

 

 

Reference