2024年3月24日发(作者:)

32

基于

DXF

图的复杂

AGV

地图自动创建与显示

基于

DXF

图的复杂

AGV

地图自动创建与显示

Automatic

Creation

and

Display

of

Complex

AGV

Maps

Based

on

DXF

Maps

刘洋

钱东海赵伟陈成

上海大学机电工程与自动化学院

上海

200444

摘要

:

AGV

路径规划离不开电子地图的创建

传统的地图创建方式需要通过计算机编程绘制很多直线

圆弧等几何图

创建繁琐且不易修改

首先利用

AutoCAD

快速创建

DXF

格式的

CAD

文件

,

其后在

VS2015

平台上

利用

C#

编程实现

DXF

文件的数据读取

通过对数据的处理将

CAD

图形转换为

AGV

路径规划的电子地图

使得复杂的

AGV

电子地图的

创建十分轻松和高效

同时自动创建地图搜索算法所需的数据结构

,

为路径搜索提供了数据支撑

并对电子地图进行了准确

地展示

最后通过实例验证了算法的可行性和有效性

关键词

:

AutoCAD

DXF

文件

自动导引小车

电子地图

路径规划

Abstract

:AGV

path

planning

is

inseparable

from

the

creation

of

electronic

traditional

way

of

map

creation

re

­

quires

computer

programming

to

draw

many

geometric

shapes

such

as

lines

and

arcs,which

are

tedious

to

create

and

diffi

­

cult

to

use

AutoCAD

to

quickly

create

DXF

format

CAD

file,then

on

VS2015

platform,using

c

#

programming

to

read

DXF

file

data,through

processing

the

data

transform

CAD

graphics

for

AGV

path

planning

of

electronic

map,and

make

it

easy

to

complex

AGV

electronic

maps

to

create

and

efficient,and

automatically

create

the

required

data

structure

map

search

algorithm,search

provides

data

support

for

the

path,and

the

electronic

map

display

y,an

example

is

giv

­

en

to

verify

the

feasibility

and

effectiveness

of

the

algorithm

in

this

paper.

Keywords

:AutoCAD,DXF

file,AGV,electronic

map,path

planning

DXF

作为

AutoCAD

的标准数据交换格式,

精确地保存了

CAD

图形文件的所有数据

通过对

DXF文件的数据处理

便可

实现与

AutoCAD

系统的连接

AGV

作为物流系统和柔性制造

系统中的关键子系统

目前得到了广泛的应用

。工厂环境地图的

始组码为

ENTITIES

实体段结束组码为

ENDSEC

因此实体段

的全部数据便可准确获得

以下为读取并保存

DXF

文件实体段数据的部分关键代码

do

建模与路径规划是

AGV

系统中重要的组成部分

AGV

路径

规划又依赖于地图数据,地图中的节点

线段等信息为路径搜索

{

line

=

ne();

提供数据支撑

因此工厂环境的地图建模尤为重要

,

也是仿真环

境下必不可少的前提

对于一个大型工厂,环境可能十分复杂

if(line

==

"ENTITIES")//

查找实体段

传统的地图建模方法需要人为地输入地图数据,

建立节点间的

{

do

{

line

=

ne();//0,

事物开始

拓扑关系

1-2

,过程相当繁琐且不易于维护

本文提岀一种基于

AutoCAD

复杂地图自动创建的方法

利用

AutoCAD

创建工厂

环境地图

通过编程技术对

CAD

图形文件进行识别与处理

(line);//

添加到

list

)

while

(line

!=

"ENDSEC");

//

当前事物结束

)

)

while

(!tream)

;//

当前位置是否位于流的末尾

到工厂环境地图的建模

、为

AGV

路径规划提供数据支撑和进行

AGV

仿真的目的

1

DXF

图形文件结构

DXF

文件由标题段(

Header

)

表段

(

Tables

)、

块段

实体段数据包括线段

(

Line

)

圆弧(

Arc

)

圆渊

Circle

)

多段

