实验室有一台2020年购入的AGX Xavier计算平台,由于实车开发作实验较为麻烦,打算基于这台Xavier从头搭建一套缩小版的自动驾驶系统用于算法验证以及实验,同时锻炼从头搭建系统的能力。平台基于朴为A30的阿克曼结构的车,底盘控制由CAN和串口输出,并提供了ROS接口。

【摘要】第一篇主要总结对于Xavier的刷机以及ROS安装过程中遇到的困难和问题。(尤其是因为后续需要使用扩展40PIN的CAN通信,而JetPack4.6以上版本的时钟配置导致CAN的波特率有问题,需要特殊配置!)
【注意】相关资料手册均可以到NVIDIA官网找到(链接)

一、 硬件连接

  1. 一台Ubuntu系统的主机Host(注意!Ubunut主机的系统版本决定了刷机系统的版本的下限,最开始使用20.04的系统,无论如何都无法将xavier刷为18.04,以至于后续ros安装出现大量问题,因此注意版本!)
  2. 一条USB-Type-C数据线
  3. 显示器、键盘、鼠标连接xavier

二、主机操作

  1. 从NVIDIA官网(链接)下载对应版本的sdkmanager(由于后续ROS安装的问题,安装18.04)
  2. 在下载的.deb文件所在目录打开命令行,并进行sdkmanager的安装
    sudo apt install ./sdkmanager_1.5.0-7774_amd64.deb
  3. 命令行输入sdkmanager打开
  4. 取消勾选host machine(参考其他博客,这个是为主机下载安装文件的,如果想在主机上安装 nvida 软件,可以勾选这个,实际上没必要)。版本选择,注意官网的版本描述,对应的Ubuntu版本需要选择
  5. 下载路径建议默认(参考其他博客,sdk若下载到其他位置后续会出错,不要勾选install later)
  6. 此时会下载带有英伟达自己的bootloader以及Linux内核以及编译过的设备树文件
  7. 等OS镜像烧录完成,会弹出配置窗口,此时需要首先修改时钟配置!见(五),然后将xavier与主机连接(此前要关机)。长按中间恢复键,然后不放开按开机键,几秒后同时松开,即可检测到连接,选择手动安装,点击 Flash 按钮,开始烧录 OS 镜像
  8. 等OS烧录完成,xavier会开机,此时进行Ubuntu配置,同时主机会弹出新的窗口进行SDK的下载,注意二者要处于同一个局域网

三、Xavier操作

  1. 进行Ubuntu的基础配置,包括设置中文和输入法。中文需要在system中选择language中把不完整的包下载完整,然后将中文拖到顶端,应用全局然后重启;
  2. 安装ROS
    1. 一定要注意和Ubunut版本的匹配! (18.04对应ROS melodic)
    2. 由于xavier是ARM架构,其安装和x86的ROS有所不同,如果按照ros wiki的步骤进行安装,会出现包之间的依赖出现问题,而apt-get是无法解决包之间的依赖问题的,而aptitude虽然可以自动检查包的依赖,但会覆盖apt-get而导致其他问题
    3. 建议使用github上一位国外大佬开源的针对18.04的xavier的ros安装脚本进行安装(链接)
      通过执行./installROS.sh,-p参数可以选择安装的版本,可以选择ros-melodic-ros-base/ros-melodic-desktop/ros-melodic-desktop-full
    4. 此包还包含了自动创建ros工作空间的脚本,参数为工作空间名字,默认为catkin_ws

