Integrate CAN-aware CMS risk pipeline and relocatable Orin runtime

This commit is contained in:
zmv
2026-09-23 18:54:11 +08:00
parent 26c5bfb88d
commit 9aadf9cbda
119 changed files with 13940 additions and 152 deletions
+30 -13
View File
@@ -1,22 +1,39 @@
# Orin 可直接运行目录
# Orin 可直接运行包 — use-can
本目录包含实际在 Jetson AGX Orin 上编译的 aarch64 程序和 TensorRT FP16 引擎。
目标环境:L4T R35.4.1 / JetPack 5.1.2,CUDA 11.4,TensorRT 8.5.2,OpenCV 4.5.4。
使用系统安装的 CUDA、TensorRT、OpenCV 共享库;不适用于任意 JetPack 版本或 x86 主机。
这个目录可以单独复制到 Orin 的任意目录,不依赖兄弟目录 0920/0923,不需要重新编译。
包含板端编译的 TensorRT/CUDA 原生库、YOLO/RTMW engine、Python 风险代码、CAN USB 库、标定文件和原有 GMSL 驱动。
环境:Jetson AGX Orin,JetPack 5.1.2 / L4T R35.4.1,Linux 5.10.120-tegra,CUDA 11.4,TensorRT 8.5.x,系统 OpenCV 4.5.4 库;Python 3.8+,numpy、cv2。系统 CUDA/TensorRT/OpenCV 运行库由 JetPack 提供,未重复打包。
```bash
cd orin
sha256sum -c SHA256SUMS
./scripts/initialize_camera.sh
./run.sh
./scripts/initialize_camera.sh # 开机后无 /dev/video5 时执行;需要 sudo 权限
./run.sh # 默认 CAN 左侧、无可视化,结果保存在内存
./run.sh --visualize # 可选浏览器预览,默认端口 8765
```
可视化可选:`./run.sh --visualize`,需要板端本地桌面 DISPLAY。
默认持续推理直到 Ctrl+C / SIGTERM;正常退出没有统计输出。
预览窗口关闭后推理继续。结果通过 C++ CameraPipeline::latest() 获取,不通过端口或结果文件传递。
Ctrl+C / SIGTERM 退出。仅有一个进程可以占用同一个摄像头。
程序为 build/camera_risk,配置为 config/camera.json,引擎为 engines/*.engine。
./run.sh 从所在目录解析路径,也可以在其他工作目录通过绝对路径调用。
```bash
./run.sh --no-can --active-door both --duration 10
./run.sh --save-results --output ./outputs/session
./run.sh --visualize --save-results --save-snapshots --output ./outputs/session
```
bin/drivers 中 GMSL 模块对应内核 5.10.120-tegra。初始化脚本检查内核版本;加载模块需要 root 或现有 sudo 权限。
门区保留当前室内联调设置,door.calibration_verified=false。
CAN 0x391 的 data[0..3] 顺序为左前、右前、左后、右后。`--can-side right` 切换右侧。未收到有效 CAN 或报文过期时输出 CAN_UNKNOWN,不发送执行器控制报文。
标定文件仍为研发机位,默认 calibration_verified=false。
同进程下游接口:
```python
from run_camera import CameraPipeline, parse_args
with CameraPipeline(parse_args([])) as pipeline:
result = pipeline.wait_for_result(timeout=10)
result = pipeline.latest_result # 等价于 pipeline.latest()
if result is not None:
print(result['risk'], result['door_risks'])
```
持续读取示例:`python3 examples/read_latest.py`(先停止其他采集进程)。`latest_result` 是单个只读快照;它不是跨进程共享变量。
TensorRT engine 绑定目标 GPU/TRT 环境,不能直接用于 Thor、其他 JetPack 版本或桌面 GPU。