VJC案例-计算走过的距离
计算走过的距离
项目内容:计算机器人走过的距离。
相关模块:直行、转向、转角检测、显示。
程序设计
在本例中,我们让机器人先走一段直线,接着走一段弧线,然后再走一段直线。最后,调用两个转角检测模块,分别检测左轮和右轮的转角,并显示出来,例程如图所示。
参数设置
“转角检测”模块:打开“转角检测”模块的对话框,如图
在下图对话框中选择“左轮、编码器检测”,就会弹出如下对话框:
在其中选择“转角变量一”,确定。
用同样的方法,将第二个“转角检测”模块的参数设置为“右轮、编码器检测、转角变量二”。
“显示”模块:选择“引用变量”,在两行中分别显示“转角变量一”和“转角变量二”。
仿真运行
仿真运行时,显示轨迹,可以看到机器人走过一条曲线,最后在右上角的显示屏上显示出左右轮的转角数。
机器人的轮子转一圈,机器人的光电编码器接收到33个脉冲,转角计数为33。真实的能力风暴机器人轮子的直径d=64mm。您可以根据检测到的左右轮平均转角数,用如下公式计算出机器人走过的平均距离:
您还可以在以上例程中添加一段程序,计算机器人走过的距离,并将计算结果显示出来。不过,用上述公式计算出的结果适用于真实的机器人,与仿真界面上的标尺不一定吻合。
小知识:光电编码器
光电编码器是靠发射与接收红外光来工作的,由码盘和光电编码模块组成。码盘安装在机器人的轮子上,随轮子一起转动。光电编码模块则装在轮子的支架上。码盘上共有66个辐条,黑白相间。光电编码模块同时具有发射与接收红外线的功能,参见下图
无信号返回 有信号返回
从图中可以看出:红外线照射在黑色辐条上时没有反射信号,因为红外光大部分已经被黑色辐条吸收;当红外线照射在白色辐条上时有反射信号,因为红外光在白色辐条上反射强烈。于是,当机器人运动时,光电编码器就能接收到脉冲信号。轮子每转一圈,共产生33个脉冲。光电编码器有计数功能,能累加接收到的脉冲数。
VJC案例-计算走过的距离相关推荐
- CLLocation的distanceFromLocation方法计算地图上距离 (汇总)
准备两个CLLocation的对象,比如要计算某个位置与使用者当前位置的距离, 则其 中一个CLLocation是userLocation = [locationManager location],l ...
- 小车,测走过的距离,计算走过的时间,stc8a8k
1.实验目的 测试小车的运行距离,从启动开始,到停止,小车的运动距离: 用的是stc8a8k增强型51单片机: 用OLED显示出距离. 2.实验思路 (1)用外部中断P32,接上单片机的测速模块,就是 ...
- 利用最小二乘法,用直线拟合点时,为什么计算竖直距离而非垂直距离?为什么在线性回归分析中,求的是距离平方和最小,而不是距离之和最小?
我的理解是,直接求距离之和可能导致多个解存在的情况,而求距离平方和可以保证唯一解,参考: 当且仅当a=b时,不等式等号成立 参考文章:利用最小二乘法,用直线拟合5点时,为什么计算竖直距离而非垂直距离?
- mysql 计算gps坐标距离_mysql、sqlserver和php计算GPS经纬度坐标距离
摘要:mysql.sqlserver.oracle和php计算GPS经纬度坐标距离 mysql计算GPS经纬度距离DELIMITER $$ CREATEDEFINER=`root`@`localhos ...
- 如何用python计算levenshteindistance_Levenshtein计算相似度距离
使用Levenshtein计算相似度距离,装下模块,调用下函数就好. 拿idf还得自己去算权重,而且不一定准确度高,一般做idf还得做词性归一化,把动词形容词什么全部转成名词,很麻烦. Levensh ...
- 多个点 最远距离 java_Java实现的计算最大下标距离算法示例
本文实例讲述了Java实现的计算最大下标距离算法.分享给大家供大家参考,具体如下: 题目描述 给定一个整形数组,找出最大下标距离j−i, 当且A[i] < A[j] 和 i < j 解法 ...
- Python 根据百度 API 获得经纬度,根据经纬度计算城市间距离
百度提供的查询经纬度的 api 为: http://api.map.baidu.com/geocoder?address=您要查询的地址&output=xml&key=您要输入的key ...
- python计算点到面的距离
python计算点到面的距离 已知M个点,记P∈R^(M*3),目的是求M个点到平面Z= aX + bY + c的距离解法1: 使用平面的法向量来求解 平面Z= aX + bY + c的法向量为[a, ...
- 计算字符串的距离(编辑距离)
计算字符串的距离 描述 Levenshtein 距离,又称编辑距离,指的是两个字符串之间,由一个转换成另一个所需的最少编辑操作次数.许可的编辑操作包括将一个字符替换成另一个字符,插入一个字符,删除一个 ...
最新文章
- Oracle PL/SQL Developer集成TFS进行团队脚本文件版本管理
- OpenCV方向梯度直方图HOG的实例(附完整代码)
- [系统安全] 四.OllyDbg动态分析工具基础用法及Crakeme逆向破解
- 传感与检测技术,Pt100热电阻测温实验报告,江南大学物联网
- LeetCode每日打卡 - 汉明距离
- linux 系统让服务后台运行
- 实验吧-杂项-WTF?(python 01代码转图片)
- python-基础学习篇(一)
- 发布Drools Workbench到Tomcat on Linux
- SystemCenter2012SP1实践(12)服务器、网络和存储配置
- 别让自己成为一名废弃的程序员
- python django做网页论文_Python Web程序-Django框架搭建网站的简单介绍
- java编程规范(chinasoft内部考试),答案并非全部正确。仅供参考
- TOOLFK工具-在线二维码解码工具
- 诛仙服务器状态查询,《诛仙3》部分服务器数据互通公告
- Vue打包出现Browserslist: caniuse-lite is outdated
- 论文阅读_Show, Attend and Tell: Netural Image Caption Generation with Visual Attention
- iphone麦克风_如何从iPhone或iPad上的蓝牙麦克风录制音频
- 通过ffmpeg把图片转换成视频
- 学计算机未来的规划,未来学习计划范本