​一、本文介绍

本文以六自由度工业机器人为例,介绍利用ADAMS软件进行串联机器人运动学仿真的具体步骤

软件版本:adams2020

ADAMS模型导入,振动分析,以及MATLAB/SImulink联合仿真 流程笔记 - 哔哩哔哩

振动系统的虚拟样机模型及其模态仿真-电子工程世界

二、具体步骤

写在前面

1.所有导入、保存的文件路径必须是全英文;

2.快捷键:英文输入法下Z、T、R分别表示缩放、平移和旋转

仿真1:样条曲线输入动力学仿真

步骤一:物体设置Bodies

1.首先将在三维建模软件(如SolidWorks、Proe等)中建立好的机器人三维模型,另存为.x_t格式,并导入ADAMS软件。关节分别右键重命名为B0,L1,L2,L3,L4,L5,L6,设置材料为steel或aluminum

  

装配体按模型名称和部件名称导入的区别:

模型名称Model:按照装配零件个数导入,装配体7个零件,导入就是七个零件;

部件名称Part:将所有零件都汇总在同一个文件夹下,末端执行器可以按这个方式导入;

材料 中文

黄铜

碳纤维 0-90 环氧树脂复合材料

碳纤维预浸料

铸铁

玻璃

玻璃纤维塑料

金属线缆

橡胶带

不锈钢

木材

加工路径

2.设置-工作格栅——设置定位(pick)-拾取B0中心点;设置方向-XZ方向

步骤二:连接设置Connection

1.本例中涉及6个转动关节,ABB IRB 6700-200 DH参数如图,根据机器人DH参数设置坐标。

关节旋转轴信息:

  • 世界坐标系:J1 (z)、J2 (y)、J3 (y)、J4 (x)、J5 (y)、J6 (x)
  • 关节局部坐标系:J2-J6 均绕 z 轴(J1 默认局部 z 轴对应世界 z 轴)

  

这里的C1~C3表示沿x,y,z平移距离;A1~A3表示绕x,y,z旋转,是弧度制。如:A1=3.1415926536 表示绕x转180°,A2=1.5707963268 表示绕y转90°。设置完可以测量一下末端坐标 [ 1.6625, 0, 2.105 ] 验证正运动学。

图标太小可以放大,【设置属性】选择运动副,下面的下拉列表选【图标比例】,输入2。

关节1-6参数:

步骤三:驱动设置Motions

在实际建模中,位移驱动 + STEP 函数 是最常用的组合,尤其适合运动学仿真;若需分析驱动力矩,则可在运动学仿真后切换为“力驱动”进行逆动力学分析。

步骤四:力设置Forces

一般只设置重力,如果需要引入柔性,可以设置弹簧扭矩。ADAMS 中 “刚性运动驱动” 和 “柔性力矩驱动” 的核心区别:

驱动类型 旋转副位移驱动 柔性力矩驱动
核心逻辑 直接强制关节按角度 - 时间曲线运动,是位置约束 通过力矩 “推动” 关节跟踪目标角度,是力控制
输入数据类型 角度 - 时间样条 力矩 - 角度样条(或力矩 - 时间样条,需建立角度→力矩映射)
适用场景 刚性关节模型,无需考虑弹性变形 柔性关节模型,弹簧阻尼可生效

如果是刚性关节,按照前面添加【连接】里的转动副;

如果是柔性关节,需要先设置扭转弹簧阻尼器,再设置力矩驱动。关节1-6扭转弹簧阻尼器坐标设置同上;添加【力】里的力矩,构建方式默认[垂直于格栅],也就是绕z轴的单向力矩,可应用于关节1,但不适用于其他关节,所以关节2构建方式选[选取特征],靠近标记点Marker的位置选择z方向。

实验采集的只能设置有时间-角度

430*(CUBSPL(time,0,Joint1,0)*(pi/180) - AZ(MARKER_4, MARKER_1)) + 110*(D(CUBSPL(time,0,Joint1,0)*(pi/180), time) - WZ(MARKER_4, MARKER_1))

步骤五:单元设置Elements

将 MATLAB 或实验采集的通过逆运动学求解的各关节角度值表,将其导出并保存为.txt或.csv格式,然后将其导入到 ADAMS 中生成样条曲线,最后在各个驱动上添加相应的驱动函数。

