Step 1 连接小电脑
Step 1.1 配置网线 IPv4 地址
用网线连接你的电脑和车车的小电脑。
配置网线的 IPv4 地址为 192.168.137.1
(对于有些小电脑需调成 192.168.1.1
),子网掩码 255.255.255.0
。
Step 1.2 用终端连接小电脑
- Windows: 用网线连接小电脑网线接口,按
Win + R
后输入powershell
,回车进入终端。 - Linux: 进入终端。
等待小电脑开机。在终端输入 ssh nvidia@192.168.137.xxx
(xxx 就是贴在小电脑上的序号,有些小电脑是 192.168.1.xxx
),然后输入密码 nvidia
,此时进入小电脑的用户文件夹。
输入 vim ~/Workspace/rm.cv.std/assets/base.param.toml
,终端开始编辑预测器参数表。
如何使用 vim 编辑器?按
i
键进入正常编辑模式,可以开始修改数值。编辑完后,按Esc
退出编辑模式,输入:w + 回车
(英文冒号 + 小写字母 w + 回车) 则保存。输入:q + 回车
则退出 vim。自瞄参数是实时更新的。
Step 1.3 打开自瞄网页端
在浏览器地址栏输入 192.168.137.xxx:3001
,回车进入自瞄网页端,网页如下。
先勾选 show auto_aim.predictor.aim
左边的小方框。
然后点击“实时视频”栏目中的 auto_aim.predictor.aim
,进入一个视频界面,如下,左边是网页,右边是终端 vim。
Step 2 调落点
自瞄打击到装甲板的位置被称为落点。不知道为什么每隔几个小时,落点就可能有偏差。此时我们通过调节偏置来修复这个问题。
在参数表中找到以下两个参数。
[auto-aim.aim-offset]
# @brief 打击方向 yaw 补偿
# @param +: 调大将向左打击
yaw = 0.0
# @brief 打击方向 pitch 补偿
# @param +: 调大将向上打击
pitch = 0.0
找来一个静止装甲板作为目标,放在前方 2 ~ 4m 处,数字朝车车的方向摆着。
启动自瞄,连续发射 3 颗以上子弹。
- 若落点的均值偏离装甲板中心较远,调节
[auto-aim.aim-offset]
下的yaw
和pitch
(单位为角度制),调节效果见注释。直到落点在装甲板中心附近。
Step 3 调延迟
某些延迟的存在,比如视觉到电控的信号传输延迟,会导致自瞄打不中运动靶。因此我们要测量出这些延迟,让自瞄去进行一个预测。每隔几个小时,延迟参数可能也需要重新测量。
Step 3.1 调节额外发送量 additional-predict-time
在参数表中找到这个参数。延迟数值都以 秒 为单位。
[auto-aim.cmd]
# ...
# @brief 根据角速度,给电控指令的额外预测时间
# @param +: 调大将使对运动靶的跟踪更超前
additional-predict-time = 0.060
视频中有很多不同颜色的小圆圈,某些情况下还会重叠。他们的意思是:
- 白色:图像中心
- 绿色:相机光心(相机坐标系 z 轴的投影)
- 橙色:希望电控能到的角度
- 黄色:发给电控的角度(偏大,因为电控控制移动角度时有滞后)
- 红色:子弹模拟
你开启自瞄,先瞄准一个静止靶,这个时候,黄色、橙色和绿色点是重合的。
然后让靶子向左或者向右平移运动,此时黄点和橙点会偏离绿点,且橙点长出了红箭头,见下图。我们希望追踪平移靶时,橙点与绿点大致重合。
- 下图这种情况称为“橙点朝着红箭头的方向偏移绿点”。需要调大
additional-predict-time
几十毫秒。
- 下图这种情况称为“橙点朝着红箭头的反方向偏移绿点”。需要调小
additional-predict-time
一些。
Step 3.2 测量 send-to-control
延迟
找到如下参数:
[auto-aim.latency]
# @brief 信号传输总延迟(测量值)
# @param +: 调大将使对运动靶的跟踪更超前
send-to-control = -18e-3
开启自瞄,发子弹打击 匀速运动的目标。最好等到跟随稳定后发弹,因为开始跟随时都会有点跟不上。
- 如果预测总体跟不上,调大
send-to-control
。 - 如果预测超前,调小
send-to-control
。
一般调节 15 ~ 40ms 就会有肉眼可见的变化。本参数在调好后可能是一个负的值,比如 -0.020。
Step 3.3 测量 control-to-fire
延迟
找到下面这个参数:
[auto-aim.latency]
# ...
# @brief 控制到开火的延迟(测量值)
# @param +: 调大将提早反陀螺模型的打击
control-to-fire = 20e-3
调节该参数之前,应将下方:
[auto-aim.top-model]
中aim.max-orientation-angle
参数暂时设为 0.0(只瞄中心)[auto-aim.top-model]
中aim.max-out-error
暂时设为 0.2(收紧打击时机宽度)。调节完毕后再改回原数值。
开自瞄,打击距离自己 2 米左右的匀速原地陀螺的敌人,敌人转速须在 20rpm 以上。观察子弹打击时机是否正确。
- 若打击某块装甲板的时候,装甲板都快转过去了,说明子弹需提早打击,所以调大该参数。
- 若打击装甲板的时候,装甲板还没转过来,说明需要延缓打击时机,所以调小该参数。
你调完啦!其他参数也可以调节,只需看注释即可捏。