亚马逊云服务RoboMaker部署机器人应用程序(机器人操作系统)
部署Qualcomm®机器人RB3平台,以驱动Turtlebot 3汉堡型机器人
亚马逊云服务Robomaker是一种为机器人应用程序提供开发环境的云服务。开发人员可以使用RoboMaker在实体机器人上创建和部署机器人操作系统应用程序,然后在不需要真实机器人的情况下模拟和测试应用程序。
在亚马逊云服务的文章《 使用亚马逊云服务RoboMaker部署机器人应用程序 》中提供部署RoboMaker应用程序的步骤说明。但是,在该篇文章中的交叉编译和绑定指令是armhf体系结构所特有。下面的程序为Qualcomm机器人RB3的ARM64架构修改了该等指令。其中还包括一个帮助简化应用程序部署最后步骤的快捷方式。
先决条件
在部署RoboMaker应用程序之前,请遵循以下步骤:
1.按照“如何在Qualcomm机器人RB3开发平台上安装Docker ”中的说明,利用安装了机器人操作系统Kinetic的Docker容器设置Qualcomm机器人RB3。
2.将Turtlebot 3汉堡型机器人连接到Qualcomm机器人RB3上。
3.登录到亚马逊S3控制台。创建并命名一个亚马逊S3存储器。
4.将Java 8安装到Docker容器中。请参阅“将Java安装到Qualcomm机器人RB3上的Docker容器上”的说明。
5. 将基于ARM64的亚马逊云服务Greengrass安装到Docker容器中。请参阅“ 将亚马逊云服务Greengrass安装到Qualcomm机器人RB3上的Docker容器上”的说明。
然后,请按照亚马逊云服务文章“使用亚马逊云服务RoboMaker部署机器人应用程序”中的步骤。(Qualcomm机器人RB3满足“已经设置并配置了机器人操作系统Kinetic/Melodic、SSH、SFTP/SCP和互联网接入的实体机器人”的前提条件。)
Qualcomm机器人RB3的交叉编译和捆绑
在 该篇文章中,子标题“用亚马逊云服务RoboMaker构建一个机器人应用程序”下包含了第14步。该步骤显示了一系列命令(从cd /opt/robomaker/cross-compilation-dockerfile/到退出),可以通过交叉编译Docker容器捆绑机器人应用程序。
相反,请按照以下步骤安装程序包,以便在Qualcomm机器人RB3(一种基于ARM64的单板计算机(SBC))上捆绑各种应用程序(colcon)。(有关详细信息,请参阅“亚马逊云服务 RoboMaker的ARM64交叉编译”。)
1. 运行以下命令(乌班图主机):
$ sudo apt-get update $ sudo apt-get install qemu-user $ sudo apt install qemu-user-static $ sudo cp /usr/bin/qemu-aarch64-static /opt/robomaker/cross-compilation-dockerfile/ $ cd /opt/robomaker/cross-compilation-dockerfile/ $ mv Dockerfile Dockerfile.armhf
2. 为ARM64创建一个修改版本的原armhf Dockerfile。使用以下代码创建一个新文件,并将其保存为Dockerfile。
ARG ROS_VERSION=kinetic ARG UBUNTU_VERSION=xenial FROM arm64v8/ros:kinetic-ros-base-xenial ENV PATH="/root/.local/bin:${PATH}" # Copy qemu from the host machine COPY qemu-aarch64-static /usr/bin RUN echo 'debconf debconf/frontend select Noninteractive' | debconf-set-selections # Installed for convenience RUN apt-get update && apt-get install -y vim # Add raspicam_node sources to apt RUN apt-get update && apt-get install -y apt-transport-https \ && echo "deb https://packages.ubiquityrobotics.com/ubuntu/ubiquity xenial main" > /etc/apt/sources.list.d/ubiquity-latest.list \ && apt-key adv --keyserver hkp://ha.pool.sks-keyservers.net:80 --recv-key C3032ED8 # Install Python and colcon RUN apt-get update && apt-get install -y \ python \ python3-apt \ curl \ && curl -O https://bootstrap.pypa.io/get-pip.py \ && python3 get-pip.py \ && python2 get-pip.py \ && python3 -m pip install -U colcon-ros-bundle # Add custom rosdep rules COPY custom-rosdep-rules/raspicam-node.yaml /etc/ros/rosdep/custom-rules/raspicam-node.yaml #RUN echo "yaml file:/etc/ros/rosdep/custom-rules/raspicam-node.yaml" > /etc/ros/rosdep/sources.list.d/22-raspicam-node.list \ RUN echo "yaml https://s3-us-west-2.amazonaws.com/rosdep/python.yaml" > /etc/ros/rosdep/sources.list.d/18-aws-python.list \ && rosdep update # Add custom pip rules COPY custom-pip-rules.conf /etc/pip.conf # Add custom apt sources for bundling COPY xenial-sources-arm64.yaml /opt/cross/apt-sources.yaml
3. 将以下代码保存到一个名为xenial-sources-arm64.yaml的文件中。其中列出了用于捆绑机器人应用程序的ARM64软件包。
# ARM Support deb [arch=arm64] http://ports.ubuntu.com/ubuntu-ports/ xenial main restricted universe multiverse deb [arch=arm64] http://ports.ubuntu.com/ubuntu-ports/ xenial-updates main restricted universe multiverse deb [arch=arm64] http://ports.ubuntu.com/ubuntu-ports/ xenial-backports main restricted deb [arch=arm64] http://ports.ubuntu.com/ubuntu-ports/ xenial-security main restricted universe multiverse # ROS deb [arch=arm64] http://packages.ros.org/ros/ubuntu xenial main 4. Once Dockerfile is saved, run the following commands: 4. 保存Dockerfile文件后,执行以下命令: $ sudo docker build -t ros-cross-compile:arm64. $ cd ~/environment/HelloWorld/robot_ws $ sudo docker run -v $(pwd):/ws -it ros-cross-compile:arm64 $ cd ws $ apt update $ rosdep install -–from-paths src -–ignore-src -r -y $ colcon build $ colcon bundle --apt-sources-list /opt/cross/apt-sources.yaml $ exit
5. 在第15步重新进行“使用亚马逊云服务RoboMaker构建机器人应用程序”中的说明。
最后一步:应用程序部署
同一篇亚马逊云服务文章的最后一节题为“使用亚马逊云服务RoboMaker创建和部署机器人应用程序”。其中包含了16个步骤。
如要在Qualcomm机器人RB3上成功部署机器人应用程序,每次创建部署后都需要切换亚马逊云服务Greengrass组群设置(第16步)。首先应当将亚马逊云服务Greengrass组群设置(默认Lambda函数容器化)更改为“Greengrass容器”,然后返回“无容器”和“重新部署”。
按照视频“将亚马逊云服务RoboMaker部署到RB3上”中的步骤更改亚马逊云服务 Greengrass组群设置。其中展示了如何部署到Qualcomm机器人RB3上(并非树莓派),以驱动Turtlebot汉堡式机器人。
Qualcomm机器人RB3为Qualcomm Technologies, Inc.和/或其子公司的产品。
Qualcomm 开发者专区是 Qualcomm 联合CSDN 共同打造的面向中国开发者的技术专区。致力于通过提供全球最新资讯和最多元的技术资源及支持,为开发者们打造全面一流的开发环境。本专区将以嵌入式、物联网、游戏开发、Qualcomm® 骁龙™处理器的软件优化等技术为核心,打造全面的开发者技术服务社区,为下一代高性能体验和设计带来更多的想法和灵感。
加入 Qualcomm 开发者专区