“——不就是一台遥控车吗”,查拉图斯特拉如是说。

某创,某秋,某配,每个月这么多板子不嫖一点总觉得自己亏了,于是乎歪脑筋一动想到用pcb来做结构件,传统艺能了属于是。pcb加工精度高,强度好,还能通过焊接来加固,电控系统也能直接做到上面而节约空间,看上去百利而无一害。至少一开始我真是这么认为的。

的确,这玩意硬件上基本没啥值得注意的点。一个单片机系统,4路有刷的H桥驱动对应4个自由度,电源模块,陀螺仪,基本上就是全部了,还不如之前做过的遥控器和四旋翼复杂。

唯一的难点在于车车的内部空间有限,并且还要考虑电机,电池,外壳等结构占据的空间,并考虑各部件连接走线的问题,因此虽然板子面积不小,但布局上的限制极大。万一弄得不好,一颗螺丝都能不小心干涉或者短路,那就亏大发了。

因此设计结构的时候一直都是ad和sw一起开,总体上先设计好结构,敲定板子具体形状和装配孔位置之后再到ad里面去画。把装配结构需要的空间预留出来,元件需要避开那些位置。不过还有比较重要的两点,一个考虑高度的限制,一个考虑元件焊接。当时画的时候电源接口用的是kf2.54的接口竖过来,结果忘记高度限制了差点装不上去。

底盘

结构

车车还是沿用了传统,分为底盘和上层两个部分设计。底盘主要包括pcb底板,行驶部分4个电机,1个云台电机,各种接口,电源和陀螺仪,轴承支架。

云台轴承是整个车和核心。要有足够的尺寸撑起整辆车。如果用普通金属齿轮的话重量就远远超了,为了减轻重量,翻遍了某宝找到pom薄壁轴承,重量25g,买来试了一下强度可以,整车大定。

也考虑过不用大轴承直接用舵机直连上层的设计。但算算总觉得这样一个重量会超,再一个电路的设计也会有麻烦,走线不好走,更重要的是旋转角度被限制死了,没办法转超过360°。遂作罢,还是采用的普通电机+内啮合齿圈,虽然这样会在传动的时候浪费电机速度,不过算了一下大概5:1的减速比,也还能接受。

云台电机使用输出轴反向的n20电机。想买1000rpm的,结果店家告诉我没货了只有500rpm。当时一算感觉这样的速度也不是不行,但是做出来之后才发现,云台转的太慢了,100多rpm看着还行,但是实际上根本没办法跟随遥控器的旋钮,更别提之后还想让他跟随车身角度了。这个云台电机还是弄快一点的。

行驶系统用的是n20电机和自带的电机支架。直接装到pcb上。后来被人说这样连接不可靠。本来是想着在pcb上预留焊盘,可以直接把黄铜减速器焊到底座上的,结果做的时候搞忘了。真是。

轴承架考虑到连接上层,需要结实一点,因此使用abs打印,云台传动齿轮就用的普通pla。轴承架打出来,里面直角的部分实际上还残留着不少支撑没办法去掉,结果就是根本没办法配合到轴承上,用锉刀打磨了好久才塞进去。

电路系统

底盘结构其实没啥,主要是电路部分。这里有个大坑。

使用pcb底板的本意是为了方便装配,因为可以直接把螺母以及其他结构焊在上面,方便从不同的方向装螺丝。不过这个设定在后来的设计中逐渐去掉了,因为实在用不到。但是pcb底板保留下来了。为了节约内部空间以及炫技,采用了pcb底板之后理所当然的想着把电路直接做在底板上。后来画着画着发现不行,放不下。于是又想到了叠板设计,把主控等一部分电路独立出来放到一块小板子上,用排针和底板连接,剩下的电路放在底板上。后来才发现不仅没起到希望的作用,反而pcb底板吃了很多重量。灾难就这么开始了。。。。。。

底板

底板上就一个LDO电源,主控板的接口,电机接口,6050。很简单的组合,布局上也没啥难度,主要是几个关键器件的位置配合。设计的时候还考虑了用毫米波雷达做自动索敌和规避,后来发现其实很难发挥用处。车内部根本没有足够空间走线,接口还浪费面积。

