拼装机器人感想_机器人入门之路(1)----感想、汇总

每次在选择关头嘴上说着想要高薪,想做纯软,不想炸板子,身体却每次都很诚实地选择了“软硬结合”的嵌入式软件。在大一的时候,面临“自动化”和“计算机科学与技术”的转专业选择,选了自动化;在大三的时候,面临“运动控制和过程控制”与“模式识别”的方向选择,选了“运动控制和过程控制”;在大四选研究生方向的时候,面临“控制科学与工程”和“模式识别与人工智能”的时候,依旧选了前者。

不得不说这是一个很庞杂的与实践相结合的方向。在这个方向摸爬滚打了三年左右,当然本科以全栈工程师为目标,其中也夹杂着其他以java为基础的开发学习和以python为基础的深度学习,这两个部分先不说。

在我的眼里,机器人分为两个类别。一个是以连杆为基础,电机最方便的控制方式为位置控制的机器人:代表有多足机器人、机械臂,机械臂等;一个是有一个body,辅之以轮子,电机最方便的控制方式为速度控制的机器人,代表有无人车,无人机等。

机器人是要有一个对象为主体进行学习的。虽然这其中有一些基础知识和一些共性知识无论做什么都要学习,但是任何一个方向深入下去都需要根据其本身的特点进行建模和分析。

我把机器人学习过程分为以下几个部分,以后也会慢慢细化。

一、基础学习(知识点)

(一)编程语言学习

工具很重要,c是嵌入式必学语言;c++和python地位差不多,哪个用的顺手用哪个,一般用于调包/框架简化计算或代码;matlab是实现原型最简单的工具没有之一,不接受反驳。ROS是一个很好的工具(可选),直观性和开源性优于matlab,用好了可以替代一部分的matlab仿真,也可作为快速搭建初始系统的框架。编程语言的学习除了c语言都是基于项目学习最好。c的学习也不要说学校的教材太老套,重要的是建立一个编程思维。

(二)嵌入式学习

原子哥野火哥的资料不用说了吧,例程详细,理论清晰。不过最重要的还是前面的时钟、架构这些理论性的东西,理解了很容易举一反三,会看电路原理图分配硬件资源就行。后面的例程做不做无所谓,把串口,iic,spi,can,Ethernet这些通信方式搞明白了就行。其实把他们例程中的每一个配置项搞明白是什么意思了就差不多了。(很多东西都是学了数电模电之后才明白,如果大一就接触这些东西搞不懂不要慌)独立电机控制也放在这一部分。如何控速度,如何控位置,都在这一部分。

(三)机器人运动学

详情可以参考《机器人学导论》那本书,机器人运动学是很基础的东西。就算以后研究的主体不是机械臂,其中的坐标系转换等知识也非常重要。后面的动力学等可以先不管,用到的时候再深入也不迟。

(四)控制理论

基本上每个工科专业都会开设“自动控制原理”这门课程。无论深度如何(其实也就是方法讲的全不全),你得把时域的概念、方法搞明白了。以前算力不足,所以喜欢在频域中找简便算法,而现在更喜欢用计算机直接在时域里面得到答案。

二、系统框架学习(知识面)

这个时候就要有对象了,不同机器人的系统框架有差别,但是大框架总是控制理论的那些东西,我这部分也按照控制理论的框架进行展开。我列举两个我所熟悉的对象说明。

(一)无人agv小车

1.控制对象

首先考虑对象的运动方程。我们想要让一个车动,控制的其实是它的轮子。那么想让车向某个方向运动多少,那么四个/两个轮子分别运动多少,这就涉及到“运动分解和合成”的知识了。

但是,是不是轮子运动多少合成后车就运动多少呢?学过物理的同学都知道,轮子会打滑,所以更加精确一点的要考虑”误差标定”。

2.控制反馈

了解了控制对象,接下来要获取控制对象的运动状态。这里获取的主要是位置姿态信息和速度信息这一部分主要是运用各种传感器对数据进行处理,并做一定的融合。这一部分是slam的主体部分,包括定位和建图。

想要定位,获取机器人的位置信息用到的传感器有:

累积式:IMU(测量三轴角速度,三轴加速度,有的还包括地磁场和温度),编码器(装在电机上)

非累计式:相机、UWB,激光雷达,GPS,GNSS等测距传感器。

但是传感器这么多,到底听谁的呢?所以这里又涉及到传感器数据融合。

因此定位主要涉及到的知识点有传感器建模(前端)(其中相机和激光雷达是两个通用化的传感器,信息更丰富,拎出来说)、定位数据融合。

数据融合在slam中归于“后端”,目前主要方法是基于滤波器的数据融合:例如卡尔曼滤波和粒子滤波 ;和基于状态估计和优化的数据融合。

建图嘛,说直白一点就是把传感器获得的相对于机器人(机器人已知当前位置)的位置信息形成一个整体地图。

3.控制给定

但是,我们的控制对象是要用来做事情的,为了完成一件事情,例如从一个目的地到另外一个目的地,怎么过去呢?这里就涉及到了路径规划(全局路径规划和局部路径规划完全是两个不同的思路)。此外,我怎么知道目的地在哪呢?这里就需要各种传感器去对外界进行感知,并进行融合.

4.控制器

好了,大部分的东西都做完了,学完控制原理第一个想到的都是PID,结构简单鲁棒性好。是的,就是这样。

但是为了控制效果更好(写文章),不得不去研究一些鲁棒性更强,快速性准确性更好的控制算法,例如滑膜控制,模糊控制,MPC控制 等

(二)机械臂

(占个坑以后再写QAQ)

1.控制对象

2.控制反馈

3.控制给定

4.控制器

三、优化学习(知识深度、创新点)

这一步其实就是看论文并进行迁移思考。要提升科研审美,不要总看中文,除了把优化算法移花接木,更多地是把其他的思想进行移花接木(举个不太恰当的例子,在目标检测里面,yolo系列,ssd系列,和rcnn系列的发展都趋向于同了)。其实不太建议过早进行到这一步,知识面不够光看论文也不能理解其中的精髓。写这第一篇文章的我也还是个本科生,在第二段和第三段门口徘徊,故不班门弄斧了,每个方向都有做的深的大佬进行这一方向的综述。

你可能感兴趣的:(拼装机器人感想)