如何在Qualcomm机器人RB3开发平台上安装Docker

准备好开发板,以便从容器中取出机器人操作系统映像

利用Docker,很容易将应用程序封装到容器中,并在不同的开发环境中运行。使用容器可以简化制作机器人操作程序的过程;机器人操作程序是一种开源机器人元操作系统,可用于机器人RB3开发平台。(请注意,不需要Docker也可以安装机器人操作系统,但目前需要安装多个依赖项。)

将全新、完整的映像(从Linaro)闪存到板上所述,已经利用Docker以及机器人操作系统容器成功对来自Linaro的映像进行了测试。机器人操作系统不一定处于Docker容器中,但在目前是确保机器人操作系统在机器人RB3开发平台上工作的最简单程序。

更新RB3开发板

利用最新版本的Linaro Debian桌面映像对开发板进行闪存。

设置Docker

1. 如要从Docker中提取映像,首先要 创建一个Docker账户

2. 卸载旧版本的Docker。

$ sudo apt-get remove docker docker-engine docker.io containerd runc

利用储存Docker仓库安装Docker

设置储存库

1. 更新apt程序包索引:

$ sudo apt-get update

2. 安装程序包,以确保超文本传输协议安全:

$ sudo apt-get install apt-transport-https ca-certificates curl gnupg2 software-properties-common

3. 添加Docker的官方GPG密钥:

$ curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add

4. 利用指纹验证密钥

$ sudo apt-key fingerprint 0EBFCD88 pub 4096R/0EBFCD88 2017-02-22 Key fingerprint = 9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88 uid Docker Release (CE deb) docker@docker.com sub 4096R/F273FCD8 2017-02-22

5. 为arm64平台设置Stable储存库:

$ sudo add-apt-repository "deb [arch=arm64] https://download.docker.com/linux/debian $(lsb_release -cs) stable"

• 人工智能用神经处理软件开发工具包

•安装Docker引擎 – 社区

$ sudo apt-get update $ sudo apt-get install docker-ce docker-ce-cli containerd.io

iptables故障排除

一旦您运行了上述命令,就可以发现提示故障的错误信息,如下图所示:

核对Docker版本:

$ sudo docker version

以下截图表明Docker引擎已经安装,但是守护进程并没有运行。e

启动Docker:

$ sudo service docker start

将会出现以下错误信息:2

问题在于Docker安装程序使用了iptable来进行网络地址转换(NAT)。但是,Debian使用了nftables的修改版本。其中一种选择是将条目转换为nftables。

或者,您也可以通过运行以下命令设置Debian,以便iptables-legacy:

$ sudo update-alternatives --set iptables /usr/sbin/iptables-legacy

$ sudo update-alternatives --set ip6tables /usr/sbin/ip6tables-legacy

重新启动Docker:

$ sudo service docker start

一旦Docker开始运行,则拉取一个机器人操作系统映像:

docker pull ros

将Java安装在Qualcomm机器人RB3上的Docker容器中

1. 在终端中,输入以下命令,以便将乌班图映像拉动到Qualcomm机器人RB3上:

$ docker pull ubuntu:16.04

使用以下命令查看新创建的映像:

$ docker image list

2. 为新创建的乌班图映像创建一个容器,并运行该容器:

$ docker run -it –name=Ubuntu_container1 ubuntu:16.04

3. 只要处于乌班图容器内,就可以使用以下命令安装Java:

$ apt-get update && apt-get install -y openjdk-8-jdk && apt-get install -y ant && apt-get clean && rm -rf /var/lib/apt/lists/* && rm -rf /var/cache/oracle-jdk8-installer $ apt-get update && apt-get install -y ca-certificates-java && apt-get clean && update-ca-certificates -f && rm -rf /var/lib/apt/lists/* && rm -rf /var/cache/oracle-jdk8-installer

4. 设置JAVA_HOME环境变量。

$ export JAVA_HOME="/usr/lib/jvm/java-8-openjdk-amd64/"

确保已经成功安装了java

$ java -version

将亚马逊云服务Greengrass安装到Qualcomm机器人RB3上的Docker容器中

在乌班图容器中启用符号链接和硬链接保护

1. 确保您已经按照上文说明在Qualcomm机器人RB3上安装了乌班图16.04 Docker映像。利用以下命令启动乌班图Docker容器:

$ docker container start $ docker exec -it /bin/bash

2. 利用各个选项创建sysctl配置文件,以启用保护项:

$ sudo sh -c 'echo "fs.protected_hardlinks = 1" >> /etc/sysctl.d/local-ggc.conf' $ sudo sh -c 'echo "fs.protected_symlinks = 1" >> /etc/sysctl.d/local-ggc.conf'

3.输入Exit命令或同时按下ctrl+d从容器中退出。使用“docker Stop ”命令停止容器使用。然后,重新启动容器。

4. 进入乌班图容器后,您可以验证是否启用了保护项。 $ cat /proc/sys/fs/protected_{hardlinks,symlinks}

添加Greengrass用户。 $ adduser --system ggc_user $ addgroup --system ggc_group

6. 安装SQLite3。 $ apt-get update $ apt-get install sqlite3

7. 安装CMake。 $ apt-get install cmake

在乌班图容器中安装亚马逊云服务命令行界面

1. 在Docker容器的终端中,输入python –版本,以检查python语言的安装情况。如果未安装python语言,则输入以下命令: $ apt-get update && apt-get install python

2. 下载亚马逊云服务命令行界面捆绑安装程序 $ curl "https://s3.amazonaws.com/aws-cli/awscli-bundle.zip" -o "awscli-bundle.zip"

3. 解压程序包。 $ unzip awscli-bundle.zip

4. 运行安装程序。 $ sudo ./awscli-bundle/install -i /usr/local/aws -b /usr/local/bin/aws

创建亚马逊云服务Greengrass组以及亚马逊云服务Greengrass核心

采取以下步骤,您可以设置一个亚马逊云服务帐户。

1. 登录到亚马逊云服务管理控制台。

2. 在控制台中,搜索物流联网Greengrass。

3. 在亚马逊云服务Greengrass页面,选择“开始创建”并“管理”您的组群。

4. 在Greengrass组群页面,点击“创建组群”。

5. 在“设置您的Greengrass组群”页面,选择“使用默认创建”。

6. 为您的组群输入一个名称,然后选择“下一步”。

7. 使用亚马逊云服务Greengrass核心的默认名称,然后选择“下一步”。

8. 选择“创建组群与核心”

9. 单击该链接下载.tar文件,包括有关亚马逊云服务Greengrass核心的私钥、公钥和证书。

10. 点击“选择您的平台”。在下一页中,下载用于Armv8(AArch64)架构和Arch Linux发行版的Greengrass软件包。下载完成后,选择“完成”。

此时,将所有证书以及亚马逊云服务Greengrass软件拷贝到Qualcomm机器人RB3上。下一步,将其移动到乌班图容器中。

复制并将Greengrass软件包和安全资源提取到您的乌班图容器中

1. 首先,将下载的文件从Qualcomm机器人RB3复制到乌班图容器中。在Qualcomm机器人RB3上,打开终端窗口并输入以下命令: $ docker cp //greengrass-linux-aarch64-1.10.2.tar.gz : / $ docker cp //3e05e19e41-setup.tar.gz :/

2. 启动乌班图容器,并确认已经拷贝了文件。

3. 解压文件。 $ tar -zxvf greengrass-linux-aarch64-1.10.2.tar.gz -C / $ tar -zxvf 3e05e19e41-setup.tar.gz

将亚马逊云服务Greengrass证书安装到Qualcomm机器人RB3上的乌班图容器中

1. 在Qualcomm机器人RB3上,从亚马逊云服务物联网文档中的威瑞信3类公共主G5根CA证书链接下载亚马逊云服务物流网根CA证书。后者,在终端中输入以下命令: $ wget https://www.websecurity.digicert.com/content/dam/websitesecurity/digitalassets/desktop/pdfs/roots/VeriSign-Class 3-Public-Primary-Certification-Authority-G5.pem

2. 将下载的文件从Qualcomm机器人RB3复制到乌班图容器中。 $ docker cp //VeriSign-Class\ 3-Public-Primary-Certification-Authority-G5.pem : /

3. 在乌班图容器中,将文件移动到/greengrass/certs目录中,并将其重命名为root-ca.pem,如下所示。

4. 在乌班图容器中,将亚马逊云服务Greengrass核心的私钥和证书复制到/ Greengrass /certs目录中。在复制文件时使用下表中提供的名称。

5. 将文件拷贝至/greengrass/certs。

配置Greengrass核心

通过以下步骤将亚马逊云服务Greengrass核心(乌班图容器)与为其创建的亚马逊云服务物联网事物关联起来。该过程使用该事物的高级远程节点对应的ARN (Amazon Resource Names),即在云中分配给亚马逊云服务Greengrass核心设备的唯一标识符。

1. 找到亚马逊云服务Greengrass核心的事物高级远程节点ARN。在亚马逊云服务Greengrass控制台中,从导航页中选择“组群”。

•手势和手部跟踪(VIO)

2. 选择组群,显示组群的详细信息。

3.在导航窗格中,选择“核心”和正确的亚马逊云服务Greengrass核心,以显示核心的详细信息。

4. 复制亚马逊云服务Greengrass核心的ARN

5. 在亚马逊云服务Greengrass核心设备(乌班图容器)上,打开一个终端窗口,并输入以下内容: $ vim /greengrass/config/config.json

6. config.json的内容最初与以下内容类似:

7. 对config.json修改如下:

下表描述了用于更新config.json的属性:

8. 启动亚马逊云服务Greengrass核心,将其连接到云。 $ cd /greengrass/ggc/core $ ./greengrassd start

当成功启动Greengrass进程后,界面显示如下:

Qualcomm 解决方案

 

高通软件中心

通过集中式门户站无缝管理您的高通®软件和工具

下载软件中心