作者 主题:微型鼠标机器人 (Read 3477 times)

0位成员和1位访客正在查看此主题。

离线 神话

  • 定期贡献者
  • *
  • 帖子:80
  • 国家: 我们
微型鼠标机器人
« 上: 二月13,2019,03:18:00下午»
最近,我开始着手设计第二款用于微型鼠标竞赛的机器人。我在大一的时候设计了V1,现在我'我是大学的一名大三学生'现在是我第二次挥杆了。

对于那些谁不'不知道它是什么微型鼠标'一场学生机器人比赛。机器人的每次运行都有两个阶段。在第一个非定时阶段,您的机器人会绘制迷宫的地图。然后,在第二阶段中,您的漫游器会按照到达迷宫的速度计时到到达中心的速度。

如图所示,第1版的波纹管有一些主要的缺点。最大的是缺乏编码器分辨率。每隔1.1厘米仅获得一个编码器刻度。随着时间的流逝,硬件已被添加到机器人中以尝试改善这种情况。在机器人下方添加了I2C gryo,并将红外距离传感器替换为ST飞行时间传感器。我感觉好像'尽可能地把这个机器人带走了'这只是V2的时间。




最初,该项目不包括绑在机器人背面的树莓派。这是一个很晚的补充。这里的想法是,其他团队成员将能够使用python而不是C编写下面的迷宫代码。虽然很尴尬,但确实有效。


规划V2时,最重要的部分是编码器的选择。在竞争激烈的日本人中竞争的机器人使用昂贵的瑞士Faulhaber电机。值得庆幸的是,Pololu生产的电机带有几乎可以与之媲美的编码器。



这些小家伙每转一圈会给我十二滴答声,然后乘以传动比。使用50:1的电动机'车轮每转600滴答声!比我以前得到的要好得多。

这次我'我还计划放弃AVR,给ARM一个机会。一世'我有一个STM32开发板,所以这可能是我的选择。
现在,我知道了我打算使用的电动机,现在可以开始使用CAD。一世'm将完成机械设计,然后希望电路将适合可用的区域。



到目前为止,这就是我所拥有的。那里 '是一个脚轮,支撑着前面。距离传感器将安装类似于V1的垂直子板。这次我'将使用连接器而不是将板焊接在一起。

I'在使用CAD模型时,将发布更多更新。今天是下雪天,所以要充分利用它!
 
以下用户对此帖子表示感谢: xrunner

线上 Doctorandus_P

  • 超级贡献者
  • ***
  • 帖子:1298
  • 国家: nl
回复:微型鼠标机器人
« 在以下方面回复#1: 二月13,2019,03:40:11下午»
黄色的CAD车轮从哪里来?
它们是真实的,还是您可以自己制作?

这些电机比西方的贵"hobby"商店和来自Ali / Ebay / China的便宜很多。
型号为N20,它们具有不同的齿轮比,带有或不带有编码器,甚至带有车轮。
//www.aliexpress.com/wholesale?SearchText=N20+encoder

同样,对于真正具有竞争力的Micro Mouse而言,加速成为重要因素,而低重心也变得重要。
您还希望在加速和制动过程中将尽可能多的重量保持在从动轮上,而不要在飞轮上保持。
您的第一个版本不太擅长此操作,请在下一个设计中考虑这一点。
 

离线 神话

  • 定期贡献者
  • *
  • 帖子:80
  • 国家: 我们
回复:微型鼠标机器人
« 在以下问题上回复#2: 二月13,2019,03:57:25下午»
车轮是这里提供的JSumo车轮 //www.robotshop.com/en/jsumo-slt20p-steel-silicone-wheel-set-33mm-20mm-pair.html

因为齿轮箱重叠,所以很好,这增加了宽度,同时使机器人保持较小。

感谢您的链接。我没有'意识到他们在速卖通上是如此容易获得。由于运输时间,我可能仍会选择Pololu,但我没有'还没过那座桥。

