在实车部署前,请务必阅读视觉圣经,对自瞄有一个大概的印象,并且了解ros2相关命令

自瞄包中有很多的Readme,请务必完整阅读。

读Readme!!!

引言

本文用于华理Origin战队视觉组快速上手自瞄,并实车部署调参。

环境配置与程序安装

通过一件脚本安装ROS2Humble版本

wget http://fishros.com/install -O fishros && bash fishros

在NAS服务器上下载视觉组程序

Building from Source

Building

创建 ROS 工作空间后安装项目,使用 rosdep 安装依赖后编译代码

    cd ros_ws/src
    cd ..
    rosdep install --from-paths src --ignore-src -r -y
    colcon build --symlink-install --packages-up-to auto_aim_bringup

Testing

Run the tests with

 colcon test --packages-up-to auto_aim_bringup

启动

1.在虚拟机仿真环境下

  ros2 launch rm_vision no_hardware.launch.py

同时,可以通过https://github.com/klintan/ros2_video_streamer/tree/master
来实现视频流文件代替相机输入,需要在detector节点里更改对应的话题

2.实车部署

  ros2 launch rm_vision vision_bringup.launch.py

可能会遇到的问题

下载速度慢,rosdep安装失败
请通过一键脚本安装rosdepc
实车部署时串口报错。
我们未采用原版的串口程序,使用的是自己的魔改版本,需要通过python命令单独启动。
所以需要注释掉原版的串口节点
同时,请开启串口权限

  sudo chmod 777 \\自行添加设备名称

调参大师篇

相机参数

相机内参矩阵

这里不对原理性东西做过多解释,感兴趣的可以自行了解。
相机内参矩阵会对自瞄的结算产生较大影响
1.使用前,务必标定相机,相机标定请通过ros2官方相机标定程序
详情参考https://zhuanlan.zhihu.com/p/384890854

曝光和增益

曝光和增益会影响画面亮度,从而影响装甲板图案的判断。同时也会影响识别的距离
增益一般情况下16拉满即可
曝光根据环境光照调整,曝光过低,画面过暗,看不清装甲板
曝光过高,会产生拖影,影响识别
适当增加曝光可以增加识别距离(待确认)

程序参数

程序参数中,比较关键的参数有,二值化阈值,EKF参数

二值化

二值化的阈值会影响过滤后的图案,二值化阈值过高,会导致在高速小陀螺时,输入观测器的图像帧数不够
导致观测器中的小陀螺鬼畜。
二值化阈值过低,会导致过滤画面不干净,需要处理的数据量变大,导致性能降低

EKF

Q值为过程噪声,越小系统越容易收敛,表示对模型预测的值信任度越高;但是太小则容易发散,
如果Q为零,那么我们只相信预测值;Q值越大表示对于预测的信任度就越低,
而对测量值的信任度就变高;如果Q值无穷大,那么则表示信任测量值。
如果设计时,出现头跟不上,或者射击时车已经远离(明显滞后),则可以考虑拉大Q值
R值为测量噪声。R太大,滤波的响应(此处响应特指对量测值的响应)会变慢,因为它对新测量的值的
信任度降低;越小系统收敛越快,但过小则容易出现震荡。
调试时可以先将Q从小往大调整,将R从大往小调整;先固定一个值去调整另外一个值,看收敛速度与波形输出
采用控制变量法。(若要看输出波形,请用foxglove,自行搜索)

其余参数

其余参数,在readme里写的非常清楚,都是字面意思,根据需要调整
其中部分参数RV原版没有提供更改的配置文件,需要在源码中更改,请善用全局搜索,去查询和更改。

给新人的建议

学会提问

遇到问题,请先通过搜索引擎查询,如若遇到无法解决的问题,再像群U提问。提问时,附上截图日志,
将你的问题清晰的表达出来
其次,尽量私聊提问。在大群中提问,效率十分低下。私聊一位看起来能解决问题的人,不要害羞,有礼貌的询问。
我两个半月速通自瞄,就是靠私聊轰炸无数的群U达成的

TBD…