Apollo 自动驾驶工程 x86迁移到ARM ORIN

概述 最近工作主要关于自动驾驶工程跨平台迁移,从原来的X86架构工控机形式迁移到英伟达Orin Soc,由于Orin是ARM以及这个嵌入式平台的内核是定制的,所以遇到了很多问题,这里分享出来

在容器里使用CUDA计算在ORIN平台

一开始使用的是ubuntu cuda作为基础镜像,并没有专门使用英伟达Jetson平台的L4T基础镜像,导致在容器里初始化CUDA一直失败,做了一些实验,同样的代码同样的可执行文件在容器外就可以初始化成功,使用L4T作为基础镜像就没有问题,英伟达L4T基础镜像Github上L4T镜像Dockerfile同时启动选项中要加上

 docker run --gpus all

或者

 docker run --runtime=nvidia

或者使用

nvidia-docker

作为启动项.原因推测的话使用官方的基础镜像CUDA 挂载才是正确的,有知道的大神可以补充。

ARM平台的适配问题

这里主要有两点问题

  • 一个是整个工程的依赖库都要切换到Arm平台的
  • apollo cyber中关于协程要更新到比较新的commit,支持了Arm相关指令集
cyber/croutine/detail/routine_context.cc

例如在上面这个文件里

#ifdef __aarch64__
  char *sp = ctx->stack + STACK_SIZE - sizeof(void *);
#else
  char *sp = ctx->stack + STACK_SIZE - 2 * sizeof(void *);
#endif

也可以在整个工程搜索

 #ifdef __aarch64__ 

关键字和百度apollo github代码工程作比较,看哪里需要补充,编译器会自动识别走aarch64分支。
关于arm平台的其他一些问题可以谷歌得到。如果有问题可以提出来进行补充。

一些其他问题

由于整个apollo cyber采取的是分布式节点通讯方式,所以建议一个一个模块的进行编译和适配。整个工程的迁移顺序应如下

  1. 整个工程Docker image的编译,后续所有编译和运行都在这个镜像里,所以应先把镜像编译出来。遇到问题可以谷歌。这个过程比较耗时,目前是我是在orin上直接进行编译,没有使用交叉编译。
  2. cyber的编译以及运行
  3. 各个模块,例如localization,perception等模块的编译运行。

有用的小工具

可视化查看cpu以及gpu使用情况工具jtop

git clone https://github.com/rbonghi/jetson_stats.git

注意在这里进入jtop crtl菜单可以把功耗选到最大,否则CPU和GPU频率会被限制。ORIN CPU最大频率在2.2GHZ,GPU最大频率在1.3GHZ。

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 21
    评论
Apollo自动驾驶建图是一个关键的技术,用于使无人驾驶车辆能够准确地感知周围环境并创建高精度的地图。该技术主要依赖于激光雷达、摄像头和其他传感器。 首先,Apollo自动驾驶车辆会搭载多个激光雷达传感器,这些传感器能够通过发射激光束并测量其在环境中的反射时间来获取周围物体的距离和位置。通过多个激光雷达的组合使用,车辆能够获取到全方位的环境信息。 其次,车辆还会配备多个摄像头来获取图像信息。这些摄像头能够记录车辆周围的颜色、纹理和形状等信息,从而进一步识别和定位周围的物体。通过将激光雷达和摄像头的数据进行融合处理,车辆能够更加准确地感知周围环境。 在获取到周围环境的数据后,Apollo会通过传感器融合和运动模型等算法对数据进行处理,并利用SLAM(同时定位与地图构建)算法创建地图。这个过程包括了对激光雷达和摄像头数据进行滤波、分割和匹配等操作,并将数据与车辆的运动状态相结合,逐步构建出高精度的地图。 通过实时地创建和更新地图,Apollo可以将地图中的静态障碍物、道路标志、交通信号灯等信息与车辆的感知结果进行比对,从而更好地规划路径和做出相应决策。 总而言之,Apollo自动驾驶的建图技术,通过激光雷达、摄像头等传感器获取环境信息,然后利用SLAM算法创建高精度的地图,以支持车辆的路径规划和决策。这个过程对于保证自动驾驶的准确性和安全性至关重要。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值