注意:独立的列索引填1,表示第1列作为x输入,剩下的列作为y输入;如果填2,表示第2列作为x输入,剩下的列作为y输入。

驱动函数设置:

图中第3步下拉列表选样条,第5步点击辅助后“第一自变量”填time,样条函数名称选对应关节,点“确定”或“应用”(只点其中一个!不然会重复出现两个样条函数!)在Function Builder里显示的函数后再手动输入*(pi/180),因为默认adams单位是弧度,导入的表格单位是角度,需要转换。

-CUBSPL(time,0,Joint1, 0)*(pi/180)

步骤六:测量设置Measure

  • 动力学仿真中常用的物理量术语说明:

连杆参数L_1~L_6 关节参数JOINT1~JOINT6
  • CM Position、CM Velocity、CM Acceleration:质心位置、质心速度、质心加速度
  • CM Angular Velocity:质心角速度
  • CM Angular Acceleration:质心角加速度
  • Kinetic_Energy:动能
  • Translational_Kinetic_Energy:平动动能
  • Angular_Kinetic_Energy:转动动能
  • Angular_Momentum:角动量
  • Translational_Momentum:平动动量
  • Angular_Momentum_About_CM:关于质心的角动量
  • Potential_Energy_Delta:势能变化量
  • Element_Force:单元力
  • Element_Torque:单元力矩
  • Translational_Displacement:平动位移
  • Ax_Ay_Az Projection_Angles:Ax_Ay_Az 投影角
  • Translational_Velocity:平动速度
  • Translational_Acceleration:平动加速度
  • Angular_Velocity:角速度
  • Angular_Acceleration:角加速度
步骤七:后置处理器PostProcesser

在【文件名称】输入文件要保存的路径、文件名、文件格式;在【绘图】中选择要导出的曲线图

仿真2:matlab与adams联合仿真

介绍ADAMS与Matlab的联合仿真功能,通过MatlabSimulink向ADAMS中的机器人模型输入控制参数(抛光力、下压量与主轴转速,期望轨迹),在ADAMS中实现仿真功能,并将ADAMS仿真结果数据(末端三向的振动值)输出到Matlab中。

步骤1:adams设置

打开需要进行仿真的ADAMS模型,本文使用的是六自由度工业机器人模型,建模过程可参考前文,在上一文中我们直接在ADAMS中给出了机器人的末端轨迹,在这里我们只在ADAMS中建立机器人的运动学关系,轨迹参数由MATLAB中输入。

在ADAMS中建立变量,用于与MATLAB进行数据交互;建立传感器:并非真的传感器,而是根据传感器的测量原理,利用相关函数测量坐标系之间的关系实现对真实传感器的模拟。

系统单元:建立机器人末端轨迹的3个控制参数变量,Force(抛光力),Press(下压量)和SpindleSpeed(主轴转速);数据单元:轨迹规划对应的关节运动角度直接导入实验采集的值。作为MATLAB向ADAMS的驱动值;

建立末端振动数据变量,End_x,End_y,End_z作为ADAMS向MATLAB的数据反馈值;

    

步骤2:matlab设置

打开MATLAB,在MATLAB中输入工程目录下生成的文件的文件名如Control_Plant_3,回车MATLAB如下,然后输入adams_sys回车,打开如下的一个窗口

没做出来。。。。

参考:

文件说明

 文件1:

1 2-4 5-8 9-14 15 16 17
含义 时间戳

末端坐标

X 、Y、Z

四元数

Q1 ~ Q4

六轴角度

θ1 ~ θ6

L:压缩量

F:抛光力 标识位

时间戳说明:

1.常见时间戳:在线时间类型转换

2.这里的时间戳:.NET DateTime.Ticks格式

从时间戳的间隔来看,数据采样频率为10hz

 文件2:

三、参考资料

1.ADAMS串联机器人仿真与轨迹规划【附源文件】_adams机械臂轨迹规划-CSDN博客

2.ADAMS 机械臂抓取物体动力学分析仿真实例_哔哩哔哩_bilibili

3.https://blog.csdn.net/doudou2weiwei/article/details/141060100

4.

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