# 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消除稳态误差