车轮的放置是一个挑战。完全消除脚轮的唯一方法是使用四轮设计。 我确实在Pololu马达上使用了4个齿轮的齿轮,但是机器人最终变得太宽了。我真的想将宽度保持在80mm或以下。我担心加速过程中前部会倾斜,因此电池会放在那儿以增加重量。

这次,新的飞机将比地面低得多,只有10mm的间隙,而且紧凑得多。
 

离线 阿兰卜

  • 常客
  • **
  • 帖子:344
  • 国家: b
回复:微型鼠标机器人
« 在以下方面回复#3: 二月13,2019,04:53:19下午»
很棒的项目,我希望看到更多图片。
您使用什么类型的电池?它们是否位于下方以保持重心较低?

飞行时间传感器的分辨率如何?它们可以检测到的最小距离是多少?

版本2祝您好运。

 

离线 神话

  • 定期贡献者
  • *
  • 帖子:80
  • 国家: 我们
回复:微型鼠标机器人
« 在以下方面回复#4: 二月14,2019,02:27:31上午»
好问题!

TOF传感器的最小范围为3厘米,最大可达200​​厘米。当您接近30岁时,它们会具有良好的失效模式,并保持读数为30。实际上,这应该没问题,因为30mm距离墙太近了。我赢了'不知道有多近,只是太近但足够好。

电池将像图像波纹管一样安装在前面。



所有红色部分将进行3D打印。保险杠位于后部,可以使机器人向上推以抵住后壁以使其对准's self. It shouldn'不需要,但更多的选择是好的。

I'我一直在思考我的目标,而Doctorandus_P是对的,这种设计永远无法在国际上竞争,但是's okay. It'这不是我的目标。 (我也没有资金)
如果及时完成,该机器人将参加由大学生组成的IEEE东海岸竞赛。之前的机器人略高于平均水平,因此V2应该可以消除它'预期的竞争。

除微型鼠标比赛外,它还应作为一个有趣的小平台,与Freertos一起处理我的机器人技能和玩具。
« 上次编辑:2019年2月14日,上午03:18:20 by 神话 »
 

离线 阿兰卜

  • 常客
  • **
  • 帖子:344
  • 国家: b
回复:微型鼠标机器人
« 在以下问题上回复#5: 二月14,2019,08:53:36上午»
您正在重新激发我对该主题的兴趣。几年前,我放弃了尝试'使用红外灯获得可靠的墙壁检测。  I'我很想订购一些ST VL53模块,然后再订购。
 

线上 杰伊

  • 超级贡献者
  • ***
  • 帖子:3595
  • 国家: b
回复:微型鼠标机器人
« 在以下方面回复#6: 二月14,2019,09:13:19上午»
哦,我的,那些电机/变速箱/编码器组件也不错,便宜!

我可以在不久的将来看到一个父亲/后代的项目。
 

离线 神话

  • 定期贡献者
  • *
  • 帖子:80
  • 国家: 我们
回复:微型鼠标机器人
« 在以下方面回复#7: 二月14,2019,11:05:32下午»
Alanb很高兴再次引起您的兴趣!这些传感器的唯一缺点是最大更新频率为50Hz,最小范围为3cm。
它们也是焊接的绝对bit子。如果打算手工焊接它们,则必须制作一个模版。

I'将IR传感器与TOF传感器结合使用时,您已经下定了决心。我有董事会空间。我可能会命令评估板只是为了看看它们的好坏。
我是否还需要更新速度更快的距离传感器?再说一次,如果我有董事会空间,那没有't add much cost.

杰伊很高兴能帮助引起您的注意!
 

线上 Doctorandus_P

  • 超级贡献者
  • ***
  • 帖子:1298
  • 国家: nl
回复:微型鼠标机器人
« 在以下方面回复#8: 二月15,2019,12:21:19上午»
不带显微镜的手工焊接vl53l0&经验确实是一个很大的挑战。
但是如果你'如果没有达到那种挑战,您可以轻松地在面包板上以0.1的面包板购买它们" headers.
It'取决于您要从何处获取它们  8)

