本节书摘来自华章社区《机器人与数字人:基于MATLAB的建模与控制》一书中的第1章,第1.3节借助机器人分析方法进行数字人建模,作者[美]顾友谅(Edward Y.L.Gu),更多章节内容可以访问云栖社区“华章社区”公众号查看
1.3借助机器人分析方法进行数字人建模
回顾机器人和数字人建模的研究和技术开发的历史,可以发现,每一次技术进步和前沿创新总是反映在主要商业仿真软件产品中。虽然大多数图形模拟软件会显示一个小的“窗口”表明自己的开放式体系结构特征,并号称允许用户编写自己的应用程序进行研究、测试或者验证,而实际上,当用户自己编写的程序准备好与这些软件产品通信时,往往需要特殊的应用程序编程接口(API)以便识别和运行用户自己的应用程序。因此这些软件的应用就受到了限制,不适合用于科研和教学。最理想的是有一种集建模、编程、修改、细化以及动画图像于一身的应用软件,如MATLAB软件,它可以创建一个灵活的、人性化的以及真正开放式的数字环境体系结构用于未来机器人和数字人的图形仿真研究。
通过为读者提供初步的理论基础,本书的目的是研究借助机器人的分析实现数字人建模的过程。在建立这个数字人模型后,读者就可以在MATLAB中模拟一个3D实体模型或者人体模型,并且驱动这个模型使其运动。读者可能很快就会发现编写MATLAB代码并不困难,因为它是最高级的计算机语言。最麻烦的问题是机器人或人体模型图背后必要的数学变换知识。这就是为什么要在通过编写MATLAB代码创建期望的数字动画模型之前必须建立理论模型的根本原因。最近MATLAB新增了机器人工具箱,
10
这肯定有助于人们对机器人理论的概念理解,有助于学习机器人建模过程的数值解法和运动算法。
为了成功地将机器人方法应用到数字人建模,本书除了机器人运动学、静力学、动力学和控制的理论基础之外,还将重点介绍基本的数字建模过程、运动算法和优化方法。制作真实的人体模型的外观以适应不同的人体测量数据和人体认知模型不是本书的重点。实际上,如果创建足够多的曲面并且进一步把它们组合在一起,只要花足够的时间,总是可以雕塑出细致入微、表面清晰的曲面,看起来像真正的肌肉/皮肤一样。此外,读者也可以连接相邻表面的数据产生一定的变形效果。因此,本书将介绍一些典型数学造型和变形算法实例,在此基础上,读者可以将其扩展到更高级和更复杂的程序编写过程中。
另外,在本书的数字人建模部分,数字人模型的关节偏置和连杆长度等运动学参数的设置,都是依据人体测量数据给出的。在建模程序中,参数的设置和重置都很方便,并且这些参数的改变不会改变运动学的结构。例如,采用静力学来分析搬运物料时数字人模型的关节力矩分布时,显然,不同的运动学参数设置将产生不同的结果。但是,如果输入一组恰当的参数,根据人体测量数据给出的关节力矩分布的结果,这将会准确反映人体的负重性能。目前已经建立了多个可用的人体测量数据库[20],如CAESAR、DINED、ACADRE、美军的Natick、美国NASA的STD3000以及MILSTD1472D等。读者可以参考有关文件和文献找到合适的数据库来进行高可靠性的数字评估与评价。
从真正的人体肌肉骨骼结构的角度来看,完美的模型要考虑人体的每一块肌肉和关节结构,目前基于刚体的数字人物理模型很难被认为是精确的和满意的模型。尽管如此,目前的数字人建模毕竟为未来目标模型的架构奠定了基础。随着研发的不断深入,具有真实运动并能够实现与复杂环境真正智能交互的理想数字人模型终将在不远的未来变成现实。
另一方面,由于机器人研究的不断成熟,通过借用机器人建模理论和运动算法来发展数字人模型和运动成为可能。因此,本书的组织结构是沿着从机器人分析到数字人建模的过程展开的。第2章和第3章介绍相关的数学基础知识。第4章介绍机器人建模过程和运动学方程。
11
第5章将学习冗余机器人以及串联/并联机器人系统的运动学正、反解。第6章介绍并说明创建零件并组装的主要步骤,以便在MATLAB中使用3D实体绘制完整的机器人系统实体模型。第7章介绍机器人动力学,如建模、分析和算法等。第8章介绍机器人控制的高级课程:从独立关节伺服控制到全局动态控制。一些有价值的机器人系统和数字人的控制方案,如自适应控制和反推控制器的设计过程也将在第8章中详细讨论。
从第9章开始,主题将转到数字人建模。第9章描述了数字人的局部、全局运动学和静力学。第10章使用MATLAB创建零件后装配生成3D实体模型,并驱动实体模型实现基本的和高级的运动。手臂和数字传感的建模也包含在第10章。第11章介绍全局观念下的数字人动力学模型,探索如何使用全局动态算法生成真实运动。在第11章的最后,将对两个典型数字人动态运动案例进行建模、研究和仿真。最后,介绍了可以用于模拟具有反推控制器设计能力的k级联大规模系统的人机动态交互系统的交互控制总体策略。