软件运动控制

2024-10-16

软件运动控制(共9篇)

软件运动控制 篇1

0 引言

作为数控系统核心控制部件的运动控制器, 市场上有基于单片机、基于ARM为主控处理+FPGA/CPLD作为辅控处理、基于DSP为主控处理+FPGA/CPLD作为辅控处理等多种硬件平台的解决方案。在不同的硬件平台上, 软件系统调度方案可以采用μC/OS-Ⅱ, BIOS, RT-Linux, Vx Works等多种实时操作系统内核, 因而衍生出各种软件系统的架构方案[1]。采用TI公司TMS320C6713系列DSP芯片为主控芯片+FPGA作为辅控芯片的硬件平台的解决方案, 其数据吞吐量和高速浮点运算上具有一般单片机不可比拟的优势。而采用TI公司的DSP芯片和CCS的开发平台, 可以使用配套的非开放源代码的BIOS实时内核, 在中小型数控系统应用开发上, 其更加专业, 相比采用ARM硬件平台而使用的开放性源代码的实时操作系统内核, 采用DSP硬件平台与BIOS内核的运动控制器稳定性更好, 能够节约实时操作系统移植和测试时间, 缩短开发周期, 因而其是一种合理有效的解决方案[2]。

为了能够在该平台上进行有效的模块化数控功能组件的开发、维护和移植, 本文提出了一种标准化的软件分层与接口架构方案。该方案可作为一种设计模式, 满足不同用户的基本功能与二次开发需求。

1 系统整体方案

1.1 运动控制器硬件实现平台

本文采用的运动控制器的硬件系统[3]框图如图1所示。其中, TMS320C6713系列DSP具有浮点运算器, 能快速高效地完成工件加工轨迹插补计算。其集成外部扩展扩的EDMA和EMIF总线具有数据吞吐量大的特点。该DSP主频为225 MHz, 对应的指令周期为4.4 ns, 相应的运算速度可达1 800 MIPS/1 350 MFLOPS, 适用于中小型数控系统主控制器的需求[4]。

ACTEL公司的A3P400系类FPGA是一种高密度, 等效40万门器件, 其可配置的I/O可以兼容多种类型的数字电平。另外ACTEL公司提供的Libero集成开发工具, 能提供数字PLL、高速FIFO等多种通用型软核模块, 能够节约开开发时间与成本, 是作为运动控制器外部通信总线接口的一种可靠高效的硬件方案。

1.2 系统软件层次划分

本文软件系统采用三层结构划分[1], 其层次结构如图2所示。

(1) 用户应用接口层。可根据具体的用户需求开发各种功能的数控应用模块, 并将各功能模块作为组件通过接口嵌入到系统软件中来。本文所开发的基础用户组件块及其功能将在下一节详细描述。

(2) BIOS内核层。采用TI公司的CCS3.3提供的BI-OS内核以及其各种内核组件, 可有效缩短内核移植和测试时间。CCS3.3提供图形化界面接口, 如图3所示。其可对内核各个组件进行配置和应用。它的内核通过编译后将在文件链接时植入程序, 生成最后可执行文件。

(3) 硬件驱动层。用于管理运动控制器板卡上与DSP相连的各个硬件设备的驱动, 并为内核与用户应用层提供硬件访问接口。板卡硬件包括:FIFO通信缓冲器、CNC脉冲发生器、UART总线控制器、SERCOS总线控制器等。外部模拟数字硬件设备采用FPGA或专用IC实现。

2 用户应用软件任务划分

用户应用软件组件模块可分为基础组件和扩展组件[5]。基础组件提供数控系统基本的加工、维护、调试、监控等各种接口控制功能。扩展组件根据特定的用户需求可选择性裁剪安装, 一般扩展组件包括软PLC编程接口, SERCOS总线、脉冲、TCP/IP、UART等各种通信协议数据包解析与格式转换等功能。BIOS内核是一款多任务实时内核, 可以在系统多个用户基础任务之间进行调度。本文所描述系统基本用户组件任务划分见图4。

2.1 HMI任务

HMI通信数据包帧格式如表1所示。HIM任务处理流程如图5所示。

(1) 通信数据包格式。通信数据包格式固定, 但功能信息结构格式不固定[6]。不同的信息, 如调试信息、G代码脚本信息的内容等采用不同的信息格式, 这样用户在增加新的功能组件时, 只要自己编写新的信息格式和编码与解析方式, 就能利用原有的通信协议进行开发, 使得系统代码能够移植和重新利用。

(2) 数据包生成器。从已处理完的HMI信息队列中按照不同约定信息格式读取信息, 并按照数据包的格式为其添加帧头、物理地址、校验码等, 生成一组数据帧, 并将该数据帧通过EMIF总线写入FPGA中的UART发送FIFO, 待其转换为对应数字电平发送给上位机。

(3) 数据包解析器。通过EMIF总线从在FPGA中实现的UART总线接收FIFO中读取一个数据帧, 并按照约定的用户应用的解析方式解析成对应的信息, 并将信息加载到HMI接收信息队列, 等待数据处理与交换任务启动进行处理。

2.2 用户数据处理与交换任务

用户数据处理与交换任务流程如图6所示。

本系统提供G代码脚本解释器、调试维护命令壳、系统错误诊断器三个基础组件。用户可根据特定需求植入新的组件, 并编写对应组件接口信息编码与解析方式。

(1) G代码脚本解释器[7]

数控G代码解释的方案很多。部分厂商采用在上位机解析成配置信息码, 并发送给运动控制器的方案。但此方案会增加数据通信量, 使得通信时延增加。本系统采用的方案是:上位机以字符串格式将数控G代码脚本信息打包发送给运动控制器, 运动控制器对字符串进行重新组合, 并通过识别组合码配置数控参数控制块。该方案可以减少通信负担, 减小通信延时, 但是将增大DSP的运算处理量。因为DSP运算速度明显要块于通信传输速率, 所以该方案是一种合理的折中方案。

(2) 调试维护命令壳

该功能用于系统开发阶段和系统维护阶段。系统集成该功能够之后, 根据开发人员提供的维护指令手册, 在上位机输入维护指令, 返回运动控制器相应的关键系统数据结构的运行状态码, 能帮助维护人员快速地判断系统运行中的故障, 并为数控机床每个加工轴提供电机测试接口。

(3) 系统错误诊断器

负责管理和存储数控系统需要监控运行的重要模块信息, 一旦重要模块运行发生故障, 则把错误编码保存在系统错误诊断器中, 并在任务运行时将错误码发送给上位机。

2.3 运动控制任务

运动控制任务是运动控制器最核心的部分, 也是BIOS内核所管理的任务中优先级最高的一个任务。不同厂商的控制器有不同的实现方案。为了能够清晰理解与移植本文所述系统的运动控制程序, 图7给出了运动控制的行为与数据流框图。

根据图7所描述的运动控制行为, 编写的运动控制任务程序的流程图如图8所示。

(1) 加工轨迹计算。加工轨迹计算控制器, 综合数控配置参数与实时的反馈数据, 通过各种数值计算方法, 进行各种数控插补计算, 得到最终的加工数据, 可以通过脉冲编码格式或者SERCOS通信总线, 发送给控制CNC的每个轴的伺服电机驱动器, 控制电机的旋转与进给。

(2) 电机驱动管理。实时地管理监控CNC每个轴的电机驱动器。读取驱动器的工作状态, 将需要上位机进行实时监控的数控实时运行数据写入CNC接收信息队列, 并通过数据交换控制任务, 发送到上位机用于监控。当有电机驱动器运行出现异常时, 可以及时进行保护停止, 并发送运行故障编码。

3 软件方案的验证性测试

在本实验室研发的嵌入式数控系统测试平台如图9所示。其中, HMI板通过JTAG接口与调试主机1相连, 运动控制板通过JTAG接口与调试主机2相连。HMI板与运动控制板通过RS 422总线连接, 并在采用UART协议进行通信[6,8]。

由于电机运行轨迹与效果无法很好通过图片展示, 并且本实验目的主要是验证整个软件系统架构的可行性, 并修补程序BUG。因而建议采用硬件模拟运行加Matlab仿真的验证方法。

采用圆弧插补测试的方法, 在上位机通过G代码脚本格式导入测试指令脚本, 运动控制器读取数据包, 解析出测试脚本信息后, 进行处理和运算, 得出的运算数据保存后, 导入Matlab仿真软件, 生成运行轨迹图, 以便模拟仿真电机的实际运行轨迹。表2为CNC测试脚本的加工轨迹数据。

