首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何用玩具汽车的测距仪传感器绘制房间轮廓图?

如何用玩具汽车的测距仪传感器绘制房间轮廓图?
EN

Stack Overflow用户
提问于 2014-01-31 20:18:57
回答 1查看 1.4K关注 0票数 1

我有一辆玩具车,它有一个arduino和4个超声波测距仪传感器,在前面、后面和两边,它们给我一个距离,如果在传感器覆盖的范围内有墙的话,感应器给我这些数据在很短的时间内,汽车必须在房间里移动并绘制轮廓,房间可以有列和不规则,我不知道这个绘图所涉及的算法,任何的洞察力都会很感激。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-02-01 08:40:56

heh曾经做过一个几乎相同的机器人:)

它可以在一个地方掉头(没有转弯半径)。

所以很容易驾驶和映射环境。

在你的情况下很难说,因为我们看不到汽车的运动学。

总之,有一些提示:

1.进行超声波听力时,电机应保持安静。

  • 我使用步进电机,这样它们的脉冲就可以在接收器上听到。
  • 如果您使用直流电机,那么这可能是非常棘手的(可能您将需要做全面停止)
  • 或者确定哪个回波是回波和哪个换向器噪声。
  • 无刷(BLDC)和正弦驱动都可以。
  • 但是PWM或任何其他的冲动驱动都会产生同样的问题。
  • 所以你需要同步监听时间和脉搏时间。
  • 如果没有适当的测量设备,这会非常困难(示波器是理想的)

2.超声波发射器

  • 避免许多混乱
  • 或者一次只使用一个
    • 这很容易,但是很慢。

  • 或者一次只等待第一次接收
    • 这样,您就不会从远回波中获取数据。

  • 从各个方面都可以接收到,但是它需要相当复杂的过滤。
  • 尽量优化接收循环。
  • 我是在单片机的几个T上做的,它给了我大约4毫米的分辨率。
  • 但那是很久以前的事了,使用的ATMEL是只在20 MHz上运行的旧的51克隆。
  • 不知道阿迪诺(preffer UC3),但今天的MCU是10倍以上的速度和更好的时间。

3.movement

  • 你需要对移动动作进行编码
  • 按常步长前进
  • 左/右转90度
  • 它们必须尽可能精确地编码。
  • 在合适的环境中,你可以使用超声波来获得更精确的结果(只需要垂直面,内部没有任何问题)。
  • 有了这些,你就可以开始绘制你的二维迷宫

4.绘制房间地图

  • 创建环境的2D地图
  • 你可以用单元格法或向量法来做。
  • 我强烈建议使用单元访问(它不太准确,但对初学者来说更容易)
  • 地图可以是二维数组
  • 价值未知,空间,墙壁 1.init

代码语言:javascript
复制
- place the car perpendicular to some wall
- clear map with unknown
- set position in the middle of map (x,y)

2.回声-定位各方

代码语言:javascript
复制
- if wall is found mark it in the map on (x,y)+(distance \* side vector)
- and mark all space between x,y and the wall mark as space
- if no wall found then mark as space  all cells in the map from x,y to (x,y)+(safe range\*side vector)
- side vectors can be: front(0,+1), back(0,-1), left(-1,0), right(+1,0)
- safe range is distance from your car where wall is always detected in [cells]
- distance is measured distance of wall in [cells]
- do not forget to add the emitter/receiver offsets from the car position into account
- also mark current position (x,y) as space

3.寻找任何或最近或最快的移动标记为未知但邻近空间细胞的细胞

代码语言:javascript
复制
- if none such found then the mapping is finished (blink by LED or do some crazy move to signal it)
- if found then plan path and move car to it
- set position x,y to it

4.后藤2

现在只需将数据从MCU挖掘到PC并查看。

备注

  • 还有很多可以改进的地方.
  • 提防织物/布料类材料
  • 它们很难用超声波检测。
  • 对于排放者来说,使用他们所需的频率来最大化他们的性能。
  • 对于脉冲回声定位,发射的最佳功率/精度/距离比为7脉冲
  • 没有人知道为什么,但这是最好的(至少对我所知道的所有应用程序和设备而言)

玩得开心:)

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21489288

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档