费老大力气把板子焊好装上,坑爹的事来了,机器人的车身角度闭环调了几个礼拜根本没办法收敛。排除了遥控器的bug之后,开始找pid算法和陀螺仪的问题。

陀螺仪起先都是在车身静止的时候观察的数据,一开始确实没发现问题,用6050自带的dmp解算库返回的欧拉角基本稳定在±1~2°之内,基本满足要求。然后开始找pid的问题。因为希望让车可以两头开,自动根据输入的角度和车身目前的夹角寻找最合适的旋转角度,自动判断是应该逆时针转某角度还是顺时针转过其补角,在角度环运算之前有一个数据的预处理。这预处理老费劲了,花了一周弄好,分了几种情况讨论,这个是纯软件问题,哪怕360°枚举,总能解决的。

PID调参调了俩礼拜,还拿出了之前写的通用pid算法库,换成专家pid,也没啥用。好像就是车突然就开始发疯,约转越离谱,用手强行把车停下来之后,车身的角度跟原始值比起来已经有了肉眼可见偏差。其实到这里基本上可以确定是陀螺仪数据的问题了。

后来把车架空,在车身不动的情况下让车轮空转,再观察陀螺仪角度。好家伙直接给我短短几十秒钟就产生了接近10°的偏差。行驶电机停下之后偏差速度减缓。

这还得了。猜想是电机旋转产生的某种神秘力量影响了陀螺仪的数据。去网上问了一通大部分人都说是电机振动引起的。虽然寻思着电机无规律振动没道理让陀螺仪数据偏离中心值,但还是做了个实验,把电机从板子上拆下来放旁边,用长线连到板子上,消除振动影响。这次点击不管怎么转陀螺仪数据都很稳定了。把电机摁回板子上,发现陀螺仪又开始飘了。好家伙困扰了几个礼拜的bug告破。电机直接硬连接在装有陀螺仪的pcb底板上,6050运动学解算出的欧拉角来自于四元数,四元数来自于DMP对三轴加速度计和三轴陀螺仪的ADC数据进行融合计算。当电机开始旋转,其产生的振动会直接传导到陀螺仪,影响到的应该是加速度计的数据。因此,其输出的欧拉角就有了较大的偏移。

上层

底盘最主要就是陀螺仪的问题,结构算比较稳固。上层问题也不小,主要是铲子太小了,没办法很好的控制。

abs 100%填充打印,非常结实,但是小了点。正面2cm,侧面长的那一边才3cm。之所以画这么小是想兼容上面的锤子,实现一个武器臂复用。然而做出来才发现,这样的铲子根本没办法有效控制,掀不翻人。只有正面+侧面完全把对面铲起之后才能有效掀翻。

同时,75%填充的举升臂已经很敦实了,用手根本掰不动,下一版的时候可以考虑减重。

总之就是,到处都有问题。等下一版改版。rmb--。