图10为经过系统运行得到的加工轨迹与原始测试数据的轨迹对照。

图中点线:测试脚本数据拟合曲线;实线:DSP计算的加工数据拟合曲线。从方案验证性测试实验得到的模拟数据拟合图像和原始脚本测试数据对比, 可以验证该软件架构方案和基础用户组件能在实验室的CNC系统平台上稳定可靠地运行, 因而验证了该软件架构方案的可行性。

4 结语

本文基于TI公司的C6713系列DSP+FPGA作为硬件实现方案的运动控制器平台, 提出一种可移植性软件架构方案。通过三层软件结构模型的描述和基础性用户组件与接口的任务划分, 为用户的功能的二次开发与软件代码的维护提供的一个基础性平台。并通过加工脚本测试验证了方案的可行性与稳定性。

摘要:在以德州仪器 (TI) 公司的DSP为主控芯片, FPGA为辅助控制的运动控制器硬件平台上, 采用TI公司的BIOS实时内核, 提出一种运动控制器软件架构方案。该方案可以针对不同用户需求进行功能组件二次开发和移植, 软件源代码采用模块化设计, 具有标准化函数接口, 可维护性良好。经过实验测试, 能满足开放性、实时性、可移植性的要求。

关键词:数控系统,软件架构,数字信号处理器,BIOS

参考文献

[1]王涛, 王太勇, 许爱芬, 等.嵌入式实时操作系统在数控系统设计中的应用[J].计算机工程, 2008, 34 (4) :250-268.

[2]孙禾凤.基于DSP/BIOS的运动控制器软件开发[D].南京:南京航空航天大学, 2008.

[3]吴红军, 皮佑国.基于DSP和FPGA的运动控制器的设计与实现[J].组合机床与自动化加工技术, 2011 (2) :75-82.

[4]Texas Instruments Incorporated.TMS320C6713B floating-point digital signal processor SPRS294B[R].USA:Texas Instruments Incorporated, 2006.

[5]毛军红, 李黎川, 吴序堂.机床数控软件化结构体系[J].机械工程学报, 2006, 36 (7) :48-51.

[6]蒋明柯, 皮佑国.数控系统中RS 485串行通信协议的设计[J].组合机床与自动化加工技术, 2013 (5) :23-26.

[7][美]凯赛达.计算机数控技术应用:加工中心和切削中心[M].北京:清华大学出版社, 2006.

[8]范德和, 皮佑国.基于DSP和FPGA的运动控制器高速串行通信设计[J].组合机床与自动化加工技术, 2011 (9) :58-62.

[9]任伟, 张彦军, 李京蔓, 等.基于FPGA的数字量变换器测试系统设计[J].计算机测量与控制, 2013, 21 (1) :71-77.

[10]李善锋, 刘敬猛, 徐东, 等.基于ARM+DSP的嵌入式Linux数控系统设计[J].机床与液压, 2012, 40 (13) :94-97.

软件运动控制 篇2

目的1.1

加强对产品质量有影响的软件的确认。

1.2

加强对数控程序的控制、验证和管理,防止数控程序错用,遗失。

2.0

范围

本条款适用于本公司所生产的产品相关的对产品质量有影响的软件及数控程序。

3.0

定义

3.1

对产品质量有影响的软件:CMM检测软件、影像仪检测软件、钝化线操作软件。对于加工设备所自带系统软件,由于已广泛使用,且通过检测产品可实时监控其运行情况,故不作为需确认的软件范围。

3.2

数控程序:数控设备所使用的,根据产品编制的加工程序或检测程序。

3.3

编程员:负责数控程序的编制人员;也可以线长等制造部人员兼任。

4.0

职责

4.1

编程员负责数控程序的编制、修改、发放和有效版本控制。

4.2

制造部负责数控程序的验证。

4.3

《CNC作业指导书》由编程员编制,由调机员进行校对,并经工程审批后,发放制造部使用。

4.4

制造部负责有效版本数控程序的调用,程序现场使用的维护,参与数控程序的修改等工作,并给编程人员提供支持。

4.5

《CNC作业指导书》有编程员编制,由另外2名编程员校对、审核,质管部经理批准后,发放精测室使用。

4.6

程序管理员定期备份数控程序,刻录成光盘后,并交档案室存档备份。

4.7

质管部负责影像仪检测软件的确认。

4.8

工程部负责钝化线操作软件的确认。

5.0

程序

5.1

数控程序的产生

5.1.1

编程员按照产品工艺要求(包括加工基准、加工刀具、加工夹具、加工设备等),完成数控程序的初步编制:加工中心非手工编制程序、CMM程序编制《CNC作业指导书》;加工中心手工编制程序与其他数控设备程序建立程序清单。

5.1.2

《CNC操作指导书》内容应包括所使用的刀具、夹具、程序名及找正零点等内容,并进行制造试用。

5.1.3

操作指导书、程序清单为纸制文件,数控程序为电子文件。

5.2

数控程序的验证

5.2.1

加工过中心非手工编制程序与CNC程序的验证

5.2.2

线长安排设备的调机员对已初定的试制程序进行试用,至少加工三件合格产品。通过验证后填写《过程验证记录表》,对程序和作业指导书进行固化。

5.2.3

加工中心手工编制程序与其他数控设备程序验证.5.2.4

线长安排设备的调机员对已初定的试制程序进行试用,至少加工三件合格产品。通过验证后将程序加入程序清单,并记录验证产品的生产批号。

5.2.5

由验证不符合造成的数控程序修改,则返回编程员处,修改程序或修改相关操作指导书重做验证。

5.3

数控程序的修改

5.3.1

正常因为工艺因素的调整造成的程序修改,由修改部门提出,编程员完成对数控程序的修改,必要时填写《工艺文件更改单》,同步修改相应操作指导书。

5.4

数控程序的保存。

5.4.1

数控程序验证后由工程部签字并发放制造使用,工程部备份留底。

5.4.2

发放制造部分由各线长安排专人、专机管理,并建立管理台帐。

5.5

数控程序编号方法,如下表:

CN

---

X

---

XXXXXXXX

---

XX

程序顺序号

产品图号

设备类别代号

数控代号

5.6

编号规定

5.6.1

数控代号:“CN”

5.6.2

设备类别代号,本公司数控设备共分六个大类,代号如下:

C:代表数控车床

D:代表雕刻机

J:代表精加工中心

S:代表数控铣床

X:代表线切割

Z:代表车削中心

5.7

产品图号:

用系列产品的图号表示。例如“WA3X05”表示“伽玛钉系统的手柄”。

5.8

程序顺序号:

用01-99的阿拉伯数字表示,例:“01”表示第一条程序。

6.0

加强对产品质量有影响的软件的确认

5.6.1

IT工程师(或设备工程师)负责评价硬件设备满足软件安装要求。如:检查操作系统、硬盘、内存、CPU等能够支持软件的安装。确认软件成功地安装在相应的设备上。

5.6.2

确定软件规定的功能能够成功得到运用。(所有功能符合要求)

影像仪检测软件通过检测标准校正检具来确认软件的正常运行,并记录确认结果。

钝化线操作软件通过检测设备的正常运行来确认软件的正常运行,并记录确认结果。

5.6.3

软件若升级或者硬件条件更改,应重新确认。

6.0

相关文件

6.1《CNC作业指导书》

6.2《过程验证记录表》

7.0

HISTORY(ATTACHED)

更改记录(附后)

学校运动会软件的开发 篇3

运用学校现有人力资源开发软件, 具有以下优点:

一、节约开发成本。由于利用了现有的人力资源, 教师可以利用业余时间进行软件的设计开发, 成本比聘请专职人员或购买商业化软件低。

二、本校教师了解学校的实际, 通过访谈等方式, 可以进行更有效的需求分析, 针对性更强。

三、软件在后续的使用、维护和升级过程中, 更加方便及时。

四、可以提升教师的技术水平。教师在软件开发过程中, 需要按照软件工程的相关要求, 进行一系列的需求分析、概要设计、详细设计、实现、组装测试、确认测试、使用和维护, 从而锻炼了教师解决实际问题的能力。

五、增强教师的团队协作能力。在软件开发过程中, 为缩短软件开发周期, 模仿企业的软件开发方式, 采用项目组的方式进行运作。软件的各个模块分配给不同的教师进行开发, 模块之间必须依照松耦合紧内聚的要求展开, 项目中的各成员之间必须相互配合, 团结协作, 才能很好的完成任务。

