驾驶机器人的三维运动仿真.pdf_第1页
驾驶机器人的三维运动仿真.pdf_第2页
驾驶机器人的三维运动仿真.pdf_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第 3 期 总第 1 54 期 9 年 6 月 机 械 工 程 与 自 动 化 M E C H A N IC A L E N G IN E E R IN G A U T M A T 10 N N o 3 Ju n 文章 编 号 1672 6413 2O09 O3 007 一 03 驾驶机器人 的三维运动仿真 王 丽丽 牛 志 刚 太原理工大学 山西 太原 O3OO24 摘要 为逼真地模拟驾驶机器人的运动过程 采用 A ut0C A D 强大 的建模工具建立了机器人的逼真模型 通过 格式转换导入到 O penG L 中 利用其优秀的场景和实时处理能力对模 型进行渲染和着色 在 V C 开发平 台上 成功地实现对 驾驶机器人的可视化运 动仿真 关键词 A utoc A D 0 penG l 实时仿 真 驾驶机器 人 中图分类号 T P 2l 2 3 文献标识码 A O 引言 0 penG I 是一个优 秀的专业化三 维应 用程序接 口 具有完全开放的图形开发环境 又具有跨平台 移 植性好等特点 因此被广泛应用在计算机仿真以及虚 拟 现实系统 中 由于 0 penG I 只是通 过基本 的几何 图 元点 线及 多边形来 建立三维立 体模 型 并 没有提 供 三维模型的高级命令 从而使得在 penG I 中建立复 杂模型相对困难 鉴于 O penG I 不要求将三维模型写 成固定的数据格式 并且还可以利用其他格式的数据 源 如借用 A utoC A D 和 3D SM A X 等 因此 本研究 将 A ut0c A D 中建好的驾驶机器人模型以各个构件为 单元拆分成 几个部 件 并将其转 化成 3D s 文件 导人到 penG I 中 利用 V C 与 penG I 相结 合 成功 开发 了驾驶机器 人的运 动学仿真 系统 为解决驾 驶机器 人 机 械结构 的干涉 问题 了解 机器人 工作空 间 的形 态及 大小提供了一种很好的实验手段 l 驾驶机器人几何模型的建立及 o penG l 的导入 1 1 几何 模型 的建 立 利用 A utoC A D 制 作 出 驾驶 机 器 人 的 精确 模 型 然后 以各个运 动构件为单元 将其 分成油 门机 械腿 制 动机械腿 离合器机械腿 换档机械手及汽车方向盘 机器人机身和安装座 6 个部件 并以 D x F 格式保存在 相应的文件夹中 打开 3D s M A x 里的文件 选择导 入 将文件类型选为 人utoC A D D X F 找到保存 好 的 A utoC A D 文件并选 中 此 时 D X F 文件 便转换 成 3D S 文件 名 为 R obot 3ds 同时也 可 以在 3D S M A X 中渲染 和着 色 1 2 3D S 文件 导入 到 0 penG I 3D s 文件导人到 0 penG I 可以参考以下方法 转 入 m ax 文件 写插件导出自己熟悉的格式 还可以 使 用 3D文 件 转 换 工 具 3d expl orati on 或 deep 收稿 日期 2oO8一 儿一 l 4 修回 日期 2008一 l 2 2 0 作者简介 王丽丽 198 l 一 女 l J西大同人 在读硕士研究生 expl oratjon 软件转换成为其他 自己熟悉的格式 本研究中 我们把 3ds 模型作为 penG I 的物理 模型 可以使用适当的软件将 3ds 文件转换成 c语言 或其他语言支持的文件 从而获得物理模型的相关数 据 在 这 里 用 的 是 一 个 叫 V i ew 3D S 的 软 件 利 用 v i ew 3D S exe 进行 模 型格式转换 的方 法是 在命令 行 中输入模 型文件 的名 称 如 v i ew 3D S exc R obot 3ds 或 者直 接将 3ds 文件 拖到 V i ew 3D S 上 在 弹出 的窗 口 中显示出需要转换的 3ds 模型 在对话框中单击鼠标 左键 选择 E E xpo rt 0 penG l c c ode 菜单项 将 在当前 目录中生成 0 penG I 程序 包括与模型名同名 的 h 和 gj两个文 件 即 R 0b0t h 和 R 0bot gi 在 3D S 文件 中 我们最关心的是如何得到模型上 各个 点的坐标 并且 用这些 点连 成三角形 构成 面 进 而绘制成整个模型 3D S 文件结构的定点列表块定义 了定点的数 目和每个定点的三维坐标 采用调用显示 清单的方法显示机器人 定义显示列表的代码如下 g l N w L i st is t m 0d e sw i tc h n L i s t c asel B arl b reak c ase2 B ar2 Ibredk E n d I t 在调用上述定义好的显示列表时 只需 gl al 1I矗t nLi st 即可绘制 nI i st所 有指代模 块 2 模型的渲染及 O penG L 工作场景的设置 2 1 模 型 的渲染 0 penG I 中可设 置光 照 材质 反走样 雾 化 融 合等渲染效果 使显示在二维平面上的图像如三维形 体一样具有 良好的光洁度 一定的纹理和远近层次感 在场景中渲染模型的步骤如下 学兔兔 w w w x u e t u t u c o m 72 机 械 工 程 与自 动 化 20O9 年第 3 期 1 为物体的每个顶点定义法线向量 这些法线 决定 了物体相对光源的朝 向 2 创建和选择一个或多个光源 并设置光源的 位 置 生成 与前面 光源定 义一致 的光源 3 创建和选择光照模型 它定义了全局环境光 的等级和观察点的实际位置 用于光照的计算 代码 如下 V 0id R obotV i ew reat0 rnm I G L fl oat l i ghtA m b O 3f O 3f O 3f 1 of 设 置光照 参数 根据需要还可以设置漫反射和镜面反射等 G Lf at m atA m b 0 6f 0 6f o 6f 1 0f 设置材料 对环境 光 的反射率及光度 gl L i gh tfv G L 一 u G H T O G L A M B IE N T 1i gl1tA m b 生成与 前 面定 义一致的光源 g l L i gh tfv G I一一 L I H T 0 G L P O SIT IO N ghtP os 在前 面定 义的位置生成 光源 g l L i ghtM odel fv G L l l H T M O D E L A M B1E N T Ii ghtA m b 定义光照模 型为环境光 4 设置材 质 属性 物质材 质属性 决定 了它如何 发射光线 也决定了物体看起来是由什么材质构成的 代码 如下 g l M a teri a fv G L F R N T G I 一A MB IE N T m a tA m b gl M aterial f G L s H IN IN E s s 1oo 设 置光度值 5 对 机 器人 模 型进 行 多重 采样 的反 走样 处 理 其 步 骤 为 打 开 一 个 支 持 多 重 采 样 的 窗 口 如 有 G I U T 库 可调用函数 gl utl ni tD i sp1ayM ode G I U T D 0 U BI E I G I U T R G B I G I U T 一 一 M U 1 T 1SA M P I E 打开 窗 口后 需 要 确 定 它 是否 支 持多重 采样 支持的话就打开 多重采样 调用 函数 gl E nab l c G I M U I T IS A M P I E 6 使用 雾化参 数 G I Fo G 调 用 函数gl E nabl e 以启用雾效 并使用函数 g1Fog 指定雾颜 色和控 制雾 密度 的方程 7 模型顶点颜色和融合的处理 可用如下代码 gl E nabl e G I BL E N D 启动融合处理 gIBl endFunc G I enm um s Lenum d 融合操作方法的函数 gl D i Sabl e G L B L E N D 屏 蔽融合处理 2 2 0 penG I 工作场景 的设 置 2 2 1 v i sua1 C 6 O 环 境下 0 penG I 的配置 尽 管微 软公 司已经在其 内核 中嵌入 了 0 penG I 函数库 但要 使 V c 的编译器识 别 0 penG I 函数 必 须在所有使用 了 penG I 函数和变量 的文件 的头部 加入 penG I 的头文件 在 V c 中做如下设置 单 击 Projec t菜单下的 Setti ngs 选项 选择 I i nk 选项卡 在 bjec t l i brary m odul c s 文本 框 中加入 penG I 库 叩 engI32 1i b gIu32 1i b gl aux 1i b 注 意 中间是 空格 不 是逗号 做了如此的设置后 V C 就可以识别和调用 penG I 的实用库和基本库中的函数 打开工程文 件的 R obot V i ew h 头文件 在程序前面加以下语句 Il 1c l ude i nc 1ude Il 1c l ude i nc l ude 这样 工程 文件就可 以在 penG L 要求的环境下得 以 顺 利 编译运 行 了 2 2 2 penG I 像素 格式 的设置 在创建渲染描述表之前必须创造像素格式 这样 渲染描述表才知道怎样选择像素属性 0 penG I 的像 素格式 与 w i ndow s 下 的格式即 V C t 默认的格式不 同 因此必须先设定特别的像素格式 使 V C 支持 0 penG I 的格 式 对 Pi xel F orm at D esc ri ptor 进 行 了 初始化 以后 就可以设置像素格式 了 代码如下 In t pi xe l f0 rm a t i f pi xel form at C hooseP i xel Form at m pD C 一 G etSafeH dc pfd 一 O M ess geB0 x C h00 seP i xel F orm at faIl ed re tu rn F A L S E i f S etP i xe1F0rm at m pD C 一 etSafeH dc pi xel form at 8巾fd F A I S E M essage Box Set P ixel F orm at fal l ed re tu rn F A L S E 2 2 3渲 染描述 表 的建立 渲 染绘 制 R C 之于 penG I 就犹 如设 备描 述表 D C 之于 w i ndow s 在 渲 染描 述 表 存入 信 息后 0 penG I 就可以在 w i ndow s 系统 中更新一个窗 口的 图形状态 创建渲染描述表 由函数 m ynrst 完成 具 体代 码如 下 h rc w gl C reateC 0ntext m y pD C G etsafeH dc 创建 w gl M akec urrent m y pr 一 G etsafeH d c h rc 当前化渲 染描述表 2 2 4 视点 视景体及透视模式的定义 在 o penG I 虚拟现 实 中 必须 先定 义视点 视 景 体及透 视模 式才 能实现 这一 功能 通 常在 0 nSi ze 函 数 中来 定 义 一 旦需 要重 绘窗 口时 程 序 自动调 用 o nSi ze 函数 使 重绘 前后显 示方 式保 持一致 从 而保 证 了图形 的真实 性 连续性 3 驾驶机 器 人动 画效果 的实现 和仿 真实例 示意 3 1 机 器人 动 画效果 的 实现 机器人动画效果的实现采用的是双缓存技术 调用 Sw apBuffers 函数使其成为可见视频缓冲 同时还需要 设置定时器 周期性地向程序发送 w M T IM E 函数来 刷新实现机器人的动态显示 其 步骤如下 设 置 0 penG I 窗口显示属性为双缓存机制 利用 O penG I 绘制命令绘图 绘图结束后切换缓存 使用计时器控 制动画的刷新频率 离合器机械腿动画显示代码如下 V o d C R o b o tV i e w o n T i m e r U N l N T n 1I E ve n t 添加定时 器响应 函数和场景更新函数 i n val i date F A L SE 显示更 新 jf m l sS ta n M o v i e m Al 1gl e 一m Joi nt1 m A ngl e十 一 m joi n诬 R e n d erS c e n e m C ou n t i f m C ou nt言 M V IE C N T M C o u m O M 1sS ta rtM o v i e F A I S E V ie w 0 n T i m er n ID E v e n t 学兔兔 w w w x u e t u t u c o m 2OO9 年 第 3 期 王 丽 丽 等 驾 驶 机 器人 的 三 维运 动 仿 真 73 j v oi d c startC A ndM D Ig setC l utc h i nt i i nt j i l自动 档 汽 车 j l踩离合器 j 2 松离合器 j 3 前半松离合器 j一3 后半松离合 器 i f i 一 1 i f j 1 set base 0 x 310 pm ove 3 o o o o o o o 1 c P0i nt 7 y c P0i nt 7 x 0 d o w hi l e c hkb usy 4 i f j 2 set base 0 x310 pm ove 3 o o 0 o o O 1 1 c P0int 7 y c Poi nt 7 x d 0 w h i l e c h kb u sy 4 i f j 一 3 s et b a se O x 3 l 0 pm ove 3 0 O 0 L 0 O 1 1 c Po 7 y c Poi nt 7j x 2 1o w h i l e c h k b u sy 4 i f j 4 set base Ox3l 0 pm 0ve 3 0 0 o o 0 0 1 o c Point 7 y c Poi nt 7 x 2 该函数用于对离合器的操作 4 个不同的动作为 踩离合器 完全放离合器 从踩下位置半放离 合器 从半放位置完全放开离合器 3 2 仿 真 实例 示意 利用上述方法可以实现 驾驶机器人的运 动学仿 真 通过输 入参 数与机器 人仿 真模型进行 交互 计算 机根据输 入的数据 进行实 时计算 并将计 算 的数 据或 结果传递给仿真模型 再由计算结果驱动仿真图像 实 时显示输入数据对机器人运行的影响 同时也将与当 前仿真相关的数据实时显示出来 以达到参数化实时 动态仿真的目的 这种仿真环境为研究机器人提供了 有效 的手段 如 图 1 为驾驶 机器 人离合器 机械腿 的运 动仿 真示意 图 4 结束语 开发针对 驾驶机 器人三 维运动仿 真系统 弥 补了 o penG I 自身的辅助库函数只能画简单图形这 一缺 憾 引入了机械专业建模软件 A utoc 人D 将二者的优 点有效地结合起来 从而使仿真效果更逼真 场景更 震撼 仿真结果为研究机器人机械结构的干涉问题 了 解驾驶机器人的空间工作的形态及大小提供 了一种很 好的实验手段 并具有形象而直观的图像 使仿真从 单纯的抽象的数字化仿真中走出来 利用本驾驶机器 人及控制 环境模 型可 与远程机 器人进 行通信 指挥 远 程机器人作业 为远程机器人的控制提供了新的方式 a 完全放开离合器的运动仿真 b 踩离合器的运动仿真 图 1 驾驶机器人离合器机械腿的运动仿真示意图 参 考 文 献 1 郭兆荣 李 菁 王彦 V i sual C O penG L 应用程序 开发 M 北京 人 民邮电出版社 2oo6 r2 D ave Sl 1rei ner M a on w oo jac ki e N ei der et a1 0 penG L 编译指南 M 徐 波 译 北京 机械工业出版社 20O6 3 崔冬 M 一6i B 型 F A N U C 机器人的三维运动 仿真及有限 元 分析 D 西安 西安理工大学 2 0 7 26 29 4 徐运 武 基 于 0 penG I 及 3D s M A x 的机 器 人三 维仿真 实现 D 广州 华南理工大学 2 f 6 29 34 3 D M0 ti 0n S i m u l a ti 0 n 0 f R 0b 0t D ri ver WA G L i l i N IU Z h i gan g T a i

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论