Apollo 8.0移植到Orin

目录

1、目的

2、准备(这里参考apollo使用docker编译aarch64版本_Mountain_xiu的博客-CSDN博客)

2.1 拉取代码

2.2拉取aarch64镜像

2.3 导入镜像

2.4 启动镜像

3、编译

4、aarch_docker中运行

 5、Orin上部署


1、目的

目前Apollo官方教程中只提供了X86的编译和安装方法,而我们实际使用中,往往都得在嵌入式中运行,嵌入式的系统一般都是aarch64的。针对这种情况,一般有两种方法:1、直接将整个代码下载到Orin系统中进行编译;2、在X86上编译,然后移植到aarch64;

针对方法一,如果源码编译,意味着要下载整个Apollo源码,而我理解,嵌入式产品应该只包含可执行文件和库,对于源码放在嵌入式系统,其实并不合适。

针对方法二,要么用交叉编译,要么利用aarch64_docker技术,前者改动较多,后者Apollo已提供。

下面针对方法二中的aarch64_docker技术进行详细介绍。

2、准备(这里参考apollo使用docker编译aarch64版本_Mountain_xiu的博客-CSDN博客

2.1 拉取代码

从gitee拉取代码

git clone https://gitee.com/ApolloAuto/apollo.git
git checkout v8.0.0

2.2拉取aarch64镜像

由于我们的目的是想在aarch64_docker中获取编译后的文件,因此我们只需要拉取aarch64镜像,查看cyber_start.sh,aarch64的镜像如下

VERSION_AARCH64="cyber-aarch64-18.04-20201217_1302"

在终端输入

docker pull apolloauto/apollo:cyber-aarch64-18.04-20201217_1302

同时拉取如下的镜像,否则无法启动aarch6的镜像

docker pull multiarch/qemu-user-static:latest

2.3 导入镜像

2.3.1、进入Apollo/docker/scripts, 复制cyber_start.sh为aarch_cyber_start.sh,并对aarch_cyber_start.sh进行修改35行“TARGET_ARCH=aarch64”;

2.3.2、复制cyber_into.sh为aarch_cyber_into.sh,不做修改;

2.4 启动镜像

2.4.1、docker run --rm --privileged multiarch/qemu-user-static:latest --reset -p yes

2.4.2、用管理员权限依次调用aarch_cyber_start.sh和aarch_cyber_into.sh;

3、编译

3.1、调用docker/build/install/intall_glfags_glog.sh, 并利用里面的语句安装glfag和glog库

3.2、采用指令./apollo.sh build cyber 进行编译;

4、aarch_docker中运行

4.1、修改环境变量export GLOG_alsologtostderr=1

4.2、调用指令./bazel-bin/cyber/examples/talker”,结果如图所示

 5、Orin上部署

5.1、将PC机中的apollo/bazel-bin/cyber文件夹  拷贝到 orin的任意目录,其实就是拷贝可执行文件;

5.2、将PC机中的apollo/docker/build 文件夹拷贝到 orin的任意目录,主要目的是orin系统中可能有些库文件没有,可通过该目录下的脚本,实现相应库的安装,比如protobuffer,glog,gflags等等;

5.3、将PC机中的apollo/cyber/conf文件夹 拷贝到orin的/apollo/cyber/conf(若没有该路径,就自己创建该路径),目的就是我们在PC机编译的可执行文件会从这个路径下读取配置文件;

5.4、和在docker中的运行方式一样,首先配置terminal的实时输出(

export GLOG_alsologtostderr=1),然后调用相关可执行文件(./cyber/talker)

5.5、如果在运行的过程中,发现有.so找不到,可先通过 find / -name *.so 找到该so路径, 如果找的到,可以通过修改~/.bashrc中的$LD_LIBRARY_PATH,以及更新/etc/ld.so.conf 把相应的路径放置进去,如果找不到,说明整个系统上就没有该文件,得利用步骤2中的脚本安装相应的库文件。

最终运行结果如下图

 以上。

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值