四、风扇配置

  • Xavier提供PWM和转速表功能,用于控制风扇作为热解决方案的一部分。PWM输出控制风扇转速,转速表反馈转速;
  • Xavier有8个PWM输出,PWM控制器为其8个实例(PWM1到PWM8)中的每个实例支持一个PWM输出,每个实例分配一个64 KB的独立地址空间,PWM控制器可以从CLK_M或PLLP中获取时钟源,CLK_M (19.2 MHz)源自OSC时钟(38.4 MHz),PLLP工作在408 MHz;
  • 对于风扇的配置,开机默认转速为0(最开始不知道配置风扇这一回事,温度很高,我用了外置风扇散热hhh),可以在/sys/devices/pwm-fan/target_pwm文件中看到风扇的转速,默认为0,可以设置到最大250;
  • 设置为开机自启动:使用jetson性能检测软件jetson-stats
    安装:sudo pip install jetson-stats
    启动:sudo jtop

    • 进入到界面6,设置jetson_clocks Running和boot Enable,设置开机自启动风扇(开机过几秒风扇启动)
    • 设置风扇速度(按下“m”键是降低风扇速度,按“p”键是提高风扇速度)
    • 使用鼠标点击“manual”,设置为手动
    • 按“q”键退出,重启设备 reboot,测试风扇是否开机自启动

五、JetPack4.6版本以上的时钟配置

  1. 问题: Jetpack 4.6 以后, MTTCAN 配置发生了变化, CAN时钟默认为低功耗设置(没有使能PLLAON), CAN工作不正常(主要由于时钟源的选择发生了变化,导致CAN的波特率不准)
  2. **原理:**根据官方提供的内核源码中设备树的绑定文件(CAN相关的绑定文件在net目录下),找到bosch的CAN配置文件(以YAML格式书写,并非传统的txt格式),其中描述了如何配置相关节点的属性

  3. **解决方案:**将CAN的时钟源选为pllaon。刷机刷到打开AGX的恢复模式的位置时,也就是弹出下图所示界面的时候,打开安装到PC的文件夹,找到nvidia/nvidia_sdk/JetPack_4.6.1_Linux_JETSON_AGX_XAVIER_TARGETS/Linux_for_Tegra,在这个路径下,需要修改两个文件,分别是:
    bootloader/t186ref/tegra194-a02-bpmp-p2888-a04.dtbkernel/dtb/下的tegra194-p2888-0001-p2822-0000.dtb

    1. 反编译dtc -I dtb -O dts ./tegra194-a02-bpmp-p2888-a04.dtb > ./tegra194-a02-bpmp-p2888-a04.dts
    2. 修改CAN的父时钟
    3. 重新编译dtc -I dts -O dtb ./tegra194-a02-bpmp-p2888-a04.dts > ./tegra194-a02-bpmp-p2888-a04.dtb
    4. 反编译dtc -I dtb -O dts ./tegra194-p2888-0001-p2822-0000.dtb > ./tegra194-p2888-0001-p2822-0000.dts
    5. 修改pll时钟源

【参考】
Nvidia Jetson Xavier 开机配置+刷机+部署ROS(刷机需谨慎)
JETSON AGX XAVIER刷机记录
Jetson AGX Xavier/Nano刷机指南(无需踩坑版)
Jetson AGX Xavier 设置 CAN,打开pllaon时钟,jetpack5.1
Nvidia jetson agx xavier can通讯失败,修改时钟源pllaon
Jetson Xavier 设置 CANFD (Jetpack 4.6, 开启pllaon)

