Files
agv_pro_ros2/agv_pro_autocharge

AGV AutoCharge ROS2 Package

这是一个为ROS2 Humble设计的AGV自动充电系统软件包。

功能特性

  • 监听充电桩位置更新
  • 持续发布可视化标记
  • 键盘交互启动导航功能
  • 导航成功后启动串口控制
  • 支持充电状态检测和控制

安装依赖

确保您的系统已安装以下依赖:

# ROS2 Humble基础包
sudo apt install ros-humble-rclpy
sudo apt install ros-humble-geometry-msgs
sudo apt install ros-humble-std-msgs
sudo apt install ros-humble-nav-msgs
sudo apt install ros-humble-visualization-msgs
sudo apt install ros-humble-nav2-simple-commander

# Python依赖
pip3 install pyserial

编译安装

# 进入ROS2工作空间
cd /path/to/your/ros2_ws/src

# 复制软件包到工作空间
cp -r agv_autocharge_ros2 .

# 编译软件包
cd ..
colcon build --packages-select agv_autocharge_ros2

# 加载环境变量
source install/setup.bash

使用方法

启动节点

# 启动自动充电控制器节点
ros2 run agv_autocharge_ros2 combined_auto_recharger

节点功能

  • 监听 /charger_position_update 话题,接收充电桩位置更新
  • 发布 /goal_marker 话题,在RViz中显示充电桩位置标记
  • 发布 /cmd_vel 话题,控制机器人运动
  • 按键 q 启动导航到充电桩
  • 导航成功后自动启动串口控制

配置文件

充电桩位置配置文件位于:

config/charger_position.json

文件格式:

{
  "p_x": 1.329015495451769,
  "p_y": 0.31961151635354823,
  "orien_z": 0.4981823289472456,
  "orien_w": 0.8670722963655905
}

话题接口

订阅话题

  • /charger_position_update (geometry_msgs/PoseStamped): 充电桩位置更新

发布话题

  • /goal_marker (visualization_msgs/MarkerArray): 充电桩位置可视化标记
  • /cmd_vel (geometry_msgs/Twist): 机器人运动控制
  • /chassis_security (std_msgs/Int8): 底盘安全控制

串口配置

默认串口配置:

  • 端口: /dev/ttyCH341USB0
  • 波特率: 9600
  • 超时: 1秒

可以根据需要修改代码中的串口参数。

操作说明

  1. 启动节点后,系统会自动加载充电桩位置配置
  2. 系统会定期发布充电桩标记到RViz进行可视化
  3. 按下键盘上的 q 键启动导航到充电桩
  4. 导航成功后,系统会自动启动串口控制功能
  5. 串口控制会根据接收到的数据控制机器人运动
  6. Ctrl+C 退出程序

故障排除

常见问题

  1. 串口无法打开

    • 检查串口设备是否连接
    • 确认串口权限设置
    • 验证串口设备名称
  2. 导航失败

    • 确认Nav2导航系统正常运行
    • 检查充电桩位置配置是否正确
    • 验证地图和定位系统状态
  3. RViz中看不到标记

    • 确认RViz已订阅 /goal_marker 话题
    • 检查MarkerArray显示设置
    • 验证坐标系设置是否为'map'

许可证

MIT License

维护者

请联系维护者获取技术支持。