Difference between revisions of "Advantech Robotic Suite/DeviceOn"
(→ROS2 Node Container) |
|||
Line 83: | Line 83: | ||
| | ||
+ | |||
Line 89: | Line 90: | ||
<span style="font-size:larger;">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:</span> | <span style="font-size:larger;">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:</span> | ||
− | + | '''<span style="font-size:larger;">Isolation</span>''' | |
<span style="font-size:larger;">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.</span> | <span style="font-size:larger;">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.</span> | ||
− | + | '''<span style="font-size:larger;">Portability</span>''' | |
<span style="font-size:larger;">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.</span> | <span style="font-size:larger;">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.</span> | ||
− | + | '''<span style="font-size:larger;">Easy Deployment</span>''' | |
<span style="font-size:larger;">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.</span> | <span style="font-size:larger;">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.</span> | ||
− | + | '''<span style="font-size:larger;">Scalability</span>''' | |
<span style="font-size:larger;">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.</span> | <span style="font-size:larger;">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.</span> |
Revision as of 04:01, 1 June 2023
Contents
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
- DeviceOn Trial Portal: https://deviceon-trial.wise-paas.com/
- Login ID & password: <Follow below steps to register a new account>
Step1. Register a new account from DeviceOn Trial Protal.
Step2. Verify account from DeviceOn Account Registration e-mail.
Setup WISE-Agent
Step1. Login DeviceOn Trial Portal.
Step2. Click on Add device icon.
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.
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.
You could get the device detail information such as, device IP, version, MAC, Memory, BIOS, operation system in this page.
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".
Click on the registry name "Demo Registry", you can see how many containers in the container registry are available for you to deploy.
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.
Step2. Click "Add" icon to go into add container page.
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.
After several seconds, you can see the container is deployed into your device and status of helloworld-ros2-node is running.
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:
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' ---