基于NVIDIA Jetson AGX Xavier的移动机器人开发(1)——Xavier刷机、风扇配置、ROS安装相关推荐

  1. NVIDIA Jetson AGX Xavier 安装 JetPack 注意事项

    NVIDIA Jetson AGX Xavier 安装 JetPack 注意事项 本文主要记录了我第一次接触Linux和为NVIDIA Jetson AGX Xavier安装JetPack时遇到的一些 ...

  2. nvidia jetson agx xavier运行 OpenCL

    nvidia jetson agx xavier 运行 OpenCL 最近用OpenCL在某个GPGPU上开发了某些功能,想移植到nvidia的gpu上时才发现nvidia的移动端GPU居然没有Ope ...

  3. NVIDIA Jetson AGX Xavier冰壶的跟踪与识别

    NVIDIA Jetson AGX Xavier冰壶的跟踪与识别 一.项目简介 二.硬件平台的选取 2.1为什么选择NVIDIA Jetson AGX Xavier 三.识别环境配置 3.1 下载py ...

  4. ZED2代相机+nvidia jetson AGX xavier踩坑记录

    ZED2代相机+nvidia jetson AGX xavier踩坑记录 项目描述 nvidia jetson AGX xavier就不详细介绍了,jetson系列嵌入式开发板比一般的arrch64开 ...

  5. 手把手教你备份 nvidia jetson agx xavier 系统(亲测有效、超详细)

    手把手教你备份 nvidia jetson agx xavier 系统(亲测有效.超详细) 此版本适合小白,网上虽然很多教程,但是对于超级小白来说还是有点粗略了,教程奉上! 文章目录 手把手教你备份 ...

  6. 玩转NVIDIA Jetson AGX Xavier(3)--- 使用JetPack 4.1为Xavier刷机

    这篇文章开始我们正式要介绍如何玩转Xavier了 在开始本章内容之前,大家可以下载我翻译的Xavier中文指导手册 地址:玩转NVIDIA Jetson AGX Xavier--- 中文用户手册_木子 ...

  7. Nvidia Jetson Agx Xavier 在Ros中调用GMSL2相机

    一.背景 在ros中调用GMSL2摄像头,刚开始是通过修改官方驱动包ros-meloidc-usb-cam,可能是修改的地方不对,一直报错,调用失败,要是有大佬修改成功,希望能交流一下. 后来借鉴了一 ...

  8. 玩转NVIDIA Jetson AGX Xavier

    最近项目应用需要部署到边缘模块,所以就玩起了Xavier.感觉网上的资料不多,所以从头记录一下笔记,方便大家一起学习应用. 玩转NVIDIA Jetson AGX Xavier 1.刷机(安装sdkm ...

  9. Nvidia Jetson AGX Xavier 硬件相关

    文章目录 前言 载板PCB层叠与阻抗 699-Pin连接器 以太网 M.2 PCIE 40-Pin扩展口 风扇接口 自动控制接口 电源域 按键和指示灯 音频接口 eSATA / USB 3.1 Typ ...

最新文章

  1. 利用OpenCV 基于Inception模型图像分类
  2. ISLR_Propotion
  3. 使用负载均衡SLB IPv6搞定苹果AppStore审核
  4. 直播预告|灵动MM32 MCU助力全国大学生智能汽车竞赛——基础培训
  5. 如何定义一个自己的可复用的JS文件
  6. VS 配置外部DLL的引用路径【可执行文件的环境路径】
  7. 工具 左侧服务列表_协作办公时代,在线编辑文档工具,安排!
  8. Python3.7版本unittest框架添加用例的方法
  9. SpringMVC之源码分析--HandlerMapping(一)
  10. php代码审计基础笔记
  11. SAP Spartacus 启动时 Chrome 里观察到的 product.js
  12. python数据去重的函数_python pandas dataframe 去重函数的具体使用
  13. 使用Speech SDK 5.1文字转音频
  14. C++详解new/delete
  15. cstring判断包含字符串_Power Query中判断字符串中是否包含有字母的三种解决办法...
  16. pdf打印机怎么添加并使用?
  17. 人力资源管理系统(大二数据库课设) spring boot,Mybatis+bootstap,ajax项目
  18. 如何选择适合你的兴趣爱好(二十七),外语
  19. office 2021保姆级安装与激活教程(附安装包获取)
  20. 弘辽科技:如何制定淘宝店铺推广计划?店铺推广包含哪些方面?

热门文章

  1. 70. 爬楼梯:假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?
  2. 经验分享丨40天通过PMP考试心得
  3. MacBook上workbench安装以及中文实现
  4. Stable Diffusion - ChatGPT 与 Stable Diffusion 结合提供无限创意构图
  5. vue表单数据加载/重置
  6. document.getElementById的理解
  7. cmd_关闭控屏软件_关闭卡死程序_解除任务管理器禁用
  8. java 交流学习微信群
  9. 自己家过得一地鸡毛,满身负债,老公却还想着创业,怎么办?
  10. 从一个广告词想到的(转贴)高度决定视野,角度改变观念,尺度把握人