文档库 最新最全的文档下载
当前位置:文档库 › 机器人课程设计报告

机器人课程设计报告

机器人课程设计报告
机器人课程设计报告

机器人课程设计报

智能机器人课程设计

总结报告

姓名:

组员:

指导老师:

时间:

一、课程设计设计目的

了解机器人技术的基本知识以及有关电工电子学、单片机、机械设计、传感器等相关技术。初步掌握机器人的运动学原理、基于智能机器人的控制理论,并应用于实践。经过学习,具体掌握智能机器人的控制技术,并使机器人能独立执行一定的任务。

基本要求:要求设计一个能走迷宫(迷宫为立体迷宫)的机器人。要求设计机器人的行走机构,控制系统、传感器类型的选择及排列布局。要有走迷宫的策略(软件流程图)。对于走迷宫小车控制系统设计主要有几个方面:控制电路设计,传感器选择以及安放位置设计,程序设计

二、总体方案

2.1 机器人的寻路算法选择

将迷宫看成一个m*n的网络,机器人经过传感器反馈的信息感知迷宫的形状,并将各个节点的与周围节点的联通性信息存储于存储器中,再根据已经构建好的地图搜索离开迷宫的路径。这里可选择回溯算法。对每个网格从左到右,每个网格具有4个方向,分别定义。并规定机器人行进过程中不停探测前方是否有障碍物,同时探测时按左侧规则,进入新网格后优先探测当前方向的左侧方向。探测过程中记录每个网格的四个方向上的状态:通路、不通或未知,探测得到不同状态后记记录,同时记录当前网

格的四个方向是否已被探测过。若某网格四个方向全部探测过则利用标志位表示该网格已访问。为了寻找到从起点到终点的最佳路径,记录当前网格在四个方向上的邻接网格序号,由此最后可在机器人已探测过的网格中利用Dijkstra算法找到最佳路径。并为计算方便,记录网格所在迷宫中行号、列号。并机器人探索过程中设置一个回溯网格栈记录机器人经过的迷宫网格序号及方向,此方向是从一个迷宫网格到下一个迷宫网格经过的方向。设置一个方向队列记录机器人在某网格内探测方向的顺序。设置一个回溯路径数组记录需要回溯时从回溯起点到回溯终点的迷宫网格序号及方向。

考虑到迷宫比较简单,且主要为纵横方向的直线,可采用让小车在路口始终左转或者始终右转的方法走迷宫,也就是让小车沿迷宫的边沿走。这样最终也能走出迷宫。本次课程设计采用此方法。即控制策略为机器人左侧有缺口时,向左进入缺口,当机器人前方有障碍是,向右旋转180°,其余情况保持前进。

2.2 传感器的选择

由于需要检测机器人左侧和前方是否有通路,采用红外传感器对机器人行进方向和左侧进行感知。红外避障传感器是依据红外线的反射来工作的。当遇到障碍物时,发出的红外线被反射面反射回来,被传感器接收到,信号输出引脚就会给出低电平提示信号。本机器人系统的红外避障信号采用直接检测的方式进行,直接读取引脚电平。传感器感应障碍物的距离阈值能够经过调节

传感器上的变阻器来改变。

行进过程中,机器人可能会偏绿迷宫的横轴或纵轴的方向。碰触传感器利用外力的作用传递给单片机信息,当碰触传感器碰到迷宫墙壁后,传感器检测到信号就能够判断小车碰壁。经过电路处理后,信号输出接口输出数字信号送给控制器,从而让控制器进行决策调整小车姿态。本机器人系统共使用了2个碰触传感器,分别安装在小车的左前方和右前方,使得机器人在偏离航向撞击迷宫侧面后能够立即对航向进行修正。

四个传感器一共占用四个外部中断。

3.3 总体结构设计

三、具体实现

3.1 芯片选择

最小系统已经设计好,本次课程设计采用的控制芯片为STM32F103RBT6

它是32位的Cortex-M3内盒的控制芯片, 主频达到72MHz, 拥有128kB 闪存, 20kB SRAM,

锁相环,内置 8MHz and 32kHz时钟电路,具有PWM模块,方便电机转速的控制。

3.2 控制电路设计

(1)电机驱动:

电机驱动电路原理图如图所示,采用BTS7960芯片驱动电机,以控制机器人的两个驱动轮,利用PWM控制方法,经过改变PWM波的占空比,达到调节电机转速的目的,实现机器人的前进,后退,转向,刹车等功能。每个电机都由一个H桥电路驱动,由两个输入信号共同控制。两个电机共由4路PWM波进行控制,结合上述的电机驱动原理,小车运动方式能够经过如下方式实现:四个控制信号均为低电平时,电机停转,小车停止;电机的左右轮电机同向等速运行时,能够实现前行或后退的动作;小车的左右转向经过两轮差速来实现。在本机器人的设计中,需要实现的90°角度转弯,是经过电机定速运动和延时的配合完成的,经过不断调试确定出最佳的旋转时间。

(2)电源模块:

采用电池供电,可行的供电方案原理图如下

(3)引脚(外部中断)分配:

PA0,PA4,PA5,PA15为中断输入引脚。PA0引脚对应的外部中断由机器人前向红外传感器触发,PA4,PA5分别连接机器人前进方向的左侧和右侧的碰撞开关,PA4,PA5的上升沿信号代表机器人与迷宫的左,右侧发生碰撞,触发相应地终端服务程序,调整航向。PA15接收左侧红外传感器产生的触发信号,当机器人左侧出现缺口时,触发中断服务程序,机器人向左转向进入缺口。

3.3 程序设计部分

(1)机器人的移动:

机器人靠两个驱动轮,一个从动轮进行移动,每个驱动轮由一个电机,两个驱动芯片进行控制。驱动芯片输出电平的高低决定电机的转向,占空比决定了电机的转速。

首先应配置芯片的PWM模块,具体过程如下:

#include "pwm.h"

float mo1,mo2,mo3,mo4;

void PWM_Init(u16 arr,u16 psc)

{

RCC->APB1ENR|=1<<1;

GPIOA->CRL&=0X00FFFFFF;

GPIOA->CRL|=0XBB000000;

GPIOA->ODR|=1<<6|1<<7;

GPIOB->CRL&=0XFFFFFF00;

GPIOB->CRL|=0X000000BB;

GPIOB->ODR|=1<<0|1<<1;

TIM3->ARR=arr;

TIM3->PSC=psc;

TIM3->CCER|=1<<1|1<<5|1<<9|1<<13;

TIM3->CCMR1|=7<<12|7<<4;

TIM3->CCMR1|=1<<11|1<<3;

TIM3->CCMR2|=7<<12|7<<4;

TIM3->CCMR2|=1<<11|1<<3;

TIM3->CCER|=1<<12|1<<8|1<<4|1<<0;

TIM3->CR1=0x0080; //ARPEê1?ü

TIM3->CR1|=1<<4;

TIM3->EGR |= 1<<0;

TIM3->CR1|=0x01;

}

