APP下载

基于智能检测算法的智能机器人控制系统设计

2022-12-21

信息记录材料 2022年10期
关键词:电路设计舵机布线

吴 桦

(江西软件职业技术大学 江西 南昌 330041)

0 引言

随着工业4.0时代来临,在智能算法、虚拟仿真、深度学习等技术加持下,智能机器人的应用领域和服务场景愈加多元化,作用优势更加明显。在抗震救灾、地质探测、航天事业、运输搬运机器、快递分拣等领域都取得了较好的效果,有效地提高了社会生产效率。智能机器人应用场景的多元化及复杂程度导致用户对智能机器人的控制要求更加严格,只有借助更为完善、精细化的控制体系,才能将智能机器人的功能优势充分挖掘出来,文章依据智能机器人的作业需要,探索了基于ATmega单机片的智能机器人控制系统设计,并借助仿真环境来验证控制效果。

1 智能机器人系统总体方案设计

1.1 设计目标

本系统设计旨在实现智能机器人的自主化、智能化作业,让其能在复杂的地面环境中高效完成作业需求。在功能种类方面:一是需要具备自动移动功能,可以自动识别路径障碍,完成对应的路径规划。二是人机交互功能,通过人机交互来实现信息数据的高效传输;同时系统软件也能实时获取到智能机器人的运行状态和可观测数据,便于控制系统更好的调整智能机器人作业状态和相关任务发布。三是环境探测功能,智能机器人需要借助传感器对周围环境进行动态探测,并根据任务要求实时匹配,并借助智能检测算法生成决策信息。在系统结构上[1],分为机械结构、驱动系统、探测系统、控制系统;整体系统组成机构如图1。

图1 系统组成结构图

1.2 智能机器人控制系统硬件设计

系统硬件设计是智能机器人控制系统设计的关键部分,关乎控制系统的控制力度和有效性。在智能机器人控制系统硬件设计中,包含了微处理器设计、舵机、传感器模块电路设计、PCB设计等。

1.2.1 微处理器模块设计

微处理器作为智能机器人控制系统的核心零部件,决定着机器人的控制精准性和相关控制功能实现。因此在智能机器人控制系统硬件设计中,首先要针对功能需求选择合适的控制器类型。并考虑到智能机器人的最大电路设计、接口电路设计等功能需要,本系统选用ATmega128单机片作为控制核心;如在接口电路设计中,该单机片可以实现JTAG和ISP两种形式的在线编程。

1.2.2 舵机、传感器模块电路设计

传感器模块是智能机器人的眼睛;驱动电路设计就是为了更好地控制智能机器人的传感器和舵机,从而实现智能机器人的有效控制。在设计中采用的是同步通信方式来实现信息通信效率提高;指的是在信息通信过程中,控制系统发送信息后只有得到智能机器人回应后,才能进行二次信息通信;这样有效避免了通信堵塞、行为指令控制精准度不够等问题。在舵机和传感器连接方式上,采用的多通道串联,即只有一方供电,另外一方面也能继续工作。

1.2.3 PCB设计

(1)PCB设计要求

PCB设计及制作影响着智能机器人控制系统的稳定性和可靠性,也对后期的硬件系统调试、维护等起着重要作用。在PCB设计中,需从智能机器人控制系统整体功能出发,充分考虑到各项功能的兼容性,设计出准确性、合理、经济的印刷电路版。在准确性方面:准确性是PCB设计的核心内容,PCB需要精准的实现系统原理图的电路关系,确保电气连接的有效性和精准性,避免出现短路现象。在可靠性方面:PCB设计影响着智能机器人的运行性能,在PCB设计中需要从板材选择、路线设计、元器件布局等多维度入手来确保PCB的可靠性,增强硬件性能;如在抗干扰问题中,可以从接地线布置、元器件布置来降低干扰源。在经济性方面:经济性的合理规划能够提高智能机器人控制系统的应用程度,控制功能发挥和经济优势才能凸显控制系统软件的价值。因此在PCB设计中,在满足功能需求的同时可以从尺寸、板材等方面入手降低经济成本。

