Files
Catalyst-MDVS/README.md
2025-12-06 10:17:48 +08:00

104 lines
3.0 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# MindVision相机驱动的装甲板检测系统
本项目是基于MindVision相机SDK的装甲板检测系统工业相机替代原有的OpenCV相机接口。
## 项目结构
- `MindVisionCamera.h/cpp` - MindVision相机驱动实现
- `main.cpp` - 主程序入口已修改为使用MindVision相机
- 其他 `.cpp/.h` 文件 - 原有的图像处理、装甲板检测、卡尔曼滤波等功能模块
## 环境准备
此项目需要在WSL Ubuntu环境中编译和运行因为MindVision SDK位于WSL系统中。
### 1. 确保MindVision SDK已安装
在WSL Ubuntu中确认SDK路径
```bash
ls -la /home/lld/mdv/include/CameraApi.h
ls -la /home/lld/mdv/lib/x86/
```
### 2. 安装必要的依赖
```bash
sudo apt update
sudo apt install build-essential cmake libopencv-dev
```
## 编译项目
### 方法1使用构建脚本
```bash
cd /home/lld/code/mdvs
chmod +x build.sh
./build.sh
```
### 方法2手动编译
```bash
cd /home/lld/code/mdvs
mkdir build
cd build
cmake .. -DCMAKE_BUILD_TYPE=Release
make -j$(nproc)
```
## 运行程序
```bash
./build/armor_detector_mdv
```
## 配置说明
- 相机ID可在main函数中修改 `cam_id` 变量
- 默认分辨率640x480帧率30fps
- 支持颜色切换(红色/蓝色)
- 支持TTL通信默认关闭
## 注意事项
1. 此项目使用MindVision相机SDK直接驱动相机可以获得更好的性能和相机控制能力
2. 曝光、白平衡等参数可在`MindVisionCamera.cpp`中的`set_camera_parameters()`函数中调整
3. 如果遇到编译错误请检查MindVision SDK的库文件名是否正确可能是`libMVSDK.so``libMVSDK.a`
## 键盘控制
- 按 'q' 键退出程序
- 按其他键继续运行
## 故障排除
如果相机无法打开:
1. 检查相机是否正确连接
2. 确认MindVision相机驱动是否正确安装
3. 验证相机ID是否正确
4. 检查权限可能需要将用户添加到video组
## MindVision-SDK
`Linux`: >**wget https://www.mindvision.com.cn/wp-content/uploads/2023/08/linuxSDK_V2.1.0.37.tar.gz**
## PID设置原理及其方式
- **PID初始真实值 = g_pitch(/yaw)_kp`位于23行` * 相关系数(`位于410行`**
- **PID调节滑块含义** `46行`轨迹条回调函数为上下限。例如 pos / 100 如果pos范围为0~1000`位于400行`则滑块调节范围为 0~10。
### Kp比例系数的作用
- 响应速度Kp值越大系统对误差的响应越快
- 控制力度:直接根据当前误差大小产生控制输出
### Ki积分系数的作用
- 消除稳态误差:累积历史误差,清除长期存在的小偏差
- 系统偏移补偿:补偿机械系统的小偏差和静态误差
### Kd微分系数的作用
- 预测变化趋势:根据误差的变化率进行调节
- 抑制振荡:在系统接近目标时减缓调节速度
**参数调整建议 **
- Kp先调首先调整Kp获得基本响应特性
- Kd次调增加Kd减少振荡
- Ki后调最后调节Ki消除稳态误差