我接触到的一些学校或企业在用MATLAB/Simulink做机器人控制。MATLAB有机器人建模仿真和规划控制的工具箱:Robotics System Toolbox(机器人系统工具箱)。详细看了这个工具箱的介绍,对于初学者而言,也可以从这个工具箱入手学习机器人控制。
工具箱的介绍在这:
Robotics System Toolbox™ 提供了用于设计、仿真和测试操纵器、移动机器人及人形机器人的工具和算法。对于操纵器和人形机器人,该工具箱包含了使用刚体树表示形式的碰撞检查、轨迹生成、正向和逆向运动学以及动力学算法。对于移动机器人,该工具箱包含用于映射、定位、路径规划、路径跟踪和移动控制的算法。该工具箱提供了常用工业机器人应用的参考示例。该工具箱还包含可以导入、可视化和仿真的商用工业机器人模型库。
主要包含两部分功能:机器人建模及仿真、机器人算法。以下罗列一下官网的描述,可以看出来这个工具箱能做的事情还挺多。
机器人模型
构建您自己的机器人模型或使用常用机器人模型库,为您的机器人应用快速建模。您可以导入统一机器人描述格式 (URDF) 文件或 Simscape Multibody™ 模型,以创建自定义机器人模型和视觉几何体。
移动建模和控制
对移动机器人和操纵器的基本运动学和动力学进行建模。对机器人运动进行可视化和仿真,以验证控制算法。
3D 仿真
通过与 3D 物理仿真器进行接口通信,在现实世界的仿真环境中验证机器人模型。将 Simulink® 模型仿真与 Gazebo 仿真进行同步。
操纵算法
使用刚体树表示形式定义机器人模型。使用机器人模型构建高级运动控制器和接口,以完成机器人工作流程。对机器人模型执行碰撞检查和逆向运动学与动力学计算。
移动机器人算法
使用占据栅格创建环境地图,在地图中定位机器人,并为移动机器人开发路径规划和控制算法。
基于上述工具箱,你可以实现自己的机器人控制算法或者机器人模型。接下来你可以采用快速控制原型(RCP)和硬件在环仿真(HIL)的方式来进行测试验证。
快速控制原型(RCP)
如果你开发好了Simulink控制算法,需要去控制实际的机器人来验证控制算法, 此时你可能没有自己的控制器硬件 ,这时候你可以采用快速控制原型(RCP)的方式来验证,将你的控制算法模型下载到RCP设备中去控制你的机器人(如以下视频)。
https://www.zhihu.com/video/1428013210402648064硬件在环仿真(HIL)
当你开发出了自己的机器人控制器(包含软硬件),此时你可以直接去控制你的机器人,进行全实物的测试,但有些情况下,你可能不会直接用真实的机器人去做实验:
1、你的机器人本体还没做出来;
2、你要测试的有些工况比较危险,如果用机器人本体来做,有可能会造成人员损伤
3、你的控制器还没经过完善的测试,如果直接用真实的机器人去做测试,可能会损伤你的机器人或者实验人员
……
这时候你可以进行硬件在环仿真(HIL)来测试你的控制器,用一台仿真器运行你的机器人模型,让你的控制器去控制这个仿真器(你的机器人控制器是无法识别它正在控制一个真的机器人还是一个模拟机器人的仿真器)。这种方式安全、可靠、高效,而且对实验条件要求低。
可以参见西门子做的硬件在环仿真测试: