布谷鸟科技AWU406车载AI边缘计算机基于 NVIDIA Jetson AGX Orin Series模组开发,AI算力200/275 TOPS (INT8),支持扩展4G/5G通讯模组、IMU模组,支持4G/5G远程唤醒、CAN唤醒、ACC唤醒,支持NTP、PTP、PPS时间同步等功能。具有丰富的外设接口,支持多路GMSL、以太网、USB、CAN、UART、ADC、GPIO、SBUS等接口,可接入高清数字摄像头、激光雷达、毫米波雷达、组合导航等外设单元。
AWU406车载AI边缘计算机整机采用NXP S32K324 MCU,功能安全等级ASIL-B,负责系统电源管理、安全管理、基础监护等功能。
IP65级防护标准设计,可完全防止粉尘、雨水侵入设备内部,为恶劣环境下设备正常工作提供可靠保障。
操作系统基于Ubuntu 22.04深度定制,可高效开发相关感知、决策、控制等多种功能,满足自动驾驶、远程驾驶、数据存储、移动通信等场景应用需求。
| 序号 | 型号 | 名称 | 备注 |
|---|---|---|---|
| 1. | AWU406-A01 | 车载多功能控制器 | AGX Orin 32GB,S32K,200TOPS,WiFi6,GNSS(支持RTK),IMU,1000BASE-TX*8,GMSL*12,工作电压9-36V |
| 2. | AWU406-A01-S01 | 车载多功能控制器 | AGX Orin 32GB,S32K,200TOPS,WiFi6,GNSS(支持RTK),IMU,1000BASE-TX*8,GMSL*12,内置5G通讯模组,工作电压9-36V |
| 3. | AWU406-A01-S02 | 车载多功能控制器 | AGX Orin 32GB,S32K,200TOPS,WiFi6,GNSS(支持RTK),IMU,1000BASE-TX*8,GMSL*12,内置4G通讯模组,工作电压9-36V |
| 4. | AWU406-B01 | 车载多功能控制器 | AGX Orin 64GB,S32K,275TOPS,WiFi6,GNSS(支持RTK),IMU,1000BASE-TX*8,GMSL*12,工作电压9-36V |
| 5. | AWU406-B01-S01 | 车载多功能控制器 | AGX Orin 64GB,S32K,275TOPS,WiFi6,GNSS(支持RTK),IMU,1000BASE-TX*8,GMSL*12,内置5G通讯模组,工作电压9-36V |
| 6. | AWU406-B01-S02 | 车载多功能控制器 | AGX Orin 64GB,S32K,275TOPS,WiFi6,GNSS(支持RTK),IMU,1000BASE-TX*8,GMSL*12,内置4G通讯模组,工作电压9-36V |
| 序号 | 类别 | Jetson AGX Orin | Jetson AGX Orin |
|---|---|---|---|
| 1. | AI 性能 | 200 TOPS (INT8) | 275 TOPS (INT8) |
| 2. | GPU | 搭载 56 个 Tensor Core 的 1792 核 NVIDIA Ampere c GPU | 搭载 64 个 Tensor Core 的 2048 核 NVIDIA Ampere 架构 GPU |
| 3. | GPU 最大频率 | 930 MHz | 1.3 GHz |
| 4. | CPU | 8 核 Arm® Cortex®-A78AE v8.2 64 位 CPU 2MB L2 + 4MB L3 | 12 核 Arm® Cortex®-A78AE v8.2 64 位 CPU 3MB L2 + 6MB L3 |
| 5. | CPU 最大频率 | 2.2 GHz | |
| 6. | DL加速器 | 2x NVDLA v2 | |
| 7. | DLA 最大频率 | 1.4 GHz | 1.6 GHz |
| 8. | 视觉加速器 | 1x PVA v2 | |
| 9. | 显存 | 32GB 256 位 LPDDR5 204.8GB/s |
64GB 256 位 LPDDR5 204.8GB/s |
| 10. | 存储 | 64GB eMMC 5.1 | |
| 11. | 视频编码 | 1x 4K60 (H.265) 3x 4K30 (H.265) 6x 1080p60 (H.265) 12x 1080p30 (H.265) |
2x 4K60 (H.265) 4x 4K30 (H.265) 8x 1080p60 (H.265) 16x 1080p30 (H.265) |
| 12. | 视频解码 | 1x 8K30 (H.265) 2x 4K60 (H.265) 4x 4K30 (H.265) 9x 1080p60 (H.265) 18x 1080p30 (H.265) |
1x 8K30 (H.265) 3x 4K60 (H.265) 7x 4K30 (H.265) 11x 1080p60 (H.265) 22x 1080p30 (H.265) |
| 13. | MCU | NXP S32K324,ASIL-B级的安全MCU | |
| 14. | WiFi | GOC_AN441-SE ,WIFI 6 | |
| 15. | 4G | 支持4G模组,可选装 | |
| 16. | 5G | 支持5G模组,可选装 | |
| 17. | 操作系统 | Ubuntu 22.04,JetPack 6.0 | |
AWU406软件系统为JetPack6.0开发环境,包括系统镜像、库、示例、开发工具以及文档,同时支持以下关键特性:
NVIDIA® Jetson™ Linux 36.3 支持 NVIDIA Jetson Orin系列模组与开发者套件 。JetPack 6.0 搭载 Jetson Linux 36.3,内置 Linux 5.15 内核 与基于 Ubuntu 22.04 的根文件系统。Jetson AI 软件栈包含:CUDA 12.2、TensorRT 8.6、cuDNN 8.9 与 VPI 3.1。
NVIDIA Jetson Linux 驱动包是Jetson的板级支持包。它包括 Linux 内核、UEFI 引导加载程序、NVIDIA 驱动程序、刷写实用程序、基于 Ubuntu 的示例文件系统,以及适用于 Jetson 平台的更多内容。
JetPack 包括以下软件库:
JetPack自带一些演示示例,存放在文件系统中,并且可以被编译。
| 组件名称 | 版本 | 主安装目录 | 关键子路径(工具 / 头文件 / 库) | 示例代码路径及说明 |
|---|---|---|---|---|
| CUDA | 12.2 | /usr/local/cuda(软链接指向 cuda-12.2) | - 编译器:/usr/local/cuda/bin/(含 nvcc、nvprof)- 头文件:/usr/local/cuda/include/(含 cuda.h、cuda_runtime.h)- 库文件:/usr/local/cuda/lib64/(含 libcudart.so、libcuda.so) | 需自行下载:GitHub 地址:NVIDIA/cuda-samples |
| TensorRT | 8.6 | /usr/src/tensorrt/ | - 头文件:/usr/src/tensorrt/include/(含 NvInfer.h、NvOnnxParser.h)- 库文件:/usr/lib/aarch64-linux-gnu/(含 libnvinfer.so、libnvonnxparser.so) | 系统预装示例:/usr/src/tensorrt/samples/(可直接编译运行,如 sample_mnist) |
| cuDNN | 8.9 | /usr/lib/aarch64-linux-gnu/ | - 头文件:/usr/include/aarch64-linux-gnu/cudnn_version.h- 库文件:/usr/lib/aarch64-linux-gnu/(含 libcudnn.so、libcudnn_cnn_infer.so) | 系统预装示例:/usr/src/cudnn_samples_<version>/(<version> 为具体子版本,需通过 ls /usr/src/ 查看) |
| VPI | 3.1 | /opt/nvidia/vpi3/ | - 头文件:/opt/nvidia/vpi3/include/vpi/(含 Types.h、Image.h)- 库文件:/opt/nvidia/vpi3/lib/aarch64-linux-gnu/(含 libvpi.so、libvpi_algo.so) | 系统预装示例:/opt/nvidia/vpi3/samples/(含图像滤波、畸变校正等示例,如 01-image_filter) |
| OpenCV | 4.8.0 | /usr/ | - 头文件:/usr/include/opencv4/(含 opencv2/core/core.hpp)- 库文件:/usr/lib/aarch64-linux-gnu/(含 libopencv_core.so、libopencv_imgproc.so) | 系统预装示例:/usr/share/opencv4/samples/(含 C++/Python 示例,如 cpp/example_cpp_video.cpp) |
| Jetson Multimedia API | 随 JetPack 6.0 预装 | /usr/src/jetson_multimedia_api/ | - 头文件:/usr/src/jetson_multimedia_api/include/(含 NvEglRenderer.h、NvVideoEncoder.h)- 库文件:/usr/lib/aarch64-linux-gnu/(含 libjetson_multimedia_api.so) | 系统预装示例:/usr/src/jetson_multimedia_api/samples/(含相机 / 视频处理示例,如 backend、v4l2cuda) |
常见的验证指令
# CUDA
nvcc -V
cat /usr/local/cuda/version.txt
# cuDNN
cat /usr/include/cudnn_version.h | grep CUDNN_MAJOR -A 2
# TensorRT
dpkg -l | grep nvinfer
# VPI
dpkg -l | grep vpi
# OpenCV
opencv_version
JetPack包括用于应用程序开发、调试、分析和优化的开发工具。有些工具直接在Jetson系统上使用,有些则在连接到Jetson系统的Linux主机上运行。
具体工具列表说明参见:
https://docs.nvidia.com/jetson/jetpack/introduction/index.html#devtools
开机启动前,需确认以下事项:
上电成功后,POW 、RUN指示灯呈常亮状态(红色及绿色指示灯常亮)。
默认用户名:aiec,密码:123
LED1(红色):电源正常时常亮、电源过压 / 欠压时闪烁、无电压时灭;
LED2(绿色):MCU 启动时慢闪,MCU 收到 ARM 心跳正常后常亮。
运行布谷鸟守护精灵,获取设备基本信息、状态信息、自检数据、报警信息和驱动信息等。
$ AWApp_TOP
运行后,查看设备信息
根据3.1.1给系统上电,并且确认系统正常后,进行如下步骤确认软件版本是 否正确。
打开命令行终端,输入:
sudo rver_cal awu406 1 1 1 #查看系统版本

