自平衡人形机器人的多关节协调控制一直是机器人学研究的难点和热点,目前采用的最多的是在大的反馈控制环路中对机器人进行关节空间的控制,这种控制方式结构紧凑,实时性强,但在以控制器为核心的辐射式控制链路上,所有信息的交换都集中在机器人主控制器上,当机器人处于复杂的环境中时,可能会有过多的信息需要处理,这种复杂程度往往是不可预知的,因此机器人的稳定性也不能保证。
机器人主控制器是机器人的核心处理器,是提高人形机器人的信息处理能力的主要部件。其主要任务是控制机器人在空间的运动位置、姿态、轨迹、操作顺序和操作时间,因此必须保证主控制器能够为解决复杂信息处理而稳定可靠地工作。机器人动作控制器是为解决机器人动作控制而设计的,它将主处理器发出任务处理命令分配到3个16位超低功耗单片机(MSP430F149)上去执行,实现多层次的控制管理。该人形机器人具有多关节,多自由度,自平衡的控制需求,需要动作控制器在机器人系统控制中起到关键性的作用。
1 动作控制器的设计
1.1 体系结构
自平衡人形机器人需要获取不可预知的环境信息以及自身姿态信息进行综合运算并及时进行自身姿态的调整。机器人的这种行为特点决定了机器人的整体控制结构要采用反馈控制。如图1所示,描述了这种反馈控制结构的硬件实现。
同时,在图1中可见从机器人主控制器到执行元件(舵机)之间,有一层动作控制器的结构。这一层结构的任务是实现控制命令到舵机控制信号之间的功能转换,这种体系结构的设计,就是借鉴计算机系统结构中的分层结构体系思想。采用这种分层的结构,实现了软件和硬件、命令和动作的相对隔离。其突出的优点体现在能够使主控制器专注于数据的处理,而对下行设备只负责发送指令,对于硬件的复杂的操作时序,由动作控制器负责产生。
1.2 实现过程
1.2.1 硬件实现
为满足机器人整体控制体系结构中指令到执行的层次性要求,动作控制器需要完成命令解析,信号驱动等任务。如图2描述了动作控制器内部的结构,其主要由串行总线、3个可并行工作的16位单片机、信号驱动部分构成。这种结构能够从总线接收命令,单片机进行指令解析并输出控制电信号,外部电路对控制信号驱动放大,从而分别实现对执行舵机的控制。图3为动作控制器中一个单片机工作模块的硬件原理图。
动作控制器主要由3个MSP430F149并行工作,每个MSP430F149控制8个舵机,总共实现对24个舵机的控制。每个MSP430F149有定时器TA和定时器TB两个模块,其中定时器TA通过比较模式输出2路PWM波控制2个舵机,定时器TB通过比较模式输出6路PWM波控制6个舵机。而且定时器工作在比较模式下时,能在一次设置完成后,不需要CPU干预的情况下持续进行PWM输出,同时保证各路信号之间没有干扰,因此一路比较输出即可独立控制一个舵机,动作控制器可实现对多达24个舵机的控制,对多关节人形机器人提供足够的控制通道。[page]
采用比较输出PWM波形的方法相比较采用中断方式的控制方法,具有简单,输出PWM波形稳定,整个控制系统的鲁棒性高等特点。该课题也曾采用过中断控制方式,但用示波器观察输出的PWM波形,波形极不稳定。而且中断嵌套过多之后,单片机程序很容易跑飞,完全不能满足控制系统的稳定性要求。而采用文中所述动作控制器的设计方法后,比较输出的PWM波波形稳定,而且单片机也没出现死机或跑飞的现象。
MSP430F149输出为3.3 V TTL电平,而舵机控制信号要5 V TTL电平,在实际电路设计中要进行电平转换。考虑到舵机的控制信号对功率没有要求,必要加专用驱动芯片,而采用CMOS工艺的CD4081四2输入与门进行电平转换,利用其门电路输入电压门限宽的特点即可解决电平转换的问题。
舵机动态工作时,需要脉冲式的电流,通过普通的电源供电,实验表明:由于舵机瞬时供电不足,致使舵机力矩不够,运动不能达到预先的姿态效果,在反复探索后,决定采用电容的快速放电特性来提供瞬时大电流,由于舵机数量大,设计时在舵机电源处并接大容量电容,总容量0.22F×6。正常小电流工作时,电容被充电处于饱和,当需要瞬时大电流时,电容能快速放电,从而保证舵机正常稳定的工作。
3个MSP430F149分别控制部分关节上的舵机,这要求3个MSP430F149充分协调一致的工作。因此采用总线通信方式,将3个MSP430F149挂接到串行通信总线上,并留出总线接口,以接收主控制器的命令。
1.2.2 软件实现
动作控制器的软件设计,是以硬件为基础,接收主控制器的命令,对命令进行解析,并控制产生具体的PWM波形对舵机进行动作控制。图4描述了动作控制器中软件的实现流程。
机器人的动作方式,方向,幅度等全部是由主控制器通过对外部信息的获取而产生的输出,这种输出是基于命令格式的,而机器人最终的一切行为都是一系列舵机的配合运转,从命令到执行,这其中就是动作控制器起到了关键作用。
基于上述要求,动作控制器的首要任务就是接收命令。虽然在硬件上采用了多机通信的模式,但并不采用传统的通信协议(每个从机都具有一个独立的地址),而是对动作控制器上的3个MSP430F149定义完全相同的地址,这样就会使其接收到完全相同的命令。这样进行设计,原因在于要保证舵机响应的同时性,即是机器人动作的协调性提出的要求。如表1示例了主控制器与动作控制器的命令传输格式。来自主控制器的命令是一个数组序列,动作控制器上的每个MSP430F149都能完全接收到全部序列,而每个MSP430F149根据预先定义只使用这个序列中特定的子序列,这个子序列就是对应于这个MSP430F149所控制的舵机的命令,这样就可以保证同时性。
动作控制器的最终目的是产生PWM波,而这是通过写MSP430F149片内TA、TB模块的寄存器实现的。在解析函数进行一系列的解析运算后,产生出各舵机所需的PWM波形的脉冲宽度值,将这些值写入到相应的寄存器中,就可以产生需要的PWM波。
2 实验及结论
根据文中提出的动作控制器的设计思想与方法,制作出机器人动作控制器。按照设计的基本思想对动作控制器进行测试,测试中采用一个MSP430F425作为机器人主控制器,下行控制一个十二个关节的简易人形机器人。在MSP430F425中规划好机器人的步态,同时根据规划好的步态参数发送舵机动作命令。
实验中,首先实测舵机的精度,通过向特定定时器通道预装不同值,测量舵机响应角度,并以此数据拟合出舵机响应角度方程。实验中由于采用的MSP430F425资源有限,方程仅进行了线性拟合。
表2为测试机器人上一处关节的舵机测定数据,根据此数据拟合出以下方程:
舵机实际角度α=(X-3 000)/20+75.5运用拟合出的方程进行命令到舵机角度的解析,得到表3所示数据
从表中数据可以看出,在舵机的性能范围内(舵机的精度为0.5°~1°),控制是精确的。
同时,在舵机响应的及时性方面,也得到了保证。从主控制器发送命令到舵机响应开始运动共经历了命令传输、命令解析两大时间段。
命令传输在特定的速率下传输完所有命令数据用时4.5 ms,而命令解析即单片机内程序执行,其用时远小于1 ms。相比较,舵机的机械响应时间在百ms级,因此动作控制器保证了响应的及时性。
实验证明,在设计思想指导下的硬件和软件实现,充分符合既定的目标,体现在机器人的多关节能够协调动作,预先规划的步态能够很好的表现出来。
在机器人的实际控制系统中,动作控制器作为主控制器(ARM 9)的下级从属设备,完成其特定的管理范围内工作。在这种分层控制的体系结构下,自平衡的检测与控制达到了理想的效果。
3 结束语
由于自平衡人形机器人具有内在不稳定性和结构的复杂性,国内外机器人爱好者对其控制策略进行了多方面的探索,但通常都是采用反馈控制环路或者是分层体系结构的方法。采用这些传统的方式大体都是中央处理器(ARM、DSP等)接收收集到的信息,进行处理,再根据获取的信息运用一定的算法控制执行元件(舵机、直流电机等)。这类体系结构一般以惟一的处理器为核心,与外界直接进行信息交换,但其处理器的工作量大,在大量的处理中实时性难以保证。
而本设计对应的双足自平衡人形机器人采用了这两种经典结构的复合,其中执行控制器、主控制器和执行电机之间体现出了明显的层次结构,这种设计减轻了各层次的任务难度,明显提高了设备调试或故障排查效率,充分体现出这种体系结构的优越性。
关键字:自平衡人形机器人 动作控制器 MSP430F149
引用地址:自平衡人形机器人动作控制器的设计
机器人主控制器是机器人的核心处理器,是提高人形机器人的信息处理能力的主要部件。其主要任务是控制机器人在空间的运动位置、姿态、轨迹、操作顺序和操作时间,因此必须保证主控制器能够为解决复杂信息处理而稳定可靠地工作。机器人动作控制器是为解决机器人动作控制而设计的,它将主处理器发出任务处理命令分配到3个16位超低功耗单片机(MSP430F149)上去执行,实现多层次的控制管理。该人形机器人具有多关节,多自由度,自平衡的控制需求,需要动作控制器在机器人系统控制中起到关键性的作用。
1 动作控制器的设计
1.1 体系结构
自平衡人形机器人需要获取不可预知的环境信息以及自身姿态信息进行综合运算并及时进行自身姿态的调整。机器人的这种行为特点决定了机器人的整体控制结构要采用反馈控制。如图1所示,描述了这种反馈控制结构的硬件实现。
同时,在图1中可见从机器人主控制器到执行元件(舵机)之间,有一层动作控制器的结构。这一层结构的任务是实现控制命令到舵机控制信号之间的功能转换,这种体系结构的设计,就是借鉴计算机系统结构中的分层结构体系思想。采用这种分层的结构,实现了软件和硬件、命令和动作的相对隔离。其突出的优点体现在能够使主控制器专注于数据的处理,而对下行设备只负责发送指令,对于硬件的复杂的操作时序,由动作控制器负责产生。
1.2 实现过程
1.2.1 硬件实现
为满足机器人整体控制体系结构中指令到执行的层次性要求,动作控制器需要完成命令解析,信号驱动等任务。如图2描述了动作控制器内部的结构,其主要由串行总线、3个可并行工作的16位单片机、信号驱动部分构成。这种结构能够从总线接收命令,单片机进行指令解析并输出控制电信号,外部电路对控制信号驱动放大,从而分别实现对执行舵机的控制。图3为动作控制器中一个单片机工作模块的硬件原理图。
动作控制器主要由3个MSP430F149并行工作,每个MSP430F149控制8个舵机,总共实现对24个舵机的控制。每个MSP430F149有定时器TA和定时器TB两个模块,其中定时器TA通过比较模式输出2路PWM波控制2个舵机,定时器TB通过比较模式输出6路PWM波控制6个舵机。而且定时器工作在比较模式下时,能在一次设置完成后,不需要CPU干预的情况下持续进行PWM输出,同时保证各路信号之间没有干扰,因此一路比较输出即可独立控制一个舵机,动作控制器可实现对多达24个舵机的控制,对多关节人形机器人提供足够的控制通道。[page]
采用比较输出PWM波形的方法相比较采用中断方式的控制方法,具有简单,输出PWM波形稳定,整个控制系统的鲁棒性高等特点。该课题也曾采用过中断控制方式,但用示波器观察输出的PWM波形,波形极不稳定。而且中断嵌套过多之后,单片机程序很容易跑飞,完全不能满足控制系统的稳定性要求。而采用文中所述动作控制器的设计方法后,比较输出的PWM波波形稳定,而且单片机也没出现死机或跑飞的现象。
MSP430F149输出为3.3 V TTL电平,而舵机控制信号要5 V TTL电平,在实际电路设计中要进行电平转换。考虑到舵机的控制信号对功率没有要求,必要加专用驱动芯片,而采用CMOS工艺的CD4081四2输入与门进行电平转换,利用其门电路输入电压门限宽的特点即可解决电平转换的问题。
舵机动态工作时,需要脉冲式的电流,通过普通的电源供电,实验表明:由于舵机瞬时供电不足,致使舵机力矩不够,运动不能达到预先的姿态效果,在反复探索后,决定采用电容的快速放电特性来提供瞬时大电流,由于舵机数量大,设计时在舵机电源处并接大容量电容,总容量0.22F×6。正常小电流工作时,电容被充电处于饱和,当需要瞬时大电流时,电容能快速放电,从而保证舵机正常稳定的工作。
3个MSP430F149分别控制部分关节上的舵机,这要求3个MSP430F149充分协调一致的工作。因此采用总线通信方式,将3个MSP430F149挂接到串行通信总线上,并留出总线接口,以接收主控制器的命令。
1.2.2 软件实现
动作控制器的软件设计,是以硬件为基础,接收主控制器的命令,对命令进行解析,并控制产生具体的PWM波形对舵机进行动作控制。图4描述了动作控制器中软件的实现流程。
机器人的动作方式,方向,幅度等全部是由主控制器通过对外部信息的获取而产生的输出,这种输出是基于命令格式的,而机器人最终的一切行为都是一系列舵机的配合运转,从命令到执行,这其中就是动作控制器起到了关键作用。
基于上述要求,动作控制器的首要任务就是接收命令。虽然在硬件上采用了多机通信的模式,但并不采用传统的通信协议(每个从机都具有一个独立的地址),而是对动作控制器上的3个MSP430F149定义完全相同的地址,这样就会使其接收到完全相同的命令。这样进行设计,原因在于要保证舵机响应的同时性,即是机器人动作的协调性提出的要求。如表1示例了主控制器与动作控制器的命令传输格式。来自主控制器的命令是一个数组序列,动作控制器上的每个MSP430F149都能完全接收到全部序列,而每个MSP430F149根据预先定义只使用这个序列中特定的子序列,这个子序列就是对应于这个MSP430F149所控制的舵机的命令,这样就可以保证同时性。
动作控制器的最终目的是产生PWM波,而这是通过写MSP430F149片内TA、TB模块的寄存器实现的。在解析函数进行一系列的解析运算后,产生出各舵机所需的PWM波形的脉冲宽度值,将这些值写入到相应的寄存器中,就可以产生需要的PWM波。
2 实验及结论
根据文中提出的动作控制器的设计思想与方法,制作出机器人动作控制器。按照设计的基本思想对动作控制器进行测试,测试中采用一个MSP430F425作为机器人主控制器,下行控制一个十二个关节的简易人形机器人。在MSP430F425中规划好机器人的步态,同时根据规划好的步态参数发送舵机动作命令。
实验中,首先实测舵机的精度,通过向特定定时器通道预装不同值,测量舵机响应角度,并以此数据拟合出舵机响应角度方程。实验中由于采用的MSP430F425资源有限,方程仅进行了线性拟合。
表2为测试机器人上一处关节的舵机测定数据,根据此数据拟合出以下方程:
舵机实际角度α=(X-3 000)/20+75.5运用拟合出的方程进行命令到舵机角度的解析,得到表3所示数据
从表中数据可以看出,在舵机的性能范围内(舵机的精度为0.5°~1°),控制是精确的。
同时,在舵机响应的及时性方面,也得到了保证。从主控制器发送命令到舵机响应开始运动共经历了命令传输、命令解析两大时间段。
命令传输在特定的速率下传输完所有命令数据用时4.5 ms,而命令解析即单片机内程序执行,其用时远小于1 ms。相比较,舵机的机械响应时间在百ms级,因此动作控制器保证了响应的及时性。
实验证明,在设计思想指导下的硬件和软件实现,充分符合既定的目标,体现在机器人的多关节能够协调动作,预先规划的步态能够很好的表现出来。
在机器人的实际控制系统中,动作控制器作为主控制器(ARM 9)的下级从属设备,完成其特定的管理范围内工作。在这种分层控制的体系结构下,自平衡的检测与控制达到了理想的效果。
3 结束语
由于自平衡人形机器人具有内在不稳定性和结构的复杂性,国内外机器人爱好者对其控制策略进行了多方面的探索,但通常都是采用反馈控制环路或者是分层体系结构的方法。采用这些传统的方式大体都是中央处理器(ARM、DSP等)接收收集到的信息,进行处理,再根据获取的信息运用一定的算法控制执行元件(舵机、直流电机等)。这类体系结构一般以惟一的处理器为核心,与外界直接进行信息交换,但其处理器的工作量大,在大量的处理中实时性难以保证。
而本设计对应的双足自平衡人形机器人采用了这两种经典结构的复合,其中执行控制器、主控制器和执行电机之间体现出了明显的层次结构,这种设计减轻了各层次的任务难度,明显提高了设备调试或故障排查效率,充分体现出这种体系结构的优越性。
推荐阅读最新更新时间:2024-03-16 13:36
基于MSP430F149单片机的GPS定位数据采集系统设计
0 引言 GPS(Global PosiTIoning System,全球卫星定位系统)以其高精度、全天候、全天时的特点,在定位、导航、测距、授时遥感等领域广泛应用,并得到了快速的发展。设计一种基于嵌入式系统的GPS定位数据采集系统,根据GPS信号接收原理和嵌入式技术,该设计完成了基于单片机和计算机实现GPS数据采集,并以良好的人机界面显示出系统所处的经纬度、海拔高度、X,Y坐标以及日期等信息,该系统已应用于某外场的车载定位试验中,代替了以前人工记录定位数据的烦琐,提高了效率。 1 系统描述 本设计利用TI的低功耗MSP430F149单片机的双串行接口,一路将GPS接收模块接收的定位信息数据传送至单片机,由单片
[单片机]
利用单片机使用MSP430F149设计正弦波发生器解析方案
根据《铁路车辆内旅客振动舒适性评价准则》UIC513国际标准开发的SSD-J-2振动舒适度测量仪是基于MSP430F149的三维振动便携式分析仪,内含上下、左右、前后振动的生理滤器。为了调整和标定这组生理滤波器的精度,利用该单片机的一个PWM输出端配上II型的RC滤波,在软件支持下构成调节方便的超低频波发生器。经实用表明其性能达到UIC513标准的技术要求。 1 MSP430F149的内部结构 MSP430F149 是美国TEXAS INSTRUCMENTS公司最新推出的16位超低功耗混合信号单片机,带有Flash存储器,具备很强的灵活性,方便修改代码及产品售后升级。它采用精简指令集(RISC),125ns指令周期,大部分的指
[单片机]
MSP430F149的IO口
1 概述 MSP430F149共有6组IO口,每组8bit, IO口的设置包括设置IO功能、方向、输入输出寄存器初值。对IO口不做设置,默认情况下为第一功能,输入模式。 2 常用寄存器 PxDIR 0 输入,1 输出; PxSEL 0 I/O口,1 第二功能; PxOUT,PxIN; PxIES 设置中断触发方式 0上升沿,1下降沿; PxIE 设置中断触发允许0禁止,1允许; PxIFG 中断标志寄存器,需要软件清零。 3 用法 IO口中断: P1,P2口总共有16个IO口均能引发中断,相关寄存器为PXIE(中断允许):0不允许,1允许。PXIES(中断触发岩选择)0上升沿、1下降沿。PXIFG(中断标志寄存器
[单片机]
基于MSP430F149的点光源跟踪系统设计
1 系统方案论证 1.1 系统各模块方案的选择与论证 (1)电机驱动模块。采用L298驱动芯片组成驱动电路,可以通过控制中心输出的高低电平对电动机的方向进行控制,并且可以通过PWM波直接控制电动机的速度。电路较为简 ~单,容易实现,驱动能力和抗干扰能力强,性价比高。 (2)LED灯电流调节与光源检测模块。发射端通过直流稳压电源来点亮白光LED,通过调节白光LED两端的电压来调节电流从而调节亮度,接收端采用多个光敏电阻,通过光敏电阻阻值的变化来判断光源的位置。 (3)LED电流检测模块。在LED的下端串联一0.1Ω的电阻,电阻的另一端接地,采用OPA335精密放大器对0.1 Ω电阻的压降进行放大,再通过A
[单片机]
MSP430F149——定时器
前言 特点 msp430系列单片机是16位,51单片机为8位,stm32系列为32位。 位数越高代表着该单片机处理数据的能力越快,性能也就越高。32位机器处理性能好,8位机器廉价性价比高,16位机器超低功耗。就是有一个低功耗模式,可以长时间极少耗损地待机,定时唤醒cpu进行工作. 学习路线 详细理解时钟初始化配置。 熟悉基本操作IO口。 学习定时器三大功能。 学习中断的原理。 操作各种外设,模块。 MSP430内部结构 在接触一款单片机,首先应该了解其总体框架,了解其内部结构,方便后期进行学习理解。 系统时钟 在MSP430F149单片机中一共有三个时钟源: (1)LFXT1CLK,为低速/高速晶振源,通常接32.76
[单片机]
MSP430F149-利用IO中断方式实现按键检测程序
#include msp430x14x.h #define key1 0x01 #define key2 0x02 #define key3 0x04 #define delay_small 200 #define key_1 0xfe //定义返回键值1 #define key_2 0xfd //定义返回键值2 #define key_3 0xfb //定义返回键值3 void key_process_0(void); void key_process_1(void); void key_process_2(void); void key_check (void); unsigned char key_value
[单片机]
基于MSP430F149单片机的光电编码器位置检测系统方案
1、光电编码器原理 光电编码器是集光、机、电技术于一体的数字化传感器,其基本原理就是在特制的码盘上按一定规律编排光栅图案,将这些图案用光电头读取,转变为高低有序排列的电平信号。光电编码器输出信号为A , B , Z 3 个信号,其中A , B 为相位差90°的方波信号, Z 为过零脉冲信号。如图1所示,光电编码器每旋转一周,A、B 相输出同样数量的脉冲, Z相输出一个脉冲,脉冲的个数和电机旋转角度,电机的运行距离成正比关系。 A相、B相都是光电编码器产生的,这两个信号的前沿和后沿都对应着光电码盘的1/4节距的信息鉴相就是通过分析图1的A相,B相信号,得出电机的旋转方向。如果A相脉冲超前B相90,电机正转,反之,电机反转。
[单片机]
基于MSP430F149的人员登记与录入系统设计
人数统计系统在不同的应用场合可以发挥不同的作用。它可以为商场或零售点获取商场内部按不同时段分布的人数统计、人群流动方向等信息,有利于评估商品对于顾客的吸引力,以及评估商场选址是否适当;对于大型建筑,管理者可利用人数统计系统了解人群的行为,评估大楼提供的服务设施是否方便、足够,如座椅、公用电话及卫生设施等,提高建筑设施的利用率、指导建筑物的设计和提高某些场合工作人员的效率,此外还可以对大楼里的客流情况进行监控,以避免人群的拥塞引起的安全隐患。 1 总体设计方案 针对展览馆设计了该人员登记与录入系统,该系统主要由单片机控制、信号采集、拍照、液晶显示、电源这五部分组成,硬件结构图如图1所示。当有人要进入馆内时由红外装置采集到的信号
[单片机]
设计资源 培训 开发板 精华推荐
最新单片机文章
更多精选电路图
更多热门文章
更多每日新闻
更多往期活动
- 答题有礼: 寻觅可靠的触控、手势控制解决方案?快来认识新一代AVR DA单片机
- 在线直播 意法半导体工业峰会2022
- 重量级板子揭晓——TI M4开发板,你敢得到她么?
- 下载有礼|西北模电王《新概念模拟电路》全五册
- 最热8月,带着你的原创一起High!
- MM32F103开发板测评等你来
- 预约有礼:预约理想配电网络的电源完整性设计等直播,涨知识赢好礼
- 你评论,我送礼!《玩转TI MSP430 Launchpad》TI社区与EEWORLD联合首发!
- #Micropython大作战#第二弹:发表mciropython原创教程赢好礼!
- ADI有奖直播:基准电压源产品技术及应用选择 7月25日上午10:00-11:30 不容错过~
11月28日历史上的今天
厂商技术中心