热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

开发笔记:Apollo移植

篇首语:本文由编程笔记#小编为大家整理,主要介绍了Apollo移植相关的知识,希望对你有一定的参考价值。Apollo移植

篇首语:本文由编程笔记#小编为大家整理,主要介绍了Apollo移植相关的知识,希望对你有一定的参考价值。



Apollo移植

环境



  • 平台 ubuntu16.04

  • Apollo_kernel 1.0


安装步骤步骤



  • 步骤一:安装ubuntu(官方建议使用Ubuntu 14.04.3)

    步骤一和步骤二参考文档路径



    • 启动软件更新程序

      终端中执行下面的命令(新机需要更换Ubuntu的下载源,详细步骤见https://www.cnblogs.com/DXGG-Bond/p/12200597.html

      sudo apt-get update
      sudo apt-get upgrade


    • 键入以下命令以安装Linux 4.4内核

      sudo apt-get install linux-generic-lts-xenial



  • 步骤二:安装Apollo内核



    • 从github上的发行版部分下载发行包

      https://github.com/ApolloAuto/apollo-kernel/releases


    • 安装内核在下载发行包之后

      tar zxvf linux-4.4.32-apollo-1.0.0.tar.gz
      cd install
      sudo bash install_kernel.sh


    • 通过reboot命令重新启动系统


    • 确认是否正常启动Apollo内核

      终端中输入uname -r 查看是否为上一步中安装的Apollo内核

      uname -r


    • 如果不是我们想要的内核,可能因为系统内有多个内核,需要修改启动内核的顺序。



      • 运行如下命令,查看内核的启动顺序:

        grep 'menuentry' /boot/grub/grub.cfg


      • 技术图片


      • 其中红框的部分是大项(0,1),底下的是其中的item(0-11),我们想要启动的是:Linux 4.4.32-apollo-2-RT‘ --class,对应1->6


      • 修改/etc/default/grub中的系统内核启动顺序:



        • 将GRUB_DEFAULT=0修改为:"1>6" 如下图:

        • 技术图片


      • 运行如下命令更新启动顺序:

        sudo update-grub


      • 重启之后运行:uname -r,此时将是我们期望的启动顺序。效果如下

        lhx@ubuntu:~$ uname -r
        4.4.32-apollo-1-RT




注:以下步骤参考文档:https://github.com/ApolloAuto/apollo/blob/master/docs/quickstart/apollo_software_installation_guide.md



  • 步骤三:从github源代码下载Apollo源代码,并检查正确的分支:

    ubuntu终端中执行以下代码:

    git clone https://github.com/ApolloAuto/apollo.git
    cd apollo
    git checkout [release_branch_name]


  • 步骤四:APOLLO_HOME通过以下命令设置环境变量:

    ubuntu终端中执行以下代码:

    echo "export APOLLO_HOME=$(pwd)" >> ~/.bashrc && source ~/.bashrc
    source ~/.bashrc


  • 步骤五:安装Docker环境

    Docker容器是为Apollo建立构建环境的最简单方法。

    (详细Docker教程https://docs.docker.com/、官方安装指南https://docs.docker.com/install/linux/docker-ce/ubuntu/)

    具体是安装步骤如下图:



    • 操作系统要求如下(本人用Ubuntu16.04也能成功安装)



      • Disco 19.04

      • Cosmic 18.10

      • Bionic 18.04 (LTS)

      • Xenial 16.04 (LTS)


    • 若系统安装过docker需要卸载旧版本,可使用以下命令

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


    • 安装软件包以允许apt通过HTTPS使用存储库:

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


    • 添加Docker的官方GPG密钥:

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


    • 验证是否成功添加官方密钥

      $ sudo apt-key fingerprint 0EBFCD88


      • 成功添加官方密钥终端将输出如下信息

        pub rsa4096 2017-02-22 [SCEA]
        9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88
        uid [ unknown] Docker Release (CE deb)
        sub rsa4096 2017-02-22 [S]



    • 使用以下命令来设置稳定的存储库

      对于 amd64 架构的计算机,执行以下代码

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

      如果你是树莓派或其它ARM架构计算机,请运行:

      echo "deb [arch=armhf] https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list


    • 更新apt包索引

      sudo apt-get update


    • 安装最新版本的Docker Engine-Community和containerd

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


    • 验证是否成功安装Docker Engine-Community

      sudo docker run hello-world

      成功安装将在终端中打印如下信息

      Hello from Docker!
      This message shows that your installation appears to be working correctly.



注:以下步骤参考文档链接:https://docs.docker.com/install/linux/linux-postinstall/



  • 步骤六:以非root用户身份管理Docker



    • 创建docker组。

      $ sudo groupadd docker


    • 将您的用户添加到该docker组。

      $ sudo usermod -aG docker $USER


    • 重启docker后台服务

      sudo service docker restart


    • 切换当前用户到新group

      newgrp - docker


    • 确认docker可以非sudo运行

      docker p



  • 步骤七

    (可选)如果已经安装了Docker(在安装Apollo内核之前),则在以下行添加/etc/default/docker


DOCKER_OPTS = "-s overlay"


  • 步骤八:按照官方文档安装最新的nvidia-container-toolkit 。

    (此步本人电脑无对应的硬件GPU,无法进行安装)



建立阿波罗

注一下步骤均属于没有硬件下的一种模拟情况


参考:建立Apollo


启动容器

我们提供了一个名为dev-latest的构建映像。容器会将您当地的阿波罗仓库安装到/ apollo

bash docker/scripts/dev_start.sh

此步骤在家的电脑上一直在下载超时。解决方式参考:解决 Docker pull 出现的 error pulling image configuration:


解决错误信息:Get https://registry-1.docker.io/v2/: net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)

注一下为个人的百度云地址中粘贴地址

1. 安装/升级Docker客户端
推荐安装1.10.0以上版本的Docker客户端,参考文档 docker-ce
2. 配置镜像加速器
针对Docker客户端版本大于 1.10.0 的用户
您可以通过修改daemon配置文件/etc/docker/daemon.json来使用加速器
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-&#39;EOF&#39;
{
"registry-mirrors": ["https://27yrtv95.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

进入容器

bash docker/scripts/dev_into.sh

构建模块

bash apollo.sh build

Note: 如果没有GPU,则可以使用以下脚本代替

bash apollo.sh build_cpu

Note: 如果您的计算机运行缓慢,则可以输入以下命令来限制CPU。

bash apollo.sh build --local_resources 2048,1.0,1.0

如何启动和运行阿波罗

参考:如何启动和运行阿波罗

在继续之前,请先检查并确保您在开发docker容器中。现在,您将需要从源代码构建。如果要运行整个系统,请确保具有nVidia GPU并已安装Linux nVidia驱动程序。即使您缺少Linux nVidia驱动程序,您仍然可以继续执行接下来的几个步骤,因为该系统将运行,但是将使用基于CUDA的感知和其他模块。

# To get a list of build commands
./apollo.sh
# To make sure you start clean
./apollo.sh clean
# This will build the full system and requires that you have an nVidia GPU with nVidia drivers loaded
bash apollo.sh build

如果您没有nVidia GPU,则系统将运行,但是将使用基于CUDA的感知和其他模块。您必须指定dbg调试模式或opt优化代码

./apollo.sh build_no_perception dbg

如果您对Dreamview前端进行了修改,则必须./apollo.sh build_fe 在运行完整版本之前运行。

如果计算机速度很慢,则可以输入以下命令来限制CPU。

bash apollo.sh build --local_resources 2048,1.0,1.0

运行阿波罗

请按照以下步骤启动Apollo。请注意,在运行系统之前,必须先构建系统。请注意,bootstrap.sh实际上会成功,但是如果您跳过构建步骤,则不会显示用户界面。


Start Apollo

运行Apollo将启动ROS核心,然后启动一个称为Dreamview的Web用户界面,这由引导脚本处理,因此,应在docker容器中运行:

# start module monitor
bash scripts/bootstrap.sh

访问Dreamview

通过打开您喜欢的浏览器(例如Chrome)访问Dreamview,请访问http:// localhost:8888,您应该看到此屏幕。实际系统中没有任何运行。


推荐阅读
  • 本文详细记录了在银河麒麟操作系统和龙芯架构上使用 Qt 5.15.2 进行项目打包时遇到的问题及解决方案,特别关注于 linuxdeployqt 工具的应用。 ... [详细]
  • CentOS7源码编译安装MySQL5.6
    2019独角兽企业重金招聘Python工程师标准一、先在cmake官网下个最新的cmake源码包cmake官网:https:www.cmake.org如此时最新 ... [详细]
  • 本文介绍了一款用于自动化部署 Linux 服务的 Bash 脚本。该脚本不仅涵盖了基本的文件复制和目录创建,还处理了系统服务的配置和启动,确保在多种 Linux 发行版上都能顺利运行。 ... [详细]
  • Linux 系统启动故障排除指南:MBR 和 GRUB 问题
    本文详细介绍了 Linux 系统启动过程中常见的 MBR 扇区和 GRUB 引导程序故障及其解决方案,涵盖从备份、模拟故障到恢复的具体步骤。 ... [详细]
  • 本文详细介绍了 Dockerfile 的编写方法及其在网络配置中的应用,涵盖基础指令、镜像构建与发布流程,并深入探讨了 Docker 的默认网络、容器互联及自定义网络的实现。 ... [详细]
  • 在现代网络环境中,两台计算机之间的文件传输需求日益增长。传统的FTP和SSH方式虽然有效,但其配置复杂、步骤繁琐,难以满足快速且安全的传输需求。本文将介绍一种基于Go语言开发的新一代文件传输工具——Croc,它不仅简化了操作流程,还提供了强大的加密和跨平台支持。 ... [详细]
  • 本文详细介绍如何使用Python进行配置文件的读写操作,涵盖常见的配置文件格式(如INI、JSON、TOML和YAML),并提供具体的代码示例。 ... [详细]
  • 本文详细介绍了如何在Linux系统上安装和配置Smokeping,以实现对网络链路质量的实时监控。通过详细的步骤和必要的依赖包安装,确保用户能够顺利完成部署并优化其网络性能监控。 ... [详细]
  • 在Ubuntu 16.04 LTS上配置Qt Creator开发环境
    本文详细介绍了如何在Ubuntu 16.04 LTS系统中安装和配置Qt Creator,涵盖了从下载到安装的全过程,并提供了常见问题的解决方案。 ... [详细]
  • 本文详细介绍了如何在 Linux 平台上安装和配置 PostgreSQL 数据库。通过访问官方资源并遵循特定的操作步骤,用户可以在不同发行版(如 Ubuntu 和 Red Hat)上顺利完成 PostgreSQL 的安装。 ... [详细]
  • 本文详细分析了Hive在启动过程中遇到的权限拒绝错误,并提供了多种解决方案,包括调整文件权限、用户组设置以及环境变量配置等。 ... [详细]
  • 本文详细介绍如何使用Samba软件配置CIFS文件共享服务,涵盖安装、配置、权限管理及多用户挂载等关键步骤。通过具体示例和命令行操作,帮助读者快速搭建并优化Samba服务器。 ... [详细]
  • 解决微信电脑版无法刷朋友圈问题:使用安卓远程投屏方案
    在工作期间想要浏览微信和朋友圈却不太方便?虽然微信电脑版目前不支持直接刷朋友圈,但通过远程投屏技术,可以轻松实现在电脑上操作安卓设备的功能。 ... [详细]
  • 从零开始构建完整手机站:Vue CLI 3 实战指南(第一部分)
    本系列教程将引导您使用 Vue CLI 3 构建一个功能齐全的移动应用。我们将深入探讨项目中涉及的每一个知识点,并确保这些内容与实际工作中的需求紧密结合。 ... [详细]
  • MySQL 数据库迁移指南:从本地到远程及磁盘间迁移
    本文详细介绍了如何在不同场景下进行 MySQL 数据库的迁移,包括从一个硬盘迁移到另一个硬盘、从一台计算机迁移到另一台计算机,以及解决迁移过程中可能遇到的问题。 ... [详细]
author-avatar
wenxuanlee
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有