Mapping payload for robot dogs: LiDAR SLAM hardware setup from sensor to map
本文为原文前 6,000 字符的节选翻译,完整内容请查看原文。
Mapping payload for robot dogs: LiDAR SLAM hardware setup from sensor to map
By the engineering team at YUANZHI ROBOTICS. We design and build sensor payloads for robot dogs, UGVs and drones. Originally published on our site; AI-assisted draft, reviewed by our engineers. Short answer: A mapping payload for a robot dog is a Livox Mid-360 or similar solid-state LiDAR on a short mast at the rear of the back plate, its built-in or an external IMU, a depth camera at the front, and a Jetson Orin NX class computer in a low shell, all on one adapter plate. The LiDAR and IMU must share a clock (PTP or the LiDAR’s own IMU) and have a measured extrinsic; the SLAM stack (FAST-LIO2 or LIO-SAM class) runs on the Jetson in real time for localization and the final map is rebuilt offline from the recording with loop closure and dynamic-object removal. The payload weighs 1.5 to 2.5 kg, draws 35 to 45 W and runs from the robot’s payload port on Go2, Lite3, AS2 and larger robots alike.
由 YUANZHI ROBOTICS 工程团队撰写。我们设计并制造用于机器狗、无人地面车辆(UGV)和无人机的传感器载荷。本文最初发布于我们的网站;由 AI 辅助起草,并经我们的工程师审核。简而言之:机器狗的建图载荷通常包括安装在背板后部短杆上的 Livox Mid-360 或类似的固态激光雷达、其内置或外置的惯性测量单元(IMU)、前部的深度相机,以及装在低矮外壳内的 Jetson Orin NX 级计算机,所有组件均集成在同一个转接板上。激光雷达和 IMU 必须共享时钟(通过 PTP 或激光雷达自带的 IMU)并具有已测量的外参;SLAM 算法栈(如 FAST-LIO2 或 LIO-SAM 类)在 Jetson 上实时运行以进行定位,最终地图则通过离线回环检测和动态物体剔除从记录数据中重建。该载荷重量为 1.5 至 2.5 公斤,功耗为 35 至 45 瓦,可由 Go2、Lite3、AS2 及更大尺寸机器人的载荷接口供电。
Building a map is the first thing every autonomous robot dog does at a new site, and the quality of that map decides how well it localizes and navigates afterwards. The software is well known: FAST-LIO2, LIO-SAM and their descendants are open source and run on a Jetson. What decides whether the map comes out clean is the hardware setup around them: which LiDAR and IMU, where they sit, how they share a clock, how the extrinsics are measured, and how the recording is turned into a final map. This guide covers that hardware side. A LiDAR-inertial map and trajectory recorded by a YUANZHI mapping payload on a quadruped, rebuilt offline with loop closure.
在新的场地,构建地图是每台自主机器狗要做的第一件事,地图的质量决定了它后续定位和导航的效果。软件方面已广为人知:FAST-LIO2、LIO-SAM 及其衍生版本均为开源,且可在 Jetson 上运行。决定地图是否清晰的关键在于其周边的硬件配置:选择哪种激光雷达和 IMU、它们的安装位置、如何共享时钟、如何测量外参,以及如何将记录的数据转化为最终地图。本指南涵盖了硬件方面的内容。图示为 YUANZHI 建图载荷在四足机器人上记录的激光雷达-惯性地图及轨迹,通过离线回环检测重建而成。
Sensors LiDAR: a Livox Mid-360 for most work. Its 360° horizontal and 59° vertical field of view covers walls, floor and ceiling from a mast on the robot’s back, it has a built-in IMU, it weighs 265 g and draws about 7 W. For long outdoor ranges a 32-line spinning LiDAR sees further at a higher mass and power cost; our comparison guide covers the trade-off. IMU: the Mid-360’s built-in IMU is enough for LiDAR-inertial odometry on a walking robot. An external IMU (a tactical-grade MEMS unit) is added when runs are long and featureless or when the accuracy requirement is tight. Depth camera: an Intel RealSense D435i or D455 at the front, looking forward and down. It is not part of SLAM; it fills the LiDAR’s blind cone close to the robot for obstacle detection and stairs, and gives colour for the map. GNSS: a dual-antenna RTK receiver when mapping outdoors over hundreds of metres, to anchor the map to real coordinates and bound drift.
传感器:激光雷达方面,大多数工作使用 Livox Mid-360。它 360° 水平和 59° 垂直的视场角通过机器人背部的支架可以覆盖墙壁、地面和天花板;它内置 IMU,重 265 克,功耗约 7 瓦。对于长距离户外作业,32 线旋转式激光雷达探测距离更远,但重量和功耗更高;我们的对比指南涵盖了其中的权衡。IMU 方面,Mid-360 的内置 IMU 足以满足行走机器人的激光雷达-惯性里程计需求。当运行距离较长、环境缺乏特征或精度要求严格时,会增加外置 IMU(战术级 MEMS 单元)。深度相机方面,前部安装 Intel RealSense D435i 或 D455,朝前下方观察。它不参与 SLAM,主要用于填充机器人近处的激光雷达盲区,以进行障碍物检测和楼梯识别,并为地图提供色彩信息。GNSS 方面,在数百米的户外建图时使用双天线 RTK 接收器,以将地图锚定到真实坐标并限制漂移。
Placement The LiDAR goes on a short mast at the rear of the back plate, high enough that its lower rays clear the robot’s body and the payload shell, which on a Go2 class robot means about 10 to 15 cm above the plate. Rear placement keeps the forward view clear and lets the LiDAR see the floor behind and beside the robot. The mast is stiff, not tall: every millimetre of flex is noise in the point cloud. The depth camera sits at the front edge of the shell, pitched down 10 to 20°. The compute module and any external IMU sit inside the shell, the IMU rigidly bolted to the same plate as the LiDAR mast with no isolator between them. Antennas go on the rear corners outside the LiDAR’s field of view. Vibration isolation is a trade-off. The whole payload sits on isolators between the adapter plate and the robot’s back, which protects the sensors from the footfall shock. The LiDAR and IMU are never isolated from each other, because the SLAM stack needs them to move as one body.
安装位置:激光雷达安装在背板后部的短杆上,高度需足以让其下方的射线避开机器人本体和载荷外壳,对于 Go2 级机器人,这意味着高出背板约 10 至 15 厘米。后置布局保持了前方视野的清晰,并使激光雷达能够观察到机器人后方和侧面的地面。支架要硬,不要高:每一毫米的形变都会在点云中产生噪声。深度相机位于外壳前缘,向下倾斜 10 至 20°。计算模块和任何外置 IMU 均置于外壳内,IMU 需刚性固定在与激光雷达支架相同的板上,两者之间不加装减震器。天线安装在激光雷达视场之外的后角。振动隔离是一种权衡。整个载荷通过转接板与机器人背部之间的减震器安装,以保护传感器免受足部冲击。激光雷达和 IMU 之间绝不进行隔离,因为 SLAM 算法栈要求它们作为一个整体移动。
Time synchronization A LiDAR-inertial stack is only as good as the timestamps. With the Mid-360’s internal IMU, both streams share the LiDAR’s clock and nothing more is needed; the Jetson’s clock is used only for recording. With an external IMU, the IMU and LiDAR must be on one time base: the Mid-360 accepts PTP, so the Jetson runs a PTP master and the IMU is timestamped on arrival with a hardware trigger or on a microcontroller synchronized to the same master. A camera that will be fused later is triggered by the LiDAR’s PPS or timestamped the same way. We check synchronization on every payload by recording a sharp rotation and confirming that the IMU and LiDAR see it at the same instant to within a millisecond.
时间同步:激光雷达-惯性算法栈的性能取决于时间戳的准确性。使用 Mid-360 的内置 IMU 时,两个数据流共享激光雷达的时钟,无需额外操作;Jetson 的时钟仅用于记录。使用外置 IMU 时,IMU 和激光雷达必须处于同一时基:Mid-360 支持 PTP,因此 Jetson 运行 PTP 主时钟,IMU 通过硬件触发或同步到同一主时钟的微控制器进行到达时间戳标记。后续需要融合的相机由激光雷达的 PPS 触发,或以相同方式标记时间戳。我们通过记录一次剧烈旋转并确认 IMU 和激光雷达在毫秒级误差内同时捕捉到该动作,来检查每个载荷的同步情况。
Calibration The extrinsic between the LiDAR and the IMU comes from the CAD when the IMU is the LiDAR’s own, and is refined with an open-source LiDAR-IMU calibration on a recorded figure-of-eight run when it is external. The LiDAR-to-camera extrinsic is measured with a target board. The LiDAR-to-robot-body transform, which the navigation stack needs, is measured against the robot’s own odometry. Calibration is repeated after any mechanical change to the mast and checked before each site deployment by looking at a flat wall in the map: a double surface means the extrinsic or the synchronization has drifted.
标定:当使用激光雷达自带的 IMU 时,激光雷达与 IMU 之间的外参来自 CAD 设计;当使用外置 IMU 时,则通过记录“8”字形运行轨迹并使用开源的激光雷达-IMU 标定工具进行优化。激光雷达与相机之间的外参通过标定板测量。导航算法栈所需的激光雷达与机器人本体之间的变换关系,则是通过对比机器人自身的里程计来测量。在对支架进行任何机械改动后,必须重复标定,并在每次部署前通过观察地图中的平整墙面进行检查:如果出现双重表面,则说明外参或同步已发生漂移。
Compute A Jetson Orin NX 16 GB on an industrial carrier runs the LiDAR driver, FAST-LIO2 or LIO-SAM at 10 Hz, the depth camera, the navigation stack and recording, with headroom left. A light stack alone (LiDAR driver and odometry at reduced map resolution) runs on the robot’s own computer on Go2 EDU and Lite3, which is how trials often start. The recording goes to an NVMe drive in the payload; a mapping run of an hour at 10 Hz is tens of gigabytes of point clouds and IMU data. The Jetson is bolted through a thermal pad to the aluminium shell so that it holds its clock speed in a sealed enclosure; our guide on onboard compute covers the alternatives.
计算:搭载在工业载板上的 Jetson Orin NX 16 GB 可运行激光雷达驱动、10 Hz 的 FAST-LIO2 或 LIO-SAM、深度相机、导航算法栈及记录任务,并留有余量。在 Go2 EDU 和 Lite3 上,仅运行轻量级算法栈(激光雷达驱动和降低地图分辨率后的里程计)即可在机器人自带计算机上实现,这也是试验通常的开始方式。记录数据存储在载荷内的 NVMe 硬盘中;以 10 Hz 频率进行一小时的建图任务会产生数十 GB 的点云和 IMU 数据。Jetson 通过导热垫固定在铝制外壳上,以确保其在密封外壳内保持时钟频率;我们关于机载计算的指南涵盖了其他替代方案。
From recording to map The real-time stack gives the operator a live map and a position during the run, which is what the operator needs to see that the site is covered. The final map is not that live map. After the run, the recording is rebuilt offline on the payload computer or on a workstation: loop closure and global optimization remove the accumulated drift, dynamic objects.
从记录到地图:实时算法栈在运行过程中为操作员提供实时地图和位置,这是操作员确认场地覆盖情况所必需的。最终地图并非实时地图。运行结束后,记录数据会在载荷计算机或工作站上进行离线重建:通过回环检测和全局优化消除累积漂移和动态物体。