返回实习经历

Project 02

基于 ISAC 辅助感知与云边协同的机器狗室外导航

华为实习 · Unitree Go2 园区巡检

本体 16 线雷达只能看眼前。ISAC 把封路和拥堵提前写进地图;导航上云,狗只走路和兜底。

职责:SLAM 与导航工程师

平台:Unitree Go2 + 禾赛 16 线激光雷达;仿真 Gazebo,真机园区

禾赛 16 线
本体三维感知

替代开阔场景 2D 雷达

ISAC
超视距区域状态

封路 / 拥堵写入禁行层

云端规划
端侧只执行

VPN + 单播,超时停车

Go2 真机
园区自主巡检

Gazebo 迁到实机

园区真机与上车感知

左侧 Go2 在园区路上走;右侧是背上的禾赛 16 线和端侧通信盒。这里证明真机链路在跑,不是仿真回放。

园区:Go2 沿道路走
真机:禾赛 16 线 + 端侧盒子

01

项目背景

场景与任务

智慧园区 / 工业园区无人巡检:机器狗要自己理解环境、规划路线、绕障,还要能长时间跑。雷达看不穿楼后封路;狗上算力也扛不住同时跑 3D SLAM 和规划。

阶段定位

本人做 3D SLAM、园区导航、仿真到真机、云边通信,以及把 ISAC 区域状态接进规划。

为什么难

  • 禾赛 16 线只能看眼前约 10–100 m,楼后封路、拥堵、不可达都看不见,抵近才重规划。
  • 端侧要同时做点云、定位、规划,功耗和 GPU 都不够。
  • Gazebo 雷达和真机禾赛的话题、坐标系、安装俯仰对不上,直接迁会漂。
  • 导航上云后,跨网段组播失效,云端发现不了狗。

02

系统架构

Go2 采禾赛点云和里程计,经 VPN 送到服务器。云端做三维建图、粒子滤波定位、地面 A* 和 DWA。ISAC 把封路和拥堵写成地图上的禁行多边形。狗只执行速度指令,指令超时就地停。

ISAC 基站、云端规划、云边通信与 Go2 端侧四层
计算上云,安全停在端侧。

建图、定位、感知、全局和局部规划都在云端串起来。局部规划是 DWA。ISAC 区域变化会触发重规划。

云端导航流水线:建图、MCL、感知、A*、DWA、状态机,ISAC 写入禁行层
局部规划是 DWA。禁行层一变就重规划。

雷达圈外的封路,本体路径会直直开上去。基站把区域状态对齐到导航坐标,规划提前改路。

雷达视距内看不见楼后封路,ISAC 提前改路到目标
超视距不是把雷达看得更远,是把区域状态提前写进地图。

03

核心系统设计

01

建图:开阔园区改 3D 激光 SLAM

问题:2D 雷达在室外空旷处特征少,建图定位不稳。

改动:上禾赛 16 线,用 LeGO-LOAM 做特征、回环和位姿图。Gazebo 和园区都建过图。

效果:开阔场景能出可用三维图,后面定位有图可套。

02

导航:MCL + A* + DWA 在园区跑通

问题:有图还不能走;开阔处粒子收敛慢,停着还更新会退化。

改动:三维粒子滤波定位、地面点云 A*、DWA 局部、状态机出速度。初始位姿贴近真值,按走和转才更新粒子。

效果:园区能接到目标、走出全局路径,近处障碍会让。

03

迁移:Gazebo 和 Go2 走同一套接口

问题:仿真雷达和真机禾赛的话题、坐标系、俯仰角不同,直接迁点云会歪、地面会切错。

改动:统一点云、里程计、TF 和速度指令;按真实安装角标定雷达;用真实 bag 回放后再上实机。

效果:同一套导航栈能从仿真迁到真狗。

04

卸载:导航上云,狗只执行

问题:端侧算力扛不住 3D 导航;跨网段组播让云端发现不了狗。

改动:建图、定位、规划放到服务器。VPN 打通网段,单播绕过组播。点云先降采样再上传。指令超时,端侧看门狗就地停。

效果:狗侧只采数、走路;断链不会空转。

05

ISAC:超视距封路提前绕

问题:16 线雷达看不见楼后施工、拥堵和不可达,开到跟前才重规划。

改动:把基站给出的区域状态对齐成导航坐标里的多边形,写入禁行层。A* 自动绕开;区域一变就重规划。

效果:抵近之前就改路,不用等雷达看见封路。

04

个人职责

主责

SLAM 与导航工程师:三维建图定位、园区导航 Demo、仿真到 Go2、云边通信,以及把 ISAC 区域状态接进规划。

沿用

导航栈基于 dddmr_navigation;步态走 Unitree SDK。