# 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. 解决了向量化环境观测值解包问题
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()
```