以下是作者主导的利用visual FoxPro开发的校运动会管理软件, 已经投入使用, 所有统计数据准确无误。

1、运动会软件的功能模块设计

根据模块化设计的思想, 采用"自顶向下, 逐步求精"的设计方法, 从功能上来划分。软件系统设计了五个模块:原始数据模块、相关表格模块、成绩处理模块、系统功能模块, 下图是运动会软件结构。

本系统五个主要模块的功能:

(1) "原始数据"模块

"原始数据"模块:在这个模块完成运动会比赛的运动项目设置、参赛的班级信息、运动员报名数据录入、报名数据的修改与对运动员进行重新编号等、报名数据的统计、运动会编排、校运动会纪录成绩管理。

(2) "相关表格"模块

"相关表格"模块, 在这个模块中可查询、导出或打印出比赛要用的表格, 如:比赛报名表, 运动员编号后的运动员号码, 运动员编排后的分组分道表。

(3) "成绩处理"模块

"成绩处理"模块:在这个模块中录入预赛成绩、决赛成绩, 决赛名单表、决赛名次表、若赛场上有违经现象, 可对班级进行扣分。

(4) "数据查询"模块

"数据查询"模块:在这个模块可按单项成绩查询、团体总分 (老生与新生) 查询、班级得分进行查询。

(5) "系统功能"模块

"系统功能"模块:在这个模块中当运动会结束后, 可对运动会的除了最高纪录表和运动项目表名, 其他的数据表全部清空。本系统可供公众查询信息使用, 不需密码, 但只能查询;持管理员密码可以完成所有功能操作;普通密码可以完成赛场上成绩统计及相关工作。修改密码必须由管理员来操作。

2、运动会软件的数据库设计

在进行详细设计之前, 要根据需求分析及模块设计, 建立相关的数据表及相应的字段。本着追求数据库运行的高效、安全、可靠及可扩展性, 进行数据库的相关设计。本数据库的主要数据表的数据结构如下:

主要表结构如下:

字段名备注:分组 (女子组, 男子组) , 比赛类别 (田赛, 径赛) , 成绩与成绩1 (成绩是数值型, 成绩1是成绩转换成字符型) , 预赛 (预赛, 预决赛)

3、软件界面风格设计

确定了数据库结构, 将分模块地进行界面风格的规划和设计, 其原则是界面友好美观, 交互性强, 操作简便。

4、软件源代码编制

在完成了前期的规划之后, 就可以着手进行源代码的编制。

例如:"决赛名单表"表单中的部分源代码。

例如:"预赛成绩"表单中的部分源代码。

其它功能模块的源代码可依次编写, 所有源代码编写完成后, 进行程序的调试和测试, 确认准确无误, 投入使用, 并在使用过程中验证。

5、结束语

由本校教师自主开发的软件, 人机界面操作简单方便、直观, 针对性强, 系统性能稳定, 后续维护方便, 具有实用性和推广价值。同时, 可以锻炼教师的编程能力, 提高教师的综合素质。

参考文献

[1]《Visual Foxpro 6.0/7.0函数与命令大全》赫锋, 何曙光等编著电子工业出版社

[2]《Visual Foxpro 6.0开发指南》王浩主编上海科学技术出版社

[3]《Visual Foxpro数据库开发经典案例解析》王晟, 王松, 刘强编著清华大学出版社

氧化铝生产过程控制软件 篇4

作为国内多家氧化铝生产企业提供氧化铝生产过程计算机智能化控制管理技术的公司,我公司是一家具有氧化铝生产过程控制软件证书及著作权证书的软件企业,能提供集过程控制系统设计、系统集成、软件开发、安装调试等服务为一体的氧化铝企业生产信息化领先综合技术提供商。

其核心控制技术有:原料磨固液配比控制、溶出闪蒸热平衡控制、分解分级中间级降温控制、产出率控制、气态悬浮焙烧炉焙烧氢氧化铝过程的工艺模型及控制技术等,以及氧化铝厂生产管理系统。

软件运动控制 篇5

计算机辅助设计在现代机械设计中应用, 不仅可以借助一些仿真软件, 可以在设计过程中即可分析出机构、设备的薄弱点、干涉区域等等一些传统设计方法无法实现的功能。

还可以有效的缩短设计周期, 而且本文针对槽轮机构借助了Solidworks Motion运动仿真软件进行了实例分析, 以此展现了机械设计中应用现代机械设计软件的优势。

Solidworks Motion是一个虚拟原型机仿真工具, 对浮渣机械系统能实现全面的动力学和运动学仿真, 并可得到系统中零件的作用力、反作用力、速度、加速度以及位移等运动参数。并且输出结果能以动画、图形以及表格等多种形式表示。

此外, 在复杂运动情况下, 还能在其他有限元分析软件中输入零部件的复杂载情况, 从而能对其结构和强度进行准确的分析。

Solidworks Motion支持同轴心配合、铰链配合、点对点重合配合、锁定配合、面对面的重合配合、万向节配合、螺旋配合、点在轴线上的重合配合、平行配合、垂直配合的配合约束等多种配合。

Solidworks Motion可分别按速度、位移和加速度配合时间、循环角度和角速度可以定义相对简单的运动, 另外, 该软件也完全支持比如立方样条曲线、线性曲线、Akima样条曲线, 这样就可以定义较复杂的运动。

Solidworks Motion可以模拟给某一个或多个零件添加包括常量、步进、谐波、线段、数据点、表达式等各种力或力矩。也可以模拟系统承受包括拉簧、压簧和扭簧、拉、压阻尼、扭转阻尼和作用力、作用力矩、反作用力、反作用力矩以及碰撞力等。并且还有独特而实用的接触 (线线接触, 即两个零件在作相对运动时, 一个零件上的某一曲线始终或间断的与另一个零件上某一曲线上相接触;点线接触, 是指两个零件在作相对运动时, 一个零件上的某一点可以沿另一个零件上某一曲线运动) 和耦合定义功能。

因此, 各种复杂的实际系统的精确运动仿真模型可通过Solidworks Motion建立。

利用Solidworks Motion仿真软件还可以实现运动干涉检查, 当系统处在复杂的运动状态下时, 能在FEA软件中精确的载荷, (如Solidworks Simulation) , 进行正确结构强度分析。

研究Solidworks Motion仿真软件可以利用多种方式。首先, 通过仿真动画能对系统运动过程情况在CAD环境中进行直接观察;也可以AVI格式和VRML格式、XY图形输出动画结果, 还可以将动画结果输出到Excel表格中, 使动画数据以表格或图形的形式显示;也可以以Text文件的格式输出。

总之, Solidworks Motion仿真软件具有非常强大的功能, 针对用户对运动仿真分析的各种需求都能满足, 并且, 所求得的结果与实际相吻合。

下图1利用solidworks软件建立槽轮机构的装配体模型实例, 对其强大功能通过槽轮机构的运动仿真实例来解析。

该机构组成较简单只有主动槽轮、从动槽轮和机架三部分组成, 槽轮机构是一个间隙运动机构, 主动槽轮回转一圈从动槽轮转一个固定角度, 实现间隙运动。

三维模型建好之后, 在装配环境下设置主动槽轮与从动槽轮的装配约束, 并设置机构个零件的初始位置, 这样就可以进入仿真环境。但值得注意的是, 要在进行仿真之前设置与仿真相关的基本参数, 如帧数、帧时间间隔、重力加速度大小、时间单位以及力的单位等。在本例研究的仿真中, 以N表示力的单位, 以S表示时间单位, 根据仿真精度调整帧数与帧数时间间隔, 其中帧数为100, 帧数时间间隔为0.02s。利用Solidworks Motion的马达选项给主动槽轮添加旋转运动, 并通过运动表达式填写主动槽轮的角速度。

完成以上设置后, 运动分析时可以直接点击Motion分析来完成, 进行仿真时可直接点击仿真按钮。系统可以对动画进行自动录制, 录制后再自动生成动画文件, 这样一来, 对比例分析提供了方便。

其中进行零件之间的干涉检查是运动仿真的一个最主要的作用, 本例进行干涉检查, 主要是通过机构运动仿真分析, 实践证明, 主动槽轮圆柱销到达从动槽轮最低处时发生干涉。

