双足机器人1-开篇

2021/10/2 23:12:43

本文主要是介绍双足机器人1-开篇,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

今天是开启双足机器人研究的第53天,总结下这一个半月做的许多事。

一、研究方面

  1. 基础学习
    基本概念学习(旋量理论基础过一遍——《机器人操作的数学导论》;D-H方法以前学过一些),总之基础是看过一遍了,但是还有很多细节都不懂,放到以后即用即学。
    文献复现一篇(目的是熟悉领域名词,以及这个领域文章基本布局):内容是Cassie跳跃轨迹规划和基于动力学约束的最优控制(因为做过电液控制,对控制还是看得懂的,就是建模不太相同)。
    做完这一步,总算对专业名词有点基础,读起其他文献也比较轻松一点了,大概知道大家怎么做这个领域的研究了。
    https://ieeexplore.ieee.org/abstract/document/8593547

  2. 文献阅读
    把师兄推荐的文献都读了一两遍,虽然还是不太明白,但是有印象了,沿着引文找了些经典的论文读。现在刚入门,文献阅读量还是差得远,得多读。(文献阅读方法是上半年在B站上学的,还是很受用的)https://www.bilibili.com/video/BV1Se411p7bufrom=search&seid=4389276310800324995&spm_id_from=333.337.0.0

  3. 同行交流
    因为平台原因,同行交流的机会很多。但是每次同行交流最好都要做一些准备,没有交流会成闭门造车难以快速进步,但是没有些许准备,交流意义也不大。以观察者视角和学习的心态交流可以进步很快。

  4. 做仿真和实验
    仿真很需要技巧,而且每个人有每个人的仿真风格,最好能耐心多学学不同人的仿真方法。
    实验设计(做哪些实验,为了验证或者实现什么),这个跟论文布局就很有关系;
    实验准备(平台搭建,数据采集软件编写,控制软件编写),这个就跟技术积累有关了,看过一篇公众号,大致说科研80%时间都是在解决技术问题;
    实验过程——遇到问题分析解决问题;数据处理,就是画一些比较好的图了。

  5. 写论文
    一个很受用的方法:每天写200字论文,既容易有数量上的成就感,又避免自己空想;就跟写博客一样。虽然什么都不懂,感觉写的很幼稚,但是比不写好多了,写完才会发现很多时候词不达意或者语意不连贯,所以文字是需要写初稿,再琢磨的,一挥而就不太现实,提笔忘字倒是经常的事。坚持几天就发现积累了很多字数,成就感就上来了。至于质的提高,还是需要多读多写,特别是有人帮改,读和写是相辅相成,缠绕上升的。

    论文写作总结:
    论文布局(时间、内容)与实验设计,
    做实验与论文内容逐步填充,题目可以逐渐优化
    论文排版与图片处理,
    论文提交过程(要求挺多,搞了半天)。
    这里尤其感谢我的师兄,手把手的带我走完这个过程。以前我自己独立写过会议论文,但是相较而言感觉自己各个方面真的差远了,尊重踩过坑的人的经验才能进步得快。最后想说,实验与写论文都要有迭代的思想,想着一次就做好往往做不好,因为容易造成极大困难和压力导致拖慢进度或者直接放弃。

二、技术方面

实验平台是边搭建边使用的,涉及结构、电气,传感、控制软件、数据采集等,一个人几乎难以完成,所以必须协助团队推进平台搭建,这方面都是些技术活,但是对理解整个系统很有帮助,下面是一些经验总结。

  1. 传感器选型
    包括落地检测,跳跃高度检测,电机位置等信号获取与保存等。传感器选型看似简单,实际也是很耗费时间的,有必要遵循一定的方式,总结如下:
    1)考虑传感器的接口类型:接口包括结构安装,电气连接两个方面;具体要考虑的是结构安装尺寸要求(有的尺寸要求很严格),驱动方式要求(比如交流电,或者直流电,以及电源大小),输出信号类型(电压,电流,电荷,这些关系到是否需要额外的变送器)
    2)考虑传感器性能:量程,精度(%F.S.——full stroke),响应速度(或者频宽),传感器原理与抗干扰能力(有电机运行,对电压等传感器输出信号影响还是很大的,对编码器影响就不大)
    3)购买:要考虑价格,工期(供货周期),购买方式

  2. 软件系统熟悉与修改(包括上位机和C++下位机)
    不用说,各类产品底层控制器多是采用C++实现的。
    以前学过C++,python,知道其中的逻辑,在做之前也还特地温习了一遍C++,以前没搞懂的虚函数和抽象类之类的概念,竟然5天全搞懂了,果然还是温故知新(当然研究生前期的项目经历对自己的学习思路和学习方法改进有很大帮助)。
    阅读大型项目却不仅仅停留在基础逻辑;更注重于整个系统框架(没有阅读过大型项目之前是很难明白的)。个人感受,写项目的思想应该就是“分层分解”,把整体功能分层分解实现;而要读项目的思想同样是先要“分层分解”,然后再通过想一想把局部串联起来形成整体。(特别是main函数被封装成lib而没有给出源代码的时候,只能从局部开始)。分层分解是自己总结的,就像树状图一样,先分层,后层内分解(跟生物学里面的遗传图谱一样)。一般C++项目以类作为分层分解的实现方式,而且遵循“高内聚,低耦合”的思想,所以层次间交叉线还是很少的。项目阅读关键就在于,明白自己看的类属于哪个层的,分开后就很好理解了。一般我会分为底层,中间N层(调用底层类),顶层(调用中间层,一般就是主函数能调用的类了)。
    看懂了自然就会写了,但是写了不一定能用,还要会高效调试方法。调试一定要遵循控制变量的方法,有一个非常受用的调试方法——printf,简直就是调试神器

最后十分感谢这个过程中给我帮助的人!



这篇关于双足机器人1-开篇的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程