Step 4: Install the EI for AMR Server Complete Kit
Perform all of Step 4 on the control plane only, not the edge nodes.
Log in as default user, not root.
Download the latest release.
Go to Product Download.
Select Server Complete Kit or Robot and Server Complete Kit.
Click Download.
Copy the zip file to your target system.
NOTE:EI for AMR is delivered as a compressed .zip file that is compatible with the operating system you selected during the download. The .zip contains a binary executable file, a manifest file that lists the modules to be installed, and a configuration file (config.ini).Extract and install the software:
unzip edge_insights_for_amr.zip cd edge_insights_for_amr chmod 775 edgesoftware export no_proxy="127.0.0.1/32,devtools.intel.com" sudo ./edgesoftware install sudo groupadd docker sudo usermod -aG docker $USER newgrp docker source /etc/environment
Log in as root. Do all of the remaining actions, after this point, from Step 4 as root.
sudo su -
Disable swap:
sed -ri '/\sswap\s/s/^#?/#/' /etc/fstab swapoff -a
Download zenoh images:
docker pull eclipse/zenoh-bridge-dds:0.5.0-beta.9 docker pull eclipse/zenoh:0.5.0-beta.9
Get all Intel® Smart Edge Open edge nodes:
kubectl get nodes
Delete Intel® Smart Edge Open node labels for all edge nodes:
kubectl label nodes <node-name-from-the-previous-step> tier- kubectl label nodes <node-name-from-the-previous-step> environment-
Set the node labels:
cd <edge_insights_for_amr_path>/Edge_Insights_for_Autonomous_Mobile_Robots_* ansible-playbook AMR_server_containers/01_docker_sdk_env/docker_orchestration/ansible-playbooks/02_edge_server/smart_edge_open/seo_cluster_labeling.yaml
Verify that the labels were correctly updated: the environment is production, and the tier is edge-server:
kubectl get nodes -L environment kubectl get nodes -L tier
For onboarding, copy seo_install.sh and k8s_apply_label.py to the SFTP server. If the SFTP server is not configured, see Step 2: SFTP Server Setup.
Open an SFTP terminal:
sftp fdo_sftp@<sftp_server_ip>
Copy the scripts to the SFTP server:
cd /fdo_sftp/ lcd <AMR_Server_Containers>/01_docker_sdk_env/docker_orchestration/ansible-playbooks/02_edge_server/smart_edge_open/ put seo_install.sh put k8s_apply_label.py
Exit the SFTP terminal:
exit
Install the collaborative SLAM DDS router playbook:
ansible-playbook AMR_server_containers/01_docker_sdk_env/docker_orchestration/ansible-playbooks/02_edge_server/collab_dds_router/collab_dds_router_install.yaml
Install the collaborative SLAM server playbook:
ansible-playbook AMR_server_containers/01_docker_sdk_env/docker_orchestration/ansible-playbooks/02_edge_server/collab_slam/collab_slam_install.yaml
Install the onboarding playbook. There are two supported robots types: amr-aaeon and amr-pengo.
amr-aaeon: UP Xtreme i11 Robotic Kit
Install the onboarding playbook. The number of pod_replicas is up to you. The number of ovms_host is the control plane hostname.
ansible-playbook --extra-vars '{ "pod_replicas":5}' --extra-vars '{ "http_proxy":http://http_proxy:port}' --extra-vars '{ "https_proxy":https://https_proxy:port}' --extra-vars '{ "ovms_host":<CONTROL_PLANE_IP>}' AMR_server_containers/01_docker_sdk_env/docker_orchestration/ansible-playbooks/01_amr/onboarding/onboarding_install.yaml
Verify that services, pods, and deployment are running:
$ kubectl get all --output=wide --namespace onboarding NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES pod/onboarding-deployment-7fff9ddc47-cqzgd 0/16 Pending 0 18s <none> <none> <none> <none> pod/onboarding-deployment-7fff9ddc47-fgc99 0/16 Pending 0 18s <none> <none> <none> <none> pod/onboarding-deployment-7fff9ddc47-kdn74 0/16 Pending 0 18s <none> <none> <none> <none> pod/onboarding-deployment-7fff9ddc47-s7slz 0/16 Pending 0 18s <none> <none> <none> <none> pod/onboarding-deployment-7fff9ddc47-ttgdg 0/16 Pending 0 18s <none> <none> <none> <none> NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE SELECTOR service/onboarding-service NodePort 10.108.200.30 <none> 8883:32759/TCP 18s app.kubernetes.io/instance=onboarding-abcxzy,app.kubernetes.io/name=onboarding NAME READY UP-TO-DATE AVAILABLE AGE CONTAINERS IMAGES SELECTOR deployment.apps/onboarding-deployment 0/5 5 0 18s dds-bridge,amr-fleet-management,vda5050-ros2-bridge,amr-realsense,amr-ros-base-camera-tf,amr-aaeon-amr-interface,amr-ros-base-teleop,amr-battery-bridge,amr-object-detection,imu-madgwick-filter,robot-localization,amr-collab-slam,amr-fastmapping,amr-nav2,amr-wandering,amr-vda-navigator 10.237.22.198:30003/intel/eclipse/zenoh-bridge-dds:0.5.0-beta.9,10.237.22.198:30003/intel/amr-fleet-management::0.5.0-beta.9,10.237.22.198:30003/intel/amr-vda5050-ros2-bridge:2022.3,10.237.22.198:30003/intel/amr-realsense:2022.3,10.237.22.198:30003/intel/amr-ros-base-camera-tf:2022.3,10.237.22.198:30003/intel/amr-aaeon-amr-interface:2022.3,10.237.22.198:30003/intel/amr-ros-base-teleop:2022.3,10.237.22.198:30003/intel/amr-battery-bridge:2022.3,10.237.22.198:30003/intel/amr-object-detection:2022.3,10.237.22.198:30003/intel/amr-imu-madgwick-filter:2022.3,10.237.22.198:30003/intel/amr-robot-localization:2022.3,10.237.22.198:30003/intel/amr-collab-slam:2022.3,10.237.22.198:30003/intel/amr-fastmapping:2022.3,10.237.22.198:30003/intel/amr-nav2:2022.3,10.237.22.198:30003/intel/amr-wandering:2022.3,10.237.22.198:30003/intel/amr-vda-navigator:2022.3 app.kubernetes.io/instance=onboarding-abcxzy,app.kubernetes.io/name=onboarding NAME DESIRED CURRENT READY AGE CONTAINERS IMAGES SELECTOR replicaset.apps/onboarding-deployment-7fff9ddc47 5 5 0 18s dds-bridge,amr-fleet-management,vda5050-ros2-bridge,amr-realsense,amr-ros-base-camera-tf,amr-aaeon-amr-interface,amr-ros-base-teleop,amr-battery-bridge,amr-object-detection,imu-madgwick-filter,robot-localization,amr-collab-slam,amr-fastmapping,amr-nav2,amr-wandering,amr-vda-navigator 10.237.22.198:30003/intel/eclipse/zenoh-bridge-dds:0.5.0-beta.9,10.237.22.198:30003/intel/amr-fleet-management::0.5.0-beta.9,10.237.22.198:30003/intel/amr-vda5050-ros2-bridge:2022.3,10.237.22.198:30003/intel/amr-realsense:2022.3,10.237.22.198:30003/intel/amr-ros-base-camera-tf:2022.3,10.237.22.198:30003/intel/amr-aaeon-amr-interface:2022.3,10.237.22.198:30003/intel/amr-ros-base-teleop:2022.3,10.237.22.198:30003/intel/amr-battery-bridge:2022.3,10.237.22.198:30003/intel/amr-object-detection:2022.3,10.237.22.198:30003/intel/amr-imu-madgwick-filter:2022.3,10.237.22.198:30003/intel/amr-robot-localization:2022.3,10.237.22.198:30003/intel/amr-collab-slam:2022.3,10.237.22.198:30003/intel/amr-fastmapping:2022.3,10.237.22.198:30003/intel/amr-nav2:2022.3,10.237.22.198:30003/intel/amr-wandering:2022.3,10.237.22.198:30003/intel/amr-vda-navigator:2022.3 app.kubernetes.io/instance=onboarding-abcxzy,app.kubernetes.io/name=onboarding,pod-template-hash=7fff9ddc47
amr-pengo: Pengo
Install the onboarding-pengo playbook. The number of pod_replicas is up to you. The number of ovms_host is the control plane hostname.
ansible-playbook --extra-vars '{ "pod_replicas":5}' --extra-vars '{ "http_proxy":http://http_proxy:port}' --extra-vars '{ "https_proxy":https://https_proxy:port}' --extra-vars '{ "ovms_host":<CONTROL_PLANE_IP>}' AMR_server_containers/01_docker_sdk_env/docker_orchestration/ansible-playbooks/01_amr/onboarding_pengo/onboarding_pengo_install.yaml
Verify that services, pods, and deployment are running:
$ kubectl get all --output=wide --namespace onboarding-pengo NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES pod/onboarding-pengo-deployment-557b496cf8-9j27c 0/10 Pending 0 5h21m <none> <none> <none> <none> pod/onboarding-pengo-deployment-557b496cf8-lfsgb 0/10 Pending 0 3h49m <none> <none> <none> <none> pod/onboarding-pengo-deployment-557b496cf8-ndwgs 0/10 Pending 0 5h21m <none> <none> <none> <none> pod/onboarding-pengo-deployment-557b496cf8-njppn 0/10 Pending 0 5h21m <none> <none> <none> <none> pod/onboarding-pengo-deployment-557b496cf8-pxz29 0/10 Pending 0 5h21m <none> <none> <none> <none> pod/onboarding-pengo-deployment-557b496cf8-twtlv 0/10 Pending 0 5h21m <none> <none> <none> <none> NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE SELECTOR service/onboarding-pengo-service NodePort 10.103.247.202 <none> 8883:32761/TCP 5h21m app.kubernetes.io/instance=onboarding-pengo-abcxzy,app.kubernetes.io/name=onboarding-pengo NAME READY UP-TO-DATE AVAILABLE AGE CONTAINERS IMAGES SELECTOR deployment.apps/onboarding-pengo-deployment 0/5 5 0 5h21m dds-bridge,amr-fleet-management,vda5050-ros2-bridge,amr-realsense,amr-kobuki,amr-ros-base-camera-tf,amr-collab-slam,amr-nav2,amr-wandering,amr-vda-navigator 10.237.22.198:30003/intel/eclipse/zenoh-bridge-dds:0.5.0-beta.9,10.237.22.198:30003/intel/amr-fleet-management:2022.3,10.237.22.198:30003/intel/amr-vda5050-ros2-bridge:2022.3,10.237.22.198:30003/intel/amr-realsense:2022.3,10.237.22.198:30003/intel/amr-kobuki:2022.3,10.237.22.198:30003/intel/amr-ros-base-camera-tf:2022.3,10.237.22.198:30003/intel/amr-collab-slam:2022.3,10.237.22.198:30003/intel/amr-nav2:2022.3,10.237.22.198:30003/intel/amr-wandering:2022.3,10.237.22.198:30003/intel/amr-vda-navigator:2022.3 app.kubernetes.io/instance=onboarding-pengo-abcxzy,app.kubernetes.io/name=onboarding-pengo NAME DESIRED CURRENT READY AGE CONTAINERS IMAGES SELECTOR replicaset.apps/onboarding-pengo-deployment-557b496cf8 5 5 0 5h21m dds-bridge,amr-fleet-management,vda5050-ros2-bridge,amr-realsense,amr-kobuki,amr-ros-base-camera-tf,amr-collab-slam,amr-nav2,amr-wandering,amr-vda-navigator 10.237.22.198:30003/intel/eclipse/zenoh-bridge-dds:0.5.0-beta.9,10.237.22.198:30003/intel/amr-fleet-management:2022.3,10.237.22.198:30003/intel/amr-vda5050-ros2-bridge:2022.3,10.237.22.198:30003/intel/amr-realsense:2022.3,10.237.22.198:30003/intel/amr-kobuki:2022.3,10.237.22.198:30003/intel/amr-ros-base-camera-tf:2022.3,10.237.22.198:30003/intel/amr-collab-slam:2022.3,10.237.22.198:30003/intel/amr-nav2:2022.3,10.237.22.198:30003/intel/amr-wandering:2022.3,10.237.22.198:30003/intel/amr-vda-navigator:2022.3 app.kubernetes.io/instance=onboarding-pengo-abcxzy,app.kubernetes.io/name=onboarding-pengo,pod-template-hash=557b496cf8
NOTE:These steps prepare the control plane to deploy and control edge nodes and robots. After the device is onboarded, the pods are installed on the EI for AMR device.