通过运动仿真分析发现零件存在干涉后, 可以直接在装配体环境下修改发生干涉的零件, 而且装配体零件中的修改可以直接反映在零件模型上, 实现模型动态交互更新。零件所存在的干涉通过运动仿真分析发现后, 对于干涉的零件可以在装配体环境下直接进行修改, 而且在零件模型上可以直接反映装配体零件中的修改, 以此实现模型动态的交互更新。经过分析干涉的原因动槽轮沟槽深度不够所引起的, 于是把沟槽深度从新计算确定就可处理该问。模型经修改后, 修改后的模型, 进行第二次运动仿真, 就能消除干涉的现象。上述只针对槽轮机构仿真进行了简单说明。

此外, 有限元软件还能与Solidworks Mmotion所输出的运动载荷实现有机结合, 从而有利于对运动构件的强度进行校核。

从上述所分析的实例可以看出, 利用Solidwork Motion仿真软件, 可有效简化机械产品设计的开发过程, 从而可避免设计过程中出现错误, 并能缩短开发周期, 使产品的设计质量得到大大提升。以此为动力学设计和分析及机构的运动学提供了一种快速、有效的实用工具。

参考文献

[1]Solid Works Inc.COSMOS Motion User, s Guide[M].2004.

[2]陈超祥, 胡其登.SolidWorks Motion运动仿真教程.北京:机械工业出版社, 2012.

[3]孙桓, 陈作模, 葛文杰.机械原理.北京:高等教育出版社, 2010.

智能手机的运动量干预软件的研制 篇6

行为医学是综合行为科学和生物医学科学知识的一门新兴的多学科交叉的学科, 在我国兴起只有短短的十余年。但随着科学技术的进步和人们生活水平的提高, 行为医学得到了迅速的发展[3]。它研究行为科学中与健康相关的知识和技术, 并把这些知识和技术应用于疾病的预防、诊断、治疗和康复的学科领域。行为医学关注的重点是那些与人的健康关系密切的行为的研究, 从而指导人们树立健康行为, 矫正异常行为, 改变不合理的生活方式和不良习惯。

随着我国人民生活水平的不断提高, 汽车等交通工具的日益普及, 步行运动和体力活动越来越少, 诸多因素促成了肥胖、高血压、糖尿病和血脂异常等生活方式相关性疾病的流行, 并越来越威胁着人们的健康和生命[4]。我国目前约有25%的城市居民患各种慢性病, 60%的就诊病人为慢性病人, 慢性病正日益严重地威胁着我国人民的健康, 已成为重要的社会公共问题和医疗经济增长的主要原因[5]。

传统的运动量的定义也称为运动负荷, 指人体在体育活动中所承受的生理、心理负荷量以及消耗的热量, 由完成练习的运动强度、持续时间、动作的准确性和运动项目特点等因素所决定。本文所述的运动量主要是指散步或者跑步的次数, 通过智能手机的运动管理软件来处理该运动量。智能手机的运动量干预属于行为医学的范畴。

根据专家的调查显示, 人们在运动过程中应该注意监测自己的健康状态, 尤其是糖尿病、高血压等慢性病患者要定期监测自己的各项健康指标, 随时调整运动量, 避免运动过量导致猝死等严重后果。心脏病患者最怕运动时过度激烈或者时间过长, 从而引起心脏病的发作。如果是长期不运动的人, 这些危险更容易发生[6], 所以需要对他们身体锻炼进行监督和鞭策。本文基于干预治疗的理论, 不论是对一些不能过度运动的患者还是对那些必须进行身体锻炼者, 进行一种运动干预的作用。通过使用智能手机的运动量干预软件监督和管理, 实时的记录他们的锻炼情况, 并通过远程健康管理中心根据患者身体信息及时调整运动量, 以达到对患者最有效最安全的目的。

1 方法归类

1.1 系统结构设计

系统结构设计包括:

(1) 设计运动功能, 识别使用者运动状态。实现开始运动、暂停运动和停止运动三个基本功能状态的管理;

(2) 设计SQL数据库存储功能, 存储每次的运动信息以及与远程上位机网络连接通信;

(3) 设计运动坐标图显示以及运动量查询功能。根据运动情况绘制运动数据坐标图, 通过直观的坐标图显示以及运动量查询功能查看具体时间运动情况, 使用者可以清楚的了解自己的运动情况, 根据自己的身体情况增加和减少运动量;

(4) 上位机端的网络通信以及数据建立。

1.2 运动量计算编程

因为该软件需要通过调用android智能手机的加速度传感器, 利用加速度传感器的特性来判断使用者的运动情况并且记录运动信息, 所以软件编程时必须先引入关于传感器几个重要的的包文件[1], 包括:android.hardware.sensor、android.hardware.sensorEvent、android.hardware.sensorManager以及android.hardware.sensorEventListener。

在使用加速度传感器前, 需要对传感器进行初始化和注册以后才能使用, 使用完后要注销该传感器[1]。初始化加速度传感器获得该传感器的使用权限。初始化和注册传感器的代码都编写在开始按钮函数代码段当中, 当用户点击开始运动按钮后, 加速度传感器就可以正常使用。注销传感器的代码编写在停止按钮函数代码段中, 当使用者停止运动后, 需要点击停止按钮, 此时注销加速度传感器。

当注册好传感器后, 就能开始对运动量计算进行编程。计算编程时在代码段必须要复写onSensorChanged (SensorEvent event) 函数, 因为在运动时传感器的三个坐标值在不断变化, 变化值就是event.value[3]这个浮点型数组, 从而能通过event.value[3]浮点型数组里的三个坐标前后值的变化来判断使用者是否在运动。在event.value[3]浮点型数组中, event.value[0]代表x轴, event.value[1]代表y轴, event.value[2]代表z轴, 当在使用运动传感器时, 这三个坐标值在不停变化。坐标轴方向如图2所示。

每隔200 ms去取一次浮点数组event.value[3]的值, 把它存起来。前一个200 ms为旧值存储在一个浮点型数组里old Points。当前取得值为新值存储在另一个浮点型数组里new Points。由它们的坐标值分别求出模值old Mold、new Mold, 以此算出向量改变的夹角。当改变夹角angle大于20o时, 判定使用者在运动此时增加一次运动量, 并实时显示此时的运动量。

当使用者点击停止按钮停止运动时, 注销传感器的同时把当前的运动时间和运动量存入SQL数据库。

1.3 手机界面设计

界面设计涉及到3个Activity:一个主界面的布局、一个坐标图显示以及一个运动量具体时间查询的界面.3个Activity均采取LinearLayout布局[2]。

(1) 主界面涉及到背景、按钮和文本框显示的设计。

(2) 坐标图采用canvas设计, 通过引入canvas、P a i n t和C o l o r的包文件, 包括a n d r o i d.g r a p h i c s.Canvas, android.graphics.Color, android.graphics.Paint。Piant设置画笔的特性, 如paint.setColor (Color.GREEN) 用来设置画笔的颜色。drawLinew函数用来绘制坐标横轴、纵轴和点之间的连线, 其中横轴代表时间, 纵轴代表运动量。drawCircle函数用来绘制坐标点, 这些坐标点通过读取数据库的时间和与之对应的运动量进行绘制。drawText函数用来显示这些绘制, 使用者就可以通过绘制的坐标图直观地观察到自身最近的运动情况。

(3) 运动量时间查询界面设计了一个时间控件, 需要引入的数据包有android.widget.DatePicker, android.app.DatePickerDialog, android.app.Dialog, android.app.TimePickerDialog。使用者通过输入时间来准确查询当天运动量。

通过坐标图和运动量查询功能, 使用者可以及时地了解自己的运动情况, 从而根据自身的情况增加和减少运动量。

1.4 手机与上位机间的通信

在手机运用程序中的开始运动按钮中, 设置连接远程上位机服务器的操作, 在点击运动按钮的同时, 后台通过socket与指定的IP地址和端口号连接并建立数据流。在停止运动按钮中设置运动信息的发送功能, 当点击停止运动按钮后, 后台发送运动信息到上位机进行存储, 便于远程健康管理中心能及时了解使用者的运动情况, 并可以根据使用者的身体情况制定适合的运动量反馈给使用者。断开连接的操作复写到onPause () 函数中, 当退出该程序时直接关闭socket连接和数据流发送[1]。手机端socket连接上位机, 并进行数据传输的程序流程如图3所示。