本段代码使能TIM3时钟,启用PA6,PA7,PB0,PB1引脚的复用功能,并对计数器进行相应设置(向下计数),使得芯片能在这四个引脚上输出所需的PWM波。

由于前进,后退,转向,都是重复性的动作,直接对这些操作进行宏定义,需要的时候直接调用,能减轻程序编写的负担:#define Moto_PwmMax 899 //

#define LEFT_MOTOR_F TIM3->CCR1

#define LEFT_MOTOR_B TIM3->CCR2

#define RIGHT_MOTOR_B TIM3->CCR3

#define RIGHT_MOTOR_F TIM3->CCR4

注:TIM3产生PWM波相应寄存器的宏定义如下

#define go_forward

{

LEFT_MOTOR_F =3500;

LEFT_MOTOR_B =0;

RIGHT_MOTOR_F =3500;

RIGHT_MOTOR_B =0;

}

#define go_back

{LEFT_MOTOR_F =0; LEFT_MOTOR_B =3500; RIGHT_MOTOR_F =0; RIGHT_MOTOR_B =3500;}

#define turn_left

{

LEFT_MOTOR_F =0;

LEFT_MOTOR_B =0;

RIGHT_MOTOR_F =4000;

RIGHT_MOTOR_B =0;

}

#define turn_left_90

{

LEFT_MOTOR_F =0;

LEFT_MOTOR_B=0;

RIGHT_MOTOR_F=4000;

RIGHT_MOTOR_B=0;

delay_ms(800);

delay_ms(800);

delay_ms(600);

RIGHT_MOTOR_F=0;

}

#define turn_right

{

LEFT_MOTOR_F =4000;

LEFT_MOTOR_B =0;

RIGHT_MOTOR_F =0;

RIGHT_MOTOR_B =0;

delay_ms(200);

}

#define turn_back_righ {

LEFT_MOTOR_F=4000;

LEFT_MOTOR_B=0;

RIGHT_MOTOR_F=0;

RIGHT_MOTOR_B=4000;

delay_ms(800);

delay_ms(800);

delay_ms(400);

LEFT_MOTOR_F=0;

RIGHT_MOTOR_B=0;

}

#define turn_back_left

{

LEFT_MOTOR_F =0;

LEFT_MOTOR_B =4000;

RIGHT_MOTOR_F =4000;

RIGHT_MOTOR_B=0;

delay_ms(800);

delay_ms(800);

delay_ms(400);

LEFT_MOTOR_B=0;

RIGHT_MOTOR_F=0;

}

#define stop

{

LEFT_MOTOR_F =0;

LEFT_MOTOR_B =0;

RIGHT_MOTOR_F =0;

RIGHT_MOTOR_B =0;

}

//几个机器人基本动作的宏定义

由于采用向下计数的方式,CCR中的值代表相应引脚高电平持续时间长度,响应值越大,PWM占空比越大,驱动电机转速越

快。

(2)机器人对外界的感知及相应中断服务程序的编写:#include"exti.h"

void EXTIX_Init(void)

{

RCC->APB2ENR|=1<<2;

JTAG_Set(JTAG_SWD_DISABLE);

GPIOA->CRL&=0XFF00FFF0;

GPIOA->CRL|=0X00880008;

GPIOA->CRH&=0X0FFFFFFF;

GPIOA->CRH|=0X80000000;

GPIOA->ODR|=(1<<0);

Ex_NVIC_Config(GPIO_A,0,FTIR);

Ex_NVIC_Config(GPIO_A,4,RTIR);

Ex_NVIC_Config(GPIO_A,5,RTIR);

Ex_NVIC_Config(GPIO_A,15,RTIR);

MY_NVIC_Init(2,1,EXTI0_IRQChannel,4);

MY_NVIC_Init(3,1,EXTI4_IRQChannel,4);

MY_NVIC_Init(4,1,EXTI9_5_IRQChannel,4);

MY_NVIC_Init(1,1,EXTI15_10_IRQChannel,4);

}

GPIOA的配置,使能相关时钟,并将PA0,PA4,PA5,PA1设为

输入引脚,并设置好中断优先级。

void EXTI0_IRQHandler(void)

{

delay_ms(100);

if(KEY0==0)

{

LED1=0;

LED2=0;

go_back;

delay_ms(800);

turn_back_right;

}

LED1=1;

LED2=1;

EXTI->PR=1<<0;

}

前向红外传感器触发的中断服务程序,当PA0出现下降沿时,代表机器人前方已经出现了障碍物,此时执行向右掉头的动作。

void EXTI4_IRQHandler(void)

{

delay_ms(100);

if(KEY4==1)

{

LED1=0;

flag=1;

go_back;delay_ms(400);

turn_left;delay_ms(400);

}

LED1=1;

EXTI->PR=1<<4;

}

右侧碰撞开关触发外部中断,消抖后判断是否确实发生碰撞,如果是,则机器人应向左校正航向。

void EXTI9_5_IRQHandler(void)

{

delay_ms(100);

if(KEY5==1)

{

LED2=0;

flag=2;

go_back;delay_ms(400);

turn_right;delay_ms(400);

}

LED2=1;

EXTI->PR=1<<5;

}

左侧碰撞开关触发外部中断,消抖后判断是否确实发生碰撞,如果是,则机器人应向右校正航向。

void EXTI15_10_IRQHandler(void)

{

delay_ms(100);

if(KEY15==1)

{

turn_left_90;

while(KEY0==1)

{

go_forward;

delay_ms(100);

}

go_back;

delay_ms(600);

turn_left_90;

while(KEY15==1)

{

if(KEY5==1)

{

go_back;delay_ms(400);

turn_right;delay_ms(400);

}

if (KEY4==1)

{

go_back;delay_ms(400);

turn_left;delay_ms(400);

}

else {go_forward;}

delay_ms(100);

}

delay_ms(1000);

}

EXTI->PR=1<<15;

}//PA15出现下降沿,代表机器人前进方向的左侧出现了缺口,应当执行向左转向的操作。

注:中断程序中部分变量的宏定义如下

#define KEY0 PAin(0)

#define KEY4 PAin(4)

#define KEY5 PAin(5)

#define KEY15 PAin(15)

(3)主程序设计:

首先进行初始化,调用实现写好的函数使能相关时钟,配置相关引脚的功能,使得PWM模块能正常工作,对NVIC进行设置,使得四个由传感器触发外部中断能共正常工作。

进行初始化后,在没有碰撞开关,机器人前方没有障碍,左侧没有缺口的情况下,外部中断都不触发,机器人应该保持向前行走的状态,程序如下:

#include "test.h"

int flag=0;

u8 mode='0';

float distance=0;

int main(void)

{

Stm32_Clock_Init(9);

delay_init(72);

uart_init(72,9600);

PWM_Init(10000,0);

EXTIX_Init();

led_int();

while(1)

{

go_forward;

}

}

(4)程序流程图说明:

工业机器人设计(大四机器人课设作业)(DOC)

“工业机器人”设计大作业 作品题目:货物装卸机器人 专业:机械设计制造及其自动化 姓名:班级:学号: 姓名:班级:学号: 姓名:班级:学号: 指导教师:陈明

1 前言 货物装卸作业是指用一种设备握持工件,是指从一个加工位置移到另一个加工位置。货物装卸机器人可安装不同的末端执行器以完成各种不同形状和状态的工件货物装卸工作,大大减轻了人类繁重的体力劳动。目前世界上使用的货物装卸机器人愈10 万台,被广泛应用于机床上下料、冲压机自动化生产线、自动装配流水线、码垛货物装卸、集装箱等的自动货物装卸。部分发达国家已制定出人工货物装卸的最大限度,超过限度的必须由货物装卸机器人来完成。装卸货物装卸是物流的功能要素之一,在物流系统中发生的频率很高 2 设计方案论证 本课题通过对货物装卸机器人工作对象及工作场所的分析研究,深入了解其工作是 如何进行,各部分零部件应该如何运行以及如何紧密配合,先确定其总体结构再对主要 零部件进行设计计算确定其尺寸大小以及确定电机型号。 2.1 基本思想 (1)设计要考虑要求和工作环境的限制。 (2)考虑到货物装卸货物时所需要精确度不是很高,为了简化结构,境地成本,采用 角铁焊接结构。 (3)为了满足设计要求,须设计三个独立的电机驱动系统,各部分之间通过计算 机控制、协调工作。 (4)本次设计只是该题目的机械部分,而对应控制部件的考虑较少。 3 仓库货物装卸机器人的设计计算 3.1 货物装载伸缩装置的设计 3.1.1 确定传动方案 我们所学的传动方式有以下几种:带传动、链传动、齿轮传动、蜗轮蜗杆传动和钢 丝绳传动等,一般地说,啮合传动传递功率的能力高于摩擦传动;蜗轮传动工作的发热 情况较为严重,因而传动的功率不宜过大;摩擦轮传动由于必须有足够的压紧力,故而 在传递同一圆周力时,其压轴力比齿轮传动的大几倍,因而不宜用于大功率传动。带传

工业机器人课程设计

河南机电高等专科学校《机器人应用技术》课程作品 设计说明书 作品名称:多功能机械手 专业:机电一体化技术 班级:机电124班 扣号: 姓名:流星 2014 年 10 月 1 日

目录 一课题概述 (2) 1、选题背景 (2) 2、发展现状和趋势 (3) 3、研究调研 (4) 二机械手组成及工作过程 (6) 1、整体结构分析 (6) 2、所需器材 (6) 3、底座部分 (8) 4、躯干部分 (9) 5、上臂部分 (10) 6、手爪部分 (11) 7、机械手系统的总调试 (12) 三软件部分 (13) 1、机械手软件编制流程图 (13) 2、机械手运行控制程序图 (14) 四设计体会 (15) 一课题概述 1、选题背景 随着我国经济的高速发展,各种电子产品和各种创新机械结构的出现,工业机器人的作用在装配制造业产业中的地位更加重要了。另一方面随着人们生活水平的提高传统制造产业劳动力生产成本进一

步提高,这也使企业意识到用高速准确的机械自动化生产代替传统人工操作的重要性。其中机械手是其发展过程中的重要产物之一,它不仅提高了劳动生产的效率,还能代替人类完成高强度、危险、重复枯燥的工作,减轻人类劳动强度,可以说是一举两得。在机械行业中,机械手越来越广泛的得到应用,它可用于零部件的组装,加工工件的搬运、装卸,特别是在自动化数控机床、组合机床上使用更为普遍。目前,机械手已发展成为柔性制造系统FMS和柔性制造单元FMC中一个重要组成部分。把机床设备和机械手共同构成一个柔性加工系统或柔性制造单元,可以节省庞大的工件输送装置,结构紧凑,而且适应性很强。但目前我国的工业机械手技术及其工程应用的水平和国外比还有一定的距离,应用规模和产业化水平低,机械手的研究和开发直接影响到我国机械行业自动化生产水平的提高,从经济上、技术上考虑都是十分必要的。因此,进行机械手的研究设计具有重要意义。 在这样一个大的背景下结合自己的专业机电一体化,我们选择多功能机械手来作为我们的设计题目。结合专业特点使用德国慧鱼机器人教学模型作为我们实现这一课题的元件。利用慧鱼模型的各种机械结构组装出机械手的机械部分,用pc编程实现对机械手的自动控制,利用限位开关来保护电机和控制机械手位置的准停。 这个课题可以充分的体现机电一体化的由程序自动控制机械结构的运动,对自己以前的所学的课程也是一种巩固。另一方面这个机械手可以实现一定的搬运功能具有很强的实用性能。 2、发展现状和趋势

工业机器人课程设计说明书

工业机器人课程设计基于Matlab的工业机器人运动学和雅克比运动分析 班级: 学号 姓名:

目录 摘要 ..................................................................................................................................................... - 2 - PUMA560机器人简介 ...................................................................................................................... - 3 - 一、PUMA560机器人的正解 .......................................................................................................... - 4 - 1.1、确定D-H 坐标系 .................................................................................................................... - 4 - 1.2、确定各连杆D-H 参数和关节变量 ........................................................................................ - 4 - 1.3、求出两杆间的位姿矩阵 ......................................................................................................... - 4 - 1.4、求末杆的位姿矩阵 ................................................................................................................. - 5 - 1.5、M A TLAB 编程求解 .................................................................................................................. - 6 - 1.6、验证 ......................................................................................................................................... - 6 - 二、PUMA560机器人的逆解 .......................................................................................................... - 7 - 2.1、求1θ ........................................................................................................................................ - 7 - 2.2、求3θ ........................................................................................................................................ - 7 - 2.3、求2θ ........................................................................................................................................ - 8 - 2.4、求4θ ........................................................................................................................................ - 9 - 2.5、求5θ ........................................................................................................................................ - 9 - 2.6、求 6 θ ...................................................................................................................................... - 10 - 2.7、解的多重性 ........................................................................................................................... - 10 - 2.8、M A TLAB 编程求解 ................................................................................................................ - 10 - 2.9、对于机器人解的分析 ........................................................................................................... - 10 - 三、机器人的雅克比矩阵 ............................................................................................................... - 11 - 3.1、定义 ....................................................................................................................................... - 11 - 3.2、雅可比矩阵的求法 ............................................................................................................... - 11 - 3.3、微分变换法求机器人的雅可比矩阵 ................................................................................... - 12 - 3.4、矢量积法求机器人的雅克比矩阵 ....................................................................................... - 13 - 3.5、M A TLAB 编程求解 ................................................................................................................ - 14 - 附录 ................................................................................................................................................... - 15 - 1、M ATLAB 程序 ........................................................................................................................... - 15 - 2、三维图 ...................................................................................................................................... - 24 -

机器人课程设计报告范例

机器人课程设计报告范例

**学校 机器人课程设计名称 院系电子信息工程系 班级10电气3 姓名谢士强 学号107301336 指导教师宋佳

目录 第一章绪论 (2) 1.1课程设计任务背景 (2) 1.2课程设计的要求 (2) 第二章硬件设计 (3) 2.1 结构设计 (3) 2.2电机驱动 (4) 2.3 传感器 (5) 2.3.1光强传感器 (5) 2.3.2光强传感器原理 (6) 2.4硬件搭建 (7) 第三章软件设计 (8) 3.1 步态设计 (8) 3.1.1步态分析: (8) 3.1.2程序逻辑图: (9) 3.2 用NorthStar设计的程序 (10) 第四章总结 (12) 第五章参考文献 (13)

第一章绪论 1.1课程设计任务背景 机器人由机械部分、传感部分、控制部分三大部分组成.这三大部分可分成驱动系统、机械结构系统、感受系统、机器人一环境交互系统、人机交互系统、控制系统六个子系统现在机器人普遍用于工业自动化领域,如汽车制造,医疗领域,如远程协助机器人,微纳米机器人,军事领域,如单兵机器人,拆弹机器人,小型侦查机器人(也属于无人机吧),美国大狗这样的多用途负重机器人,科研勘探领域,如水下勘探机器人,地震废墟等的用于搜查的机器人,煤矿利用的机器人。如今机器人发展的特点可概括为:横向上,应用面越来越宽。由95%的工业应用扩展到更多领域的非工业应用。像做手术、采摘水果、剪枝、巷道掘进、侦查、排雷,还有空间机器人、潜海机器人。机器人应用无限制,只要能想到的,就可以去创造实现;纵向上,机器人的种类会越来越多,像进入人体的微型机器人,已成为一个新方向,可以小到像一个米粒般大小;机器人智能化得到加强,机器人会更加聪明 1.2课程设计的要求 设计一个机器人系统,该机器人可以是轮式、足式、车型、人型,也可 以是仿其他生物的,但该机器人应具备的基本功能为:能够灵活行进,能感知光源、转向光源并跟踪光源;另外还应具备一项其他功能,该功能可自选(如亮灯、按钮启动、红外接近停止等)。 具体要求如下: 1、根据功能要求进行机械构型设计,并用实训套件搭建实物。 2、基于实训套件选定满足功能要求的传感器; 3、设计追光策略及运动步态; 4、用NorthStar设计完整的机器人追光程序;

工业机器人课程设计--多功能机械手-精品

《机器人应用技术》课程作品 设计说明书 作品名称:多功能机械手 专业:机电一体化技术 班级:机电124班 2014 年10 月1 日

目录 一课题概述 (2) 1、选题背景 (2) 2、发展现状和趋势 (3) 3、研究调研 (4) 二机械手组成及工作过程 (6) 1、整体结构分析 (6) 2、所需器材 (6) 3、底座部分 (8) 4、躯干部分 (9) 5、上臂部分 (10) 6、手爪部分 (11) 7、机械手系统的总调试 (12) 三软件部分 (13) 1、机械手软件编制流程图 (13) 2、机械手运行控制程序图 (14) 四设计体会 (15)

一课题概述 1、选题背景 随着我国经济的高速发展,各种电子产品和各种创新机械结构的出现,工业机器人的作用在装配制造业产业中的地位更加重要了。另一方面随着人们生活水平的提高传统制造产业劳动力生产成本进一步提高,这也使企业意识到用高速准确的机械自动化生产代替传统人工操作的重要性。其中机械手是其发展过程中的重要产物之一,它不仅提高了劳动生产的效率,还能代替人类完成高强度、危险、重复枯燥的工作,减轻人类劳动强度,可以说是一举两得。在机械行业中,机械手越来越广泛的得到应用,它可用于零部件的组装,加工工件的搬运、装卸,特别是在自动化数控机床、组合机床上使用更为普遍。目前,机械手已发展成为柔性制造系统FMS和柔性制造单元FMC中一个重要组成部分。把机床设备和机械手共同构成一个柔性加工系统或柔性制造单元,可以节省庞大的工件输送装置,结构紧凑,而且适应性很强。但目前我国的工业机械手技术及其工程应用的水平和国外比还有一定的距离,应用规模和产业化水平低,机械手的研究和开发直接影响到我国机械行业自动化生产水平的提高,从经济上、技术上考虑都是十分必要的。因此,进行机械手的研究设计具有重要意义。 在这样一个大的背景下结合自己的专业机电一体化,我们选择多功能机械手来作为我们的设计题目。结合专业特点使用德国慧鱼机器人教学模型作为我们实现这一课题的元件。利用慧鱼模型的各种机械结构组装出机械手的机械部分,用pc编程实现对机械手的自动控制,

机器人课程设计报告

机器人课程设计报 告

智能机器人课程设计 总结报告 姓名: 组员: 指导老师: 时间:

一、课程设计设计目的 了解机器人技术的基本知识以及有关电工电子学、单片机、机械设计、传感器等相关技术。初步掌握机器人的运动学原理、基于智能机器人的控制理论,并应用于实践。经过学习,具体掌握智能机器人的控制技术,并使机器人能独立执行一定的任务。 基本要求:要求设计一个能走迷宫(迷宫为立体迷宫)的机器人。要求设计机器人的行走机构,控制系统、传感器类型的选择及排列布局。要有走迷宫的策略(软件流程图)。对于走迷宫小车控制系统设计主要有几个方面:控制电路设计,传感器选择以及安放位置设计,程序设计 二、总体方案 2.1 机器人的寻路算法选择 将迷宫看成一个m*n的网络,机器人经过传感器反馈的信息感知迷宫的形状,并将各个节点的与周围节点的联通性信息存储于存储器中,再根据已经构建好的地图搜索离开迷宫的路径。这里可选择回溯算法。对每个网格从左到右,每个网格具有4个方向,分别定义。并规定机器人行进过程中不停探测前方是否有障碍物,同时探测时按左侧规则,进入新网格后优先探测当前方向的左侧方向。探测过程中记录每个网格的四个方向上的状态:通路、不通或未知,探测得到不同状态后记记录,同时记录当前网

格的四个方向是否已被探测过。若某网格四个方向全部探测过则利用标志位表示该网格已访问。为了寻找到从起点到终点的最佳路径,记录当前网格在四个方向上的邻接网格序号,由此最后可在机器人已探测过的网格中利用Dijkstra算法找到最佳路径。并为计算方便,记录网格所在迷宫中行号、列号。并机器人探索过程中设置一个回溯网格栈记录机器人经过的迷宫网格序号及方向,此方向是从一个迷宫网格到下一个迷宫网格经过的方向。设置一个方向队列记录机器人在某网格内探测方向的顺序。设置一个回溯路径数组记录需要回溯时从回溯起点到回溯终点的迷宫网格序号及方向。 考虑到迷宫比较简单,且主要为纵横方向的直线,可采用让小车在路口始终左转或者始终右转的方法走迷宫,也就是让小车沿迷宫的边沿走。这样最终也能走出迷宫。本次课程设计采用此方法。即控制策略为机器人左侧有缺口时,向左进入缺口,当机器人前方有障碍是,向右旋转180°,其余情况保持前进。 2.2 传感器的选择 由于需要检测机器人左侧和前方是否有通路,采用红外传感器对机器人行进方向和左侧进行感知。红外避障传感器是依据红外线的反射来工作的。当遇到障碍物时,发出的红外线被反射面反射回来,被传感器接收到,信号输出引脚就会给出低电平提示信号。本机器人系统的红外避障信号采用直接检测的方式进行,直接读取引脚电平。传感器感应障碍物的距离阈值能够经过调节

机器人课程设计

沈阳工程学院 课程设计 设计题目:三自由度微型直角坐标工业机器人模型设计 系别自控系班级测本081 学生姓名步勇捷学号 2008310110 指导教师祝尚臻职称讲师 起止日期:2012年 1 月 2 日起——至 2012 年 1 月13 日止 - I -

沈阳工程学院 课程设计任务书 课程设计题目:三自由度直角坐标工业机器人设计 系别自动控制工程系班级 学生姓名学号 指导教师职称讲师 课程设计进行地点: F430 任务下达时间: 2011年 12月31日 起止日期:2012 年 1 月2日起——至 2012 年 1 月13日止教研室主任年月日批准 - II -

三自由度直角坐标工业机器人设计 1 设计主要内容及要求 1.1 设计目的: 1了解工业机器人技术的基本知识以及单片机、机械设计、传感器等相关技术。 2初步掌握工业机器人的运动学原理、传动机构、驱动系统及控制系统并应用于工业机器人的设计中。3通过学习,掌握工业机器人的驱动机构、控制技术,并使机器人能独立执行一定的任务。 1.2 基本要求 1要求设计一个微型的三自由度的直角坐标工业机器人; 2要求设计机器人的机械机构(示意图),传动机构、控制系统、及必需的内外部传感器的种类和数量布局。 3要有控制系统硬件设计电路。 1.3 发挥部分 自由发挥 2 设计过程及论文的基本要求: 2.1 设计过程的基本要求 (1)基本部分必须完成,发挥部分可任选; (2)符合设计要求的报告一份,其中包括总体设计框图、电路原理图各一份; (3)设计过程的资料保留并随设计报告一起上交;报告的电子档需全班统一存盘上交。 2.2 课程设计论文的基本要求 (1)参照毕业设计论文规范打印,包括附录中的图纸。项目齐全、不许涂改,不少于3000字。图纸为A4,所有插图不允许复印。 (2)装订顺序:封面、任务书、成绩评审意见表、中文摘要、关键词、目录、正文(设计题目、设计任务、设计思路、设计框图、各部分电路及相应的详细的功能分析和重要的参数计算、工作过程分析、元器件清单、主要器件介绍)、小结、参考文献、附录(总体设计框图与电路原理图)。 3 时间进度安排 顺序阶段日期计划完成内容备注 1 2012.1. 2 讲解主要设计内容,布置任务打分 2 2012.1. 3 检查框图及初步原理图完成情况,讲解及纠正错误打分 3 2012.1. 4 检查机械结构设计并指出错误及纠正;打分 4 2012.1. 5 继续机械机构和传动机构设计打分 5 2012.1. 6 进行控制系统设计打分 6 2012.1.9 检查控制系统原理图设计草图打分 7 2012.1.10 完善并确定控制系统打分 8 2012.1.11 指导学生进行驱动机构的选择打分 9 2012.1.12 进行传感器的选择和软件流程设计打分 10 2012.1.13 检查任务完成情况并答辩打分 - III -

工业机器人课程设计

河南机电高等专科学校 《机器人应用技术》课程作品 设计说明书 作品名称:多功能机械手 专业:机电一体化技术 班级:机电124班 扣号:1534542251 姓名:流星 2014 年10 月1 日

目录 一课题概述 (2) 1、选题背景 (2) 2、发展现状和趋势 (3) 3、研究调研 (4) 二机械手组成及工作过程 (6) 1、整体结构分析 (6) 2、所需器材 (6) 3、底座部分 (8) 4、躯干部分 (9) 5、上臂部分 (10) 6、手爪部分 (11) 7、机械手系统的总调试 (12) 三软件部分 (13) 1、机械手软件编制流程图 (13) 2、机械手运行控制程序图 (14) 四设计体会 (15)

一课题概述 1、选题背景 随着我国经济的高速发展,各种电子产品和各种创新机械结构的出现,工业机器人的作用在装配制造业产业中的地位更加重要了。另一方面随着人们生活水平的提高传统制造产业劳动力生产成本进一步提高,这也使企业意识到用高速准确的机械自动化生产代替传统人工操作的重要性。其中机械手是其发展过程中的重要产物之一,它不仅提高了劳动生产的效率,还能代替人类完成高强度、危险、重复枯燥的工作,减轻人类劳动强度,可以说是一举两得。在机械行业中,机械手越来越广泛的得到应用,它可用于零部件的组装,加工工件的搬运、装卸,特别是在自动化数控机床、组合机床上使用更为普遍。目前,机械手已发展成为柔性制造系统FMS和柔性制造单元FMC中一个重要组成部分。把机床设备和机械手共同构成一个柔性加工系统或柔性制造单元,可以节省庞大的工件输送装置,结构紧凑,而且适应性很强。但目前我国的工业机械手技术及其工程应用的水平和国外比还有一定的距离,应用规模和产业化水平低,机械手的研究和开发直接影响到我国机械行业自动化生产水平的提高,从经济上、技术上考虑都是十分必要的。因此,进行机械手的研究设计具有重要意义。 在这样一个大的背景下结合自己的专业机电一体化,我们选择多功能机械手来作为我们的设计题目。结合专业特点使用德国慧鱼机器人教学模型作为我们实现这一课题的元件。利用慧鱼模型的各种机械结构组装出机械手的机械部分,用pc编程实现对机械手的自动控制,

机器人课程设计报告范例

**学校 机器人课程设计名称 院系电子信息工程系 班级10电气3 姓名谢士强 学号107301336 指导教师宋佳

目录 第一章绪论 (2) 1.1课程设计任务背景 (2) 1.2课程设计的要求 (2) 第二章硬件设计 (3) 2.1 结构设计 (3) 2.2电机驱动 (4) 2.3 传感器 (5) 2.3.1光强传感器 (5) 2.3.2光强传感器原理 (6) 2.4硬件搭建 (7) 第三章软件设计 (8) 3.1 步态设计 (8) 3.1.1步态分析: (8) 3.1.2程序逻辑图: (9) 3.2 用NorthStar设计的程序 (9) 第四章总结 (11) 第五章参考文献 (12)

第一章绪论 1.1课程设计任务背景 机器人由机械部分、传感部分、控制部分三大部分组成.这三大部分可分成驱动系统、机械结构系统、感受系统、机器人一环境交互系统、人机交互系统、控制系统六个子系统现在机器人普遍用于工业自动化领域,如汽车制造,医疗领域,如远程协助机器人,微纳米机器人,军事领域,如单兵机器人,拆弹机器人,小型侦查机器人(也属于无人机吧),美国大狗这样的多用途负重机器人,科研勘探领域,如水下勘探机器人,地震废墟等的用于搜查的机器人,煤矿利用的机器人。如今机器人发展的特点可概括为:横向上,应用面越来越宽。由95% 的工业应用扩展到更多领域的非工业应用。像做手术、采摘水果、剪枝、巷道掘进、侦查、排雷,还有空间机器人、潜海机器人。机器人应用无限制,只要能想到的,就可以去创造实现;纵向上,机器人的种类会越来越多,像进入人体的微型机器人,已成为一个新方向,可以小到像一个米粒般大小;机器人智能化得到加强,机器人会更加聪明 1.2课程设计的要求 设计一个机器人系统,该机器人可以是轮式、足式、车型、人型,也可以是仿其他生物的,但该机器人应具备的基本功能为:能够灵活行进,能感知光源、转向光源并跟踪光源;另外还应具备一项其他功能,该功能可自选(如亮灯、按钮启动、红外接近停止等)。 具体要求如下: 1、根据功能要求进行机械构型设计,并用实训套件搭建实物。 2、基于实训套件选定满足功能要求的传感器; 3、设计追光策略及运动步态; 4、用NorthStar设计完整的机器人追光程序; 5、调试; 6、完成课程设计说明书,内容:方案设计、硬件搭建过程(附照片)、控制 算法流程、程序编写、调试结果、心得体会。

智能扫地机器人课程设计

1、课题背景及研究的目的和意义 1.1课题背景 扫地机器人是服务机器人的一种,可以代替人进行清扫房间、车间、墙壁等。提出一种应用于室内的移动清洁机器人的设计方案。其具有实用价值。室内清洁机器人的主要任务是能够代替人进行清扫工作,因此需要有一定的智能。清洁机器人应该具备以下能力:能够自我导航,检测出墙壁,房间内的障碍物并且能够避开;能够走遍房间的大部分空间,可以检测出电池的电量并且能够自主返回充电,同时要求外形比较紧凑,运行稳定,噪音小;要具有人性化的接口,便于操作和控制。结合扫地机器人主要功能探讨其控制系统的硬件设计。 1.2研究目的和意义 国家农业智能装备工程技术研究中心邱权博士介绍说,扫地机器人可以看作是一种智能吸尘器,通过其基于传感器检测的智能运动规划算法使原本由人操作的吸尘器成为一个可自主运行的智能化设备。它通过各种传感器,比如碰撞开关、红外接近开关、超声传感器、摄像头等,来感知自身的位置和状态,通过智能算法决定当前的任务状态。它可以根据某个传感器检验地面清洁程度,根据历史信息确定哪些区域已经打扫过,它的充电座会发出红外线信息,在电量低于一定值后,它开始寻找红外信息来自动充电。防跌落是基于机器人底部所安装的红外传感器检测地面的距离,当距离发生变化时机器人将停止并改变路线。由于扫

地机器人是一个智能化产品, 1.3工作原理 扫地机器人机身为可移动装置,机器人依托红外识别以及超声波测距从而避障,配合芯片控制内部电机转动以及内部真空环境吸尘,通过路线设计,在室内自由行走,由中央主刷旋转清扫,并且辅以边刷,沿直线或者之字形活动路径打扫。 2、设计要求与内容 1)以 AT89S52系列单片机为核心设计移动清扫机器人电机驱动与控制电路,采用红外传感器和超声波传感器完成障碍物检测电路设计,完成充电站检测电路设计,完成避障算法与路径规划算法设计。 2)按键选择清扫模式和充电模式。 3)显示方式LED 显示当前时间和机器人当前工作状态。 3、系统方案设计 3.1设计任务 1)利用AT89S52处理器编程实现电机驱动。 2)液晶显示扫地机器人的内部参数。 3)当扫地机器人显示电量不足时,无线模块发送命令到充电桩,开始进行充电模式,此时红外发射光线充电桩与扫地机器人充电接口对接,此

机器人课程设计说明书

机器人课程设计说明书 指导教师: 院系: 班级:

: 学号:

