使用 reComputer Jetson 与 PX4 进行目标跟踪
简介
reComputer Mini 是一款由 NVIDIA Jetson Orin Nano/Orin NX 模块驱动的微型 AI 计算机,AI 性能高达 100 TOPS。 凭借其紧凑的设计,非常适合安装在无人机上执行 AI 任务。本教程将演示如何使用 reComputer 与 PX4 在无人机上实现实时目标跟踪。

前置条件
- reComputer 系列产品
- PX4 飞控
- 已安装 Jetson Pack 6.2 与 ROS 2 Humble
- Orbbec Gemini 2 3D 相机
配置 PX4 的 ROS2 通信环境
要在 Jetson 上实现无人机状态监控,请首先参考 此教程 配置 PX4 的 ROS2 通信环境。
设置 Gemini 2 Python SDK
Orbbec Gemini 2 是一款高精度 RGB-D 3D 相机,可采集同步的深度与彩色数据,适用于机器人、3D 扫描和计算机视觉等应用。
步骤 1. 安装依赖并克隆仓库:
sudo apt-get install python3-dev python3-venv python3-pip python3-opencv
# 安装 pybind11
pip install pybind11
# 克隆仓库
git clone https://github.com/orbbec/pyorbbecsdk.git
# 安装必要依赖
cd pyorbbecsdk
pip install -r requirements.txt
步骤 2. 构建并安装项目:
mkdir build && cd build
# 构建项目
cmake \
-Dpybind11_DIR=`pybind11-config --cmakedir` \
-DPython3_EXECUTABLE=/usr/bin/python3.10 \
-DPython3_INCLUDE_DIR=/usr/include/python3.10 \
-DPython3_LIBRARY=/usr/lib/aarch64-linux-gnu/libpython3.10.so \
..
make -j4
sudo make install
# 应用 Python SDK
pip install wheel
python setup.py bdist_wheel
pip install dist/*.whl
# 配置 udev_rules
export PYTHONPATH=$PYTHONPATH:$(pwd)/install/lib/
sudo bash ./scripts/install_udev_rules.sh
sudo udevadm control --reload-rules && sudo udevadm trigger
读取 PX4 在 ROS2 中发布的话题
将 PX4 控制器连接至 Jetson 的 UART1 串口:

打开一个终端并在 Jetson 上启动 Agent:
cd /path/to/Micro-XRCE-DDS-Agent/build
./MicroXRCEAgent serial --dev /dev/ttyTHS1 -b 921600
在另一个终端中运行以下命令,可以看到 PX4 发布的状态话题:
ros2 topic list | grep "/fmu/out/"

通过阅读以下主题的内容,您可以获取无人机的基本状态信息:
- /fmu/out/failsafe_flags -> 当前失效保护条件的指示。
- /fmu/out/sensor_combined -> 同步的原始 IMU、磁力计和气压计数据。
- /fmu/out/timesync_status -> 与外部源的时间同步状态。
- /fmu/out/vehicle_attitude -> 当前飞行器姿态,四元数表示。
- /fmu/out/vehicle_control_mode -> 当前激活的控制和导航模式。
- /fmu/out/vehicle_local_position -> 本地 NED 坐标系下的位置和速度。
- /fmu/out/vehicle_odometry -> 完整的六自由度位姿和速度数据。
- /fmu/out/vehicle_status -> 飞行器总体状态、模式和就绪情况。
快速配置目标检测环境
步骤 1. 根据 Jetpack 版本,可参考 此教程 安装 PyTorch 与 Torchvision。
步骤 2. 安装必要依赖与软件包:
sudo apt-get update
sudo apt-get -y install libcusparselt0 libcusparselt-dev
pip install ultralytics
pip install https://github.com/ultralytics/assets/releases/download/v0.0.0/onnxruntime_gpu-1.20.0-cp310-cp310-linux_aarch64.whl
pip install numpy==1.23.5
步骤 3. 下载 YOLOv11n 预训练模型:
wget -O yolo11n.pt https://github.com/ultralytics/assets/releases/download/v8.3.0/yolo11n.pt
步骤 4. 导出 TensorRT 推理引擎模型:
yolo export model=/path/to/yolo11n.pt format=engine device=0 half=True dynamic=True
安装 ROS2 目标跟踪包
cd /path/to/your/work_space/src
git clone https://github.com/zibochen6/ROS2-package-for-target-tracking.git
cd ..
# 构建包
colcon build
在运行检测节点之前,您需要将之前生成的引擎模型文件移动到 /ROS2-package-for-target-tracking/models
目录中。此外,您必须在工作空间的 src 目录中克隆 px4_msgs
和 px4_ros_com
包(参考 此 wiki)。
您的 src 目录结构应如下所示:
└── src
├── detect
├── px4_msgs
└── px4_ros_com
运行 ROS2 目标跟踪包时,需要打开一个终端启动 MicroXRCEAgent:
./MicroXRCEAgent serial --dev /dev/ttyTHS1 -b 921600
# 打开另一个终端并运行检测节点
cd /path/to/your/work_space
source install/setup.bash
ros2 run detect detect
上面的视频展示了在无人机上实现目标跟踪的示例。无人机通过目标检测定位目标,并利用 ByteTrack 算法精准跟踪特定目标,同时使用深度图像估算无人机与目标之间的距离。
技术支持与产品讨论
感谢您选择我们的产品!我们为您提供多种支持,以确保您拥有尽可能顺畅的体验。我们提供多种交流渠道,以满足不同的偏好和需求。