在上位机开发平台, 应用V C 6.0程序新建一个线程, 后台监听手机端发送的使用者运动信息, 并且将其按使用者的编号进行存储数据。程序首先建立java虚拟机, 然后查看java程序:jclass cls=env->FindClass ("NumFile") , 获取socket通信端口发送过来的消息jstring result= (jstring) e n v->C a l l S t a t i c O b j e c t M e t h o d (c l s, m i d, e n v->NewStringUTF (strUTF8.c_str () ) ) , 并且对信息分类存储。socket接受程序命名为NumFile.java。上位机端socket连接程序流程如图4所示。

1.5 上位机系统结构设计

在上位机中首先设置数据库存储, 存储患者基本信息、体检状态、运动量计划和运动量四个信息, 结构如图5所示。

患者基本信息可以使医生准确地了解患者的各种信息, 以便根据患者的情况制定科学的身体锻炼强度, 再把这个锻炼强度反馈给患者, 防止患者运动过量的情况发生。体检状况可以反映最近一段时间患者使用该干预系统以后身体的情况, 可以根据每个人自己的身体状况制定运动计划, 从而达到最好的运动效果。运动量信息反映了使用者最近的使用情况, 如果运动量强度太小或者太多时, 远程健康管理中心可以及时反馈信息给使用者, 提醒他应该加强还是降低锻炼强度, 起到监督使用者的作用。

2 结果

2.1 上位机通信结果

在上位机开发平台上应用VC6.0编写运动量干预系统软件, 监听和接收手机发送来的运动信息并存储在上位机数据库里。上位机运动量干预系统主界面如图6所示。

2.2 手机界面

智能手机界面有三个Activity显示, 包括一个主界面, 如图7所示;一个运动量坐标显示界面, 如图8所示;还有一个运动量查询界面, 如图9所示。

3 讨论

基于智能手机运动量的行为干预, 可应用于行为医学, 作为行为治疗的新手段。运用运动量干预软件来帮助用户, 特别是帮助慢性病患者, 使他们能科学地进行身体锻炼。例如对于肥胖2型糖尿病患者, 增加步行运动量至19 000步/d, 7周后与运动量保持在4 500步/d者相比, 不仅能起到明显的减轻体重作用 (减少7.8 kg) , 而且可显著提高胰岛素的敏感性[7]。在步行运动实践中, 媒体和大众健康教育者普遍推荐的处方是每天步行10 000步, 这一概念可追溯到30多年前国外的一些商业口号、日本步行俱乐部提出的口号, 也得到了一些研究者的认可。但这一目标对于某些人群如老年人和一些慢性病患者可能太高, 而对于儿童 (防止肥胖) 而言则太低, 也就是说并不适宜所有人群[8,9]。所以需要健康管理中心结合使用者的实际病况和体检状况, 合理的制定运动量并观察使用者的运动情况。对于一些特殊慢性病患者要防止因运动过量而导致猝死等严重后果;对于需要身体锻炼而懒惰的慢性病患者, 需要提醒督促。所以健康管理中心这种及时的有效的监督指导, 能使使用者进行科学合理的运动, 只有这样才能到达最好最安全的运动效果, 从而让慢性病患者逐步调整自己的身体状况。通过使用该软件对用户长期的干预, 锻炼身体的同时并且纠正自身不良生活习惯, 从而脱离慢性病的困扰, 走进健康者的行列。

摘要:目的 研制了一款基于智能手机的运动管理软件, 对佩戴者进行运动量的行为干预。方法 采用android系统的手机, 通过调用智能手机自带的加速度传感器来识别运动状态, 进行佩戴者的活动量检测, 同时将运动信息上传健康管理中心。结果 实现了系统功能, 通过健康管理中心的信息反馈提示对佩戴者开展行为学干预, 指导佩戴者科学安全地进行身体锻炼, 达到最有效最合适的锻炼效果。结论 基于手机智能平台的行为干预可作为行为治疗的一种新手段。

关键词:android系统,行为干预,运动管理软件

参考文献

[1]杨丰盛.Android应用开发揭秘[M].北京.机械工业出版社, 2010

[2]靳岩, 姚尚朗.Android开发入门与实践[M].北京.人民邮电出版社, 2009

[3]甘露, 王志玲, 黄庆军, 等.我国行为医学研究进展[J].白求恩军医学院学报, 2006, 4 (1) :35-36.

[4]雒生杰, 孟申.定量步行运动在慢性病康复中的研究现状[J].中国康复理论与实践, 2008, 14 (9) :847-848.

[5]李桂雪, 鞠彩红, 刘媛媛, 等.我国慢性病现状与自我管理[J].黑龙江医学, 2010, 34 (4) :299-300.

[6]刘姿含.慢性病患者运动要选适合自己的[J].药物与人, 2008, 12:73-74.

[7]Yamanouchi K, Shinozaki T, Chikada K, et a1.Daily walking cornbined with diet therapy is a useful means for obese NIDDM patients not only to reduce body weight but also to improve insulin sensitivity[J].Diabetes Care, l995, 18 (6) :775-778.

[8]Tudor-Locke C, Pangrazi RP, Corbin CB, et a1.BMI-referenced standards for recommended pedometer determined steps/day in children[J].Prev Med, 2004, 38 (6) :857-864

软件运动控制 篇7

目标定位跟踪技术一直是计算机视觉领域的一个研究热点,涉及到图像处理、目标识别、人工智能等学科知识点,已被广泛应用在视频监控、机器人视觉导航与军事精确制导等领域。运动目标定位跟踪主要是通过在其视频图像中对运动目标进行提取,确定目标在图像中的位置和大小,从而实现对运动目标的定位和跟踪。运动目标定位跟踪系统主要分为两种:一种是摄像机固定,对特定区域内的运动目标进行定位跟踪,此时摄像机可以通过图像跟踪算法来完成对目标的定位跟踪;另外一种则是将摄像机安装在能够转动的可移动的云台上,摄像机将得到的视场内的信息发送给计算机,计算机中的目标定位跟踪软件系统根据对视频图像中运动目标的检测来判断并得到运动目标的大小和运动方向,再将得到的信息传送给云台,而通过控制云台来完成对运动目标的实时定位跟踪,使得目标对象始终能够处于摄像头的视场中心位置。由于摄像头可以随着云台转动,摄像机可以主动地跟踪目标,因此通常把这种跟踪方法称为主动性跟踪[1]。

Open CV是一个开源的计算机视觉库[2,3],由于其轻量而且高级,在科研和生活中发挥着越来越重要的作用。Open CV是由一定量C函数和少量的C++类构成的,可实现图像处理与计算机视觉方面的一些通用算法,Open CV的模块如表1所示。

本文通过对目标跟踪算法—Camshift算法的研究和改进,利用Open CV视觉库,通过VS2008软件平台构建一个目标定位跟踪软件系统,对目标定位跟踪技术的研究和应用提供了方便。

1 目标定位跟踪系统总体设计

1.1 系统总体结构

系统利用摄像机获取目标图像,经图像采集卡将采集到的视频图像传给系统终端,利用终端中的目标跟踪软件系统对采集到的视频图像进行处理实现对目标的初步跟踪;然后,根据目标的移动位置,通过RS485接口进行软件和云台之间通信,以实现对云台的控制,通过云台的转动来调整摄像机的位置,对目标进行实时准确的跟踪。系统的整体组成结构如图1所示。

1.2 系统工作流程

当运动目标出现在可视范围内时,摄像机将捕捉到的视频图像传送给系统终端进行处理,目标定位跟踪软件对视频图像利用光流法对运动目标进行检测识别,然后做运动目标与背景图像的分割,锁定运动的目标进行定位跟踪;随着目标的移动,通过系统软件去控制云台来调整摄像机,以对运动的目标进行实时定位跟踪。

2 系统关键技术

目前比较流行的跟踪算法有基于目标预测的Kalman算法、粒子算法、均值漂移(Meanshift)算法,本文采用改进后的Meanshift算法,即Camshift算法实现对目标的跟踪。

2.1 颜色概率分布

Camshift算法是基于目标颜色为特征的跟踪方法[4],由于RGB颜色模型对光照的亮度变化比较敏感,为了减少光照亮度变化对跟踪效果的影响,Camshift算法将图像由RGB颜色模型转化到HSV颜色模型,方便对目标的特征提取。HSV颜色模型中,HSV是指Hue(色相)、Saturation(饱和度)和Value(明度),RGB颜色模型与HSV颜色模型分别如图2所示。当光照发生变化时,目标图像颜色本质的色度H和饱和度S的值变化很小,而目标图像的亮度值变化较大,所以采用HSV模型的H和S分量描述目标对光照变化不敏感,具有良好的鲁棒性。