(2)PCB设计

一是在设计中需要利用好原理图,生成对应的网络表,为PCB设计打好基础。

二是采用PCB编辑器来进行电路板规划和定义,得到明确的尺寸和轮廓后根据元器件数量来合理布线;如在布线宽度不宜太窄、走线尽量垂直等。同时也需确定好双面板结构的跨线规划。

三是在元器件布局设置中,可以采用自动布局的方式借助网络表将原理图加载到PCB中,再进行元器件的自动布局。这样不仅能提高元器件布局的美观程度,也能避免元器件之间的电磁干扰,实现PCB布局均匀、大小合适。

四是在PCB元器件布局完成后需进行合理布线,在布线前要进行布线规则的详细制定,可采用手动布线配合自动布线的方式来提高布线效率和精确性。在具体布线过程中,先是要对敏感信号线、时钟线等重要线进行布置,其次再进行信号线布置;最后要进行屏蔽导线放置、泪滴放置等相关处理来提高电路板的可靠性。

五是设计PXB电路板信号规则,并进行电路检测和逻辑检测,最后得到PCB图。

2 智能机器人控制软件设计

2.1 系统软件架构设计

系统软件设计是实现智能机器人控制的关键,高质量的软件系统开发能够进一步发挥硬件电路设计的作用。在软件系统设计中需要考虑到实时性、可靠性、易维护性、可移植性等特点,而软件架构是实现系统设计的基础,根据系统软件的功能定位需设计为多个模块,最后将各功能模块进行规划架构从而形成系统软件。在本系统软件架构上主要分为初始化模块、人机交互模块、障碍检测及避障模块、通信模块、电机控制模块[2]。如图2所示。

图2 智能机器人软件架构图

2.2 初始化设计

初始化模块设计旨在执行系统硬件的状态初始化工作,在智能机器人通电运行时执行。其中主要包含端口初始化、串口初始化、舵机控制初始化等。在端口初始化上,采用数据寄存器、方向寄存器等设置某一pin脚为输入并使能内部上拉电阻;在串口初始化上,通过串口0和1的设置来实现相关控制[3]。在舵机初始化上选用无限旋转模式、普通模式两种;无限旋转模式适用于车轮舵机,普通模式适用于转向、机械作业方面。在动作初始化上,在通电后完成一次初步的作业动作并恢复作业初始状态[4]。

2.3 人机交互模块设计

人机交互模块设计包括智能机器人数据采集、场景分析、功能服务匹配等内容,同时也能实现控制系统指令高效传输;如控制系统通过智能机器人传感器收集场景数据并传达对应指令来提高智能机器人作业效率。在模块系统框架上,为控制系统终端—TSP平台—大数据平台—机器人传感器[5]。在交互指令执行上,智能机器人传感器将数据信息上传至大数据平台,大数据平台通过智能检测算法模型基于功能服务进行分析,将处理结果回传至TSP平台,TSP平台根据数据结果判断指令推送条件从而形成特定的编码传至智能机器人控制系统终端[6]。

2.4 障碍检测及避障模块设计

障碍检测及避障模块设计主要是为了帮助智能机器人更好的检测障碍,通过障碍物大小、种类等特征识别形成对应的避障路线,提高智能机器人的行驶安全性[7]。本系统为了提高避障模块的方向性,采用的是红外线避障检测方式通过特定数量的脉冲发射和接收量来判断障碍物情况。具体流程如图3所示:

图3 避障模块流程图

转向避障程序代码:

#Direction control and Package into a function

# left

def robot_turn_left():

GPIO.output(frontMotorEnableGPIO.HIGH)

GPIO.output(11GPIO.HIGH) GPIO.output(7,GPIO.LOW)

backMotorPwm.ChangeDutyCycle(66)

time.sleep(1)

# RIGHT

def robot turn right():

GPIO.output(frontMotorEnableGPIO.HIGH)

GPIO.output(11GPIO.LOW GPIO.output(7GPIO.HIGH)

backMotorPwmChangeDutyCycle(66) time.sleep(1)

2.5 通信模块设计

本系统采用的是同步通信方式的形式:在通信流程上,首先控制系统向智能机器人舵机发送指令包;其次接收智能机器人传感器及舵机信息反馈;最后进行下一步指令发送和数据储存。在整个通信过程中只有第一次通信得到反馈后才能下达第二次指令[8]。

2.6 电机控制模块设计

电机控制模块主要是为了实现智能机器人的速度测速和控制,以此来提高智能机器人的稳定性,首先在调速功能实现上,采用的是PWM信号来调节,工作原理是借助输出波形占比空间来获取电机电驱端电压,其次对输出电压大小调节来实现电机速度的变化,从而做到智能机器人速度有效控制[9]。最后在电机测速方面本系统主要通过反射式光学编码器进行测试,对电机单元时间内产生的脉冲数量来输出波形,形成码盘条纹、依据公式s=2πr×cnt/(N×T),T为单元周期,N为条纹数,r为智能机器人车轮半径,s为行进距离,根据距离s和时间周期T从而得出电机速度。

3 智能机器人控制软件系统调试

3.1 硬件电路调试

硬件电路调试是电路设计的重点内容。只有通过连续性设计才能更好地发现问题,从而找到系统缺陷并进一步完善相关功能,设计出符合目标要求的软件系统。为了提高开发效率,本次测试采用的是边安装边测试的方式。

(1)电路图检测:对PCB板的电路焊接、元器件通电情况、短路等情况,如采用万用表检测。

(2)电压测试:在PCB焊接前需要进行静态测试,对各芯片、元器件的电源引脚电压进行检测,避免出现烧坏。

(3)总体调试:通过仿真器连接来判断系统工作情况,如果能进入到仿真环境就说明系统软件正常[10]。

3.2 软件调试

在软件调试上,利用仿真测试来进行软件系统调试,通过验证相关功能模块的运行状态来提高功能模块开发效率。软件调试方式常用软件级仿真和芯片级仿真,由于ATmega128设计有JTAG仿真调试接口如图4,故本次软件调试采用芯片级仿真。基本原理是在元器件内部定义一个TAP(Test Access Port:测试访问口),通过专用的JTAG测试工具对内部节点进行测试。JTAG测试允许多个器件通过JTAG接口串联在一起,形成一个JTAG链,实现对各个器件分别测试。目前JTAG接口还常用于对FLASH等器件进行编程[11]。

图4 仿真调试JTAG接口电路图

4 结语

综上所述,工业4.0时代智能机器人势必会替代人工从事高频性、危险性、复杂性等工作领域。其控制系统的设计逐渐受到重视,智能机器人控制系统开发与设计是一项持续性工程,需要随着智能机器人的应用场景、功能需求进行转变,要综合考虑各方面的因素,同时掌握各个子系统的基础功能和设计要求。本设计实现了基于ATmega系列AVR单片机的智能机器人控制系统开发,并通过障碍检测及避障功能、速度控制功能、转向功能、人机交互等模块来确保智能机器人控制的有效性和准确性。

猜你喜欢

电路设计舵机布线
摆脱繁琐布线,重定义家庭影院 Klipsch Reference Wireless 5.1
Altium Designer在电路设计中的应用
含齿隙弹载舵机的全局反步模糊自适应控制
负反馈放大电路设计
面向目标的主动绕障PCB布线算法
电子布线系统在工程中的应用
基于dsPIC单片机的飞艇舵机控制实现
基于高速同步485总线通信的多通道舵机控制器设计
基于UC3843的60W升压电路设计
一种考虑拥挤度的布线模型及其算法