//www.adafruit.com/product/3317
//eu.mouser.com/Search/Refine?N=1323043&Keyword=VL53L0
//www.aliexpress.com/wholesale?SearchText=vl53l0xv2
 

离线 神话

  • 定期贡献者
  • *
  • 帖子:80
  • 国家: 我们
回复:微型鼠标机器人
« 在以下问题上回复#9: 二月15,2019,03:56:53上午»
这次我'd喜欢使用开关电源而不是线性电源。逻辑为3.3V,电机为6V。它们将由2S脂质驱动。
最后一个机器人杀死了2个lipo'他们被搁置了两秒钟之后。当电池电量最终耗尽时,我确实添加了提示音,但是这次我仍然希望关闭硬件。

我在计划使用的数码钥匙上找到了LVC IC。 (NCP308SNADJT1G)当电池电压达到6.2V(已充电的电池为8.4V)时,它将全部禁用开关稳压器

对于3.3V I'm使用(AP65111AWU-7)和6V 3A电源(AP65402SP-13)。一世 '遵循数据手册中的推荐电路和布局。
我知道了'最好先自己测试一下电源,因此我计划订购一块测试板。

这里'完成的原理图。



U3和U4是电流检测IC's。这些将向微控制器输出一个模拟信号。我的希望是通过不断地阅读,可以很好地了解电池的总电流。不知道这将如何工作,它'有点实验。
« 最后编辑:2019年2月15日,上午04:05:37通过Mysion »
 

离线 阿兰卜

  • 常客
  • **
  • 帖子:344
  • 国家: b
回复:微型鼠标机器人
« 在以下问题上回复#10: 二月15,2019,09:51:30上午»
不带显微镜的手工焊接vl53l0&经验确实是一个很大的挑战。
但是如果你'如果没有达到那种挑战,您可以轻松地在面包板上以0.1的面包板购买它们" headers.
It'取决于您要从何处获取它们  8)

//www.adafruit.com/product/3317
//eu.mouser.com/Search/Refine?N=1323043&Keyword=VL53L0
//www.aliexpress.com/wholesale?SearchText=vl53l0xv2

I'我将使用Ebay提供的廉价分线板以及带有原型编码器的廉价电机。一世'将离开vl5310的焊接'直到第二个版本。第一个版本将是开发测试平台,它赢得了'不能参加任何比赛,因此在此阶段不要选择大小,重量和速度't matter.   
 

离线 神话

  • 定期贡献者
  • *
  • 帖子:80
  • 国家: 我们
回复:微型鼠标机器人
« 在以下方面回复#11: 二月16,2019,07:00:41上午»
Alanb听起来是个好计划!您'我将不得不使用一个库来与它们交互。数据表's don'揭露内部工作原理和大部分图书馆'来自逆向工程ST'的官方C库,用于传感器。有点可惜,但还算不错。

我花了一些时间环顾四周,然后在digikey上找到了我喜欢的红外传感器。  //www.digikey.com/products/en?keywords=336-5135-ND
他们看起来应该比VNCL4020更好's I'我以前用过。更重要的是,它们允许更改与VL53相同的I2C地址。这意味着没有坝I2C分配器芯片。

It'一个足够简单的原理图,它没有'我花了很长时间。要禁用红外传感器,我'm只需将一个N沟道MOSFET连接到逻辑电源线。这样,我可以禁用所有这些,然后重新编程I2C地址。

 

离线 神话

  • 定期贡献者
  • *
  • 帖子:80
  • 国家: 我们
回复:微型鼠标机器人
« 在以下问题上回复#12: 二月16,2019,07:50:38下午»
我在传感器子板上做了一些修改,但最终我做了一个自己喜欢的修改。这里's完成PCB设计并直接从diptrace进行3D渲染。





小型MOSFET将关闭IR模块,以便在启动时更改I2C地址。如果所有传感器都使用默认地址加电,则会在通信总线上产生冲突。这样,我可以保持除一个电源以外的所有电源。这样,我可以一次更改一个I2C地址。