注意:操作系统版本请勿升级(upgrade),如有更新需求请先和布谷鸟科技沟通确认,以免更新升级后造成异常。
可通过第三方工具jetson-stats查看系统、硬件、库等相关信息。
运行jetson-stats:
sudo jtop #正常运行后,点击“7INFO”查看相关信息
jetson_release #命令行输出相关信息
设备有多种功率模式,可以通过点击“桌面右上角的NVIDIA绿色标志→Power mode→MODE ID”进行变更,更改后可能需要重启设备。
也可采用命令行调整:
#查看设备现在的模式
sudo nvpmodel -q
# 设定为某一模式
sudo nvpmodel -m <MODE ID>
#例:sudo nvpmodel -m 0,把功率设置成MAXN模式。
| MODE ID | MODE NAME |
|---|---|
| 0 | MAXN |
| 1 | 15W |
| 2 | 30W |
| 3 | 40W |
各模式下性能表现如下图所示:
注意:性能参数后续可能会更新参考链接。
通过固定CPU/GPU/EMC时钟频率为当前功率模式下的最大值(不降频),获取在当前模式下的最佳表现,可通过如下命令实现:
#获取在当前模式下的最佳表现
sudo jetson_clocks
#查看jetson_clocks当前设置详细信息:
sudo jetson_clocks --show
注意:长时间运行在最大频率下,可能会造成温度升高,影响元器件寿命。
AWU406基于 NVIDIA Jetson AGX Orin平台,支持 NVIDIA 发布的相关 AI工具或软件。用户可基于平台,自行开发和部署所需的业务软件,如物体检测、图像处理、路线规划等。
注:当安装的软件或存储的文件位于内部存储,且占据较大空间时,请及时留意剩余空间(可通过“df -h”命令查看),当剩余空间不足时,可能会使系统工作不正常,如开机不能进入系统,造成数据丢失等。
注意:操作系统版本请勿升级(upgrade),如有更新需求请先和布谷鸟科技沟通确认,以免更新升级后造成异常。
以下内容,用于示例说明如何配置开机自启动(配置rc.local开机启动脚本)。
Linux中的rc-local服务是一个开机自动启动的,调用开发人员或系统管理员编写的可执行脚本或命令的,它的启动顺序是在系统所有服务加载完成之后执行。
ubuntu22.04系统已经默认安装了rc-local.service服务,用户可自行创建开机脚本文件rc.local,即可使用。
1)创建/etc/rc.local
开机自启动脚本一般放在这个文件中,但是系统默认没有这个文件,需要用户创建。
sudo vi /etc/rc.local //创建并编辑rc.local文件
sudo chmod +x /etc/rc.local //增加权限
rc.local文件内容:
#!/bin/sh
echo “rc.local is working” > /home/aiec/rclocaltest.log
其中,第一行必须添加。echo行内容为脚本验证用。用户可自行添加其它内容。
重启,验证是否有包含“rc.local is working”内容的/home/cookoo/rclocaltest.log的文件。
2)查看rc-local服务状态:
systemctl status rc-local.service #查看rc-local服务状态
可从/var/log和/var/crash目录下,获取完整log文件。
因AWU406为上电自启动,所以需要关机时,在保存数据、退出程序后,关机。
1.软关机
命令行方式
sudo poweroff
2.软重启
sudo restart
| 插座功能 | 引脚编号 | 信号 | 备注 |
|---|---|---|---|
| A 腔 天线接口 | 1 | GNSS 天线 | ANT-GNSS-1# |
| 2 | 4G 天线 | ANT-4G | |
| 3 | WiFi | ANT-WiFi | |
| 4 | ANT1 | ANT-GNSS-2# | |
| B 腔 相机接口 | 1 | CAMIN_A_A | /dev/camgW1 |
| 2 | CAMIN_A_C | /dev/camgW2 | |
| 3 | CAMIN_A_D | /dev/camgW3 | |
| 4 | CAMIN_A_B | /dev/camgW0 | |
| C 腔 相机接口 | 1 | CAMIN_B_A | /dev/camgB1 |
| 2 | CAMIN_B_C | /dev/camgB2 | |
| 3 | CAMIN_B_D | /dev/camgB3 | |
| 4 | CAMIN_B_B | /dev/camgB0 | |
| D 腔 相机接口 | 1 | CAMIN_C_A | /dev/camgP1 |
| 2 | CAMIN_C_C | /dev/camgP2 | |
| 3 | CAMIN_C_D | /dev/camgP3 | |
| 4 | CAMIN_C_B | /dev/camgP0 |
1)硬件连接方法:
2)设备节点映射关系
网口对应名称如下表所示:
| 物理接口名称 | 网口配置名称 | 出厂配置 | 备注 |
|---|---|---|---|
| ETH1 | ETH1 | DHCP 自动获取 | 独立千兆 |
| ETH2 | ETH2 | DHCP 自动获取 | 独立千兆 |
| ETH3 | ETH3 | DHCP 自动获取 | 独立千兆 |
| ETH4 | ETH4 | 192.168.100.146 固定 IP | 独立千兆 |
| LAN1 | LAN | DHCP 自动获取 | 共享千兆 |
| LAN2 | LAN | DHCP 自动获取 | 共享千兆 |
| LAN3 | LAN | DHCP 自动获取 | 共享千兆 |
| LAN4 | LAN | DHCP 自动获取 | 共享千兆 |
如需配置IP,可从桌面右上方进入网络配置,进行手动配置,如下图所示。
在Wired对话框中,点击IPv4页,选择“Manual”,在下方“Addresses”、“DNS”、“Routes”栏中按需输入相关内容,同时按需关闭“Automatic”按钮。
使用nmcli命令进行配置,依次执行:
1)修改配置文件(第一次使用时)
sudo vi /etc/NetworkManager/NetworkManager.conf
#将其中的“managed=false”改为“managed=true”,保存退出
2) 重启NetworkManager服务
sudo systemctl restart NetworkManager.service
3)使用nmcli命令配置静态IP(举例):
语法:
sudo nmcli connection add con-name <连接名> ifname <网卡名> type <连接类型> ipv4.method manual ipv4.addresses <ipv4地址> ipv4.gateway <ipv4网关地址> ipv4.dns <ipv4 dns服务器>
#例
sudo nmcli connection add con-name test ifname eth0 type ethernet ipv4.method manual ipv4.addresses 192.168.0.148/24 ipv4.gateway 192.168.0.1 ipv4.dns 192.168.0.1
其中:<连接名>-自定义;<网卡名>-eth0/eth1/enp2s0等,需与实际名称一致;
<连接类型>-ethernet。
上例中,为eth0建立了一个名为test的manual连接,其中IP地址为192.168.0.148。
更多参数配置,请参考nmcli --help命令。
4)激活连接:
语法:
sudo nmcli connection up <连接名> ifname <网卡名>
#例
sudo nmcli connection up test ifname eth0
至此,为eth0手动添加了一个静态IP连接。需注意,eth0之前的连接仍然存在,可使用nmcli c命令查询,nmcli c delete命令删除多余连接。
1. 测试是否可以自动获取IP
配置为DHCP时,插入网线,使用ifconfig命令查询对应网口是否可以看到IP,或在桌面右上方网络配置处查看。
2. 测试是否可以ping通
方法一:可ping通网关,即可按ctrl +c退出。
注:测试例程的网关地址为192.168.0.1,这个需查看测试环境的网关地址。
方法二:可ping通www.baidu.com(联网状态),即可按ctrl +c退出。
使用前需安装好Wi-Fi 6天线(1根)。
在桌面右上角会出现网络连接图标,找到要连接的Wi-Fi名称并点击,然后在弹出的密码框输入密码并点击连接即可。
连接后测试是否可以ping通。
4G模组为选配。使用前需在断电情况下,接好4G天线、取下后面板插入4G Micro-SIM卡(SIM卡金属面朝向板上基座、缺口朝外,支持热插拔), 模块的串口设备节点固定为:tty4g-1,其网络设备名固定为:lte0;如果是双4G,另一个设置节点是:tty4g-2,其网络设备名固定为:let1。
4G功能出厂默认已配置完成,可直接使用连接网络。
开机自动拨号成功后,可用ifconfig命令看到tty4g-1/tty4g-2节点获取到了IP,如下图:
AT指令操作方法:
sudo busybox microcom -s 115200 /dev/tty4g-1
常见AT指令如下,更多AT配置信息,请查询4G模块AT命令手册。
ATE 1 //开启回显
ATI //查询型号ID及固件版本信息
AT+CPIN? //设备PIN管理
AT+QSIMSTAT? //SIM卡插拔状态上报
AT+QNWINFO //查询网络信息
AT+CGPADDR //查看PDP地址
5G模组为选配。使用前需在断电情况下,接好5G天线、取下后面板插入5G Micro-SIM卡(SIM卡金属面朝向板上基座、缺口朝外,支持热插拔),网络设备固定名称为5g。
5G功能出厂默认已配置完成,可直接使用连接网络。
开机自动拨号成功后,可用ifconfig命令看到tty5g节点获取到了IP,如下图:
AT指令操作方法:
sudo busybox microcom -s 115200 /dev/tty5g
常见AT指令如下,更多AT配置信息,请查询5G模块AT命令手册。
ATE 1 //开启回显
ATI //查询型号ID及固件版本信息
AT+CPIN? //设备PIN管理
AT+QSIMSTAT? //SIM卡插拔状态上报
AT+QNWINFO //查询网络信息
AT+CGPADDR //查看PDP地址
GMSL相机组合是经过长时间验证的相机组合方案,需按照组合及相应的CAM位置,连接相机,可使用出图稳定的相机功能。
1)通过运行vlc,快速打开相机来确认效果。
sudo apt-get install vlc //安装
#安装成功后,运行
vlc
Open Media→Open Capture Device→选择 /dev/videoX→Play
2)gstreamer方式
sudo apt install v4l-utils gstreamer1.0-tools -y
v4l2-ctl -d /dev/video4 --list-formats-ext
# 运行示例
gst-launch-1.0 v4l2src device=/dev/video0 ! video/x-raw,format=YUY2,width=1920,height=1080,framerate=22/1 ! xvimagesink &
安装工具
sudo apt install v4l-utils gstreamer1.0-tools -y
安装成功后,检查设备和格式:
确保你的设备和格式是兼容的。例如,使用 v4l2-ctl 命令检查设备支持的格式。
v4l2-ctl -d /dev/video4 --list-formats-ext
# 下面示例以相机分辨率1920*1080为例,在终端顺序执行以下命令
#参数请自行更改:
#相机 device=/dev/video0
#格式 format= YUY2
#分辨率 width=1920,height=1080
#帧率 framerate=22/1
gst-launch-1.0 v4l2src device=/dev/video0 ! video/x-raw,format= YUY2,width=1920,height=1080,framerate=22/1 ! xvimagesink &
gst-launch-1.0 v4l2src device=/dev/video1 ! video/x-raw,format= YUY2,width=1920,height=1080,framerate=22/1 ! xvimagesink &
gst-launch-1.0 v4l2src device=/dev/video2 ! video/x-raw,format= YUY2,width=1920,height=1080,framerate=22/1 ! xvimagesink &
gst-launch-1.0 v4l2src device=/dev/video3 ! video/x-raw,format= YUY2,width=1920,height=1080,framerate=22/1 ! xvimagesink &
gst-launch-1.0 v4l2src device=/dev/video4 ! video/x-raw,format= YUY2,width=1920,height=1080,framerate=22/1 ! xvimagesink &
gst-launch-1.0 v4l2src device=/dev/video5 ! video/x-raw,format= YUY2,width=1920,height=1080,framerate=22/1 ! xvimagesink &
gst-launch-1.0 v4l2src device=/dev/video6 ! video/x-raw,format= YUY2,width=1920,height=1080,framerate=22/1 ! xvimagesink &
gst-launch-1.0 v4l2src device=/dev/video7 ! video/x-raw,format= YUY2,width=1920,height=1080,framerate=22/1 ! xvimagesink &
使用NAV3120 GNSS模组,出厂缺省会配置好。使用前需接好GPS天线。ARM串口波特率9600bps默认配置,导远可调波特率:115200~921600 bps,导远默认波特率:460800 bps。
普通GPS模式,也可通过如下命令获取GPS数据(不能与example程序同时运行):
sudo su
stty -F /dev/ttyTHS1 460800
echo -e -n "AGGNGGA,0,1,1\r\n" > /dev/ttyTHS1 //实例:通过串口0 打开输出定位信息,频率1Hz。具体数据需要查看导远协议
cat /dev/ttyTHS1
# 或
sudo busybox microcom -s 460800 /dev/ttyTHS1 //输出GPS定位数据
运行结果为:
如GNRMC行,有类似“****,A,****,N,****,E,*****”消息,则表示搜到卫星,其中:
****,A - A前信息为时间,有效时为A,无效时为V;
****,N,****,E - 表示经纬度坐标
更多GPS开发使用方法,可参考模块应用指南。常见配置方法见下表。
1)GNSS、RTK、Heading相关配置
| 序号 | 指令 | 描述 |
|---|---|---|
| 1 | AGSETMODE,ROVER |
设置为移动站模式 |
| 2 | AGSETPPS,1,1,0,100000,0,1000000 |
打开 PPS 输出,高电平有效,脉宽 100ms,输出间隔 1s,上电即输出 |
| 3 | AGGNGGA,0,1,10 |
通过串口 0 输出定位信息,频率 10Hz |
| 4 | AGGNRMC,0,1,10 |
通过串口 0 输出位置和速度信息,频率 10Hz |
| 5 | AGGNGSA,0,1,1 |
通过串口 0 输出定位卫星信息,频率 1Hz |
| 6 | AGGNGSV,0,1,1 |
通过串口 0 输出接收卫星信息,频率 1Hz |
| 7 | AGKSXT,0,1,10 |
通过串口 0 输出位置、速度、航向信息,频率 10Hz |
| 8 | LOG COM0 BESTPOSA ONTIME 0.1 |
通过串口 0 输出兼容格式位置信息,频率 10Hz(0.1s 间隔) |
| 9 | LOG COM0 BESTVELA ONTIME 0.1 |
通过串口 0 输出兼容格式速度信息,频率 10Hz(0.1s 间隔) |
| 10 | LOG COM0 HEADINGA ONTIME 0.1 |
通过串口 0 输出兼容格式定向信息,频率 10Hz(0.1s 间隔) |
| 11 | AGRTCMOBS,0,4,1 |
通过串口 0 输出 MSM4 的 RT |
2)INS 相关配置
| 序号 | 指令 | 描述 |
|---|---|---|
| 1 | AGSETMODE,INIMU |
设置为内置惯导模组工作模式 |
| 2 | AGSETINSANT1,0.45,0,-1.05 |
设置 IMU 到主天线杆臂值(默认前左上坐标系):X 轴 0.45m、Y 轴 0m、Z 轴 - 1.05m |
| 3 | AGSETINSRAC,0.20,0,0.40 |
设置 IMU 到后轮轴中心杆臂值(默认前左上坐标系):X 轴 0.20m、Y 轴 0m、Z 轴 0.40m |
| 4 | AGSETINSOFFSET,0.45,0,-1.05 |
设置融合定位输出偏移(默认前左上坐标系):X 轴 0.45m、Y 轴 0m、Z 轴 - 1.05m,输出位置对应天线相位中心 |
| 5 | AGBDDB0B,0,1,100 |
通过串口 0 输出 BD DB 协议组合导航定位数据,频率 100Hz |
| 6 | AGBDDB0A,0,1,100 |
通过串口 0 输出 BD DB 协议 IMU 原始数据,频率 100Hz |
| 7 | LOG COM0 RAWIMUA ONCHANGED |
通过串口 0 输出兼容协议 IMU 原始数据,频率 100Hz |
| 8 | LOG COM0 INSPVAA ONTIME 0.01 |
通过串口 0 输出兼容协议组合导航定位数据,频率 100Hz(0.01s 间隔) |
| 9 | AGSVCFG |
保存当前所有 INS 相关配置 |
| 10 | AGRESET,0 |
执行冷启动,INS 相关配置需重启后生效 |
设备输出4路1PPS信号(GPS-PPS-OUT),并通过4路串口(GPS-RS232-OUT)发送脉冲上升沿产生时间的NMEA GPRMC消息,消息示例:
GNRMC,124354.90,A,3910.01737,N,11721.55637,E,0.023,,171224,7.29,W,A,V*50
其中“124354.90”为每秒产生脉冲时的时间戳(UTC时间),支持PPS同步模式的传感器会通过接受到的PPS以及GPRMC消息对自身时钟系统进行校时,使之与设备之间的系统时钟保持一致。
接口为/dev/pps1。可用pps-tools工具
#获取信息
sudo ppstest /dev/pps1
结果显示:
AWU406共包含8路CAN,其中ARM 2路, MCU 6路。CAN速率默认500K,ARM CAN支持CAN FD定制开发。
| 线束标识 | 对应模块 | Socket CAN | cookoo SDK |
|---|---|---|---|
| CAN0+- | ARM | can0 | can0 |
| CAN1+- | ARM | can1 | can1 |
| CAN2~7+- | MCU | 不支持 | CAN2~7 |
可以使用socket CAN独立配置ARM的2路CAN(CAN0和CAN1),方法如下:
测试前连接CAN收发器。
配置时,请使用root账户。
1) 根据CAN总线和收发器的规格配置CAN控制器
sudo ip link set can0 type can bitrate 500000
sudo ip link set can1 type can bitrate 500000 dbitrate 1000000 berr-reporting on fd on
2) 更改tx队列长度为1000(长度可自定义,默认为10)
sudo ip link set can0 txqueuelen 1000
sudo ip link set can1 txqueuelen 1000
3) 启动CAN接口:
sudo ip link set up can0
sudo ip link set up can1
4) 查看配置信息
5) 发送和接收验证
a)AWU406发送测试
发送:cansend can0 200#abcdabcd // CAN0连接
接收:CAN控制器查看接收数据
b)AWU406接收测试
CAN0连接CAN控制器
发送:使用CAN控制器给CAN0发送数据。
接收:candump can0
6)关闭can
sudo ip link set can0 down
sudo ip link set can1 down
7)常见问题
sudo ip -d -s link show can0
#检查波特率是否和之前设置的值相同。
#检查error信息是否为0
#如果以上都没有问题,请检查硬件连接
#如果有问题,并且找不到问题点,请联系技术支持人员排查。
AWU406包含3路RS232(ARM)、2路RS485(ARM)、2路RS422(MCU),其中ARM的RS232和RS485可以通过busybox microcom工具收发,同时所有ARM和MCU的RS232、RS485及RS422也都可以通过布谷鸟提供的example程序进行收发控制。
| 类型 | 节点 | 信号 | 模块 |
|---|---|---|---|
| RS232 | /dev/ttysWK0 | RS232_TX7/RX7 | ARM |
| RS232 | /dev/ttysWK2 | RS232_TX6/RX6 | ARM |
| RS232 | /dev/ttyAMA0 | RS232_TX2/RX2 | ARM |
| RS485 | /dev/ttysWK1 | UART9_RS485_A/B | ARM |
| RS485 | /dev/ttysWK3 | UART8_RS485_A/B | ARM |
1)3路RS232:
RS232-7(对应48 pin PCI接口#5和#6)节点在/dev/ ttysWK0 +工具sscom。
RS232-7验证命令:
sudo -s #需root权限
busybox microcom -s 115200 /dev/ttysWK0 #打开ttysWK0,等待接收
#同时直接输入想发送的数据,在接收端查看
sudo sh -c "echo "1235667890" > /dev/ ttysWK0" (发送)
echo "1235667890" > /dev/ ttysWK0
2)ARM控制的2路RS485:
UART9_RS485(对应48pin PCI接口#11和#12)节点在/dev/ ttysWK1。默认为接收状态。
#UART9_RS485接收验证命令:
sudo -s #需root权限
busybox microcom -s 9600 /dev/ttysWK1 # RS485等待接收
#RS485发送验证命令:
echo "1235667890" > /dev/ttysWK1 //发送数据
AWU406共8路IN/OUT,均与MCU直接连接,对应48Pin PCI接口#33~#40。
可参照布谷鸟提供的example程序,由ARM与MCU通讯,对IO进行控制。
布谷鸟IO example位置:
/usr/local/cookoo/examples/
源码为cookoo_pin.cpp,编译后程序为example-cookoo_pin,运行程序请使用root权限。
相关头文件、库位置:
/usr/local/cookoo/inc/、/usr/local/cookoo/lib
AWU406包含2路ADC,与MCU直接连接,对应32Pin PCI接口#9、#10。
可参照布谷鸟提供的example程序,由ARM与MCU通讯,对ADC进行控制。
布谷鸟ADC example位置:
/usr/local/cookoo/examples/
源码为cookoo_pin.cpp,编译后程序为example-cookoo_pin,运行程序请使用root权限。
相关头文件、库位置:
/usr/local/cookoo/inc/、/usr/local/cookoo/lib
用户若选配带SSD的产品,容量可选,则SSD初始配置在出厂前已经完成,用户可以直接使用。
用户若自行购买SSD(M.2接口),请先联系布谷鸟科技进行确认,在参照3.2安装后,再参照下列方式进行配置。
步骤一:
获取SSD名称,下例中为“nvme0n1”:
lsblk | grep nvme
nvme0n1 259:11 0 477G 0 disk /data
步骤二:
格式化硬盘:
sudo mkfs.ext4 /dev/nvme0n1
步骤三:
修改fstab文件:
sudo vi /etc/fstab
在打开的fstab文件的末尾增加一行:
/dev/nvme0n1 /data ext4 errors=remount-ro 0 0
保存退出,重启系统:
步骤四:
设置SSD权限:
sudo chown -R cookoo:cookoo /data
步骤五:
验证:
若nvme0n1显示挂载在/data下,则证明配置成功。
最长待机设计时间:90天
电源备份类型:纽扣电池
1.RTC电源备份功能
实时时钟(Real-time clock,RTC)是指可以像时钟一样输出实际时间的功能。
RTC电源备份功能,是指在主电源掉电时,RTC仍然可以工作。使得系统掉电,重新启动的时候,系统时间不会发生剧烈变化。
1.RTC时间
确认系统时间设置
timedatectl

时间:
Local time: 按照Timezone,和UTC时间换算得到的时间
Universal time:也就是UTC时间,是Linux认为的当前格林威治标准时间。
RTC time: RTC时钟的UTC时间
关机断电 5 分钟以上→重启→timedatectl查看时间是否一致。
提供AWU406上 Ubuntu系统上的CAN、GPS等接口的使用。接口提供头文件+链接库,以供上层应用的开发使用。
头文件:/usr/local/cookoo/inc/cookoo_sdk.h
链接库:
静态库:/usr/local/cookoo/lib/libcookoosdk.a
动态库:/usr/local/cookoo/lib/libcookoosdk.so
编译器:orin自带gcc 版本为gcc version 11.4.0 (Ubuntu 11.4.0-1ubuntu1~22.04.2)
SDK 接口的使用示例,可参考 /usr/local/cookoo/examples/ 内示例代码
V4L是linux内核的一部分,为视频设备提供统一接口。包括驱动程序、设备节点、V4L2库和应用程序,使客户能方便地与视频设备交互。V4L2库提供常用函数,支持视频捕获、处理和显示。
使用v4l-utils工具,验证对应的video口是否正常出图以及帧率是否正常
#安装v4l-utils工具
sudo apt install v4l-utils
#根据相机的分辨率及插入位置,使用工具获取出图及帧率情况
#以video0 1920x1080分辨率相机为例
v4l2-ctl -d /dev/video4 --stream-mmap=3 --stream-count=300
#保存图像,示例
v4l2-ctl -d /dev/video4 --stream-mmap=3 --stream-count=1 --stream-to=video0.yuyv
用户可以通过下列入门样例了解产品的应用开发过程,同时验证环境配置的正确性。
打开https://github.com/NVIDIA/cuda-samples/tags,选择12.2版本下载到本地,默认保存在Downloads目录下。
CUDA装在 /usr/local/cuda-12.2,在终端中输入:
cd Downloads/cuda-samples-12.2/Samples/5_Domain_Specific/marchingCubes
sudo apt-get install libglu-dev freeglut3-dev #安装相关库
sudo make #编译
./ marchingCubes # 结果如下图
在终端里输入:
cd /home/aiec/Downloads/cuda-samples-12.2/Samples/1_Utilities/deviceQuery
sudo make
./deviceQuery
结果如下图:
在终端里输入:
cd /Downloads/cuda-samples-12.2/Samples/5_Domain_Specific/nbody
sudo apt-get install libglu-dev freeglut3-dev #安装相关库
sudo make #编译
./nbody --help# 显示参数选择
./nbody# 用 GPU 执行,如下图左(黄框内显示性能)
./nbody -cpu# 用 CPU 执行,如下图右(黄框内显示性能)
在multimedia API的sample中运行backend demo,在终端中输入:
cd /usr/src/jetson_multimedia_api/samples/backend
sudo make #编译
#配置命令,可通过./backend –h查询
./backend 1 /usr/src/jetson_multimedia_api/data/Video/sample_outdoor_car_1080p_10fps.h264 H264 --trt-deployfile /usr/src/jetson_multimedia_api/data/Model/GoogleNet_one_class/GoogleNet_modified_oneClass_halfHD.prototxt --trt-modelfile /usr/src/jetson_multimedia_api/data/Model/GoogleNet_one_class/GoogleNet_modified_oneClass_halfHD.caffemodel --trt-mode 1 --trt-proc-interval 1 -fps 10
等待片刻,显示车辆加框视频:
系统随机跑出的手写符号以及TensorRT预测结果。
cd /usr/src/tensorrt/samples
sudo make #编译所有的 samples,执行档存在 ../bin 目录
cd ../bin #可任意执行本目录下执行档
./sample_mnist #下图为系统随机跑出的手写符号以及TensorRT预测结果
部署环境要求:保持AWU406设备网络的联通性。
安装配置docker环境:
#更新本地软件包列表
sudo apt-get update
#安装docker服务
sudo apt-get install docker.io
#切换iptables
update-alternatives --set iptables /usr/sbin/iptables-legacy
#切换ip6tables
update-alternatives --set ip6tables /usr/sbin/ip6tables-legacy
#重启docker服务
systemctl restart docker
#查看 Docker 服务的运行状态
systemctl status docker:
执行以上步骤后,docker服务已能正常运行。
镜像加速器配置:
开发者可以自己创建/etc/docker/daemon.json文件,并进行镜像加速器配置。注意若没有配置镜像加速器可能导致镜像拉取不成功。
验证docker:
docker pull hello-world 拉取Hello-world镜像
docker run hello-world 运行并查看结果
1)设备无法开机 / 无法进入系统
检查电源、电压、存储空间、指示灯,尝试 SSH 连接。
2)开机后无网络
以太网:检查网线与配置;5G:检查 SIM 卡、天线、IP;Wi-Fi:检查天线与连接。
3)GMSL 相机无视频
禁止带电插拔;检查相机型号、接口、驱动、线束。
4)无 GPS 数据
检查天线安装、定位模式、配置是否正确