第八节 机器人可视化仿真系统的建立.ppt

  1. 1、本文档共79页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第八节 机器人可视化仿真系统的建立

机器人可视化仿真 系统的建立 主要内容 1、前言 2、可视化仿真系统概述 3、机器人学的数学基础 4、机器人OpenGL形态建模基础 5、模块化机器人三维模型的建立 6、外部数据导入的OpenGL模型创建 1、前言 2、可视化仿真系统 2)计算出各关节的DH参数,确定关节变量 所谓D-H(Denevie-Hartenberg)参数最初是在解决由关节变量定手部位姿的机器人运动学正问题提出来的,它包括4个基本参数,如下图所示。 (1)Pro/E环境下创建三维实体并保存stl文件 (2)stl文件的格式与读写 (1)定义三角面片结构体 typedef struct _FACESTRUCT { float Normal[3]; float v1[3],v2[3],v3[3]; } FaceStruct; FaceStruct prt1[500]; (3) stl文件对应三角面片的显示 基于对话框的二维绘图的主要步骤 对话框资源及其类文件的创建 对话框绘图区域位置、大小的创建 绘图区域网格的创建 横纵坐标标度的创建 对于多条曲线绘制,图例的创建 变化曲线的绘制 对话框资源及其类文件的创建 4、横纵坐标标度的创建 5、对于多条曲线绘制,图例的创建 6、变化曲线的绘制 (2)读入数据,保存到结构体中 sscanf的用法 7、VC的MFC工程下的二维仿真绘图 (1)单一曲线示例 (2)多条曲线示例 1)对话框资源的创建 二、机器人坐标系的建立 为了研究机器人的运动,需要在机器人的各个关节构件上建立相应的坐标系,如图7所示。坐标系0是惯性参考系,它与视点变换前后的坐标系一致。坐标系i建立在关节i上,坐标系10建立在机器人末端抓手上,各个坐标系的Z轴与运动副的轴线重合。 由上面的机器人图形可以看出,机器人的每一个关节都是由两个同轴、能够旋转的方块组成的,而关节与关节之间通过法兰状的级联器连接起来,除了腕部模块之外,每个模块只有一个运动关节。只有抓手是线性运动关节,其它关节全都是旋转运动关节,这就为我们建立坐标系提供了很大的方便。 相邻两杆之间的相对位置关系可以通过坐标旋转和坐标平移来建立,例如任意两个坐标系i与坐标系j之间可以通过下列变换来建立起两坐标系之间的变换矩阵: ⑴沿x轴旋转 ⑵沿x轴平移 ⑶沿z轴旋转 ⑷沿z轴平移 ⑸沿y轴旋转 ⑹沿y轴平移 利用前面介绍的OpenGL几何变换方法,可以方便地建立起两坐标之间的变换矩阵。 其核心代码为: for(int i=1;i10;i++) { glRotated(m_Module[i].rot.x, 1.0f, 0.0f, 0.0f); //沿x轴旋转 glTranslated(m_Module[i].trans.x,0.0,0.0); //沿x轴平移 glRotated(m_Module[i].rot.z, 0.0f, 0.0f, 1.0f); //沿z轴旋转 glTranslated(0.0f,0.0f,m_Module[i].trans.z); //沿z轴平移 glRotated(m_Module[i].rot.y, 0.0f, 1.0f, 0.0f); //沿y轴旋转 glTranslated(0.0f,m_Module[i].trans.y,0.0f); //沿y轴平移 glPushMatrix(); DrawModule(i); //绘制第i个杆件 glPopMatrix(); } DrawGripper(m_GripperWidth); //绘制抓手 经过9次变换,绘制出9个动坐标系。在绕z轴旋转的参量中,m_Module[i].rotz是绕第i个坐标系z轴转动的变量。其它几个参数则由机器人的结构参数来决定的。 在绘制各个杆件的过程中,要以当前坐标系为基础进行绘制,绘制完成之后要恢复当前坐标系的位置,如DrawModule(i)中的一段核心代码: glPushMatrix(); //保存当前坐标位置,下面开如绘制 glColor3f(0.0f,0.0f,1.0f); //设置模块颜色为蓝色 auxSolidBox(2*0.055,2*0.055,2*0.055); //绘制一个110的方块(上) glTrans

文档评论(0)

rachel + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档