I'一直在PCB上进行电源测试,应该尽快完成并准备发送出去。
« 上次编辑:2019年2月17日,上午02:51:23通过Mysion »
 

离线 神话

  • 定期贡献者
  • *
  • 帖子:80
  • 国家: 我们
回复:微型鼠标机器人
« 在以下问题上回复#13: 二月17,2019,02:54:05上午»
从倾角跟踪导出传感器步骤文件后,我在cad模型上对其进行了模拟。



有了这么多传感器,我几乎有了一个原始的激光雷达系统!不知道我需要这么多,为什么不呢!

主板的主要原理图已基本完成。我担心电路不会'不适合,但会。可能会有点贴心。
 

离线 神话

  • 定期贡献者
  • *
  • 帖子:80
  • 国家: 我们
回复:微型鼠标机器人
« 在以下问题上回复#14: 二月19,2019,02:21:41上午»
我完成了电源测试PCB的布局。它's将8.4V降至6V和3.3V。分别用于电机和微控制器。我认为这对我的第一个SMPS来说看起来不错。我使用了一个四层板,将所有东西保持在一起。



我的STM32F070RB开发板上也运行了第一段代码!一个简单的freertos示例,它将按钮输入传递给另一个使LED闪烁的线程。它's a start!

I'm使用atollic作为我的IDE。一世'我仍然习惯了,但到目前为止看起来还不错。
 

离线 神话

  • 定期贡献者
  • *
  • 帖子:80
  • 国家: 我们
回复:微型鼠标机器人
« 在以下问题上回复#15: 二月24,2019,02:09:06上午»
原来皮质M0核心'支持ITM,arm调试协议。可惜我期待使用它。我在亚马逊上订购了uart to 我们 b转换器。

我还想发布大约一个月前为比赛创建的迷宫模拟器。  It'用python和它编码'旨在帮助创建解决迷宫的算法。它设计用于鼠标版本1,并赢得了'不要做任何奇特的动作,例如切开多个角,但它将解决迷宫问题。对于版本1,我担心解决迷宫需要花费多少时间。在映射方面有大量的优化空间。使用模拟器,我尝试了4种不同的方法。这篇文章中的所有比较都太不同了迷宫映射方法/算法。

该程序的图片



请注意,在所有方法中,未映射的正方形在被映射之前都被视为完全开放且没有墙。

方法
1 Chase Center:通过这种方法,他们的bot专注于找到中心。假设未映射的正方形为空,它将始终沿着当前的最佳情况路径到达中心。
该方法的主要缺点是,机器人可以在多条路径之间翻转。如果发现某条路线比其他路线更困难,它将重新路线以映射该路线。它还使用从起始正方形到中心的路径作为其路径。到达中心难度的本地路线将被忽略。

2全部映射:在这种方法中,机器人仅寻找最接近的未映射正方形。到目前为止,这是最糟糕的。

3.本地追逐中心:在这种模式下,机器人使到达中心是第一目标,并且不考虑从起点到中心的路径。从中寻找路径'的本地位置,它将到达中心。然后,它将回溯并映射从起始正方形到中心所需的任何正方形。该方法仍然可能存在一些触发器问题,但是比例尺小于方法1。它也倾向于在开始位置附近结束映射,这样可以节省重新开始的时间。

4.这是在方法3的基础上构建的,它是尝试限制触发器的尝试。如果找到一条新的更快的路线'距离机器人当前位置的距离。如果它'超过机器人保持的阈值 '是当前路线并尝试找到中心。在某些情况下,这将为先前的方法增加10个左右的周期。但是,在一个测试迷宫中,它节省了近100个周期。

原始数据的图片。



我在网上找到的7种迷宫中测试了这些方法。他们都是过去的比赛迷宫。使用方法1作为基线,方法2慢11%,方法3快19%。方法4是透明绕线机,速度提高了13%。

