运动控制核心软件设计框图如图4-33所示。
下层软件基于运动控制核心采用Freescale 9S12XS128单片机控制,其主要功能是输出占空比可调的32路舵机控制PWM信号和8路占空比、频率可调的直流电动机PWM信号。同时检测直流电动机编码器信号反馈给上位机。
图4-33 运动控制核心软件设计框图
32路PWM输出采用Freescale 9S12XS128单片机I/O输出引脚配合16位定时器输出,定时器在每个中断对0~31路的每路信号进行电平翻转判定,在10μs的控制周期内,实现32路PWM信号输出。32路舵机的PWM信号是对舵机的角度控制与速度控制,输出信号的频率为50Hz,占空比可调(5%~15%),调节精度正好达到角位移伺服器的死区10μs,保证控制器对角位移伺服器的最佳控制。8路直流电动机的PWM信号是对直流有刷电动机的速度控制,通过改变占空比,配合编码器反馈组成PID控制器实现对直流电动机的速度稳定控制。USART模块实现从上位机接收的40个伺服器的控制目标值,用以输出合适的控制信号。同时下层软件将向上位机反馈速度等数据信息,为上位机处理控制核心提供控制数据。
2.处理控制核心软件设计
处理控制核心采用以STM32为核心的控制芯片,是机器人控制系统的核心部分,承担中央CPU处理和与各个模块衔接枢纽的重要工作。处理控制核心软件设计框图如图4-34所示。
图4-34 处理控制核心软件设计框图
基于STM32的控制核心软件系统主要包括系统初始化、串行总线通信、SPI数据传输、USB静态存储、传感器检测、运动控制算法、运动决策、步态控制信号计算。所有控制模块都是以1ms为控制周期进行的,实现对机器人的实时控制。控制程序是基于C语言、采用模块化程序设计的基本思路,程序设计紧凑。
系统初始化主要是对处理控制核心的各个模块进行初始化,并告诉各个模块,机器人的主程序CPU已经开始运行,进入主循环,各模块开始运行。
串行总线通信模块采用高速串行模块,向下位机传输40路伺服器的控制信号,以115200波特率高速传输信号。SPI传输模块是STM32处理控制核心将机器人运动参数,运动状态等信息传递给无线模块用以无线模块传输至PC端,并接受上位机的简单决策信号,实现对机器人的远程操控。
USB静态存储模块是机器人与其他外部存储介质之间的通信模块,调试阶段可以将机器人参数性能等数据储存起来,用以调试分析,优化参数。成品阶段可以将机器人感知的数据静态存储,即使机器人在侦查过程中遭到破坏也能保存重要的侦查资料,增加了机器人侦查作战性能。(www.xing528.com)
传感器检测模块中,以高速ADC为基础的加速度传感器数据采集,返回机器人当前身体姿态,使得机器人可以自动调节躯体,能适应更多环境。以定时器电平捕捉模块为基础的超声波传感模块,与云台配合控制,使机器人能检测出前方障碍物的距离、方向等重要信息。以摄像头为基础的传感模块将机器人看到的信号存储至外部存储器,或是通过无线模块传至PC。
运动控制算法模块采用先进的多轴控制技术,通过整体姿态的软件建模,坐标变换与控制分析,实现对直流电动机与角位移伺服器的PID控制、模糊控制。
运动决策则是将机器人各个运动方式封装成动作数据处理模块,直接调用模块实现机器人灵活的切换不同种步态,充分发挥其多关节多驱动器的特点,以适应多种复杂环境。
3.部分软件模块程序
运动控制核心模块Freescale9S12XS128的软件设计是基于Freescale公司推出的集成编译环境CodeWarrior。该软件支持C语言,汇编语言等多种语言平台,优秀的仿真性能方便调试。
1)PID控制算法模块程序。PID控制器结构框图如图4-35所示。
图4-35 PID控制器结构框图
算法原理程序如下:
2)直流电动机速度控制模块与加速度检测程序
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。