从开始设计机器人到功能实现,这三个核心问题是作为工程师和科研人员必须要解决的:
机器人系统的设计和仿真
机器人算法早期验证
连接机器人平台和外设
使用MATLAB和Simulink,加速机器人从设计仿真到最终实现的每一步。
机器人的系统设计和仿真
机器人系统的设计是一个多领域学科的话题,包括机械、电子、软件、运动学等。MATLAB和Simulink在设计早期可以进行基于多学科的仿真和计算,在不具备硬件的情况下对机器人系统和算法进行调试验证,达到了早发现错误、节约成本的目的。
在机器人设计的最初阶段,MATLAB可以借助其Symbolic Math Toolbox进行基于运动学和动力学的数值求解,从数学的角度进行可行性证明。
在证明的运动和动力学的数学模型正确后,可以借助SimMultibody将CAD模型导入,形成机器人的被控对象模型的机械部分。
在确认被控对象的的机械部分的正确性后,在机械关节部位用SimElectronics加入电机模型和角度传感器模型,即被控对象模型的电子部分。
在机器人的本体模型完成后,可以通过Simulink以及相应的控制工具箱进行电机控制算法的搭建、仿真和调优,形成闭环的机械、电子、控制一体化的闭环仿真。
加入从运动轨迹规划逆解到电机控制的角度位置的MATLAB程序,并集成至Simulink控制模块中,就可以在仿真环境下完成运动学、电机控制在机械、电子、软件一体化系统下的整体虚拟仿真调试。
半实物仿真调试。在确认所有控制部分准确无误后,可以通过Simulink Real Time将控制部分下载到HIL系统中(Hardware-In-the-Loop),通过高速实时总线连接到真实机器人,进行半实物仿真。
机器人算法早期原型验证
现代机器人所涉及的算法多种多样,可按如下领域划分为:
感知和传感器融合类算法
行走路径算法类
机械臂规划和控制算法类
MATLAB通过各种工具箱为这些算法提供了开发和验证平台。
感知和传感器融合类算法
随着机器人的更新换代,越来越多的机器人有了人工智能(AI)的能力,人工智能相对于传统机器人最主要增加了感知能力(例如摄像头、雷达、激光雷达)以及对多种传感器识别输出的融合能力。MATLAB在这方面主要提供如下工具箱:
Image Processing Toolbox
Signal Processing Toolbox
Computer Vision System Toolbox
值得一提的是,随着AI的快速演进和发展,机器学习和深度学习已经成为图像处理方面的热点。Statistics and Machine Learning Toolbox和Neural Network Toolbox适合于大规模图像的机器学习和深度学习方面的训练和识别技术。
在传感器融合方面,机器人技术和汽车自动驾驶有相同的技术背景和需求。在此背景之下,Automated Driving System Toolbox提供了多种传感器融合所需要的编程框架和多种算法,以及各种融合的示例供参考。
行走路径算法类
在行走机器人算法方面,MATLAB可以通过栅格(Occupancy Grids),道路模拟器,地理数据等方式来便利地表示地图。
在路径规划和跟随、自动避障、姿态和定位方面,Robotics SystemToolbox提供了内置的PRM,Pure Pursuit,VFH,Monte CarloLocalization,Scan Matching等现成算法和功能供使用。也可以用MATLAB语言自己实行算法。
机械臂规划和控制算法类
在机械臂机器人的规划和控制算法中,常用的算法和功能包括:
Kinematics 和Inverse Kinematics
Kinematic Constraints
Dynamics 和Inverse Dynamics
Impedance Control
PID
Jacobian Transpose
Trajectory Planning and Optimization
ObstacleAvoidance
Robotics System Toolbox提供了机械臂的刚体树(Rigid Body)表示,也提供了这些基本算法或样例,可灵活地配合其他工具箱验证这些算法。
连接机器人平台和外设
机器人作为一个生态系统,围绕这个机器人产业,市面上出现了很多机器人仿真平台:
基于通用硬件的:Arduino,Raspberry Pi,LEGO MINDSTORMS等
MATLAB和Simulink提供了对ROS的支持。通过这些接口,用户可以方便地通过ROS导入传感器信息、测试机器人控制算法、也可以进行基于支持ROS的模拟器的虚拟仿真。
用户还可以通过硬件支持包(Hardware Support Package)下载Arduino,Raspberry Pi,LEGO MINDSTORMS的支持包,用户只需在MATLAB/Simulink中编写控制算法就可很快地通过支持包生成代码下载并运行在这些硬件平台上。
代码生成
在用户通过控制算法的仿真和验证之后,用户可以通过Embedded Coder将Simulink算法直接生成标准C、C++代码。
这些算法可以为:
电机控制算法
机器人运动控制算法
传感器感知和融合算法
生成的C、C++代码具有高度的可读性和安全可靠性,可轻易适配至任何硬件或者操作系统。
德国宇航中心的Justin机器人是世界上最先进的机器人之一。Justin有两个手臂,可移动,是一种人形机器人。开发团队使用MATLAB和Simulink设计机器人模型,开发先进的控制算法和路径规划算法。
它的53个自由度分布在不同机械部分,上身:19自由度,手臂:26自由度,移动平台:8自由度。它是通过其头部的立体相机和RGB-D传感器来感知外界环境,在所有的关节都有力矩传感器,并在其手指有皮肤触觉传感器。
-
传感器
+关注
关注
2552文章
51228浏览量
754654 -
机器人
+关注
关注
211文章
28512浏览量
207498 -
模拟器
+关注
关注
2文章
879浏览量
43272
发布评论请先 登录
相关推荐
评论