Step 4: Install the EI for AMR Server Complete Kit#

Perform all of Step 4 on the control plane only, not the edge nodes.

  1. Log in as default user, not root.

  2. Download the latest release.

    1. Go to Product Download.

    2. Select Server Complete Kit or Robot and Server Complete Kit.

    3. Click Download.

  3. 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).

  4. 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
    
  5. Log in as root. Do all of the remaining actions, after this point, from Step 4 as root.

    sudo su -
    
  6. Disable swap:

    sed -ri '/\sswap\s/s/^#?/#/' /etc/fstab
    swapoff -a
    
  7. Download zenoh images:

    docker pull eclipse/zenoh-bridge-dds:0.5.0-beta.9
    docker pull eclipse/zenoh:0.5.0-beta.9
    
  8. Get all Intel® Smart Edge Open edge nodes:

    kubectl get nodes
    
  9. 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-
    
  10. 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
    
  11. 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
    
  12. 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.

    1. Open an SFTP terminal:

      sftp fdo_sftp@<sftp_server_ip>
      
    2. 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
      
    3. Exit the SFTP terminal:

      exit
      
  13. Install the collaborative visual 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
    
  14. Install the onboarding playbook. There are two supported robots types: amr-aaeon and amr-pengo.

    • amr-aaeon: UP Xtreme i11 Robotic Kit

      1. 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
        
      2. 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:2023.1,10.237.22.198:30003/intel/amr-realsense:2023.1,10.237.22.198:30003/intel/amr-ros-base-camera-tf:2023.1,10.237.22.198:30003/intel/amr-aaeon-amr-interface:2023.1,10.237.22.198:30003/intel/amr-ros-base-teleop:2023.1,10.237.22.198:30003/intel/amr-battery-bridge:2023.1,10.237.22.198:30003/intel/amr-object-detection:2023.1,10.237.22.198:30003/intel/amr-imu-madgwick-filter:2023.1,10.237.22.198:30003/intel/amr-robot-localization:2023.1,10.237.22.198:30003/intel/amr-collab-slam:2023.1,10.237.22.198:30003/intel/amr-fastmapping:2023.1,10.237.22.198:30003/intel/amr-nav2:2023.1,10.237.22.198:30003/intel/amr-wandering:2023.1,10.237.22.198:30003/intel/amr-vda-navigator:2023.1   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:2023.1,10.237.22.198:30003/intel/amr-realsense:2023.1,10.237.22.198:30003/intel/amr-ros-base-camera-tf:2023.1,10.237.22.198:30003/intel/amr-aaeon-amr-interface:2023.1,10.237.22.198:30003/intel/amr-ros-base-teleop:2023.1,10.237.22.198:30003/intel/amr-battery-bridge:2023.1,10.237.22.198:30003/intel/amr-object-detection:2023.1,10.237.22.198:30003/intel/amr-imu-madgwick-filter:2023.1,10.237.22.198:30003/intel/amr-robot-localization:2023.1,10.237.22.198:30003/intel/amr-collab-slam:2023.1,10.237.22.198:30003/intel/amr-fastmapping:2023.1,10.237.22.198:30003/intel/amr-nav2:2023.1,10.237.22.198:30003/intel/amr-wandering:2023.1,10.237.22.198:30003/intel/amr-vda-navigator:2023.1   app.kubernetes.io/instance=onboarding-abcxzy,app.kubernetes.io/name=onboarding,pod-template-hash=7fff9ddc47
        
    • amr-pengo: Pengo

      1. 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
        
      2. 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:2023.1,10.237.22.198:30003/intel/amr-vda5050-ros2-bridge:2023.1,10.237.22.198:30003/intel/amr-realsense:2023.1,10.237.22.198:30003/intel/amr-kobuki:2023.1,10.237.22.198:30003/intel/amr-ros-base-camera-tf:2023.1,10.237.22.198:30003/intel/amr-collab-slam:2023.1,10.237.22.198:30003/intel/amr-nav2:2023.1,10.237.22.198:30003/intel/amr-wandering:2023.1,10.237.22.198:30003/intel/amr-vda-navigator:2023.1   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:2023.1,10.237.22.198:30003/intel/amr-vda5050-ros2-bridge:2023.1,10.237.22.198:30003/intel/amr-realsense:2023.1,10.237.22.198:30003/intel/amr-kobuki:2023.1,10.237.22.198:30003/intel/amr-ros-base-camera-tf:2023.1,10.237.22.198:30003/intel/amr-collab-slam:2023.1,10.237.22.198:30003/intel/amr-nav2:2023.1,10.237.22.198:30003/intel/amr-wandering:2023.1,10.237.22.198:30003/intel/amr-vda-navigator:2023.1   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.