HSV模型采用H分量建立目标直方图模型,将原始图像的像素值用直方图中相应像素的统计量代替,然后将得到的结果重新量化到0~255之间,就得到颜色概率分布图。由于颜色直方图不受运动目标的旋转、放大或缩小的影响,所以本文采用在视频图像由RGB颜色模型转化为HSV颜色模型后,再对色相H取统计直方图。

2.2 Camshift算法原理

Camshift算法其实是对Mean Shift算法的改良。在Meanshift算法[4]中,给出一个彩色图像和该图像某个初始搜索区域所对应的色相统计直方图,利用该色相统计直方图得到反射投影图像;Meanshift算法利用该反射投影图像,通过迭代的方法来寻找目标图像的中心,当搜索窗口中心的移动小于给定的阈值时,则返回所得到的目标的位置和大小。

在彩色图像中,将Meanshift算法扩展到了连续的视频图像帧序列,这样就形成了Camshift算法。该算法是将视频图像的每一帧都作Meanshift运算,并使用上一帧图像的运算信息来作为对下一帧图像运算的输入,如此循环迭代,则实现了对活动目标在每一帧图像序列中的检测和跟踪。由于Meanshift算法每次搜索的范围是固定的,而Camshift算法在搜寻目标时会自动更新每次搜索的范围,所以后者更适合应用在对运动的目标进行跟踪的场合,在此,给出了Camshif跟踪算法流程图,如图3所示。

Camshift算法具体实现步骤如下:

(1)读入视频图像中的一帧,初始化该帧图像,并将其从RGB颜色模型转换到HSV颜色模型,同时提取该帧图像H分量的统计直方图;

(2)初始化搜索窗口的大小和位置,统计搜索窗口内的颜色直方图,计算图像的颜色概率分布,生成运动目标的颜色概率模型;

(3)在生成运动目标的颜色概率模型后,得到反向投影图,运行Meanshift跟踪算法,搜索目标图像新的窗口区域;

(4)计算搜索窗口的质心位置(xc,yc)

设(x,y)为搜索窗口中图像像素位置,I(x,y)是投影图中(x,y)处的像素值。定义搜索窗口的零阶矩M00和一阶矩M01、M10:

则得到搜索窗口质心位置:

(5)移动搜索窗口的中心到质心位置

设当前跟踪窗口中心为移动跟踪窗口的中心到质心位置,令,输出目标中心位置为,继续处理下一帧图像序列;否则,转到第(4)步,继续迭代,其中,ε为给定阈值;

(6)通过迭代的方法计算质心移动距离是否小于给定阈值ε来判断是否收敛。如果不收敛,则重复步骤(4)直到收敛为止;如果收敛,则利用最新的搜索结果到新的图像区域中去搜索目标的位置和大小。

3 目标定位跟踪软件系统设计与实现

目标定位跟踪软件系统运行在PC机上,采用界面简单美观、易于操作的VS2008作为开发语言,结合Open CV视觉库进行设计,通过对跟踪算法的选择,可以实现不同跟踪算法下的跟踪效果和位置数据显示。该软件系统主要由视频原始图像区、目标定位跟踪图像区、云台手动控制区、运动目标数据分析区与基本功能键组成。

3.1 目标定位跟踪系统软件设计程序框图

运动目标定位跟踪软件系统设计程序框图如图4所示。

3.2 目标定位跟踪系统软件设计

3.2.1 视频图像获取

在Open CV视觉库中[2,3],利用Hign GUI库对视频进行读写处理以及使用Cv Cam库对摄像机和视屏流进行处理。其设计关键代码如下:

3.2.2 运动目标图像定位跟踪

本文采用Camshift跟踪算法实现跟踪,其与Meanshift跟踪算法不同之处在于,Camshift算法的搜索窗会自动调整对目标的跟踪大小和位置,即随着运动目标在视频图像中显示的大小而自动调整跟踪窗口的大小。

在Open CV视觉库中[2,3],实现Camshift跟踪算法的是cv Camshift类,Camshift算法的形式如下:

其中:prob_image是目标色彩概率分布直方图的反向投影;Window是搜索窗口的初始值;criteria用于判断搜寻是否停止的准则;comp用于保存运算结果,包含收敛的搜索窗口坐标(comp→rect字段)与窗口内部所有像素点的和(comp→area字段);box表示被跟踪的目标的最小矩形。如果非NULL,则包含目标的尺寸和方向。

Camshift跟踪算法的实现过程是首先搜寻运动目标的中心,然后计算运动目标的大小和方向,最后再进行迭代,实现连续跟踪。程序的关键思路是先获得目标图像的背景投影图,然后利用Meanshift算法对图像序列中的一帧进行跟踪,最后扩展到连续的视频图像帧序列,就形成了Camshift算法跟踪,其主要程序如下:

3.2.3 目标定位跟踪数据分析

运动目标图像的跟踪可以通过视觉进行大致分析,然而精确的数据更能方便地为目标跟踪定位的效果提供分析依据。为此,本文利用Open CV中的Zedgraph动态链接库来分析原始目标与跟踪目标的位置轨迹变化。Zedgraph作为一个优秀的、开源的2D绘图控件,其强大的功能,灵活的定制性,出色的性能使其成为.net平台上出色的、不可多得的趋势图作图工具。部分代码如下:

3.2.4 云台与终端通信

由于本系统所采用的云台的通信接口为RS-485,而计算机的COM口采用的是RS-232通信方式,因此需在计算机COM口连上一个RS-232到RS-485的转换接口,选择使用的是MAX485芯片所设计的一个转换接口。通过云台与计算机之间的通信,可以在对目标跟踪的时候,云台随着目标的移动而转动实现定位跟踪目标,也可以通过人为主观的控制去查找用户感兴趣的图像区域。

3.3 目标定位跟踪软件系统实现

本文利用VS2008软件平台,结合Open CV视觉库所设计的运动目标定位跟踪软件系统如图5所示,其操作方便,美观实用。软件的左上方主要为视频图像的采集与跟踪区;左下角为运动目标定位跟踪的数据分析区,图中显示的为原始运动目标与运动目标跟踪的轨迹位置变化;右半部分主要包括运动目标跟踪的算法选择区、云台手动控制区与一些基本功能区。

4 结束语

本文首先对运动目标定位跟踪技术进行了简单的叙述,分析Camshift目标跟踪的算法,通过对视觉库Open CV的介绍和研究,在VS2008平台上设计了一款基于Open CV的运动目标定位跟踪软件系统。通过具体的实验分析验证,该软件系统可靠性高、运行稳定、而且定位跟踪效果好,为以后对运动目标定位跟踪的深入的理论研究和进一步的实际应用提供了方便,具有一定的实际意义。

摘要:目标定位跟踪技术一直是计算机视觉领域的一个研究热点。为了更好地改进目标跟踪算法的跟踪特性,设计一种基于OpenCV的目标定位跟踪软件系统。通过对Camshift跟踪算法的研究和改进,以实际的跟踪环境为背景,利用VS2008软件平台和OpenCV库函数,设计一种可以控制云台并实时定位跟踪运动目标的软件系统。实验证明,本系统定位跟踪精确,为运动目标的定位跟踪的研究和应用提供了方便,具有一定的实际意义。

关键词:OpenCV,目标定位,目标跟踪,Camshift

参考文献

[1]DOUCET A,GORDON N,KRISHNAMURTHY V.Particle fi-lter for state estimation of jump Markov linear systems[C]//IEEE Trans,Signal Processing,2001,49:613-624.

[2]于仕琪,刘瑞祯.学习OpenCV(中文版)[M].北京:清华大学出版社,2009.

[3]陈胜勇,刘胜.基于OpenCV的计算机视觉技术实现[M].北京:科学技术出版社,2008.

[4]赵雪.基于自适应颜色特征的Camshift改进算法的研究[D].大连:大连海事大学,2010.

软件运动控制 篇8

技术的进步极大的丰富和发展了电影的表现形式, 使观众不断更新自己的视听体验。1977年问世的美国科幻电影《星球大战》大量使用了当时最先进的高科技数字制作手段, 创造了一个纷繁复杂的太空世界。导演乔治?卢卡斯体会到了数字影视技术对影片品质提高带来的积极影响, 同时也感到陈旧的电影技术限制了他想象力的发挥, 因此着手开发一系列的数字影视技术, 并在本片续集中使用, 于是《星球大战》三部曲的视效越来越具有震撼力, 同时也开辟了数字电影科技新纪元。历史发展到今天, “数字化”已经成为电影工业中最热门的话题, 数字化拍摄、数字化存储、数字化放映和数字技术已经快速的进入电影制作的方方面面。与此同时, 数字时代的到来不仅改变了电影工业, 同样也改变了人们的生活方式和思维方式。

