Files

135 lines
3.1 KiB
Markdown
Executable File

# 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
## 维护者
请联系维护者获取技术支持。