一、课程设计的容 1、目的和意义 机器人涉及机械、电子、传感、控制等多个领域和学科。本课程设计是在《机器人学》课程的基础上,利用多传感技术、控制技术实现机器人控制系统的综合与应用,达到锻炼学生综合设计能力的目的。让我们把理论与实践结合起来,掌握更多技能。 2、设计容 (一)、机器人硬件 本课程设计使用实验室已有的移动机器人。机器人有两个驱动轮、一个从动轮,驱动轮由舵机直接驱动。机器人控制器为89S52单片机。机器人结构图如图1所示。 图1 机器人结构简图

(二)、设计任务 利用多传感器技术,实现对机器人的轨迹规划及控制。具体为:控制机器人在规定的场地避开障碍物走遍整个场地。 二C51单片机编程环境与机器人智能 1、单片机与C51系列单片机 (一)、单片机 单片机是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计时器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的微型计算机系统,在工业控制领域的广泛应用。从上世纪80年代,由当时的4位、8位单片机,发展到现在的32位300M的高速单片机。 (二)、C51系列单片机 MCS51是指由美国INTEL公司生产的一系列单片机的总称。这一系列单片机包括了好些品种,如8031,8051,8751等,其中8051是最典型的产品,该系列单片机都是在8051的基础上进行功能的增、减、改变而来的。 本课程设计所用的AT89S52单片机是在此基础上改进而来的。AT89S52是一种高性能、低功耗的8位单片机,含8k字节ISP可反复擦写1000次的FLASH只读程序存储器,兼容标准MCS51指令系统及其引脚结

智能机器人课程设计报告[资料]

智能机器人课程设计报告[资料] 天津师范大学 计算机与信息工程学院 课程设计报告 课程名称: 机器人设计 设计题目: 专业: 信息工程 班级: 08(1)班 组别: 学生姓名: 吴雪萍学号: 08509205 起止日期: 2011年3月1日 ~ 2011年 7月1日 指导教师: 刘岩恺梁景莲 同组人员: 课程设计题目机器人设计实验 姓名吴雪萍学号 08509205 班级 08信息(1)班 班级专业信息工程 组别组长组员 指导教师刘岩恺梁景莲 课程 设计设计家庭组机器人和机器人行走目的 课程 设计Vc++ 环境

