5.7.1 小车人体跟随
案例简介
本案例展示了 K1 平台驱动 AGV 小车完成多模态交互与自主移动的能力。系统通过深度集成 ROS2 框架,实现了高精度的路径规划、动态避障及稳定的人体跟随功能。采用 Function Call 技术架构,支持用户通过自然语音指令与 AGV 小车进行实时交互,构建了智能化的人机协作系统。该解决方案充分融合了环境感知、运动控制和语音交互等关键技术,展现了家庭服务和工业级 AGV 的智能化应用前景。
硬件清单
- 基于 K1 芯片的开发板一块(配套电源)
- 轮趣教育版 ROS 小车一辆
- 单目相机一个
- 环形麦克风一个
- USB 声卡或者扬声器一个
案例框架和控制流程
上图展示了 AGV 小车跟随案例在 ROS2 系统中的整体框架与流程控制,主要由以下四个节点组成:
1)agv_master_node
:主控节点,负责整体流程控制。
- 监听
/angle_topic
话题获取是否唤醒和唤醒角度信息; - 发送
/cmd_vel
话题控制小车转向目标角度; - 调用
spacemit_audio/record.py
执行录音,根据录音执行函数调用(由 FunctionControllerNode 节点管理); - 根据语音结果决定是否启动跟随(通过服务
/toggle_follow
触发); - 其它控制指令直接通过
/cmd_vel
发布。
2)agv_follow_node
:视觉跟随节点,实现对目标行人的跟踪控制。
- 视觉线程检测图像中最接近中心的人,发布
/detection_image
话题给主线程; - 主线程根据监测信息计算并发布
/cmd_vel
控制速度; - 服务线程监听
/toggle_follow
服务来控制是否启用跟随。
3)myagv_mic_node
:麦克风节点,进行声源定位和语音唤醒。
- 进行声源检测,发布
/angle_topic
(包含角度 + 是否唤醒)。
4)myagv_odometry
:底盘节点,提供小车位置(/odom
)和接受控制(/cmd_vel
)。
- 根据
/cmd_vel
控制小车移动; - 发布
/odom
供主控节点判断方向; - 可替换为真实或仿真底盘控制模块。
环境搭建
下载主程序代码
git clone https://github.com/elephantrobotics/jobot-ai-elephant.git ~/