“电影是动的艺术, 有人把电影美学就归为“运动”二字。”运动的镜头给人纪实般的真实感, 如2009年由卡梅隆执导的3D电影《阿凡达》在美国公映, 仅用短短十几天的时间全球票房就突破19亿美元, 并最终高达27亿美元。卡梅隆认为运用精进的电影工业技术与特效, 可以使一个原本就精采的剧情更引人入胜。本片大量应用捕捉虚拟合成扣像技术, 并辅以运动镜头匹配技术, 将计算机虚拟捕捉生成的蓝皮肤Na'vi穿梭在与实景拍摄的森林场景中, 使观众真假难辨。这其中运动镜头匹配技术起到了无可比拟的重要作用。

在数字化电影中, 运动摄影与数字特技衔接技术具有广阔的应用领域, 这项技术就是要解决数字特技制作中运动镜头轨迹匹配的问题, 一般简称“运动匹配” (Matchmoving) , 它可以把虚拟制作的物体准确地添加到普通的视频素材中, 一般可通过硬件跟踪匹配和软件跟踪匹配来实现。

1、硬件跟踪匹配

使用硬件设备记录摄影机运动的轨迹、实现画面的跟踪, 称为硬件跟踪匹配。最常见的就是Motion Control摄影机, 它是利用计算机高精度控制装置把摇镜头等视点移动精确地拍摄成一个又一个的画面, 计算机在控制摄影机运动的过程中, 记录下摄影机的所有数据, 包括运动轨迹。由于电脑完全控制摄像机的移动, 就像用三维软件制作动画时用路径引导摄像机的路径一样可以得到行云流水般自然的影像效果, 而且还可以单独察看摄像机的路径, 从而可以跟三维动画进行准确的同期化合成。

Motion Control有很多优点, 首先, 它的拍摄精度很高;其次, 在同一运动轨迹上它可以反复拍摄画面。但是它也有一些劣势, 首先, 在设备方面, 它要求的专业性极强, 必须是Motion Control的专业操作人员才能完成工作;其次, 它的成本也非常高昂, M o t i o n Control租用一般按日计费, 机器装配就需要半天, 所以国内一般使用一次最低也要十万;再次, Motion Control必须在轨道上运动, 大小类似摇臂, 对拍摄环境和场地等的要求也比较高。

2、软件跟踪匹配

软件跟踪匹配, 是指使用软件计算获取摄影机运动轨迹所实现画面的运动匹配。软件跟踪匹配正是为了弥补Motion Control的缺点而出现的, 这也正是本文讨论的重点。

软件跟踪有很多优点:首先, 它使用灵活, 操作简单, 操作以软件为主;其次, 它的成本低, 不需要购买硬件设备;再者, 拍摄环境和场地等要求低, 只对跟踪的画面有要求, 对环境没有要求。它也有一些缺点, 例如跟踪精度低, 这是由于运动匹配软件是基于画面中的像素进行分析和运算的, 所以它对画面的质量甚至内容都有一定的要求, 在某些情况下就无法正常的工作, 如:画面运动模糊太大、画面中运动物体过多、遮挡物体太多等。

常见的运动匹配软件:

2.1 3D-Equalizer

这款软件是属于元老级的运动匹配软件, 由Science-D-Visions公司开发设计, 是现在欧美的后期公司使用面最广的软件。3D-Equalizer市场上的定位是影视高端客户群, 即希望该软件成为特技大片中的主要后期运动匹配工具。与大多数运动匹配软件一样的是, 提供给3D-Equalizer的软件信息越多, 软件能够反馈给操作者越准确的结果, 还原的摄像机运动也就越精确。相应也出现一个弊端, 如果输入的数据存在人为过失, 3D-Equalizer就无法或者只能计算出错误的摄像机轨迹。例如电影《指环王》中使用了3 D-Equalizer作为跟踪软件, 其准确和稳定的跟踪功能, 帮助WETA公司完成了很多令人印象深刻的镜头。

2.2 Boujou

Boujou是2001年2D3公司推出的首款完全自动跟踪的运动匹配软件。该软件的操作界面相对简单, 所以使用过该软件的用户对其简易的操作赞不绝口。Boujou软件中还设有操作向导, 帮助不懂运动匹配的人员通过简单的操作完成相关的操作。不过相对于其它运动匹配软件可以同时处理多组摄影机序列画面不同, 到目前为止Boujou还只能一次只导入一组摄像机序列画面。

2.3 MatchM over

MatchMover是REALVIZ公司旗下推出的功能强大的软件之一, 它的跟踪引擎功能强大, 这种引擎可以计算出变焦、畸变, 还可以处理多镜头, 利用画面帮助计算。这款软件既可以完全使用手动跟踪也可以完全的自动跟踪, 或者手动与自动结合使用, 几乎可以处理所有情况下的运动匹配。

2.4 Ras_track

Ras_track是Hammerhead公司开发的运动匹配软件, 它可以用于提取固定镜头中的部分画面, 然后跟踪再匹配到运动镜头中, 或者把两个运动镜头合并成一个镜头等等, 但是Ras_track的使用面并不广。

2.5 Track

Track是由Digital Domain公司开发的运动匹配软件, 目前仅限于在Digital Domain公司内部使用。

2.6 The PixelFarm公司PFTrack

PFTrack是The PixelFarm综合软件开发公司的产品, 于2003年发布, 软件中整合了一些新功能, 如:光场流分析 (Optical Flow analysis) 工具、先进的物体跟踪功能、几何形体跟踪功能、基于场景分析的物体建模、自动景深 (Z) 提取等等。

2.7 Maya Live

Maya Live由Autodesk公司开发并发行, 但是该软件的研发升级一直很缓慢, 但是由于较早使用了自动景深 (Z) 提取功能而闻名。目前Maya Live作为Maya完整版一同打包出售。

无论哪个运动跟踪匹配软件, 其核心的计算方法都大同小异。在实际应用中, 划分成前期拍摄和后期制作两部分的工作。软件运动跟踪匹配在拍摄现场的工作主要是替后期制作提供准确的资料和指导特技拍摄。而软件运动跟踪匹配的后期工作则是将特技镜头中摄像机运动准确的反求出来提供给其他后期制作人员使用。

3、运动匹配的前期工作

3.1 记录拍摄现场信息

电影是集体劳动、协同作战的成果, 片场任务繁多且杂乱, 数字特技工作必须有专人负责记录信息, 并且严格按照流程操作。记录的信息大致如下几类:

3.1.1 焦距

摄影师在拍摄某场戏时, 会根据不同的景别使用不同的镜头拍摄, 这时候运动匹配技术人员就要留心观察, 最好是守候在摄影机的旁边。如果是变焦镜头, 那么在拍摄的过程中镜头是否改变了焦距, 焦距是从多少变到多少的, 都需要记录下来。有时候这些信息可以直接通过询问跟焦员, 或者摄影助理就能够了解到。

3.1.2 摄影机高度

摄像机高度信息主要在匹配CG场景和摄影机时发挥作用, 特别是在解决摇镜头的时候, 高度信息尤为关键。

3.1.3 帧率

在运动匹配软件中无论帧率对还是错, 都能够计算出一组摄影机的运动轨迹, 但是当把输出的数据传递给下一个环节的制作人员时, 致命的错误才会显现出来。

3.1.4 物距

在电影拍摄中我们经常看到, 摄影助理拿一根皮尺测量从摄影机到主体物 (一般是演员) 的距离。实际操作时, 就是从摄影机上的皮尺钩到被摄体的距离。物距的测量对于运动匹配有很大的帮助。

3.1.5 摄影机的运动方式

三脚架、摇臂、斯坦尼康、轨道车, 不同的固定装置意味着不同的运动方式。记录这些信息, 运动匹配人员就能在制作开始之前, 对制作结果有一个宏观的印象。

3.2 粘贴马克点

马克点即跟踪点, 是运动匹配人员在拍摄现场的基础工作。粘贴跟踪点能够为运动匹配中的2D跟踪提供必不可少的数据。

