机器人模型获取
接上期:机器人控制系列教程之控制理论概述,文中详细讲解了如何通过Solidworks软件导出URDF格式的文件。文末提到了若需要将其导入到Simulink中可在命令行中输入smimport('urdf/S_Robot_urdf.urdf')
,MATLAB将自动打开Simulink以Simscape模块的形式生成模型文件。当然,MATLAB软件内置还是有很多机器人的模型,各位可以到MATLAB官方查看,MATLAB机器人工具箱(相关的安装教程可见:)中,可在MATLAB命令行中输入models
即可看到机器人工具箱中所有机器人的模型。本节对应的模型文件见文末!
>> models
ABB, IRB140, 6DOF, modified_DH (mdl_irb140_mdh)
ABB, IRB140, 6DOF, standard_DH (mdl_irb140)
ABB, S4_2.8, S4 2.8m reach version, 6DOF, standard_DH (mdl_S4ABB2p8)
Adept, Cobra600, 4DOF, standard_DH (mdl_cobra600)
Aldebaran, NAO, humanoid, 4DOF, standard_DH (mdl_nao)
Baxter, Rethink Robotics, 7DOF, standard_DH (mdl_baxter)
Fanuc, AM120iB/10L, 6DOF, standard_DH (mdl_fanuc10L)
Fanuc, M16, 6DOF, standard_DH (mdl_M16)
Franka-Emika, PANDA, 7DOF, standard_DH (mdl_panda)
Kinova, Jaco, 6DOF, standard_DH (mdl_jaco)
Kinova, Mico, 6DOF, standard_DH (mdl_mico)
Kuka, KR5, 6DOF, standard_DH (mdl_KR5)
Kuka, LWR, 7DOF, standard_DH (mdl_LWR)
Motoman, HP6, 6DOF, standard_DH (mdl_motomanHP6)
Rethink Robotics, Sawyer, 7DOF, standard_DH (mdl_sawyer)
Stanford, Stanford Arm, prismatic, 6DOF, standard_DH (mdl_stanford)
Stanford, Stanford arm, prismatic, 6DOF, modified_DH (mdl_stanford_mdh)
Trossen Robotics, PhantomX Pincher, 4DOF, standard_DH (mdl_phantomx)
Unimation, Puma560, dynamics, 6DOF, modified_DH (mdl_puma560akb)
Unimation, Puma560, dynamics, 6DOF, standard_DH (mdl_puma560)
Unimation, Puma560, on XY base, redundant, 8DOF, standard_DH (mdl_p8)
Universal Robotics, UR10, 6DOF, standard_DH (mdl_ur10)
Universal Robotics, UR3, 6DOF, standard_DH (mdl_ur3)
Universal Robotics, UR5, 6DOF, standard_DH (mdl_ur5)
generic, 6DOF, standard_DH (mdl_offset6)
generic, 6DOF, standard_DH (mdl_simple6)
generic, ball shape, hyper redundant, 50DOF, standard_DH (mdl_ball)
generic, coil, hyper redundant, 50DOF, standard_DH (mdl_coil)
generic, planar, 1DOF, standard_DH (mdl_onelink)
generic, planar, 1DOF, standard_DH (mdl_planar1)
generic, planar, 2DOF, modified_DH (mdl_twolink_mdh)
generic, planar, 2DOF, standard_DH (mdl_planar2)
generic, planar, 2DOF, symbolic, standard_DH (mdl_planar2_sym)
generic, planar, 3DOF, standard_DH (mdl_planar3)
generic, planar, dynamics, 2DOF, standard_DH (mdl_twolink)
generic, planar, dynamics, 2DOF, symbolic, standard_DH (mdl_twolink_sym)
hyper redundant, 10DOF, standard_DH (mdl_hyper3d)
planar, hyper redundant, 10DOF, standard_DH (mdl_hyper2d)
Robotics System Toolbox(MATLAB官方安装包)也有许多机器人的模型可见:https://ww2.mathworks.cn/help/robotics/ref/importrobot.html。
Toolbox区别
MATLAB 中有两个用于机器人学和机器人控制的工具箱:Robotics Toolbox 和 Robotics System Toolbox。这两个工具箱在功能和范围上有一些区别,但它们都旨在为用户提供处理机器人相关问题的功能和工具。
- Robotics Toolbox是 Peter Corke 开发的一个 MATLAB 工具箱,提供了一系列用于机器人学和机器人控制的函数和工具。它主要用于教学和研究,提供了大量的基本功能,包括机器人的运动学、逆运动学、动力学、轨迹规划等。Robotics Toolbox 中包含了一些经典的算法和模型,如 Puma560 机器人模型,以及一些用于仿真和控制的工具和函数。
- Robotics System Toolbox 是 MathWorks 官方发布的一个工具箱,作为 MATLAB 的一部分提供。它是一个更加全面和专业化的工具箱,旨在处理实际机器人应用中的问题,包括传感器集成、导航、视觉处理等。Robotics System Toolbox 不仅包括了机器人学和机器人控制方面的功能,还提供了一系列用于与实际机器人系统进行通信和交互的工具,如 ROS(机器人操作系统)的接口、机器人仿真环境的连接等。
因此,尽管两个工具箱都涉及机器人学和机器人控制,但 Robotics Toolbox 主要用于教学和研究,提供了基本的功能和算法,而 Robotics System Toolbox 则更专注于实际应用,提供了更全面和专业化的功能,适用于实际的工程项目和应用场景。
但需要注意的是:Robotics Toolbox 是由 Peter Corke 开发并维护的,目前距离上次维护已经是4年前了,对Simulink的适配较差且整个软件需要单独安装;而Robotics System Toolbox基本上每个新的MATLAB的版本(2019a以来)都有维护,内置在Simulink的库中,配合Simulink强大的功能可以做很多有趣的事情!
实例
本次笔者使用的模型是KUKA的iiwa7串联七自由度机器人,可以看下他们官网对这款机器人的介绍:“KMR iiwa 自主型机器人灵活,可以实现人机合作。它将 LBR iiwa 灵敏轻型机器人和自主移动式平台的优点综合在一个系统中。KMR iiwa 不受地点限制、高度灵活——为满足工业 4.0 的要求创造了理想条件。”
这个机器人的默认是已经内置到了MATLAB中,只需要在MATLAB命令行中输入:smimport('iiwa7.urdf')
,即可在Simulink中打开这个机器人的模型,是由Simscape搭建,你可自定义设置其关节的驱动方式和输出的信息。
下面有一个已经搭建好的机器人模型,并且已经通过了验证大家可以自行下载:https://pan.baidu.com/s/1gXF2CQCOh4MKeGZ6aa9Egg?pwd=tech,提取码:tech(若链接失效,可进群咨询获取!)。针对上述生成的模型主要做了如下的几条修改:
- 每个关节都设置了驱动方式为运动,且导出了每个关节的位置、速度、加速度以及驱动力矩的大小为了后续进行控制器设计时作为反馈。
- 在默认的Simulink的“建模”->“模型属性”中设置了回调InitFcn,进行加载机器人的三维模型和URDF文件,并且设置数据格式(以列为准)和重力方向大小,如下:
- 将模型进行封装,添加icon图像。
到此,模型的相关设置结束,下一篇推文笔者将重点介绍Simulink中的Robotics System Toolbox库的一些重点模块。欢迎持续关注!