机器人编程介绍
机器人组成¶
硬件¶
包含大量的传感器和执行器。例如,温度传感器,陀螺仪传感器,GPS,相机,伺服电机等
软件¶
软件方面,主要是完成业务流程,实现相关算法,保证硬件逻辑的执行。总结来说,就是完成控制规划等逻辑。
机器人开发基本运作的流程示意图:
硬件存在的问题¶
- 传感器永远不可能是完美的
- 由许多模块组成,因此会存在多个故障点,例如,激光雷达有一个旋转的顶部、一个激光发送器、一个接收器和一个印刷电路板
- 所有模块之间的协调可能永远不会完美
- 传感器越好,价格就越高。例如,IMU、摄像机等。
- 即使传感器是完美的,环境的状态也可能依赖于大量的变量。
- 如果我们把所有这些变量都考虑进去,计算可能是不可行的。
- 执行器可能会使传感器不可靠。 例如,在照相机认为静止时没有静止照相机。
软件存在的问题¶
- 由于我们无法从传感器中获取完美的数据,因此我们无法使用绝对算法,即可以确定环境绝对状态的算法。
- 我们利用概率技术对机器人进行状态估计。
- 这些技术不能保证正确的解决方案。
- 它们在指示最可能的解决方案的同时提供了一系列正确的解决方案或可能的范围。
- 这些技术包括机器人定位,SLAM,粒子过滤等技术
软硬件融合协作问题¶
- 机器人可能由数十个传感器和执行器以及许多计算机组成
- 伺服电机,摄像机,IMU,激光雷达等会不会相互影响
- 传感器需要某种方式来访问计算资源,计算资源是否被抢占
- 传感器数据间如何通讯
- 业务逻辑如何与传感器数据进行交互
- 代码复用等问题
解决思路¶
- 一个可以将硬件与软件结合的框架
- 数据交互方便的框架
- 简化工作流程的框架
- 代码可以复用的框架
- 免费的框架