粘贴马克点的数量既不能过多, 也不能过少, 必须根据实际需要来选择粘贴。通常拍摄近景或特写镜头时, 很容易忽略画面中的马克点, 从而导致缺少跟踪点。特别是在蓝屏前拍摄时, 当画面中缺少马克点, 运动匹配软件无法反求出摄影机的的运动轨迹;马克点贴的过多对后期合成会造成困扰 (去除画面中的马克点, 特别是擦除和人物或者前景有遮挡关系的马克点, 增加合成人员的工作量) , 因此在布景中粘贴马克点是一项很细致的工作。

3.3 记录镜头畸变

镜头的畸变一直是运动匹配的杀手, 镜头的失真直接导致读取画面信息时发生的计算错误。通常广角镜头的畸变比较明显, 焦距越短畸变越明显。而标准焦距的镜头和长焦距的镜头畸变不明显。运动匹配软件反求摄像机之前一定要纠正畸变, 而纠正畸变最简便可行的的方法就是使用有畸变格的摄影机拍摄若干画面并记录下来。

4、运动匹配的后期工作

4.1 预估素材

预估素材非常重要, 运动匹配人员需要考虑的问题大致有以下一些:

摄影机是运动的么?镜头的运动速度有多快?镜头里有没有马克点?马克点是否别遮挡?镜头里还有什么可以跟踪的么?要在这个镜头中添加什么效果?跟踪精度要求很高么?镜头中需要匹配那些部分?……

类似的问题提出的越多, 运动匹配人员后期处理的的工作思路就越清晰。

4.2 反求摄像机

反求摄像机是运动匹配人员的主要工作, 主要是使用运动匹配软件对视频素材处理, 追踪和解析出摄像机。从软件的运算方法上可以大致分成:手动跟踪和自动跟踪。实际工作中, 手动跟踪和自动跟踪相互配合才能最有效的到准确的摄影机数据

4.3 替代模型匹配

反求出摄影机并非是运动匹配所有的工作, 它只能算是完成了主要的部分, 剩下的就是重现拍摄现场的环境。例如:画面中需要添加一个行走的人物, 那么三维人员可能只需要运动匹配人员在场景中添加一块地板作为标识。

4.4 测试

测试这个步骤就好像工厂的质量检验, 出厂前需要严格把关。由于软件运动匹配的精确率不如硬件匹配的高, 所以如果跟踪匹配精确度不够, 会导致原始实拍素材和CG图像匹配后突然在某些帧出现滑动和跳动的情况。

4.5 输出

由于运动匹配在整个后期流程中, 处在制作流程的最顶层, 其他制作人员会接过运动匹配的场景开始他们的工作, 所以这里的最终输出只是下一项后期工作的开始。运动匹配输出的文件类型会根据合成师或三维动画师等不同的制作人员的需要而决定。

运动匹配技术它是技术革新的产物、更是社会发展需要。近十年间, 数字特技在国内电影领域的应用与发展速度很快, 运动匹配技术也得到了长足发展, 并且必将随着科技的进步以及观众视听需求的提高而日新月异!

参考文献

软件运动控制 篇9

1 可行性研究

我们在设计中完全采用了工程化的思维, 用这一理性思路充当软件研制的向导。通常情况下, 我们都是从三个不同的方向去研究和探讨并联机床所有控制软件开发中的操作可行性、经济可行性、技术可行性, 最后才能根据所设计的机床基本要求, 通过软件获得最初的数据流简图。一般情况下, 我们都是以传统数控机床的控制软件设计作为研究基础, 根据机床所要执行的全部任务再给出所有驱动关节的运动轨迹。之后根据提前所规划好的实测的驱动杆长量和运行轨迹作一个比较, 这样就能得到数字控制器的实现, 通过计算机的实时不间断的监控和故障分析。在这一环节最常见的就是开放性软件结构, 因为只有这样才能方便所有用户对机床进行改变和重组。这种开发的成本比较低, 但在操作方式和技术上都有着极强的可行性, 经过一系列的可行性分析, 就可以得到控制系统数据流图。

2 需求的分析

设计的控制软件一定要满足所有并联机床的基本功能所需, 最关键的就是必须保证其能在动平台的活动范围之内可以加工所有不同形状的零部构件, 由于零部构件具有形态各异的形状, 所以在加工中就会随时出现机床伸缩臂的运动方式与刀具的运动轨迹大不相同。这样就必须要根据实际加工的零件, 设计出刀具的运动轨迹, 然后再根据不同类别的零部构件进行相关的控制模块的编写。通过两种设计就可以进给轨迹加上刀具姿态变化组合而成刀具姿态变化, 同时还可以实现其他复杂的进给轨迹。通常情况下, 我们都是通过以下的两种方式解决对精度要求的细化。

首先, 通过改变细化控制时候所输出的脉冲当量的变化, 设置出脉冲分配的模块, 模块参数的相互调整, 可以提高相应的精度;其次:传感器的选择是否合适也是至关重要的, 我们通过对所有的信息反馈功能模块进行设置, 实现了在机床进行加工的过程中, 对其加工的位置进行实时的监测, 然后再将信息反馈到控制系统, 这样一来就可以使系统根据具体情况做出相应的补偿, 从而以满足了精度的要求。

3 数据字典

用软件工程的思想法去进行设计并联机床控制软件, 建立数据字典成了一个至关重要的中心环节, 它不但能提供数据的详细描述信息, 还能做到增强程序的可维护性和可读性。以下介绍一种并联机床的控制软件字典。

检测反馈:实时检测、拾取动平台位置姿态信息, 并反馈给控制系统, 并对该信息进行比对。加工余量:材料的三维去除量;零件形状:被加工的所有零件都具有自身比较特殊的几何特征 (水平平面、空间曲面、竖直平面、空间平面) ;六杆伸缩量:相对于动平台零点位移量 (正、负) ;步进电机脉冲数:精度:零件形状与刀具轨迹的一致性;与杆长伸缩量 (正、反转) 相对应的电机转数;位姿:动平台的位置和姿态;参数输入:人机交互的界面, 输入且显示零件的形状、精度、加工余量值;配置:根据所有构件和动平台的运行姿态和综合位置;脉冲协调与分配:按精度将六杆伸缩量分配成脉冲, 并协调各杆对应电机的伺服脉冲频率;反求轨迹:根据工件形状及加工余量确定各杆伸缩量的功能模块拾取法。

4 总体设计

采用模块化结构根据软件模块化理论为思路, 进行并联机床控制软件的总体设计, 软件的模块内部应具有高聚合性, 模块之间应具有低耦合性, 模块的层次深度不可以设置太大, 扇出数4~6, 才有利于控制;扇入数尽量大, 以便减少软件设计中的冗余度, 根据此原则对并联机床控制软件进行规划。

4.1 参数输入模块

输入的参数:精度、余量、形状。这些后续模块与参数的关系:反馈+余量→反求模块。形状→加工形状选择模块。精度→脉冲分配协调模块。

4.2 加工形状选择模块

包括平面曲线加工模块、空间直线加工模块、刀具姿态变化模块、空间曲线加工模块。

4.3 反求模块

通过现有的动平台运动的轨迹 (待加工零件的形状) , 求取六条伸缩臂的空间位置向量的变化值。

4.4 优化模块

实时计算中所有杆的加速度、速度、运动位移, 以及所有的受力情况, 通过了系统优化的计算方法得出所需最佳的杆长配置。

4.5 脉冲分配协调模块

将六条伸缩臂的空间位置向量的变化值, 要按精度要求分配成脉冲量输出给电机, 因为在一次加工过程中, 所有杆的伸缩量有大有小、有正有负, 所以模块还需具有协调所有杆在每步动作中的位移的功能。

5 结语

本文详细阐述了软件工程中关于并联机床控制软件设计, 强调了工程的方法研制以及软件的开发, 采用模块化的方法设计所需的软件, 从而增强了并联机床控制软件的可行性。这与与传统数控机床软件相比较, 具有设计周期短, 维护性能强等特点。

摘要:随着人们日益对生产与生活环境适应性的不断提高, 最近几年, 很多国内外机床制造业企业都在积极研制和探索新型的具有多功能的系统与制造装备, 文章从当前在结构技术上, 具有突破性进展的并联机床入手, 结合并联机构的进给传动机构的实际情况, 进行了大量的分析和研究。

关键词:并联机床,软件工程,软件设计

参考文献

[1]黄真.并联机器人机构学理论与控制[M].北京:机械工业出版社, 1997.

上一篇:忠诚管理下一篇:区域化支持