2025-05-25 11:25:02 +00:00
|
|
|
|
# RL-PowerTracking
|
|
|
|
|
|
|
|
|
|
基于强化学习的电力目标跟踪系统
|
|
|
|
|
|
|
|
|
|
## 项目结构
|
|
|
|
|
- `src/` - 核心代码
|
|
|
|
|
- `docs/` - 文档
|
|
|
|
|
- `tests/` - 测试用例
|
|
|
|
|
- `examples/` - 使用示例
|
|
|
|
|
- `data/` - 数据集
|
|
|
|
|
- `models/` - 模型保存目录
|
|
|
|
|
- `tensorboard_logs/` - TensorBoard日志
|
|
|
|
|
|
|
|
|
|
## 目录自动创建
|
|
|
|
|
为确保项目运行时所需目录存在,新增了`create_directories.py`脚本。在运行训练前,请先执行:
|
|
|
|
|
```bash
|
|
|
|
|
python create_directories.py
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
## 安装依赖
|
|
|
|
|
```bash
|
|
|
|
|
pip install -r requirements.txt
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
## 最新优化
|
|
|
|
|
1. 环境注册问题已修复,自定义环境正确注册为`CartesianSpace-v0`
|
|
|
|
|
2. 训练速度优化:使用MlpPolicy、较大的batch_size=1024、use_sde=True提升CPU利用率
|
|
|
|
|
3. 解决了向量化环境观测值解包问题
|
2025-05-26 10:01:38 +00:00
|
|
|
|
4. 环境包装器嵌套顺序优化(Monitor包裹RecordEpisodeStatistics)
|
|
|
|
|
|
|
|
|
|
## 系统功能增强
|
|
|
|
|
1. **机械臂控制**
|
|
|
|
|
- 新增笛卡尔空间运动规划功能,支持路径移动和抓取放置操作
|
|
|
|
|
- 支持手眼标定功能,实现相机坐标系与机械臂坐标系的转换
|
|
|
|
|
2. **视觉识别**
|
|
|
|
|
- 增强电力设备检测算法,使用HSV颜色空间提升检测准确性
|
|
|
|
|
- 添加多目标跟踪功能,支持持续跟踪电力设备
|
|
|
|
|
|
|
|
|
|
## 使用示例
|
|
|
|
|
### 机械臂控制示例
|
|
|
|
|
```python
|
|
|
|
|
from src.robot_control.arm_controller import RoboticArmController
|
|
|
|
|
|
|
|
|
|
# 创建控制器实例
|
|
|
|
|
arm = RoboticArmController()
|
|
|
|
|
|
|
|
|
|
# 连接机械臂
|
|
|
|
|
arm.connect()
|
|
|
|
|
|
|
|
|
|
# 移动到指定位置
|
|
|
|
|
arm.move_to_position([0.3, 0.2, 0.1])
|
|
|
|
|
|
|
|
|
|
# 执行抓取和放置操作
|
|
|
|
|
arm.perform_pick_and_place([0.3, 0.2, 0.0], [0.1, 0.4, 0.0])
|
|
|
|
|
|
|
|
|
|
# 断开连接
|
|
|
|
|
arm.disconnect()
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
### 目标跟踪示例
|
|
|
|
|
```python
|
|
|
|
|
from src.vision.target_tracker import TargetTracker
|
|
|
|
|
|
|
|
|
|
# 创建目标追踪器
|
|
|
|
|
tracker = TargetTracker()
|
|
|
|
|
|
|
|
|
|
# 获取当前帧
|
|
|
|
|
frame = tracker.get_frame()
|
|
|
|
|
|
|
|
|
|
# 检测电力设备
|
|
|
|
|
boxes = tracker.detect_power_equipment(frame)
|
|
|
|
|
|
|
|
|
|
# 释放资源
|
|
|
|
|
tracker.release()
|
|
|
|
|
```
|