OTA Updates
The OTA updates solution is based on the Basic Fleet Management architecture. The following diagram presents the architecture, components, and communications for these use cases.
Robot Prerequisites
Run the following command on the client host:
sudo apt-get update && DEBIAN_FRONTEND=noninteractive sudo apt-get install --no-install-recommends -q -y \ software-properties-common \ && if [[ -z "$http_proxy" ]] ; then sudo apt-key adv --keyserver keys.gnupg.net \ --recv-key F6E65AC044F831AC80A06380C8B3A55A6F3EFCDE; \ else sudo apt-key adv --keyserver keys.gnupg.net --keyserver-options \ http-proxy="${http_proxy}" --recv-key F6E65AC044F831AC80A06380C8B3A55A6F3EFCDE; fi \ || if [[ -z "$http_proxy" ]] ; then sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 \ --recv-key F6E65AC044F831AC80A06380C8B3A55A6F3EFCDE; else \ sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --keyserver-options \ http-proxy="${http_proxy}" --recv-key F6E65AC044F831AC80A06380C8B3A55A6F3EFCDE; fi \ && sudo add-apt-repository "deb https://librealsense.intel.com/Debian/apt-repo focal main" -u \ && DEBIAN_FRONTEND=noninteractive sudo apt-get install --no-install-recommends -q -y \ rsync \ librealsense2=2.50.* \ librealsense2-utils=2.50.* \ librealsense2-dev=2.50.* \ librealsense2-gl=2.50.* \ librealsense2-net=2.50.* \ librealsense2-dbg=2.50.* \ librealsense2-udev-rules=2.50.* \ && sudo rm -rf /var/lib/apt/lists/*
Operating System Update
On the ThingsBoard* dashboard, click Trigger SOTA, select update, and click SEND. Update progress is visible in the ThingsBoard logs. The client host reboots after SOTA completes.
sudo dpkg --configure -a sudo mdkir -p /var/cache/manageability/repository-tool/sota
Firmware Update
This example updates the Intel® RealSense™ camera firmware.
Preparation for the Intel® RealSense™ camera firmware update:
Download the firmware from https://dev.intelrealsense.com/docs/firmware-releases.
Place the .bin file that contains the firmware in a .tar.gz archive. Make sure that you do not archive the entire directory, only the .bin file.
Set up a basic HTTP server, and upload the .tar.gz on it as a trusted repository server.
On the ThingsBoard* dashboard, click Trigger Config Update.
Choose:
Command: append
Path: trustedRepositories:http://url-to-http-server/and-optional-path-if-necessary/
Click Send, and observe the logs in the ThingsBoard* bottom screen.
Trigger the firmware update.
BIOS Version: any number
Fetch: http://url-to-http-server/and-optional-path-if-necessary/arhive-with-firmware.tar.gz
Manufacturer: set the value according to the following image
Product: set the value according to the following image
Release Date: the current date in the YYYY-MM-DD format
Vendor: set the value according to the following image
Server Username and Server Password: only used if the HTTP server is password protected
Click Send, and observe the logs in the ThingsBoard* bottom screen.
The client host reboots after the update complete.
Container Update
Because the containers (or applications) are orchestrated and deployed by Intel® Smart Edge Open, the ThingsBoard* Rule Chain routes AOTA trigger requests to the Intel® Smart Edge Open server.
The wandering application is used to present this use case.
To create a new version of a Helm* chart, include the necessary modifications, and increment the version field from Chart.yaml in the Helm* charts:
Example:
$ cat helm_wandering/Chart.yaml apiVersion: v2 appVersion: 1.0.0 description: A helm chart for wandering name: wandering type: application version: 0.1.0 root@glaic3edge02: $ cat helm_wandering_new/Chart.yaml apiVersion: v2 appVersion: 1.0.0 description: A helm chart for wandering name: wandering type: application version: 0.1.10
NOTE:Run the following copy command before triggering AOTA:cd <edge_insights_for_amr_path>/Edge_Insights_for_Autonomous_Mobile_Robots_<version>/AMR_server_containers/ cp 01_docker_sdk_env/docker_orchestration/ansible-playbooks/02_edge_server/wandering/helm_wandering/values.yaml 01_docker_sdk_env/docker_orchestration/ansible-playbooks/02_edge_server/wandering/helm_wandering_new/
On the ThingsBoard* dashboard, click Trigger AOTA.
Select:
App: application as App
Command: update
Container Tag: wandering
Version:
Click Send, and observe the logs in the ThingsBoard* bottom screen.
Known issue: A timeout error occurs after clicking Send because the AOTA request message is rerouted to the Intel® Smart Edge Open server, and the robot never receives the request.
Expected results:
On the Intel® Smart Edge Open server, the Helm* chart version is renewed to a newer version.
helm list --all-namespaces
On the EI for AMR device, the wandering app is updated.