谌霖烨
自从加入学校机器人代表队后,我便爱上了FLL工程挑战赛。在平常的训练与集训中,我发现FLL工程挑战赛中的机器人在完成任务时,需在黑线的地方定位,从而尽可能减小误差,修正机器人的位置,提高机器人的稳定性,确保顺利完成设定的任务。
黑线定位时由于初始位置的不确定性,很难确保机器人修正参数达到理想的结果。所以我决定对机器人黑线垂直定位做进一步的分析,彻底解决这个难题。
一、任务要求
机器人利用1号和4号颜色传感器做出判断,不管初始位置与黑线相距多远,机器人运行到黑线时,必须保证与黑线垂直,以减小误差,修正参数,确保后面的任务顺利完成。
二、原理分析
机器人运用颜色传感器的反射光进行自动判断:当1号颜色传感器检测到黑线时,B马达不动,C马达转动;当4号颜色传感器检测到黑线时,机器人停止运行并保持与黑线垂直。当4号颜色传感器检测到黑线时,C马达不动,B马达转动;当1号颜色传感器检测到黑线时,机器人停止运行并保持与黑线垂直。当1、4号颜色传感器同时检测到黑线时,机器人停止运行并保持与黑线垂直。
三、机器人实际运行状态
机器人在实际运行时,如果与黑线的角度不大时,可以被修正;如果与黑线的角度偏大时很难做到垂直。为什么会出现此类情况?
我利用业余时间查找资料,及时与指导老师进行交流。既然无法解决硬件问题,唯一的方法就是在程序上想办法。
四、程序改进
原有的程序虽然也能让机器人自动判断,但过于简单,很难达到要求。能不能利用变量?
1.首先用程序重置B、C馬达,并设定以下三个变量(panduan、dianji、guanggan)来打开马达与颜色传感器的端口和跳出循环。其中dianji2和dianji3对应B、C马达。
2.利用两个循环、两个切换实现自动判断
(1)机器人运行时,首先1号颜色传感器进行测光,如果光值小于设定的15,同时程序切换到4号颜色传感器进行测光,如果光值小于15,说明1号和4号颜色传感器都检测到黑线,这时判断成立,跳出循环并指定颜色传感器的端口为4,马达的端口为0(马达不打开)。然后运行后面的程序,马达没有打开所以不运行,4号颜色传感器光值小于20,跳出循环,关闭B、C马达,程序停止运行。
如果光值大于15,这时判断成立,跳出循环并指定颜色传感器的端口为4,马达的端口为C马达,运行后面的程序,C马达以28%的功率工作。4号颜色传感器光值小于20时,跳出循环,关闭B、C马达,保证机器人与黑线垂直。
(2)机器人运行时,首先1号颜色传感器进行测光,如果光值大于15,同时程序切换到4号颜色传感器进行测光,如果光值大于15,机器人以15%的功率前进。
如果光值小于15,这时判断成立,跳出循环并指定颜色传感器的端口为1,马达的端口为B马达,然后运行后面的程序,B马达以28%的功率工作。1号颜色传感器光值小于20,跳出循环,关闭B、C马达,程序停止运行,保证机器人与黑线垂直。
3.完整的黑线垂直程序,见下图
4.测试
用完整的程序测试时,不管机器人与黑线角度的大小如何,都能垂直定位,问题最终得到完美解决。(指导老师:谌跃飞)endprint