课程 设计 任务用C++语言设计一个颜色识别的程序和一个机器人行走程序 和要 求 课程设计内容描述: 1(绪论 通过学习机器人设计2课程~学会了家庭组机器人和足球机器人的一些理论知识。了解了机器人方向识别~动手调试了全景摄像头和前置摄像头~设置了场地、球门、白线、足球等的颜色数值。 2. 颜色识别的产生 结合梁老师给的人脸识别程序~通过改变人脸模型建立颜色识别程序。 3. 平台的选择及搭建 根据刘老师给的参考资料~首先安装了DirectX9.0 SDK和Visual C++软件~然后一步步的按照老师所给的步骤~先建立基本界面~接着编制串口通讯控制机器人 的程序~读取距离传感器信息等~最后得出了机器人行走程序如下。 课程设计源程序: 机器人行走 // VoyTestDlg.cpp : implementation file // #include "stdafx.h" #include "VoyTest.h" #include "VoyTestDlg.h" #ifdef _DEBUG

慧鱼机器人课程设计说明书。

慧鱼机器人 一、概述 1.1机电一体化技术 1.1.1机电一体化技术的定义和内容 机电一体化技术综合应用了机械技术、计算机与信息技术、系统技术、自动控制技术、传感检测技术、伺服传动技术,接口技术及系统总体技术等群体技术,从系统的观点出发,根据系统功能目标和优化组织结构目标,以智能、动力、结构、运动和感知等组成要素为基础,对各组成要素及相互之间的信息处理、接口耦合、运动传递、物质运动、能量变换机理进行研究,使得整个系统有机结合与综合集成,并在系统程序和微电子电路的有序信息流控制下,形成物质和能量的有规则运动,在高质量、高精度、高可靠性、低能耗意义上实现多种技术功能复合的最佳功能价值的系统工程技术。 1.1.2机电一体化系统组成 1.机械本体机械本体包括机架、机械连接、机械传动等,它是机电一体化的基础,起着 支撑系统中其他功能单元、传递运动和动力的作用。 2.检测传感部分检测传感部分包括各种传感器及其信号检测电路,其作用就是检测机电 一体化系统工作过程中本身和外界环境有关参量的变化,并将信息传递 给电子控制单元,电子控制单元根据检查到的信息向执行器发出相应的 控制。 3.电子控制单元电子控制单元是机电一体化系统的核心,负责将来自各传感器的检测信 号和外部输入命令进行集中、存储、计算、分析,根据信息处理结果, 按照一定的程度和节奏发出相应的指令,控制整个系统有目的地进行。 4.执行器执行器的作用是根据电子控制单元的指令驱动机械部件的运动。执行器是运动 部件,通常采用电力驱动、气压驱动和液压驱动等几种方式。 5.动力源动力源是机电一体化产品能量供应部分,是按照系统控制要求向机械系统提供 能量和动力使系统正常运行。提供能量的方式包括电能、气能和液压能。

人工智能课程设计(五子棋)解读

《人工智能导论》课程报告 课题名称:五子棋 姓名: X X 学号:114304xxxx 课题负责人名(学号): X X114304xxxx 同组成员名单(学号、角色): x x1143041325 XXX1143041036 指导教师:张建州 评阅成绩: 评阅意见: 提交报告时间:2014年 1 月 9 日

五子棋 计算机科学与技术专业 学生XXX 指导老师张建州 [摘要]人类之所以不断在进步,是因为我们人类一直不断的在思考,五子棋游戏程序的开发符合人类进步也是促进人类进步的一大动力之一。五子棋游戏程序让人们方便快捷的可以下五子棋,让人们在何时都能通过下棋来提高逻辑思维能力,同时也培养儿童的兴趣以及爱好,让孩子更加聪明。 同时,五子棋游戏程序的开发也使得五子棋这个游戏得到了广泛的推广,让世界各地的人们知道五子棋,玩上五子棋,这已经不是局限。五子棋游戏程序使得越来越多的人喜欢上了五子棋,热爱下五子棋,它是具有很好的带动性的。 关键词:五子棋进步思考

目录 《人工智能导论》课程报告 0 1 引言 (3) 1.1五子棋简介 (3) 1.2 五子棋游戏的发展与现状 (3) 2 研究问题描述 (4) 2.1 问题定义 (4) 2.2 可行性研究 (4) 2.3 需求分析 (5) 2.4 总体设计 (5) 2.5 详细设计 (6) 2.6编码和单元测试 (6) 3 人工智能技术 (6) 4 算法设计 (7) 4.1α-β剪枝算法 (7) 4.2极大极小树 (7) 4.3深度优先搜索(DFS) (8) 4.4静态估值函数 (9) 5 软件设计和实现 (9) 5.1 数据结构定义 (9) 5.2 程序流程图 (17) 6 性能测试 (18) 6.1 程序执行结果 (18) 7 总结 (21) 参考文献 (21)

机器人课程设计说明书

课程设计说明书设计名称:机器人课程设计 题目:自动分货机 学生姓名: 专业:机械设计制造及其自动化 班级: 13机械3班 学号: 指导教师: 日期: 2016 年 1 月 15 日

课程设计任务书 机械设计制造及其自动化专业 13 年级机械3 班 一、设计题目 自动分货机 二、主要内容 利用德国慧鱼公司的“智能创意教具”模型,设计、装配出较有创意的机构或机械设备模型,使用可编程控制器PLC编写控制程序,实现对模型工作状态的正确控制。 三、具体要求 1.查阅资料,复习先修课程(如:机电传动控制,数控技术、机械原理、机械设计等); 2.熟悉慧鱼模型组件,设计装配出较有创意的机构模型; 3.学习可编程控制器PLC相关内容; 4.编制PLC控制程序,实现对模型的正确控制; 5.整理和撰写设计说明书(不少于1500字,图表除外)。 四、进度安排 本课程设计的计划时间为2周,按10个工作日计算,进度安排如下: 1、查阅资料,熟悉模型组件,设计装配出较有创意的机构模型2天 2、学习可编程控制器PLC相关内容2天 3、完成机械模型与PLC的接线设计,编制控制程序3天 4、完成整体调试0.5天 5、撰写设计说明书2天 6、验收及其它0.5天

五、完成后应上交的材料 1.设计说明书1份,主要内容如下: ●课程设计的主要内容和任务; ●机构模型的原理图(或实体图),以及模型的工作原理; ●机械模型与PLC的接线设计,PLC的程序设计; ●结论及心得体会; ●参考文献。 2.将设计程序和模型图片,或模型工作过程的录像(最佳)整理好,刻录光盘统一上交。 六、总评成绩 指导教师签名日期年月日 系主任审核日期年月日

管道机器人设计—课程设计

前言 (ⅰ) 目录 (ⅱ) 中文摘要 (ⅲ) 第一章概述 (1) 1.1机器人概述 (1) 1.2管道机器人概述 (3) 1.3国内外管道机器人的发展 (4) 1.3.1国内管道机器人的发展 (4) 1.3.2国外管道机器人的发展 (6) 1.4 机器人的发展景 (8) 第二章总体方案的制定与比较 (10) 2.1 管道机器人设计参数和技术指标 (10) 2.2总体结构的设计和较 (10) 第三章部件的设计和算 (15) 3.1 管道机器人工作量算 (15) 3.3 撑开机构和放大杆组的计 (24) 第四章其他 (32) 5.1 大小锥齿轮的设计和核 (32) 5.2 轴Ⅰ的设计和核 (35) 5.3 键的校核 (44)

在工农业生产及日常生活中,管道应用范围极为广泛。在管道的使用过程中,会产生管道堵塞与管道故障和损伤,需要定期维护、检修等。但管道所处的环境往往是人们不易达到或者不允许人们直接进入,所以开发管道机器人就显得尤为重要。 以金属冶炼厂管道清洁机器人为研究目标,根据其工作环境和技术要求设计了一种可适应φ700mm-φ1000mm管道的管道清洁机器人。该管道机器人采用三履带式的可伸缩行走装置,操作装置为2个自由的的操作臂,末端操作器上安装有吸尘头,吸尘头吸起的灰尘通过吸尘软管收集在装灰箱体内。当灰尘装满后,机器人行走到倒灰口,打开卸料门,将灰尘倒掉。本次设计主要对管道清洁机器人进行结构设计,利用三维参数化特征建模软件Pro/Engineer建立了管道清洁机器人的三维模型,生成了机器人主要零部件的工程图。对管道机器人中的主要机构进行动态仿真,验证了所设计机构的正确性。最后对主要零部件进行了设计校核计算,并简单叙述了该机器人控制方案。 第一章概述 1. 1 机器人概述 机器人----这一词最早使用始于1920年至1930年期间在捷克作家凯勒尔* 凯佩克(Karel capek)的名为"罗莎姆的万能机器人"的幻想剧中,

A-算法人工智能课程设计

人工智能(A*算法) 一、 A*算法概述 A*算法是到目前为止最快的一种计算最短路径的算法,但它一种‘较优’算法,即它一般只能找到较优解,而非最优解,但由于其高效性,使其在实时系统、人工智能等方面应用极其广泛。 A*算法结合了启发式方法(这种方法通过充分利用图给出的信息来动态地作出决定而使搜索次数大大降低)和形式化方法(这种方法不利用图给出的信息,而仅通过数学的形式分析,如Dijkstra算法)。它通过一个估价函数(Heuristic Function)f(h)来估计图中的当前点p到终点的距离(带权值),并由此决定它的搜索方向,当这条路径失败时,它会尝试其它路径。 因而我们可以发现,A*算法成功与否的关键在于估价函数的正确选择,从理论上说,一个完全正确的估价函数是可以非常迅速地得到问题的正确解答,但一般完全正确的估价函数是得不到的,因而A*算法不能保证它每次都得到正确解答。一个不理想的估价函数可能会使它工作得很慢,甚至会给出错误的解答。 为了提高解答的正确性,我们可以适当地降低估价函数的值,从而使之进行更多的搜索,但这是以降低它的速度为代价的,因而我们可以根据实际对解答的速度和正确性的要求而设计出不同的方案,使之更具弹性。 二、 A*算法分析 众所周知,对图的表示可以采用数组或链表,而且这些表示法也各也优缺点,数组可以方便地实现对其中某个元素的存取,但插入和删除操作却很困难,而链表则利于插入和删除,但对某个特定元素的定位却需借助于搜索。而A*算法则需要快速插入和删除所求得的最优值以及可以对当前结点以下结点的操作,因而数组或链表都显得太通用了,用来实现A*算法会使速度有所降低。要实现这些,可以通过二分树、跳转表等数据结构来实现,我采用的是简单而高效的带优先权的堆栈,经实验表明,一个1000个结点的图,插入而且移动一个排序的链表平均需500次比较和2次移动;未排序的链表平均需1000次比较和2次移动;而堆仅需10次比较和10次移动。需要指出的是,当结点数n大于10,000时,堆将不再是正确的选择,但这足已满足我们一般的要求。

相关文档
相关文档 最新文档