线(

Lwpolyline

冤等

下面以多段线为例

完整地展示提取数据的

(

Block

)

实体段

(

Entities

)

和文件结束段

(Eof

of

File

)共5

部分

过程

多段线的部分组码

组值及含义如表

1

所示

1

多段线的部分组码

组值及含义

Til

n

组成

3-5

DXF

文件可以借助记事本等工具直接打开

但它的数据量

非常庞大

一个简单的图元文件可能会达到上万行数据,而一个

■-

L-T

L'-vrCi-YLIM

■=

X

r

-I

■'LV.-rOLY-E-.h

f'/d

-2

'v

f

大型的图形文件可能达到几百万行数据

DXF

通过每一行存储

相关数据,

实际上每两行为一个组,

第一行为组码,

也就是组的

-上

IO'.

i

:;.

AuL'ik-LmiLy

i

TD-rn

QdJ

代码,

第二行为组值,

一个组就代表了一个数据的含义和值,

DXF

文件由大量的组构成

6-13

虽然

DXF

文件结构相当复杂

根据我们的需求

只要获取其中的层表

块段和实体段,就可以

完成相应实体的提取

KI.-

--i

!

I'/.i

AuDbl

:,

,il>luiv

j'

住!〒

-

l

:

'

Ac

~i:

丈门••皆

v

hl

■■:

■Yi

•■•■1

t

20

110

:込他亡&曲茁

P

xilL.

m

-

^-rln..

-i-ij-ll

■T-

%

B

■i

■'b-.l

.-

Y

|M.

.■:

2

DXF

文件提取各实体段及块段

2.1

提取各实体段

提取多段线数据的关键部分代码如下所示:

case

"LWPOLYLINE"://

多段线

首先将

DXF

文件中实体段的数据提取岀来

通过使用

C#

int

LwpolylineCount

=

0;

int

LwpolylinePoint;

//

动态创建端点

中的

StreamReader

类来读取

DXF

文件的各行信息

实体段开

工业控制计算机

2020

年第

33

卷第

9

Po

i

nt[]

lp;

//

存放端点

int

cp

=

0;

int

L

i

neSymbol

=

0;//

多段线标志

for

(int

j

=

i

+

1;

j

<

ent

i

t

i

-

1;

j++)

{

if

(ent

it

i

es[j].Tr

im()

==

"5")

{

ID

=

ent

i

t

i

es[j

+

1];

if

(ent

it

i

es[j].Tr

im()

==

"8")

//

图层

{

Layer

=

ent

it

i

es[j

+

1];

if

(ent

it

ies[j].Tr

im()

==

"62")//

多段线颜色

{

color

=

(int)(ent

i

t

i

es[j

+

1]);

if

(ent

it

i

es[j].Tr

im()

==

"90")//

顶点数

{

Lwpolyl

i

neCount

=

(int)(ent

i

t

i

es[j

+

1]);

if

(ent

it

ies[j].Tr

im()

==

"70")//

多段线标志

{

L

ineSymbol

=

(int)(ent

i

t

i

es[j

+

1]);

}

if

(ent

it

ies[j].Tr

im()

==

"10")//

第一个端点

X

{

Lwpolyl

inePo

i

nt

=

new

int[Lwpolyl

ineCount

2];

lp

=

new

Point[LwpolylineCount];

int

jj

=

j

+

1;

for

(int

r=0;r<

2

LwpolylineCount;

r=r+2)

//

取出端点

X,Y

{

LwpolylinePoint

[r]=

(int)(entities[jj]);//X

jj

=

jj

+

2;

LwpolylinePoint[r+1]

=

(int)(entities[jj]);//Y

lp[cp]=newPoint(LwpolylinePoint[r]

L

wpolylinePoint[r+1]);

首先在提取的实体数据中查找多段线标志的组码

-LW-

POLYLINE

然后根据多段线的组码逐项识别

包括图层

句柄

颜色

顶点数

,

标志和端点坐标

,

将关键数据进行保存

由于多段

线的顶点数是一个变量

即实现无法得知某一个多段线共有多少

个边组成

因此动态定义顶点数组LwpolylinePoint

用于存储多

段线的顶点集合

当读取完多段线的句柄

颜色

顶点数

标志及

顶点的各

X

Y坐标后,再次识别组码

0

,

为下一个事物的开始

表示当前事物读取完毕

读取多段线实体的流程如图

1

所示

2.2

提取各块段

块在

CAD

图形中相当于一个集装箱,它把若干个图形组织

在一起

,

形成一个图形块整体

,

方便进行操作

易于用户插入

改等

提取块段首先先将

DXF

文件中块段的对应数据读取岀

提取标识为

BLOCKS

ENDSEC

,

方法与提取实体段相

BLOCKS

段中始终存在

*Model_Space

*Paper_Space

*Paper_Space0

三个空定义

对我们构建地图没有影响

提取我们所需的块时

,

不必对其进行提取

在识别到组码

3

,

即块名

根据岀现的标识识别对应的实体

一个块中可能含有多

个实体

例如

LINE

ARC

等,判断岀相应的实体后

即可以调用

提取实体段中相同的方法来完成块中实体数据的提取

33

I

'

I

I

'

I

|

|

I

'

11

*

1

1

'

因雇!

|

旬駅

1

1

啟包|

|曲点览

11栋志

|丨

哄点坐

1

1

读取多段线实体的流程

3

AGV

地图中基本图形数据结构的设计

AGV

路径规划过程中需要操作的直接对象是路径中的节

点,并且依赖结点间的拓扑关系

,

为此我们需要将读取到的数据

进行处理

这里在创建地图时使用特定的颜色创建

AGV

行驶的

路径

,

方便进行特征提取

首先为实体段各对象创建类

包括线

(

Line

)

圆弧

(

Arc

)

(

Circle

)

多段线

(

Lwpolyline

)。

然后将

提取到的各实体数据保存到相应的类中遥再创建两个类

一个类

是节点

(Vertex

),

另一个是节点间的拓扑关系

(

border

)。

Vertex

包含了节点的编号以及节点的二维坐标值

Border

包含了两节

(

以编号记录

)

的关系及关系的种类

在具有邻接关系的情况

下两节点之间的距离

下面分别介绍这两个类的定义过程

1

)

Vertex

:线段数据

圆弧数据等都是矢量数据

线段由两

个端点组成,

提取到的是端点的横坐标以及纵坐标值

圆弧是由

圆心坐标

起始角度

终止角度组成

需要对这些实体的端点进

行定义

首先取一条线段

将线段的两个端点存储到

V

ertex

并标号为

1

2

(

因为线段的两个端点不可能是同一个点)

然后遍历其余的所有线段,当对剩余线段中的端点进行存储时

,

首先遍历Vertex

集合中是否有坐标值相同的节点

若有

则说

明当前线段与之前记录过的线段存在交点,

不再记录

否则

续将端点保存到

V

ertex

中直到所有线段都被访问过;然后再对

圆弧进行同样的操作

但从

DXF

文件中读取的圆弧数据是没有

端点属性的,需要再做一步操作

,

经过分析

圆弧端点坐标与圆

起始角度和终止角度之间满足如下关系:

X

s

=C

x

+

R

*

cos

(

2

*

仔*

En(

dAn

360

gle

)

(

1

)

Y

s

=C

v

+R

*

sin

(

2

*^*

En(

3An

360

gle

)

(

2

)

X

w

=C

x

+R

*

cos

(

2

*

仔*

360-S

360

360

Angle

)

(

3

)

Y

w

=C

x

-R

*

cos

(

2

*

仔*

360-S

360

360

Angle

)

(

4

)

得到圆弧端点数据后

便可继续对

Vertex

进行添加

这里

要注意的是

对于圆弧和线段的交点

经过以上计算得到的端点

数据可能会与

Vertex

中已记录的端点数据有些许误差,所以在

圆弧的端点判断时在较小的误差范围内认为该点已经添加过

否则继续添加,其它步骤与线段操作相同

2

)

Border

节点间的关系体现在实体段中

例如线段体现了

两个端点的邻接关系,并且是直线连接,而圆弧的两个端点则体

现了两个节点是圆弧连接

通过我们定义的

Vertex

,将线段和圆

弧中的端点以编号形式存储,然后遍历线段和圆弧,将每一实体

34

基于

DXF

图的复杂

AGV

地图自动创建与显示

中的两个节点编号保存到

Border

邻接关系种类用

0

1

,

0

表示两节点为直线相连

,

1

表示两节点为圆弧连接

,

两节点

之间的距离对应两点之间的直线距离或两点之间的弧长

几何实体的数据,

经过数据处理创建出基于路径搜索算法的数

据结构,并准确地对电子地图进行展示

,提供用户可视化操作的

功能

本方法降低了

AGV

路径规划中电子地图创建的复杂度

并构建出地图不同实体的数据结构

实现了数据的自动创建

4

AGV地图显示及运动实体仿真

将实体段的完整的数据保存下来后

为了提供给用户可视

化的操作

需要将地图数据表达出来

本文采用C#

中的图形装

置接口

GDI

+

(

Graphics

Device

Interface

Plus)

,

完成对地图

AGV后续的路径规划提供了便利

参考文献

[

1

]

徐维

.CAD

图形文件数据获取及可视化

[

D

]

.

武汉

武汉工程大学

的绘制

GDI+

提供了各种丰富的图形图像处理功能

位于命名

空间

g

中,该命名空间提供了对

GDI+

基本图形

功能的访问

,

主要有

Graphics

Bitmap

Brush

类继承

的类、

Font

Image

Pen

Color

类等

使用这些类并结合我们已经从

DXF

文件中读取到的,

经过

2018

[

2

]

刘军

,

王浩骅

王卉

.

通用

CAD

图形数据向警用地理信息数据转

换的技术分析

[

J

]

.

中国人民公安大学学报

(

自然科学版

)

2013

,

19

(

I

)

:

60-63

处理的实体数据

可以准确

完整地将AGV

电子地图表达出来

5

实例分析

为了验证本文所提出方法的准确性

现以某工厂烟丝箱

[

3

]

J

Wang,L

c

Sharing

Based

on

XML

Technology:

Analysis

and

Web

Expression

of

DXF

Graphic

[

C

]

2008

In­

ternational

Conference

on

Computer

Science

and

Software

AGV

物流输送项目为例

使用

CAD

进行工厂

设备

AGV

小车

Engineering,

Hubei,

2008:1090-1093

[

4

]

Z

Sukimin,H

ric

entities

information

for

feature

平面图形建模

,其中线段与圆弧组成的网络为

AGV

所行驶的路

图中共有

3

个小车模型,左上方的矩形块为存储烟丝箱的货

最外层部分为仓库的墙体

右边部分为烟丝箱运输的目的

用于生产加工,创建完成后的

DXF图形如图

2

所示

extraction

of

solid

model

based

on

DXF

file

[

C

]

2008

Inter

­

national

Symposium

on

Information

Technology,Kuala

Lumpur,

2008:1-5

[

5

]

W

Shang,J

Zhong,Q

is

of

DXF

file

with

an

appli

­

cation

to

3D

graphic

display

[

C

]

2012

IEEE

International

Conference

on

Information

and

Automation,Shenyang,2012:

611-615

[

6

]

H

Shuai,Z

Yinghua,G

Yukun,et

on

3D

Tunnel

Model

­

ing

Based

on

DXF

[

C

]

2016

International

Conference

on

ln-

telligent

Transportation,Big

Data

&

Smart

City

Changsha,

2016:542-545

[

7

]

W

Guitang,X

Feng,C

Yongbin,et

tic

path

generation

(ICITBS),

2

某工厂烟丝箱AGV

物流输送项目DXF

图形

in

2-D

detection

based

on

DXF

file

[

C

]椅

2017

13th

IEEE

In­

ternational

Conference

on

Electronic

Measurement

&

Instru­

根据已创建的

DXF图形文件

使用本程序对

DXF

中的实

体数据

块段数据等主要部分进行提取

处理

本程序完全

准确

地设计了该图的数据结构

包括节点与实体的信息

并将

DXF

ments

(ICEMI),

Yangzhou,

2017:411-416

[

8

]

蔡东健

.

基于

C#

DXF

格式图形转换研究与应用

[

C

]

江苏省测

图形进行了展示,经程序计算该图共有

10475

个实体,

最终效

果图如图

3

所示

在图

3

中对路径节点编号进行了标注

绘地理信息学会

江苏省土地学会

第十一次江苏科技论坛智慧城

市与大数据应用分论坛论文集

,

2015

4

[

9

]

熊峰

王桂棠

,

陈建强

.

基于

DXF

的机器视觉检测路径智能规划

[

J

]

.

机电工程技术

,

2018

,

47

(

1

):

1-5

[

10

]

李少军

薛维刚

.

利用

dxf

格式实现

CAD

图形坐标转换方法探索

[

J

]

.

测绘与空间地理信息

,

2012

,

35

(

6

):

198-199

[

11

]

陈树敏

,

刘强

,

方少亮

.DXF

在排样切割中的应用

[

J

]

.

计算机应

用与软件

,

2012

,

29

(

5

):

143-146

,

187

:

12

]

侯增选

,

张邦磊

,

刘文慧

.

基于

DXF

的露天矿二维与三维数据处

3

最终效果图

理及应用

[

J

]

.

计算机应用与软件

,

2014

,

31

(

1

)

204-207

[

13

]

孟德舒

.DXF

格式文件转换的研究与实现

[

J

]

.

北京测绘

,

2014

(

3

)

76-79

[

收稿日期

2020.5.8

]

6

结束语

使用本文分析研究的方法

可以准确地提取出

DXF

文件中

O

机器视觉产业联盟正式发布工业数字相机和工业镜头术语标准

8

22日

机器视觉产业联盟

(

CMVU

)

以不同形式正式对外(国内)发布

工业数字相机

术语

工业镜头术语

标准

据专家

介绍,这两项

标准

的制定填补了国内行业的空白

近年来

随着社会经济的高速发展

智能制造在世界制造业的地位作用得到进一

步彰显

尤其在中国

科技发展日新月异

机器视觉行业伴随制造业的强势崛起

受到各行业的广泛关注

得到充分的工业应用

同时

也导致行业产品的生产和制造产生标准不统一甚至混乱等问题

2018年初

机器视觉产业联盟在广泛征求意见后

,

牵头组织联盟

18

家会员单位

开展了为期两年的

标准

联合编写工作,最终形成了初步的

标准

版本

工业数字相机术语

工业镜头术语

准的推出

将对中国机器视觉行业有着深远意义

随着中国智能制造

2025

计划的有力推进

大规模生产和柔性自动化制造对于机器

视觉的需求日益强烈

工业数字相机和工业镜头是工业自动化领域中的关键组成部分

标准

的发布有助于统一工业机器视觉技

术语言

促进国内工业机器视觉的发展

并为同步参与国际工业机器视觉标准编制打下坚实基础