220g格斗机器人建造日志(1) —— 结构和硬件设计相关推荐

  1. 220g格斗机器人建造日志(0) —— 脑洞

    偶然在某站上看到cityturbo的220g桌面级格斗机器人比赛,挺有意思的样子.而且就在上海.恍然间觉得,好像格斗机器人离自己也并不遥远,触手可及.基本都是3D打印的结构,入手难度好像也不太高.于是 ...

  2. 220g格斗机器人设计制造日志(3)——改版,结构和硬件电路

    没有什么是一次改版解决不了的,如果有那就改两次. 一.车体结构 底盘 之前用pcb做底板的版本已经被证明问题一大堆,太沉而且轴距过小,容易翻车:同时铲子太小,控不住人:此外陀螺仪直接做在底板上的设计不 ...

  3. 【懒人必备】智能窗帘机器人,告别手动拉窗帘——硬件设计篇

    简介:智能窗帘机器人方案,无需专业人员上门安装,使普通窗帘秒变智能窗帘. 概述 随着智能家居的深入拓展,智能窗帘凭借成熟的技术和产品,逐步成为了智能家居家庭中的标配,在家装智能化市场有很高的应用价值. ...

  4. 人体一机竞技格斗机器人_工匠社发布首款“人机一体”消费级竞技格斗机器人 不服就干!...

    4月25日下午,以"极致进化匠领未来"为主题的工匠社2019新品发布会在北京举行.会上,工匠社正式发布全新旗舰产品GANKER EX--首款拥有"人机一体"操控 ...

  5. 赫宝铁甲格斗机器人系列_【为老铁打call】最直白的常规格斗机器人类型解说!以后别再说你不懂格斗机器人...

    原标题:[为老铁打call]最直白的常规格斗机器人类型解说!以后别再说你不懂格斗机器人 * 本文特邀作者:DF创客社区 王大师 如需转载,请联系授权 由创客星球倾情制作,万众期待已久的<铁甲雄心 ...

  6. stinger 小型机器人_铁甲大百科——史上最全格斗机器人类型解析,哪类机器人最酷炫?...

    点击播放 GIF 1.1M 前文我们分享过一次对机器人类型的总结,但是很多小伙伴还是不够清楚,那么老铁再一次从其他维度,更加细致的对机器人类型进行了分类,以便新手们参考借鉴. 具体如何分类,我们往下看 ...

  7. 在哪里买铁甲格斗机器人_铁甲雄心Ⅱ火了 优必选“超变铁甲”掀起闯关赢免单热潮...

    8月21日,优必选旗下智能编程教育机器人品牌Jimu Robot推出新品"超变铁甲".这款桌面轻格斗编程机器人借力<铁甲雄心Ⅱ>综艺IP,主打桌面竞技玩法,承接Robo ...

  8. 机器人擂台的利剑_格斗机器人史上攻击力大排行,排名第一的果然是TA!

    历史不会抹去任何辉煌的记忆,在格斗机器人问世之后的这几十年中,我们看到了很多强劲的机器人,那么到底这些机器人中攻击力最强的是谁呢? 本文列举了格斗机器人三大赛事(Robotwars,Battlebot ...

  9. stinger 小型机器人_格斗机器人史上攻击力大排行,排名第一的果然是TA!

    历史不会抹去任何辉煌的记忆,在格斗机器人问世之后的这几十年中,我们看到了很多强劲的机器人,那么到底这些机器人中攻击力最强的是谁呢? 本文列举了格斗机器人三大赛事(Robotwars,Battlebot ...

最新文章

  1. 小黑小波比.保存密码加密方式
  2. Serval and Toy Bricks
  3. IOS8如何获取当前UIViewController
  4. NXP(I.MX6uLL) UART串口通信原理————这个未复习
  5. java中生成1000~10000之间的随机数
  6. CIO,马上就没有线下灾备了,不要做最后一个
  7. 888. 公平的糖果棒交换
  8. c语言第二章网上作业答案,c语言第二章课后习题答案
  9. 文件服务器php源码,php 在服务器上载文件
  10. WPE 过滤器 高级滤镜
  11. 使用okhttp下载文件 、传统方式下载文件,简介okhttp使用(Java)
  12. lan上网和adsl上网
  13. Improving and Simplifying Pattern Exploiting Training
  14. 女星长发如雪 上演现代版白发魔女传(组图)
  15. Linux中的split命令,文件切割
  16. 电脑连接linux系统怎么样,如今连Linux都弄不懂-当时我如果那么学习培训电脑操作系统就好啦...
  17. 云服务器修改虚拟内存,云服务器可以设置虚拟内存
  18. 原生js实现fadein 和 fadeout淡入淡出效果
  19. Win10桌面隐藏显示版本号
  20. python 火车票查询,Python3实现火车票查询工具

热门文章

  1. 【线下沙龙】北京-“ 云计算·风向“——2016名为PaaS的热带气旋
  2. YDOOK:通过 ffmpeg 转化格式的音频 前后的采样率一样吗
  3. 必须要理解掌握的贝塞尔曲线
  4. java随机快速排序,Java-随机枢轴无法快速排序
  5. 中国铸造机械行业发展动态与运营前景状况分析报告2022版
  6. 阿诺德基础材质节点的连接
  7. 推荐一个李建忠老师创办的网站 -- Boolan(关注经典技术书籍)
  8. Django项目遇到ImportError: cannot import name ‘url‘ from ‘django.conf.urls‘解决方法(亲测有效)
  9. 对访问控制中最小特权原则的理解
  10. Failed to connect to database. This release of the GeoDatabase is either invalid or out of date