# AGV AutoCharge ROS2 Package 这是一个为ROS2 Humble设计的AGV自动充电系统软件包。 ## 功能特性 - 监听充电桩位置更新 - 持续发布可视化标记 - 键盘交互启动导航功能 - 导航成功后启动串口控制 - 支持充电状态检测和控制 ## 安装依赖 确保您的系统已安装以下依赖: ```bash # 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 ``` ## 编译安装 ```bash # 进入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 ``` ## 使用方法 ### 启动节点 ```bash # 启动自动充电控制器节点 ros2 run agv_autocharge_ros2 combined_auto_recharger ``` ### 节点功能 - 监听 `/charger_position_update` 话题,接收充电桩位置更新 - 发布 `/goal_marker` 话题,在RViz中显示充电桩位置标记 - 发布 `/cmd_vel` 话题,控制机器人运动 - 按键 `q` 启动导航到充电桩 - 导航成功后自动启动串口控制 ### 配置文件 充电桩位置配置文件位于: ``` config/charger_position.json ``` 文件格式: ```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 ## 维护者 请联系维护者获取技术支持。