萝卜圈仿真 - 指南针传感器使用指南(1)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

沿角度走子程序
条件判断 指南针当前值 ≥(目标角度+2)
机器人偏向了目标角度的左侧
机器人右走 左右电机同为正向,左比右快
条件判断 指南针当前值 ≤(目标角度‒2)
机器人左走 左右电机同为正向,右比左快
机器人偏向了目标角度的右侧 机器人直行
机器人和目标方向偏差较小
判断结束
7
程序原图
_沿角度走
萝卜圈三维机器人在线仿真平台
萝卜圈三维机器人在线仿真平台 指南针传感器使用指南
萝卜圈网络技术有限公司 日期:2016/01/12 版本:1.1
目录
萝卜圈三维机器人在线仿真平台
1. 文档约定 ......................................................................................................................................................1 2. 如何获取指南针传感器返回值...................................................................................................................2 3. 利用指南针转向思路说明(左转为例)...................................................................................................3
红色小竖线代表机器人的朝向 红色小圆圈代表机器人所在位置
此图中,两个机器人指南针传感器的返回值都为 0。
此图中,两个机器人指南针传感器的返回值都为 45。
2
依次类推,机器人朝向与返回值之间的关系见下图所示:
萝卜圈三维机器人在线仿真平台
1 0 359
89
271
90
270
91
269
179 180 181
6
萝卜圈三维机器人在线仿真平台
5. 利用指南针控制机器人沿着指定方向前进
如下图所示:机器人处于目前所在位置需要去收集树脚下的恐龙蛋。如果简单的转向恐龙蛋方向, 然后走直线到树脚下,由于地面坑洼不平,走快后必然会发生速行走呢?这里将需要的角度设置为【目标角度】,如果机器 人偏到比【目标角度】大 2 度,则表示机器人方向偏到了左侧,需要往右走,才可以走回正确的方向上; 反之偏到了比【目标角度】小 2 度,则表示机器人方向偏到了右侧,需要往左走,才可以走到真确的方 向上。因此程序设计思路如下图:
技术支持
需要技术支持,请联系我们。
萝卜圈网络技术有限公司
网站: 电话:400 – 803 - 8802 邮件:tech@ QQ 群:6562718
9
3
萝卜圈三维机器人在线仿真平台
因此我们可以写一个利用指南针左转的算法,首先确认【目标角度】和旋转方向都是依据场景和编 程者的思路先定位好的。另外考虑惯性因素,需要给出一个误差范围,这个范围本文档暂且定位为 3 度(转向速度越大,误差角度越大;反之越小),即机器人离【目标角度】还有 3 度时,即认为达到了 【目标角度】,停止旋转,利用惯性使机器人尽可能的达到【目标角度】。
180
357
左 7,右 12
左 12,右 12
8
主程序中的应用
目标角度
285
_右转
_沿角度走
萝卜圈三维机器人在线仿真平台
注:沿角度走子程序在使用前一般都需要先转到该目标角度,再来沿角度行走,在沿角度行走子程序 内没有循环体,因此在调用时需要循环调用。
0 度角和非 0 度角的沿角度行走可以通过算法合并到一个程序里的,只是算法比较复杂,本文档中 不做说明。
1. 文档约定
本文档约定,指南针传感器安装到机器人上后,指南针传感器上 N 所指向的方向必须与机器人正 前方保持一致。在遵守此约定的前提下,本文档的指南针传感器返回数值才成立,如下图所示:
1
萝卜圈三维机器人在线仿真平台
2. 如何获取指南针传感器返回值
指南针传感器的返回值为机器人朝向与地图正北方向的夹角。在萝卜圈三维机器人在线仿真平台里 面,在仿真界面右侧有一个任务小场景,分别标有东南西北四个方向。机器人朝向分别指向这四个方向 时,指南针传感器的返回值依次为:北 0 度、西 90 度、南 180 度、东 270 度。
5
萝卜圈三维机器人在线仿真平台
主程序中的应用(暂定起始时机器人朝向为北,指南针返回值为 0 度):
目标角度
235
_右转
此程序的执行结果为: 机器人从起始位置 0 度右转到 235(右 转效率较高) 等待 1000 毫秒之后,由 235 度右转到 250 度(右转效率较高)
1000
目标角度
250
_右转
机器人朝向和指南针返回值示意图
3. 利用指南针转向思路说明(左转为例)
在利用指南针转向之前,首先需要确认机器人转到某个角度(依据场景的客观条件而定),这个角 度本文档中定位为【目标角度】。
如下图:机器人走到当前位置,接下来需要左转向(右转或者继续走会掉下悬崖,无法完成任务), 此时这个【目标角度】根据场景因素,可以确认为 0 度(看小地图上机器人朝向,目前状态下机器人头 对着东方,指南针返回值应该为 270 左右,左转后小路的朝向指向北方),而且依据高效率的原则,机 器人左转向会较快达到【目标角度】。
1000
目标角度
250
_左转
此程序的执行结果为: 机器人从起始位置 0 度左转到 135(左 转效率较高) 等待 1000 毫秒之后,由 135 度左转到 250 度(左转效率较高)
4. 利用指南针右转的程序样例图
程序原图
目标角度
目标角度
3
原地右转,左边电机+5,右边电机-5
指南针传感器当前的返回值,随着机器人的转动而时刻变化
程序原图 ......................................................................................................................................................4 主程序中的应用........................................................................................................................................... 5 4. 利用指南针右转的程序样例图...................................................................................................................5 程序原图 ......................................................................................................................................................5 主程序中的应用........................................................................................................................................... 6 5. 利用指南针控制机器人沿着指定方向前进...............................................................................................7 程序原图 ......................................................................................................................................................8 沿 0 度角程序图...........................................................................................................................................8 主程序中的应用........................................................................................................................................... 9 技术支持 ..............................................................................................................................................................9
目标角度
2
左 12,右 7
目标角度
2
左 7,右 12
左 12,右 12
说明:此算法不适用于 1、0、359、358 这个角度上,即靠近 0 度方向。因为 1-2= ‒1;358+2=360; 359+2=361,这几个数值已经超出了指南针返回值的范围。
沿 0 度角程序图
_沿 0 角度走
2
180
左 12,右 7
考虑程序的通用性,将【目标角度】设置为【变量】,方便子程序的多次使用。程序流程见下图:
左转子程序
条件循环
Abs(指南针当前值 ‒ 目标角度)>3
机器人左转
条件循环:当指南针的当前值与目标角度差值的绝对值大于 3 时,机器人左转向(注:指南针的当前值在机器人运动过程中根 据机器人朝向会时刻发生变化)。
停止 延时 300ms
程序原图
停止延时的目的是让机器人利用惯性达到目标角度。
目标角度
目标角度
3
原地左转,左边电机-5,右边电机+5
指南针传感器当前的返回值,随着机器人的转动而时刻变化
4
萝卜圈三维机器人在线仿真平台
主程序中的应用(暂定起始时机器人朝向为北,指南针返回值为 0 度):
目标角度
135
_左转
相关文档
最新文档