HI,欢迎来到起点商标网!
24小时服务QQ:2880605093

平衡车的控制方法、平衡车、平衡车避障及跟随运行方法与流程

2021-02-06 23:02:33|469|起点商标网
平衡车的控制方法、平衡车、平衡车避障及跟随运行方法与流程

[0001]
本申请涉及自动控制技术领域,具体而言,涉及一种平衡车的控制方法、平衡车、平衡车避障及跟随运行方法。


背景技术:

[0002]
随着科学技术的迅速发展,越来越多的平衡小车走进了人们的日常生活中,由于两轮自平衡小车具有体积小、运动灵活、零转弯半径等特点,将会在民用和军用领域有着广泛的应用前景。同时也为移动机器人的研究开创了新的方向,两轮自平衡小车系统与传统的移动机器人相比,是一个两轮共轴、独立驱动且通过运动保持平衡的机器人设备,同时可以直立静止运动、具有高平衡、跟踪、适应性强的优点。
[0003]
如何稳定地进行平衡车的控制,使得平衡车在各种条件(例如加减速、跟随、避障等场景)下,均能够保持稳定的平衡,是本领域中需要进一步解决的问题。


技术实现要素:

[0004]
本申请实施例的目的在于提供一种平衡车的控制方法、平衡车、平衡车避障及跟随运行方法,以使平衡车在各种复杂条件下均能够保持稳定的平衡。
[0005]
为了实现上述目的,本申请的实施例通过如下方式实现:
[0006]
第一方面,本申请实施例提供一种平衡车的控制方法,应用于平衡车,所述方法包括:获取所述平衡车当前的车模倾角和倾角速度,其中,所述车模倾角表示所述平衡车当前的倾斜角度,所述倾角速度表示所述平衡车的角速度;根据所述车模倾角和所述倾角速度,确定出用于维持所述平衡车平衡的目标加速度;根据所述目标加速度,确定出用于控制所述平衡车的电机输出的pwm占空比,以控制所述平衡车的电机的运转速度,从而控制所述平衡车保持平衡。
[0007]
在本申请实施例中,通过获取平衡车当前的车模倾角和倾角速度,可以准确地判断出平衡车当前的状态,为了保持平衡车的平衡,不仅需要对平衡车施加和倾角(即车模倾角)成正比的回复力,还需要施加和角速度(即倾角速度)成正比的阻尼力,而阻尼力与运动方向相反,因此,可以通过对平衡车的加速度控制,实现对平衡车的平衡控制(即直立控制)。因此,根据车模倾角和倾角速度,可以确定出用于维持平衡车平衡的目标加速度,从而进一步确定出电机输出的pwm占空比,以控制平衡车的电机的运转速度,实现对平衡车的平衡控制。这样的方式可以简单高效地对平衡车的平衡控制(直立控制),并且,此种控制方式,控制元素集中,有利于保持控制系统的鲁棒性。
[0008]
结合第一方面,在第一方面的第一种可能的实现方式中,所述平衡车包括姿态检测模块,所述姿态检测模块为集成了三轴加速度计和三轴陀螺仪的mpu6050,所述获取所述平衡车当前的车模倾角和倾角速度,包括:获取所述mpu6050检测的角速度参数,以确定出所述倾角速度;获取所述mpu6050检测的y轴加速度测量值,以及所述平衡车当前的线加速度;根据所述y轴加速度测量值、所述倾角速度、所述平衡车当前的线加速度,确定出所述平
衡车的第一倾角;根据所述倾角速度,对该倾角速度进行积分运算,确定出所述平衡车的第二倾角;对所述第一倾角和所述第二倾角进行滤波融合,确定出所述车模倾角。
[0009]
在该实现方式中,通过利用mpu6050(集成有三轴加速度计和三轴陀螺仪),对平衡车的角速度参数进行检测(用于确定平衡车的倾角速度),以及,检测平衡车的y轴加速度测量值,平衡车当前的线加速度,进一步根据y轴加速度测量值、倾角速度、线加速度,确定出平衡车的第一倾角,以及,根据倾角速度,对该倾角速度进行积分运算,确定出平衡车的第二倾角,从而对第一倾角和第二倾角进行滤波融合,确定出车模倾角。这样的方式可以避免由于角速度信号存在微小的偏差和漂移(例如在传感器静止的情况下,输出不为零)而经过积分运算之后形成的积累误差(会随着时间的延长逐步增加,无法输出正确的角度信号),以及,陀螺仪积分得到的角度因为自身的零点漂移导致的误差随着时间变化逐步增加而越来越大的问题;也能够避免加速度计测量的角度信号在受到外界干扰的情况下,会有很大的毛刺的问题,从而得到稳定而精准的车模倾角,有利于保证平衡车的控制方法保持平衡车的平衡效果。
[0010]
结合第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,所述y轴加速度测量值为accel_y=g
·
sinβ+a
·
cosα,accel_y表示所述y轴加速度测量值,g表示重力加速度,β表示所述第一倾角,a表示所述平衡车当前的加速度,α表示所述倾角速度,所述根据所述y轴加速度测量值、所述倾角速度、所述平衡车当前的线加速度,确定出所述平衡车的第一倾角,包括:获取所述mpu6050的安装位置到所述平衡车的电机轴的距离h;根据所述距离h、所述倾角速度α,所述平衡车当前的线加速度a1,结合公式:a=hα+a1,确定出所述平衡车当前的加速度a;根据确定出的所述平衡车当前的加速度a、所述倾角速度α、所述y轴加速度测量值accel_y、所述重力加速度g,结合公式:accel_y=g
·
sinβ+a
·
cosα,确定出平衡车的第一倾角β。
[0011]
在该实现方式中,通过这样的方式,可以利用mpu6050的线加速度传感器准确地计算出平衡车的第一倾角,从而有利于平衡车的控制方法对平衡车平衡控制的稳定性。
[0012]
结合第一方面的第一种可能的实现方式,在第一方面的第三种可能的实现方式中,所述对所述第一倾角和所述第二倾角进行滤波融合,确定出所述车模倾角,包括:将所述第一倾角和所述第二倾角代入互补滤波关系式:angle=n
·
angle
m
+(1-n)
·
(angle+gyro
m
·
dt),确定出所述车模倾角,其中,angle表示滤波融合后的角度,即所述车模倾角,angle
m
表示所述第一倾角,(angle+gyro
m
·
dt)表示所述第二倾角,dt表示采样周期,n表示滤波器系数。
[0013]
在该实现方式中,通过这样的方式,可以简单有效地对第一倾角和第二倾角进行滤波融合,从而保证确定的车模倾角的准确性和可靠性,有利于平衡车的平衡控制。
[0014]
结合第一方面,在第一方面的第四种可能的实现方式中,采用比例微分的控制方式控制所述平衡车的加速度,所述根据所述车模倾角和所述倾角速度,确定出用于维持所述平衡车平衡的目标加速度,包括:获取预设的第一关系式:a
目标
表示目标加速度,k1表示比例控制参数,k2表示微分控制参数,θ表示倾角,即所述车模倾角,表示角速度,即所述倾角速度;根据所述车模倾角和所述倾角速度,结合所述第一关系式,确定出所述目标加速度。
[0015]
在该实现方式中,通过采用比例微分的控制方式控制平衡车的加速度,可以简化平衡车的控制策略,使得平衡车的控制能够具有简单有效、稳定可靠的控制特点,从而控制平衡车维持平衡,也能够在各种复杂场景下实现平衡车的平衡控制。
[0016]
结合第一方面,在第一方面的第五种可能的实现方式中,采用比例积分微分的控制方式控制所述平衡车的加速度,所述根据所述车模倾角和所述倾角速度,确定出用于维持所述平衡车平衡的目标加速度,包括:获取所述平衡车当前的运行速度;根据所述运行速度,以及所述平衡车的速度设定值,确定出所述平衡车的调节加速度;将所述调节加速度转换为所述平衡车的调节倾角;根据所述调节倾角,以及所述车模倾角和所述倾角速度,确定出速度控制下用于维持所述平衡车平衡的目标加速度。
[0017]
在该实现方式中,通过采用比例积分微分的控制方式控制所述平衡车的加速度,将平衡车的速度控制作为平衡控制的输入(即获取平衡车当前的运行速度,结合平衡车的速度设定值,确定出平衡车的调节加速度,从而转换为平衡车的调节倾角),并且,采用比例积分的方式控制速度,能够避免编码器可能存在的噪声被放大的情况,可以消除系统的静差,优化控制效果和保证控制的稳定性。而将平衡车的速度控制作为平衡控制的输入,能够避免由于速度控制带来的不稳定(在平衡控制部分加入速度负反馈,则无法达到速度闭环的目的,而且还会破坏平衡控制的稳定性,本申请实施例中的平衡控制表示平衡车的直立控制),从而保证平衡车的控制方法的有效性和稳定性。
[0018]
第二方面,本申请实施例提供一种平衡车,包括第一车轮和第二车轮、底板、第一电机和第二电机、第一传动机构和第二传动机构,以及所述平衡车的主板,所述主板设置在所述底板上,且所述主板中连接的超声波避障模块和线性ccd寻迹模块面向同一方向;所述第一电机和所述第二电机设置在所述底板上,所述主板中的驱动模块的输出端与所述第一电机和所述第二电机连接,而所述第一电机通过所述第一传动机构与所述第一车轮连接,所述第二电机通过所述第二传动机构与所述第二车轮连接;所述主板中预设有第一方面或第一方面的可能的实现方式中任一项所述的平衡车的控制方法的控制程序,用于控制所述平衡车运行且维持平衡。
[0019]
第三方面,本申请实施例提供一种平衡车的超声波避障运行方法,应用于第二方面所述的平衡车,所述方法包括:获取所述超声波避障模块检测的超声波信号,并确定出所述超声波信号对应的所述平衡车与障碍物之间的障碍物距离;判断所述障碍物距离是否小于第一预设距离值;若所述障碍物距离小于所述第一预设距离值,控制所述平衡车保持平衡的条件下加速后退,直至所述超声波避障模块最新检测的超声波信号对应的障碍物距离不小于所述第一预设距离值。
[0020]
在本申请实施例中,可以利用超声波避障模块检测的超声波信号,实现障碍物距离的判断,从而在保持平衡车平衡的条件下实现平衡车的避障运行。
[0021]
第四方面,本申请实施例提供一种平衡车的线性ccd寻迹跟随方法,应用于第二方面所述的平衡车,所述方法包括:获取所述线性ccd寻迹模块检测的线性图像信号,并确定出所述线性图像信号对应的所述平衡车与跟随物之间的跟随距离;判断所述跟随距离是否小于第二预设距离值;若所述障碍物距离不小于所述第一预设距离值,控制所述平衡车保持平衡的条件下加速前进,直至所述线性ccd寻迹模块最新检测的线性图像信号对应的跟随距离小于所述第二预设距离值。
[0022]
在本申请实施例中,可以利用线性ccd寻迹模块检测的线性图像信号,实现跟随距离的判断,从而在保持平衡车平衡的条件下实现平衡车的跟随运行。
[0023]
为使本申请的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
[0024]
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
[0025]
图1为本申请实施例提供的一种平衡车避障跟随系统的示意图。
[0026]
图2为本申请实施例提供的主控模块的电路图。
[0027]
图3为本申请实施例提供的电源模块的电路图。
[0028]
图4为本申请实施例提供的电量检测模块的电路图。
[0029]
图5为本申请实施例提供的姿态检测模块的电路图。
[0030]
图6为本申请实施例提供的显示模块的电路图。
[0031]
图7为本申请实施例提供的驱动模块的电路图。
[0032]
图8为本申请实施例提供的一种平衡车的结构示意图。
[0033]
图9为本申请实施例提供的一种平衡车的控制方法的流程图。
[0034]
图10为本申请实施例提供的一种平衡车的比例微分控制的原理图。
[0035]
图11为本申请实施例提供的一种平衡车的比例积分微分控制的原理图。
[0036]
图12为本申请实施例提供的一种演变后的平衡车的控制原理图。
[0037]
图13为本申请实施例提供的一种平衡车的超声波避障运行方法的流程图。
[0038]
图14为本申请实施例提供的一种平衡车的线性ccd寻迹跟随方法的流程图。
[0039]
图15为本申请实施例提供的一种平衡车的控制算法流程图。
[0040]
图标:100-平衡车避障跟随系统;110-主控模块;120-电源模块;130-电量检测模块;140-超声波避障模块;150-线性ccd寻迹模块;160-姿态检测模块;170-显示模块;180-驱动模块;191-无线通讯模块;192-串口调试模块;200-平衡车;210-底板;220-主板;230-第一车轮;240-第二车轮;250-第一电机;260-第二电机;270-第一传动机构;280-第二传动机构。
具体实施方式
[0041]
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。
[0042]
请参阅图1,图1为本申请实施例提供的一种平衡车避障跟随系统100的示意图。
[0043]
在本申请实施例中,平衡车避障跟随系统100可以包括主控模块110、显示模块170、电源模块120、驱动模块180、超声波避障模块140、姿态检测模块160、线性ccd寻迹模块150。以及,还可以包括无线通信模块、电量检测模块130、串口调试模块192等,此处不作限定。
[0044]
示例性的,主控模块110可以选用stm32f405rg,当然,也可以选用其他类型的单片
机,例如51系列的单片机等,本实施例中以stm32f405rg为例,但此处不作限定。
[0045]
请参阅图2,图2为本申请实施例提供的主控模块110的电路图。由于多个模块均与主控模块110连接,而主控模块110的引脚标号已在图2中标明,因此,具体的连接线路已示在图2中,此处不进行详细赘述。
[0046]
示例性的,电源模块120可以分别与平衡车避障跟随系统100中的其他模块(例如主控模块110、显示模块170、驱动模块180、超声波避障模块140、姿态检测模块160、线性ccd寻迹模块150等)连接,从而为其正常运行进行供电。
[0047]
而电源模块120可以包括电源、第一变压模块、第二变压模块,第一变压模块与电源连接后,将电源电压转换至5v后输出,第二变压模块与第一变压模块连接,将5v电压转换至3.3v后输出。电源可以选用多节电池串联提供,例如选用3节电池串联提供12v的电源电压。
[0048]
请参阅图2和图3,图3为本申请实施例提供的电源模块120的电路图。可以利用lm2596t芯片将12v电压转为5v电压,可以利用ams1117芯片又将5v电压转换为3.3v电压后输出,以便为平衡车避障跟随系统100供电,具体的连接线路已示在图2和图3中,此处不进行赘述。
[0049]
通过设置第一变压模块和第二变压模块,可以将电源电压转变为需要的稳定的电压,例如通过第一变压模块可转变为5v电压,通过第二变压模块可将5v电压转变为3.3v电压,这样可以便于为平衡车避障跟随系统100提供稳定的电源。
[0050]
示例性的,电源满电的时候是12.6v,过放(电压低于9.6v)必然导致电池永久过放,因此有必要通过监控电池电压的变化,近似表示电池的电量,以便在电池电量比较低的情况下,提醒充电。
[0051]
示例性的,平衡车避障跟随系统100的电量检测模块130可以使用高精度电阻分压的方式对电池电压进行测量。具体的,电量检测模块130可以连接在电源模块120与主控模块110之间,用于检测电源电压值,并且,电量检测模块130还可以与主控模块110的输入端连接,以便将检测的电源电压值传送至主控模块110。
[0052]
请参阅图2和图4,图4为本申请实施例提供的电量检测模块130的电路图。示例性的,电量检测模块130可以使用高精度电阻分压的方式对源电压进行测量,电量检测模块130具体的连接线路已示在图2和图4中,此处不进行赘述。电量检测模块130的设置,可以检测电源的电压,从而推知电源的剩余电量,有利于提示用户电源剩余电量,及时充电,避免过放的问题。
[0053]
示例性的,超声波避障模块140与电源模块120连接,以及与主控模块110的输入端口连接,从而可以将检测的超声波信号发送给主控模块110。
[0054]
例如,平衡车避障跟随系统100中预设的平衡车的运行模式可以包含超声波避障模式,可以通过长按用户键2秒即可使平衡车进入超声波避障模式。此时平衡车避障跟随系统100可以利用超声波避障模块140,对平衡车运行的环境进行超声波检测,从而将检测的超声波信号发送给主控模块110。
[0055]
示例性的,线性ccd寻迹模块150与电源模块120连接,以及,线性ccd寻迹模块150还在连接滤波电路后与主控模块110的输入端口连接,以便将检测的线性图像信号发送给主控模块110。线性ccd寻迹模块150的外围器件可以很少,例如,线性ccd寻迹模块150的输
出信号可以在经过滤波等处理后就可以直接连接到主控芯片的ad端口上,以便为主控芯片提供检测的线性图像信号。
[0056]
示例性的,姿态检测模块160与电源模块120连接,以及与主控模块110的输入端口连接,以便将检测的平衡车的实时姿态信号发送给主控模块110。
[0057]
请参阅图2和图5,图5为本申请实施例提供的姿态检测模块160的电路图。姿态检测模块160具体的连接线路已示在图2和图5中,此处不进行赘述。其中,姿态检测模块160可以选用mpu6050,mpu6050为全球首例整合性6轴运动处理器,整合了3轴陀螺仪和3轴加速度计,能够准确的对小车的姿态进行实时检测。mpu6050的角速度感测范围为
±
250、
±
500、
±
1000与
±
2 000
°
/s,加速度感测范围为
±
2g、
±
4g、
±
8g与
±
16g,加速度感测范围可通过编程来控制。mpu6050可在不同电压下工作,vdd供电电压为(2.5
±
0.125)v、(3.0
±
0.15)v或(3.3
±
0.165)v,平衡车避障跟随系统100中可以为mpu6050提供3.3v的直流电源。且mpu6050可以作为从机使用,使用sda和scl端口和主机stm32(即主控模块110)进行通信,mpu6050检测的数据经过内置的16位ad转换器进行转换,然后将16位数字量通过i2c总线接口发送给主控模块110。
[0058]
示例性的,显示模块170与电源模块120连接,以及,显示模块170还与主控模块110的输出端口连接,以便接收主控模块110发送的用于显示的显示信息,并通过屏幕显示出来。显示模块170可以选用oled显示屏,这样可以同时显示更多的信息,以便用户实时地查看平衡车的多种信息。当然,在其他一些可能的实现方式中,显示模块170也可以选用其他类型的显示屏,例如lcd显示屏、led显示屏等,此处不作限定。
[0059]
请参阅图2和图6,图6为本申请实施例提供的显示模块170的电路图。其中,显示模块170的1号引脚可以接地,2号引脚可以接电源,3至6号引脚可以分别接主控模块110(以stm32f405rg为例)的输出端口(即引脚pc13、pc14、pc15、pc0),由此实现显示模块170与主控模块110之间的电路连接。当然,根据主控模块110、显示模块170等元件的不同,可以有不同的电路设计,此处不作限定。
[0060]
选用oled液晶显示屏作为显示模块170,可以显示六行数据,例如,显示模块170的第一行可以显示滤波器和小车的运行模式;第二行可以显示当前温度和超声波测量值;第三行可以显示左轮编码器速度;可以显示第四行可以显示右轮编码器速度;第五行可以显示电池电压(即剩余电量);第六行可以显示小车的平衡倾角。当然此处仅是示例性的一种显示信息的方式,还有其他的显示方式,例如,显示的行数不同,显示的信息类型不同等,此处不作限定。
[0061]
示例性的,驱动模块180可以与电源模块120连接,以及,与主控模块110的输出端口连接,这样驱动模块180可以接收主控模块110发送的控制指令,实现对驱动电机的控制,从而实现对平衡车的运动、姿态、运动模式等方面的控制。
[0062]
请参阅图2和图7,图7为本申请实施例提供的驱动模块180的电路图。驱动模块180具体的连接线路已示在图2和图7中,此处不进行赘述。其中,驱动模块180可以选用tb6612fng,tb6612fng是东芝半导体公司生产的一款直流电机驱动器件,它具有大电流mosfet-h桥结构,双通道电路输出,可同时驱动2个电机,这样有利于简化平衡车避障跟随系统100的整体设计,无需实用两个驱动来分别实现对不同电机(对应平衡车的两个车轮)的驱动。tb6612fng每通道输出最高1.2a的连续驱动电流,启动峰值电流达2a/3.2a(连续脉
冲/单脉冲);4种电机控制模式:正转/反转/制动/停止;pwm支持频率高达100khz;待机状态:片内低压检测电路与热停机保护电路;工作温度:-20~85℃;ssop24小型贴片封装。tb6612fng是基于mosfet的h桥集成电路,其效率高于晶体管h桥驱动器。相比l293d每通道平均600ma的驱动电流和1.2a的脉冲峰值电流,它的输出负载能力提高了一倍。相比l298n的热耗性和外围二极管续流电路,它无需外加散热片,外围电路简单,只需外接电源滤波电容就可以直接驱动电机,利于减小系统尺寸。对于pwm信号,它支持高达100khz的频率,相对以上2款芯片的5khz和40khz也具有较大优势。
[0063]
本实施例中的平衡车避障跟随系统100以使用小型12v直流电机为例,其转速是由施加给电机的电压大小来决定,转向是通过改变施加给电机电源的正负极性。驱动模块180输出两路pwm信号,使用过程中通过给其中一路占空比为零,另外一路不为零来控制电机的正反转。电机电压的设定值不是直接用来控制电机的,而是将其转化为pwm占空比,通过增大或减小pwm占空比的方法来实现电机的加减速控制。通过pid控制算法后的pwm信号是stm32控制器(即主控模块110)直接发送给直流电机驱动模块180,从而控制直流电机的速度和方向(平衡车的转弯过程可以通过控制两个电机的速度差来实现)。
[0064]
示例性的,无线通讯模块191与电源模块120连接,以及,无线通讯模块191与主控模块110的数据通信端口连接。通过设置无线通讯模块191,可以实现平衡车避障跟随系统100与其他智能终端(例如上位机、智能手机、平板等智能控制终端)之间的无线数据通信,有利于实现对平衡车的远程控制和功能扩展,从而提升平衡车的使用性能。
[0065]
例如,无线通讯模块191可以选用蓝牙模块,可以在保证通信质量的条件下,同时控制成本。当然,无线通讯模块191也可以选用其他的模块,例如wifi模块,此处不作限定。
[0066]
另外,串口调试模块192可以用于作为调试平衡车避障跟随系统100的接口,便于对平衡车避障跟随系统100的调试。
[0067]
当然,平衡车避障跟随系统100还可以包含一些其他的模块,例如稳压模块,以便于扩展平衡车避障跟随系统100的功能,此处不作具体限定。
[0068]
平衡车避障跟随系统100可以预设有不同的模式,例如跟随模式、避障模式等,可以通过按键来进行控制,也可以通过上位机控制,此处不作限定。例如,可以通过长按按键2秒,即可进入超声波避障模式,oled显示屏可以显示小车进入避障模式,并实时显示前方的距离。如果需要切换到跟随功能,只需要在上位机自定义按键就可以实现从避障模式到跟随模式的切换。
[0069]
由于平衡车避障跟随系统100可以通过超声波避障模块140、姿态检测模块160、线性ccd寻迹模块150等进行环境信息的实时检测反馈,从而使得平衡车避障跟随系统100可以多样化地利用这些信息对平衡车进行控制,使得平衡车能够实现超声波避障、线性ccd寻迹跟随等功能,且能够通过显示屏实时显示关键信息(例如滤波器和小车的运行模式、当前温度、超声波测量值、左轮编码器速度、右轮编码器速度、电池电压、小车的平衡倾角等各种重要的信息),使得用户能够不通过上位机或者无线终端,而是通过显示模块170的显示屏直接了解到这些信息,提升平衡车的实用性。
[0070]
另外,平衡车避障跟随系统100可以全方位监控平衡小车,例如:配备小车电量监控功能,电量低于20%时,上位机会通知提醒用户充电;能够实时显示小车两轮的速度信息;还可以图形化实时显示小车平衡倾角;实时显示接收到的小车下位机指令。多通道波形
显示:支持高达5个通道的波形显示,可以自定义每个波形通道的名称,可以选择打开或关闭任意一个通道,坐标轴可以根据输入值自适应改变,可以实时打开或关闭每个点的数值显示,可以对波形细节进行放大或缩小等。
[0071]
请参阅图8,图8为本申请实施例提供的一种平衡车200的结构示意图。
[0072]
在本实施例中,平衡车200可以包括第一车轮230和第二车轮240(即平衡车的左轮和右轮)、底板210、第一电机250和第二电机260(即平衡车的左轮电机和右轮电机)、第一传动机构270和第二传动机构280(即平衡车的左轮传动和右轮传动),以及基于本实施例中的平衡车避障跟随系统100集成的主板220。
[0073]
示例性的,主板220可以设置在底板210上,其中,主板220中连接的超声波避障模块140和线性ccd寻迹模块150可以面向同一方向,而第一电机250和第二电机260设置在底板210上,主板220中的驱动模块180的输出端与第一电机250和第二电机260连接,而第一电机250通过第一传动机构270与第一车轮230连接,第二电机260通过所述第二传动机构280与第二车轮240连接,以便主板220的平衡车避障跟随系统100控制平衡车200运行。
[0074]
以上,是对本申请实施例提供的平衡车的介绍,以下,将对本申请实施例提供的一种平衡车的控制方法进行介绍。平衡车的控制方法可以应用于平衡车(或平衡车的主板),因此,可以在平衡车的主板中预设平衡车的控制方法的控制程序,以实现对平衡车的平衡控制。
[0075]
请参阅图9,图9为本申请实施例提供的一种平衡车的控制方法的流程图。在本实施例中,平衡车的控制方法可以包括步骤s10、步骤s20和步骤s30。
[0076]
为了便于对本方案的理解,此处先对平衡车的平衡控制原理进行简要的介绍。由于平衡车的平衡控制是通过负反馈来实现的,而平衡车有两个轮子着地,车体会在轮子滚动的方向上发生倾斜。因此,控制轮子转动,抵消在一个维度上倾斜的趋势便可以保持车体平衡了。把平衡车偏离平衡位置的角度作为偏差,而控制的目标则是通过负反馈控制让这个偏差接近于零。为了保持平衡车的平衡,不仅需要对平衡车施加和倾角(即车模倾角)成正比的回复力,还需要施加和角速度(即倾角速度)成正比的阻尼力,而阻尼力与运动方向相反,而通过平衡车的加速度控制,可以提供相应的回复力和阻尼力,因此,可以通过对平衡车的加速度控制,实现对平衡车的平衡控制(即直立控制)。
[0077]
为了实现对平衡车的控制(本实施例中指直立控制、平衡控制,表示为维持平衡车的平衡所进行的控制),可以执行步骤s10。
[0078]
步骤s10:获取所述平衡车当前的车模倾角和倾角速度,其中,所述车模倾角表示所述平衡车当前的倾斜角度,所述倾角速度表示所述平衡车的角速度。
[0079]
在本实施例中,为了获取平衡车的平衡偏差,平衡车(控制方法的执行主体,可以为平衡车或者主板,此处不作限定,后文不再赘述)可以获取平衡车当前的车模倾角和倾角速度。
[0080]
为了保证获取的车模倾角和倾角速度的简便性和可靠性,本申请实施例中的平衡车采用了集成有三轴加速度计和三轴陀螺仪的mpu6050作为平衡车的姿态检测模块,以便准确获取平衡车的车模倾角和倾角速度,以及,由mpu6050一个模块即可获取三轴加速度计和三轴陀螺仪等检测的参数,也有利于精简平衡车的结构。
[0081]
通过测量平衡车的车模倾角和倾角速度,来控制平衡车的车轮的加速度,以消除
平衡车的倾角,从而保持平衡车的平衡(即保持平衡车的直立)。因此,车模倾角和倾角速度的测量,是控制平衡车平衡的关键因素。而测量车模倾角和倾角速度,可以通过安装在车模上的加速度传感器和陀螺仪实现,而mpu6050集成了三轴加速度计和三轴陀螺仪,因此,获取mpu6050的参数后进行相应的处理,即可实现对平衡车的车模倾角和倾角速度的检测。
[0082]
平衡车的倾角速度可以通过角速度传感器(即陀螺仪)测量,且角速度传感器输出的是角速度,不受小车运动的影响,因此准确性和可靠性都能够满足要求。而平衡车的车模倾角可以通过加速度传感器测量,也可以角速度传感器测量,但加速度传感器测量的角度信号在受到外界干扰的情况下,会有很大的毛刺;而对角速度进行积分得到角度的方式(即利用角速度传感器测量平衡车的车模倾角的方式),需要经过积分运算,如果角速度信号存在微小的偏差和漂移,比如在传感器静止的情况下,输出不为零,那么经过积分运算之后,变化形成积累误差,这个误差会随着时间的延长逐步增加,从而无法输出正确的角度信号,并且,对角速度进行积分得到的角度会由于角速度传感器自身的零点漂移,导致误差随着时间变化逐步增加,误差越来越大。因此,对于车模倾角的测量,需要进行校准,以保证车模倾角的准确性和可靠性。
[0083]
示例性的,平衡车可以获取mpu6050检测的角速度参数,以确定出倾角速度,以及,获取mpu6050检测的y轴加速度测量值,平衡车当前的线加速度等参数。而后,平衡可以根据y轴加速度测量值、倾角速度、平衡车当前的线加速度,确定出平衡车的第一倾角(即通过加速度传感器测量的车模倾角);又根据倾角速度,对该倾角速度进行积分运算,确定出平衡车的第二倾角(即通过角速度传感器测量的车模倾角),从而对第一倾角和第二倾角进行滤波融合(即对车模倾角进行校准),确定出车模倾角。
[0084]
通过利用mpu6050(集成有三轴加速度计和三轴陀螺仪),对平衡车的角速度参数进行检测(用于确定平衡车的倾角速度),以及,检测平衡车的y轴加速度测量值,平衡车当前的线加速度,进一步根据y轴加速度测量值、倾角速度、线加速度,确定出平衡车的第一倾角,以及,根据倾角速度,对该倾角速度进行积分运算,确定出平衡车的第二倾角,从而对第一倾角和第二倾角进行滤波融合,确定出车模倾角。这样的方式可以避免由于角速度信号存在微小的偏差和漂移(例如在传感器静止的情况下,输出不为零)而经过积分运算之后形成的积累误差(会随着时间的延长逐步增加,无法输出正确的角度信号),以及,陀螺仪积分得到的角度因为自身的零点漂移导致的误差随着时间变化逐步增加而越来越大的问题;也能够避免加速度计测量的角度信号在受到外界干扰的情况下,会有很大的毛刺的问题,从而得到稳定而精准的车模倾角,有利于保证平衡车的控制方法保持平衡车的平衡效果。
[0085]
在本实施例中,获取的y轴加速度测量值为accel_y,而
[0086]
accel_y=g
·
sinβ+a
·
cosα,
ꢀꢀꢀ
(1)
[0087]
其中,g表示重力加速度,β表示所述第一倾角,a表示平衡车当前的加速度,α表示倾角速度。
[0088]
那么,根据y轴加速度测量值、倾角速度、平衡车当前的线加速度,确定出平衡车的第一倾角的具体方式可以为:获取mpu6050的安装位置到平衡车的电机轴的距离h;而后根据距离h、倾角速度α,平衡车当前的线加速度a1,结合公式(2):
[0089]
a=hα+a1,
ꢀꢀꢀ
(2)
[0090]
则可以确定出平衡车当前的加速度a,再根据确定出的平衡车当前的加速度a、倾
角速度α、y轴加速度测量值accel_y、重力加速度g,结合公式(1),即可确定出平衡车的第一倾角β。
[0091]
通过这样的方式,可以利用mpu6050的线加速度传感器准确地计算出平衡车的第一倾角,从而有利于平衡车的控制方法对平衡车平衡控制的稳定性。
[0092]
需要说明的是,mpu6050的安装位置到平衡车的电机轴的距离h,理论上应当把mpu6050安装的离电机轴越近越好,以减小平衡车运动角加速度对角度测量的影响,但是在工程实践中,将mpu6050安装的离电机轴太近,会使传感器(mpu6050)容易受到电机的影响导致稳定性下降。而且就算是避免了运动的角加速度,线加速度也是无法避免的,所以无法彻底消除运动加速度对角度测量的影响。因此,示例性的,h可以为平衡车整体高度的30~90%,而电机轴通常安装在平衡车的底部区域,但此处不作限定。
[0093]
示例性的,通过获取mpu6050检测的角速度参数以确定出倾角速度,从而进一步进行积分得到第二倾角,具体方式可以为:通过读取角速度传感器(mpu6050)检测的角速度参数,进行相应的变换后得到平衡车的倾角速度而后进行积分。
[0094]
例如,在一个5ms的定时中断服务函数里面执行以下语句:angel_x=angel_x-gyro_x*0.005。其中,angel_x表示第二倾角,gyro_x为角速度传感器的输出,此时的单位为
°
/s(度每秒)。
[0095]
而mpu6050输出的角速度传感器的原始数据是-32768~32768,要转换成单位为
°
/s的数据,可以根据以下语句进行转换:gyro_x=gyro_x/k。其中,k与初始化时的量程有关,当初始化为
±
2000
°
/s时,此处可以取k=16.4。由此,即可基于角速度传感器检测的角速度参数,确定出倾角速度,以进一步确定出第二倾角。
[0096]
为了保证车模倾角的准确性和可靠性,可以对第一倾角和第二倾角进行滤波融合。示例性的,平衡车可以将第一倾角和第二倾角代入互补滤波关系式:
[0097]
angle=n
·
angle
m
+(1-n)
·
(angle+gyro
m
·
dt),
ꢀꢀꢀ
(3)
[0098]
其中,angle表示滤波融合后的角度,即车模倾角,angle
m
表示第一倾角,(angle+gyro
m
·
dt)表示第二倾角,dt表示采样周期,n表示滤波器系数。此处,滤波器系数n可以选取0.02,由此可以准确地确定出车模倾角。
[0099]
通过这样的方式,可以简单有效地对第一倾角和第二倾角进行滤波融合,从而保证确定的车模倾角的准确性和可靠性,有利于平衡车的平衡控制。
[0100]
当然,在其他一些可能的实现方式中,也可以采用其他的滤波融合方式对第一倾角和第二倾角进行滤波融合,以得到准确且稳定可靠的车模倾角。例如,采用卡尔曼滤波的方式,通过在代码中的filter.c文件里预设相关的函数,从而可以在中断服务函数里面直接调用该函数,实现对第一倾角和第二倾角的卡尔曼滤波融合,此处不作限定。
[0101]
得到平衡车当前的车模倾角和倾角速度后,平衡车可以执行步骤s20。
[0102]
步骤s20:根据所述车模倾角和所述倾角速度,确定出用于维持所述平衡车平衡的目标加速度。
[0103]
在本实施例中,根据车模倾角和倾角速度,确定出用于维持平衡车平衡的目标加速度,即控制平衡车保持平衡的具体方法。
[0104]
为了让平衡车能静止在平衡位置附近,不仅需要在电机上施加和倾角成正比的回复力,还需要增加和角度成正比的阻尼力,阻尼力与运动方向相反,由此,平衡车的控制可
以采用比例微分的控制方式控制平衡车的加速度。
[0105]
示例性的,平衡车可以获取预设的第一关系式:
[0106][0107]
a
目标
表示目标加速度,k1表示比例控制参数,k2表示微分控制参数,相当于阻尼力,可以有效抑制车模震荡,θ表示倾角,即车模倾角,表示角速度,即倾角速度。需要说明的是
[0108]
那么,平衡车可以根据检测出的车模倾角和倾角速度,结合第一关系式,确定出目标加速度。比例控制参数k1和微分控制参数k2可以通过现场整定得到,也可以是预设的,此处不作限定。
[0109]
例如,请参阅图10,图10为本申请实施例提供的一种平衡车的比例微分控制的原理图。
[0110]
在本实施例中,平衡车的控制原理可以抽象为一个简单的比例微分控制系统:通过获取平衡车系统(即平衡车)检测的车模倾角、倾角速度,并将车模倾角、倾角速度反馈,作为直立pd控制器的输入,以便对平衡车进行直立控制(即平衡控制)。此处的pd参数(即比例控制参数和微分控制参数)一般是现场整定得到的,比例控制是引入了回复力,微分控制引入了阻尼力,微分系数与转动惯量有关。在平衡车的质量一定的情况下,重心位置增高,需要的回复力减小,因此比例控制下降,转动惯量变大,微分控制系数增大;在平衡车的重心位置一定的情况下,平衡车的质量增大,需要的回复力增大,因此比例控制系数增大,转动惯量变大,微分控制系数增大。
[0111]
通过采用比例微分的控制方式控制平衡车的加速度,可以简化平衡车的控制策略,使得平衡车的控制能够具有简单有效、稳定可靠的控制特点,从而控制平衡车维持平衡,也能够在各种复杂场景下实现平衡车的平衡控制。
[0112]
当然,上述的比例微分控制方式是控制平衡车保持平衡的基本控制方法,由于在实际中,对平衡车的控制,不仅有作为基础的平衡控制,还会涉及到对平衡车的速度控制、转向控制等,实现这些控制的同时,可能会影响平衡车的平衡控制的稳定性。
[0113]
在直立控制的系统(即控制平衡车保持平衡的比例微分的控制方法)里面加入速度负反馈无法达到速度闭环的目的,而且还会破坏直立控制系统。为了保证直立控制的优先级,可以把速度控制放在直立控制的前面,也就是速度控制调节的结果仅仅是改变直立控制的目标值。即,速度控制的输出作为直立控制的输入(当然,速度控制器的输出结果需要进行一次转换,将加速度转换为角度,再作为直立控制器的有效输入数据,转换的处理过程交给谁来执行此处不作限定),直立控制器的输出作为整个控制系统的输出,这样就可以把图11的系统进一步演化成图12的系统,实现独立控制。
[0114]
而平衡车的运行速度与平衡车的倾角是相关的,要提高平衡车向前行驶的速度,就需要增加平衡车向前倾斜的角度,倾斜角度加大之后,车轮在直立控制的作用下向前运动保持平衡车平衡,提供向前的加速度,平衡车速度增大;如果要降低平衡车向前行驶的速度,就需要减小平衡车向前倾斜的角度,倾斜角度减小之后,车轮在直立控制的作用下提供向后的加速度,以保持平衡车平衡,从而减小平衡车的速度。
[0115]
基于此,本实施例中针对存在速度控制的情况,采用比例积分微分的控制方式控
制平衡车的加速度。
[0116]
示例性的,平衡车可以获取平衡车当前的运行速度,进一步根据运行速度,以及平衡车的速度设定值,确定出平衡车的调节加速度;而后将调节加速度转换为平衡车的调节倾角,再根据调节倾角,以及车模倾角和倾角速度,确定出速度控制下用于维持平衡车平衡的目标加速度。
[0117]
通过采用比例积分微分的控制方式控制平衡车的加速度,将平衡车的速度控制作为平衡控制的输入(即获取平衡车当前的运行速度,结合平衡车的速度设定值,确定出平衡车的调节加速度,从而转换为平衡车的调节倾角),并且,采用比例积分的方式控制速度,能够避免编码器可能存在的噪声被放大的情况,可以消除系统的静差,优化控制效果和保证控制的稳定性。而将平衡车的速度控制作为平衡控制的输入,能够避免由于速度控制带来的不稳定(在平衡控制部分加入速度负反馈,则无法达到速度闭环的目的,而且还会破坏平衡控制的稳定性,本申请实施例中的平衡控制表示平衡车的直立控制),从而保证平衡车的控制方法的有效性和稳定性。
[0118]
例如,请参阅图11,图11为本申请实施例提供的一种平衡车的比例积分微分控制的原理图。
[0119]
在本实施例中,比例积分微分控制的原理可以抽象为一个比例积分微分控制系统,可以理解为把速度控制器和直立控制器这两个控制器串联起来工作,其中速度控制的输出(加速度的量,即调节加速度)可以作为直立控制的输入(经变换后,作为直立控制的输入,因为直立控制的输入为车模倾角和倾角速度,是角度和角速度,而在保持平衡车平衡的条件下,加速度可以与角度对应,因此,可以将速度控制的输出转变后作为直立控制的输入,即调节倾角),而直立控制的输出(输出加速度)作为系统的输出,这其实就是一个串级控制系统。
[0120]
直立控制在前文有介绍,使用的pd控制(即比例微分控制),因为编码器可能存在的噪声,为防止噪声被放大并消除系统的静差,此处的速度控制可以使用pi控制(即比例积分控制)。那么,对于公式(4),则有:
[0121][0122]
其中,a
目标
表示目标加速度,k
p
表示比例控制参数,k
d
表示微分控制参数,θ表示车模倾角,表示倾角速度,f(a1)则表示将调节加速度a1转换为调节倾角。而将调节加速度a1转换为调节倾角f(a1),可以通过预设对应关系的方式(例如查表)进行转换,也可以建立相应的函数进行转换,此处不作限定。
[0123]
而调节加速度a1作为速度控制器(pi控制)的输出,有:
[0124]
a1=k
p1
·
e(k)+k
i1
·
∑e(k),
ꢀꢀꢀ
(6)
[0125]
其中,a1表示调节加速度,k
p1
表示速度控制器的比例控制参数,k
i1
表示速度控制器的积分控制参数,k表示第k次采样。
[0126]
那么,整合公式(5)和公式(6),可以得到:
[0127][0128]
由此,得到了让小车保持直立且速度为给定值的控制算法,由一个负反馈的直立
pd控制器和一个正反馈的速度pi控制器组成。控制原理图进行了演变,如图12所示。
[0129]
需要说明的都是,进行速度与直立控制的融合控制,经过实验,直接使用串级pid控制系统对平衡小车的直立和速度进行控制也是可以的,并且,在串级pid控制系统里面,速度控制是负反馈,因此,上述的控制方式不应视为对本申请的限定。
[0130]
另外,对于平衡车的转向控制部分,此处不再详细赘述,因为对平衡车的转向控制,可以通过控制平衡车的左右车轮的轮速来实现,可以结合z轴陀螺仪进行pd控制,主要还是在于速度控制上,对整体的平衡车的控制系统和控制方法的稳定性影响较小,此处不再展开说明。
[0131]
在确定出目标加速度后,平衡车可以执行步骤s30。
[0132]
步骤s30:根据所述目标加速度,确定出用于控制所述平衡车的电机输出的pwm占空比,以控制所述平衡车的电机的运转速度,从而控制所述平衡车保持平衡。
[0133]
在本实施例中,为简化平衡车的控制,可以用施加在电机上的电压代替加速度,也就是直接调节控制电机的pwm的占空比即可。因此,平衡车可以根据目标加速度,确定出用于控制平衡车的电机输出的pwm占空比,以控制平衡车的电机的运转速度,从而控制平衡车保持平衡。
[0134]
请参阅图13,图13为本申请实施例提供的一种平衡车的超声波避障运行方法的流程图。在本实施例中,平衡车的超声波避障运行方法可以应用于平衡车,可以包括步骤s41、步骤s42和步骤s43。
[0135]
步骤s41:获取所述超声波避障模块检测的超声波信号,并确定出所述超声波信号对应的所述平衡车与障碍物之间的障碍物距离。
[0136]
步骤s42:判断所述障碍物距离是否小于第一预设距离值。
[0137]
步骤s43:若所述障碍物距离小于所述第一预设距离值,控制所述平衡车保持平衡的条件下加速后退,直至所述超声波避障模块最新检测的超声波信号对应的障碍物距离不小于所述第一预设距离值。
[0138]
通过对上述步骤的执行,平衡车可以利用超声波避障模块检测的超声波信号,实现障碍物距离的判断,从而在保持平衡车平衡的条件下实现平衡车的避障运行。
[0139]
请参阅图14,图14为本申请实施例提供的一种平衡车的线性ccd寻迹跟随方法的流程图。在本实施例中,平衡车的线性ccd寻迹跟随方法可以应用于平衡车,可以包括步骤s51、步骤s52和步骤s53。
[0140]
步骤s51:获取所述线性ccd寻迹模块检测的线性图像信号,并确定出所述线性图像信号对应的所述平衡车与跟随物之间的跟随距离。
[0141]
步骤s52:判断所述跟随距离是否小于第二预设距离值。
[0142]
步骤s53:若所述障碍物距离不小于所述第一预设距离值,控制所述平衡车保持平衡的条件下加速前进,直至所述线性ccd寻迹模块最新检测的线性图像信号对应的跟随距离小于所述第二预设距离值。
[0143]
通过对上述步骤的执行,平衡车可以利用线性ccd寻迹模块检测的线性图像信号,实现跟随距离的判断,从而在保持平衡车平衡的条件下实现平衡车的跟随运行。
[0144]
示例性的,结合到本申请实施例提供的装载有平衡车避障跟随系统的平衡车上,可以通过按键或者上位机进行模式切换,改变平衡车在运行时的模式(例如超声波避障模
式、线性ccd寻迹跟随模式等),从而实现平衡车的避障、跟随功能,且实时利用平衡车的控制方法进行平衡控制,使得平衡车在实现多种多样的功能的同时,能够在运行中保持稳定的平衡。
[0145]
例如,请参阅图15,图15为一种实例中平衡车的控制算法流程,平衡车可以基于此流程实现跟随、避障等功能,且在运行中,能够保持稳定的平衡。
[0146]
综上所述,本申请实施例提供一种平衡车的控制方法、平衡车、平衡车避障及跟随运行方法,通过获取平衡车当前的车模倾角和倾角速度,可以准确地判断出平衡车当前的状态,为了保持平衡车的平衡,不仅需要对平衡车施加和倾角(即车模倾角)成正比的回复力,还需要施加和角速度(即倾角速度)成正比的阻尼力,而阻尼力与运动方向相反,因此,可以通过对平衡车的加速度控制,实现对平衡车的平衡控制(即直立控制)。因此,根据车模倾角和倾角速度,可以确定出用于维持平衡车平衡的目标加速度,从而进一步确定出电机输出的pwm占空比,以控制平衡车的电机的运转速度,实现对平衡车的平衡控制。这样的方式可以简单高效地对平衡车的平衡控制(直立控制),并且,此种控制方式,控制元素集中,有利于保持控制系统的鲁棒性。
[0147]
在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。
[0148]
以上所述仅为本申请的实施例而已,并不用于限制本申请的保护范围,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

起点商标作为专业知识产权交易平台,可以帮助大家解决很多问题,如果大家想要了解更多知产交易信息请点击 【在线咨询】或添加微信 【19522093243】与客服一对一沟通,为大家解决相关问题。

此文章来源于网络,如有侵权,请联系删除

tips