您好,欢迎访问三七文档
当前位置:首页 > 机械/制造/汽车 > 综合/其它 > 关于导购机器人技术实现
关于导购机器人技术实现目录关于导购机器人技术实现.......................................................................................................1背景简介:...............................................................................................................................1模型建立:...............................................................................................................................1方案的建立:...........................................................................................................................2机械设计:...........................................................................................................................2电路实现:...........................................................................................................................3下位机程序:.......................................................................................................................6上位机程序:.....................................................................................................................15总结:.....................................................................................................................................56背景简介:总所周知,机器人技术作为20世纪人类最伟大的发明之一,在经历四十多年的发展已取得长足的进步。它的高速发展也提高了社会的生产水平和人类的生活质量。导购机器人作为服务型的机器人自然成为当今的研究热点。用导购机器人取代真人导购以实现更加人性化的操作,同时也可以提高工作效率。我们所实现的导购机器人要包含导购和跟随两个模式。前者为机器人引导购物者前往所需商品位置,待购物者取得商品后交与机器人,机器人将商品自动分类同时完成装袋;后者为购物者无明确的购物对象,机器人跟随购物者直到完成购物。最后引导购物者前往收银台并结账。模型建立:机器人实际模拟场地如下图所示:其中,为模拟最为真实的购物环境在场地摆放3个障碍物,且摆放位置为随机的,用以模拟真实购物环境中其他的购物者可能会将路径堵住,或者阻挡机器人前进。障碍物的摆放可以是在图中蓝线的任意位置当然实在不能将所有路径完全堵死的前提下。方案的建立:机械设计:机械上的几个关键方面,四轮驱动的底盘设计,电机的扭矩转速计算,分类装置,装袋装置,和最后的收银完成。采用四轮驱动对底盘存在如何实现四轮同时着地,防止打滑,以及转弯上的难题。为解决这些问题,我们在底盘安装上劲度系数较大的弹簧,利用弹簧变形实现四轮能够更好的同时着地,为防止打滑,我们相应的在轮子的外周包裹上一层摩擦系数较大的橡胶,至于四轮转弯可以采用经典的差速转弯法。电机扭矩参数为45kg*cm,电流为2A,主要由于机器过于笨重所以采用扭矩较大参数的电机。在此之前,我们也尝试了很多其他参数的电机都未能实现成功转弯。分类装置利用舵机控制中间平台的倾斜方向不同来实现。装袋装置则利用电磁铁将塑料袋吸紧,直到最后收银时,待丝杆将货物推至收银台上方时再断开吸力,并释放货物。Soliswork模型图如下:电路实现:总体而言,整个机器人电路主要有电源电路(包括24V锂电池,稳压范围2~36V电流6~8A的稳压模块及与其他功能元件连接),四轮相应的电机驱动模块(2A量程),四个用于测距和避障的超声波模块,两个驱动控制电磁铁的开关,两个步进电机驱动用于驱动丝杆传动,8个电磁铁,一个舵机,以及最核心的min-stem32型的单片机。电路总体框图稳压电路,如下图摄像头计算机单片机及其外围电路超声传感器舵机托盘分类跟随系统导购系统机器人前进距离计算,原先没有很好地考虑到码盘的安装问题,导致机器人架构搭好后,没法装码盘。因此最终只能利用单片机控制时间*机器人行走的平均速度,来初步测距;为最大程度上减小误差,加稳压模块将电源输出电压基本稳定在11.50V左右。虽然开环控制存在较大的误差,不过,开环也很大程度上使得控制更加灵活,例如:只要稍作修改即可使机器人很快适应不同的大小的场地。不再是仅仅针对模拟的场地。锂电池监控电路:超声波模块原理图:步进电机驱动原理图:下位机程序:主要代码:动作定义#includesys.h#includedianji.h#includedelay.h#includeaction.h#includeled.h//全速前进voidGo_Forward_F(void){Motor_L298N(Motor1,FULL_SPEED);Motor_L298N(Motor2,FULL_SPEED);Motor_L298N(Motor3,FULL_SPEED);Motor_L298N(Motor4,FULL_SPEED);}//中速前进voidGo_Forward_M(void){Motor_L298N(Motor1,ALMOST_SPEED+5);Motor_L298N(Motor2,ALMOST_SPEED+5);Motor_L298N(Motor3,ALMOST_SPEED);Motor_L298N(Motor4,ALMOST_SPEED);}//低速前进voidGO_Forward_D(void){Motor_L298N(Motor1,40);Motor_L298N(Motor2,40);Motor_L298N(Motor3,40);Motor_L298N(Motor4,40);}//全速后退voidGo_Back_F(void){Motor_L298N(Motor1,B_FULL_SPEED);Motor_L298N(Motor2,B_FULL_SPEED);Motor_L298N(Motor3,B_FULL_SPEED);Motor_L298N(Motor4,B_FULL_SPEED);}//中速后退voidGo_Back_M(void){Motor_L298N(Motor1,B_ALMOST_SPEED-5);Motor_L298N(Motor2,B_ALMOST_SPEED-5);Motor_L298N(Motor3,B_ALMOST_SPEED);Motor_L298N(Motor4,B_ALMOST_SPEED);}//左转voidTurn_Left(void){Motor_L298N(Motor1,-90);Motor_L298N(Motor2,-90);Motor_L298N(Motor3,90);Motor_L298N(Motor4,90);}//右转voidTurn_Right(void){Motor_L298N(Motor1,90);Motor_L298N(Motor2,90);Motor_L298N(Motor3,-90);Motor_L298N(Motor4,-90);}//向左微调voidTurn_Left_S(void){Turn_Left();delay_ms(500);Stop_All();}//向右微调voidTurn_Right_S(void){Turn_Right();delay_ms(500);Stop_All();}//电机全部停止voidStop_All(void){Motor_L298N(Motor1,0);Motor_L298N(Motor2,0);Motor_L298N(Motor3,0);Motor_L298N(Motor4,0);}电机程序#includedianji.h#includedelay.hvoidDIANJI_Init(void){GPIO_InitTypeDefGPIO_InitStructure;TIM_TimeBaseInitTypeDefTIM_TimeBaseStructure;TIM_OCInitTypeDefTIM_OCInitStructure;RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_GPIOB|RCC_APB2Periph_AFIO,ENABLE);RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2|RCC_APB1Periph_TIM4,ENABLE);//PWM1/2/3/4/configGPIO_InitStructure.GPIO_Pin=GPIO_Pin_6|GPIO_Pin_7|GPIO_Pin_8|GPIO_Pin_9;GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF_PP;GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;GPIO_Init(GPIOB,&GPIO_InitStructure);GPIO_InitStructure.GPIO_Pin=GPIO_Pin_1;GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF_PP;GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;GPIO_Init(GPIOA,&GPIO_InitStructure);//MotorIn1/In2configGPIO_InitStructure.GPIO_Pin=GPIO_Pin_12|GPIO_Pin_13|GPIO_Pin_14|GPIO_Pin_15;GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;GPIO_Init(GPIOB,&GPIO_InitStructure);GPIO_InitStructure.GPIO_Pin=GPIO_Pin_2|GPIO_Pin_3|GPIO_Pin_11|GPIO_Pin_12;GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;GPIO_Init(GPIOA,&GPIO_InitStructure);/*Timebaseconfiguration*/TIM_TimeBaseStructure.TIM_Period=100-1;//设置在下一个更新事件装入活动的自动重装载寄存器周期的值TIM_TimeBaseStructure.TIM_Prescaler=7200-1;//设置用来作为
本文标题:关于导购机器人技术实现
链接地址:https://www.777doc.com/doc-45415 .html