myAGV Plus 自动回充导航功能使用手册

出厂镜像工作空间为 ~/myagv_plus_ros2(humble 分支)

首次全量编译约需 1 小时。

# 创建新工作空间
mkdir -p ~/myagv_plus_ros2
cd ~/myagv_plus_ros2
git clone https://github.com/elephantrobotics/myagv_plus_ros2.git myagv_plus_ros2/src
# 安装依赖
sudo apt install -y ros-humble-geographic-msgs ros-humble-aruco-markers-msgs ros-humble-robot-localization libgeographic-dev geographiclib-tools libzbar0 python3-pyzbar ros-humble-geometry-msgs ros-humble-common-interfaces
# 编译
colcon build

1.概述

myAGV Plus 的自动回充功能采用远距离 Nav2 导航 + 近距离基于红外线收发传感器的串口控制,实现小车自动导航至充电桩目标点并对接入充电桩充电口实现充电。


2.充电桩位置管理,Nav2 导航相对位置设置

充电桩位置管理:充电桩位置保存至软件包目录的 config/charger_position.json 文件中,位置更新通过订阅 /charger_position_update 话题实现。

json 文件中保存的位置信息为充电桩位置,最新的 charger 位置会持续发布到 /goal_marker 话题中并可视化,位置信息采用四元数表示如下:

{
  "p_x": 0.0,
  "p_y": 0.0,
  "orien_z": 0.0,
  "orien_w": 1.0
}

Nav2 导航位置设置:可以调整 Nav2 导航的目标点相对于充电桩的位置及姿态,使小车到达目标位置及姿态后再转为串口控制。

导航点与充电桩的相对位置参数设置可以在 config/nav_goal_params.yaml 文件中进行配置,默认值如下:

forward_distance: 0.35      # 距离充电桩前方 0.35 米
yaw_offset_deg: 0.0         # 顺时针旋转 0 度

充电桩位置录入

以下两种方式二选一。

方式一:手动控制录入

录入时请确保小车正对充电桩触点且紧贴充电桩,位姿偏差会导致串口对接阶段无法正确引导至充电触点。

终端 1:启动底盘 + 雷达

ros2 launch myagv_plus_bringup myagv_plus_bringup.launch.py

终端 2:启动导航

ros2 launch myagv_plus_navigation2 navigation2_active.launch.py

打开 RViz,使用 "2D Pose Estimate" 设置小车初始位姿,确认 AMCL 定位正常。

终端 3:启动键盘控制

ros2 run teleop_twist_keyboard teleop_twist_keyboard

使用键盘将小车开到充电桩触点位置。

终端 4:启动回充程序并记录充电桩位置

ros2 run myagv_plus_autocharge combined_auto_recharger

小车到位后,在终端 4 中按 Enter 记录当前位姿。程序采样 1 秒取中位数写入 charger_position.json,RViz 中红色箭头更新到新位置。

终端打印:

1

rviz可视化中会立刻显示充电桩的位置。

2

方式二:RViz 点击设置

启动底盘、导航和回充程序后(终端 1、2、4 同上),在 RViz 工具栏选择 "2D Goal Pose" 工具(已预配置发布到 /charger_position_update 话题),在地图上充电桩位置点击并拖动设置朝向,回充程序自动接收并更新 charger_position.json。

3

终端打印:

4


3.功能使用

终端 1:启动底盘 + 雷达

ros2 launch myagv_plus_bringup myagv_plus_bringup.launch.py

终端 2:启动导航

ros2 launch myagv_plus_navigation2 navigation2_active.launch.py

设置初始位姿,确认定位正常。

终端 3:启动回充程序

ros2 run myagv_plus_autocharge combined_auto_recharger

启动后 RViz 中可见红色箭头标记充电桩位置。

5

在终端 3 中按键盘 p 触发回充。

6

小车执行两阶段回充:

  1. 导航阶段:Nav2 导航到充电桩前方 forward_distance 处

7

  1. 串口对接阶段:到达后打开 USB-CAN 串口,读取充电桩 0x182 引导帧,按帧内 x/z 速度发布 /cmd_vel 完成最终对接

    8

对接成功终端显示当前充电电流:

Charging current detected: 210.0 mA - docking complete

results matching ""

    No results matching ""