I'我会尽快将源代码发布到该项目的Hack IO页面上,'我一定会提起我。
« 最后编辑:二月24,2019,02:18:06 am通过Mysion »
 

离线 西瓦斯塔加

  • 超级贡献者
  • ***
  • 帖子:3302
  • 国家: 科幻
回复:微型鼠标机器人
« 在以下回复#16: 二月24,2019,07:02:13上午»
伟大的鼓舞人心的线程,谢谢。再增加一些传感器模块,您将拥有一个强大的传感器子系统,能够进行实际的定位和映射以及避障!如果您的陀螺仪运行良好且经过校准,请选择适合您的航向'如果漂移时间很小(秒),您甚至可以实施"drunk mode"通过在移动时摆动航向来扫描环境,填充传感器的死角。

对于路线规划,除视线测试外,我在实施A *(或更具体而言,theta *变体)方面具有丰富的经验,除了测试视线测试外,还增加了测试机器人是否可以旋转的测试方法。如果您的机器人不是'绕圈并可能在转弯时撞到障碍物,这当然很重要。对于大于一个的机器人"pixel" in the grid, and can possibly turn, I found out that a good optimization is to 我们 e a 1-bit lookup table 对于 the robot shape, 对于 example, 对于 a 32*32 像素点 robot area, rotated in 16 different directions would be const uint32_t shape_lut[16][32] and accessed like shape_lut[direction][y] |= (1<<X)。现在,您可以通过一次移位和一次AND操作对地图进行比较,并一次比较32个点。在我的theta *路线规划中,仅此一项优化就带来了20倍的IIRC加速。

我不'不知道A *或Theta *对于紧密而复杂的迷宫是否最有效或最简单,它可能不是';但是,它对于现实世界中的路线规划非常有用,因为紧紧围墙会导致路线漫长而愚蠢,'由于实施简单,通过谷歌搜索广泛使用的伪代码实际上是可行的。

But routefinding and solving the maze is always the easy problem, by 要么ders of magnitude, when you compare it to the problem of creating an accurate map with your sensor data and localizing in it. If you want to work on the maze solving 科幻rst, make those corridors wider than 1 像素点, 我们 e some non-zero dimensions 对于 the robot, and add some "noise"使墙壁呈锯齿状。
« 上次编辑:2019年2月24日,上午07:08:24 西瓦斯塔加 »
 

离线 地鼠

  • 贡献者
  • 帖子:19
回复:微型鼠标机器人
« 在以下方面回复#17: 二月24,2019,12:56:51下午»
对于您的编程逻辑,请查找"flood 科幻lling"



还有更大的模拟...



 
以下用户对此帖子表示感谢: 神话

离线 神话

  • 定期贡献者
  • *
  • 帖子:80
  • 国家: 我们
回复:微型鼠标机器人
« 在以下方面回复#18: 二月24,2019,04:12:43下午»
是的's exactly what I'我正在使用!应该在上一篇文章中指定。如果洪水淹没,每个方格中的小数字。彩色小方块显示是否已映射图块。红色代表避风港'被访问过,蓝色表示已经访问过。

出奇的容易实现。我在洪水填充中有一些额外的逻辑,如果机器人不得不转过一个拐角,这会增加难度,但除此之外'直灌洪水。
关于映射方法,所有方法都使用洪水填充来找到正方形。该方法只是改变近期目标并设置阈值。
« 最后编辑:二月24,2019,04:41:50 pm通过Mysion »
 

离线 铜锥2

  • 超级贡献者
  • ***
  • 帖子:4491
  • 国家: 我们
  • $
回复:微型鼠标机器人
« 在以下问题上回复#19: 二月24,2019,05:19:32下午»
你可能想打电话给传感器'failure mode'启发式或跨度功能(如果您为雇主记录了此功能),这会造成混淆和不正确
youtube.com/watch?v=vdLuk2Agamk
 


分享我

掘客  脸书  SlashDot  美味的  Technorati  推特  谷歌  雅虎
中频