本篇中,color为颜色的变量,默认1=红色,2=绿色,3=蓝色,4=黄色(可以自行修改,需要改积木程序)。常用摄像头坐标系为百分比,X、Y的值均为0-100。
一、抓取的基础执行动作

其中包含了look_ball、update_err、adjust_pick 还有pick 4个子程序。
- look_ball

调整机械臂的角度达到摄像头画面范围。
- update_err

color和des_y 均为变量,这里则加入了1红、2绿、3蓝的基本识别规则。
x_err是‘摄像头识别物体后Y轴的值’减去‘设定的变量’。
yaw_err是 ‘45’减去‘摄像头识别物体后X轴的值’。
百分比坐标系,X轴Y轴均为0-100。
45可以手动更改。
- adjust_pick(vx)

vx为变量,是调整距离时机器狗挪动的步幅,最大值18。
yaw为变量 ‘角度偏差’。
done为变量 ‘执行次数’。
根据update_err,此处我们需要将物体的值趋近于摄像头的正中间。
通过前进后退,顺逆时针旋转完成。
- pick

主要通过基础动作以及机械臂的调整去完成实际的目标
二、放置的基础执行动作

其中包含了look_cup、update_err、adjust_place 还有place 4个子程序。
- look_cup

和之前look_ball同理。
- update_err

与抓取共用同一个函数关系。
- adjust_place

与adjust_pick 使用的是不同的函数关系。
变量:yaw_err 是相同的。
变量:x_err 计算方式不同,可以通过更改上述值的大小来调整距离。
- place

因为函数计算关系不同、摄像头角度不同、所以动作不同。根据不同的任务需求更改不同的动作来完成任务。
三、摄像头定位


其中包含了顺、逆时针看颜色、新版靠近三个子程序。
- 顺、逆时针看颜色。

初始化摄像头、并打开色块模式。
调整机械臂,扩大或者缩小识别范围。
同样遵循1红、2绿、3蓝的识别规则。
重复执行顺、逆时针旋转,‘速率’以及‘时间’可以修改。
直到识别指定颜色。
- 新版靠近


判定需要的颜色,1红2绿3蓝。
通过计算物体所在的X、Y轴的坐标值,完成靠近目标的目的。
先计算横向X轴,再计算垂直方向Y轴。
根据实际需求可以改变‘移动步幅’和‘坐标位置’。
PS:近大远小。
四、爬楼梯基础动作


通过调节舵机角度,结合运动,完成爬台阶任务。也可以根据自身需求更改角度。
五、不同任务需求更改的部分积木
- 基础任务区

无法精准走到收纳区时,可以通过该程序协助。
- 挑战任务区

机械臂将摄像头位置角度调整较低,可以有效找到近距离的目标颜色三棱锥,并完成抓取。

底层逻辑相同,挑战任务收纳台高度不同,需要不同视角去识别。

定位到收纳台,根据高度调整机械臂角度。为避免放同一个地方导致三棱锥掉落,可以添加侧身等动作。
六、常见问题汇总
降低机器狗重心前进可以更稳定一些
