利索能及
我要发布
收藏
专利号: 2020100805716
申请人: 浙江工业大学
专利类型:发明专利
专利状态:已下证
更新日期:2026-07-29
缴费截止日期: 暂无
联系人

摘要:

权利要求书:

1.一种基于单线激光雷达的平衡车室内定位与导航巡回系统,其特征在于:包括:服务器、上位机、传感器、运动控制器与运动执行器;当操作人员在服务器中输入目标点坐标,服务器将目标点坐标发送给上位机,上位机利用传感器信息完成平衡车自身定位与路径规划,上位机再将由路径规划出的期望角速度与期望线速度发送给运动控制器;运动控制器接收上位机发送的信息,并同时采集传感器信息,利用这些信息结合自抗扰控制的方法计算出运动执行器所需要的PWM波占空比,然后把PWM波发送给运动执行器;运动执行器接收到PWM波后,完成平衡车自平衡的同时驱动平衡车向目标点行驶;最终操作人员能在服务器看到地图与平衡车的实时位置、状态信息;

服务器显示地图与平衡车实时位置状态信息、生成目标点并发送,包括通讯模块、目标生成模块与显示模块;

所述通讯模块,进行服务器与上位机间的Socket通讯:上位机的Socket通讯单元从建图单元中订阅地图、从定位单元得到实时的平衡车位姿与状态信息,并把这些信息转为json格式,以字节流的形式通过Socket通讯的方式发送给服务器的通讯模块,最终再把这些数据输出给显示模块,用于展示给操作人员;服务器的通讯模块负责把从目标生成模块中得到的目标点坐标发送给上位机通讯模块的Socket通讯单元;

所述目标生成模块,即操作人员观察到显示模块中的地图与平衡车实时位姿,然后输入想让平衡车到达的目标点坐标;然后这坐标会通过服务器的通讯模块,发送给上位机通讯模块中的Socket通讯单元,最终会输入给上位机中导航模块的全局路径规划单元;

所述显示模块,从服务器的通讯模块中获得平衡车所处环境地图、平衡车位姿、状态的信息,并把这些信息实时的显示出来;

上位机利用传感器信息对周围环境建立地图并实现平衡车在二维地图中的自定位,再结合服务器发送的目标点坐标,上位机规划出一条平衡车位置到目标点的一条合理的最短路径,并将路径信息转化为期望角速度与期望线速度发送给运动控制器;上位机包括二维激光SLAM模块、导航模块、通讯模块;

首先是二维激光SLAM模块,包含数据处理单元、建图单元、定位单元;其中数据处理单元包括编码器数据处理子单元、IMU数据处理子单元与激光雷达数据处理子单元;

编码器数据处理子单元:先利用上位机通讯模块中的串口通讯单元获得左右轮编码器数据,并定义右轮速为Vr与左轮速为Vl、平衡车的两轮间的距离参数d;将左右轮速与轮间距数据代入公式(1)中,计算平衡车的瞬时线速度与瞬时角速度,由于平衡车无法横向移动因此y方向的线速度始终为0:

将公式(1)求得的瞬时线速度与瞬时角速度代入运动模型(2)中,计算出轮式里程计;

最终将轮式里程计输出给IMU数据处理子单元;

IMU数据处理子单元:由于磁场会对IMU数据产生干扰,所以通过磁力计矫正由IMU计算出来的偏航角信息,因此轮式里程计的转向角度比IMU所测得的偏航角误差更大;而对于平移量,由于IMU的加速度计存在易受高频噪声干扰的问题,因此轮式里程计的平移量误差更小;于是选择扩展卡尔曼滤波将从上位机通讯模块中的串口通讯单元获得IMU数据与编码器数据处理子单元输出的轮式里程计进行融合,获得精度更高的里程计,再将IMU数据与里程计数据输出给激光雷达数据处理子单元、定位单元与建图单元;

激光雷达数据处理子单元:由于激光雷达是旋转测量周围的障碍物深度信息,会由平衡车的运动导致激光雷达数据失真,因此需要用里程计来矫正激光雷达原始数据,使得在运动状态下激光雷达数据不失真;因此,先从上位机通讯模块中的串口通讯单元获得激光雷达数据作为激光雷达数据处理子单元的输入,再利用IMU数据处理子单元所输出的里程计数据对激光雷达数据进行矫正,矫正的结果通过似然场模型输出,输出给定位单元、建图单元与导航模块;

所述建图单元,具体运行步骤如下:

S1)从数据处理单元中获得里程计信息与激光雷达数据;将里程计信息与激光雷达数据进行时间同步;

S2)首先初始化粒子滤波器,让每个粒子的权重都相等,并均匀分布;

S3)计算激光雷达位于里程计上的坐标,再利用上一时刻的粒子位姿代入运动模型中进行计算,得到估计的粒子位姿;

S4)通过将激光数据代入每个粒子进行匹配,用匹配结果更新粒子的预测采样分布;

S5)利用目标分布和预测分布来确定各个粒子的权重;

S6)根据粒子的权重对粒子进行重采样,并遍历整条轨迹上的粒子所储存的信息,更新栅格地图,再回到S3步骤更新粒子位姿;

S7)最终输出地图给导航模块、定位单元与上位机通讯模块中的Socket通讯单元;

所述定位单元采用蒙特卡洛方法,将已经建好的地图与雷达、里程计数据作为输入得到机器人的位姿,具体运行步骤如下

T1)从数据处理单元中获得里程计信息与激光雷达数据;将里程计信息与激光雷达数据进行时间同步,再将建图单元输出的地图作为定位单元的输入;

T2)初始化粒子群;通过人为设置初始位姿,也就是初始化粒子群的分布;

T3)通过利用里程计进行运动学模型采样,更新每个粒子的位姿;

T4)将雷达信息与地图代入对每一粒子所对应的位姿,计算其每个粒子所对应的权重,选择权重最高的为机器人的位姿;

T5)由于权重计算结束后,有很多低权重粒子,而这些粒子还占用着计算机资源,因此需要适当舍弃这些低权重粒子,根据粒子所对应的权重进行重采样:对权重高的粒子进行复制,对权重低的进行舍弃;一次迭代结束,回到T3步骤继续迭代;

所述的导航模块,包含全局路径规划单元与局部路径规划单元;通过全局路径规划单元,规划出一条平衡车实时位姿到目的地的合理最短行驶路线;再用局部路径规划单元,控制平衡车跟随全局轨迹,并实现避障功能;接下来介绍全局路径规划单元与局部路径规划单元:

全局路径规划单元:从建图单元中订阅得到地图、从定位单元获得平衡车实时位姿与从服务器的通讯模块发送下来的目标点位置信息,再将这些数据输入给全局路径规划单元,使用A*算法从地图中寻找从平衡车位置到目标点的一条合理的最短路径,并将这条路径输出,输出给局部路径规划单元;

局部路径规划单元:将全局路径规划单元的输出路径作为局部路径规划单元输入;订阅数据处理单元中激光雷达数据处理子单元输出的激光雷达信息;首先初始化一条路径;

添加约束条件:1)能够跟踪全局路径.2)避开障碍物.3)符合平衡车运动方式.4)加速度与速度限制,将这些约束条件转化为图优化的边,把时间间隔作为图优化的节点,再通过g2o优化库中关于大规模稀疏矩阵的优化算法进行解决,并规划出局部的最优轨迹;最后根据平衡车运动学模型进行计算期望的角速度与加速度,发送给上位机通讯模块中的串口通讯单元;

所述的上位机通讯模块,包含串口通讯单元与Socket通讯单元,其中串口通信单元中又包含运动控制器与上位机间的串口通讯、传感器与上位机间的串口通讯:运动控制器与上位机间的串口通讯:上位机的串口通讯单元订阅到导航模块中局部路径规划单元输出的期望角速度与期望线速度,然后通过串口向运动控制器发送期望角速度与期望线速度,运动控制器的通讯模块接收到期望角速度与期望线速度后,将数据输出给运动控制模块的方向控制单元与速度控制单元;运动控制器采集编码器的数据,利用串口将编码器数据通过运动控制器的通讯模块,向上位机通讯模块的串口通讯单元发送,上位机通讯模块的串口通讯单元接收到编码器数据后,再发送给数据处理单元的编码器数据处理子单元进行里程计计算;

传感器与上位机间的串口通讯:上位机通讯模块的串口通讯单元通过串口,从激光雷达与100D2 IMU获得激光雷达、IMU数据,然后将激光雷达数据发送给数据处理单元的激光雷达数据处理子单元,将IMU数据发送给数据处理单元的IMU数据处理子单元;

上位机完成对平衡车建图、自身定位与路径规划后,把期望角速度与期望线速度发送给运动控制器;

运动控制器则能通过实时采集传感器信息、上位机发送下来的数据结合自抗扰控制方法,完成对平衡车到达目的地所需要的PWM波占空比的计算,并实时的把PWM波发送给运动执行器;运动控制器;包括运动控制模块、自抗扰控制模块、通讯模块;

所述运动控制模块,包括直立控制单元、方向控制单元和速度控制单元;通过直立控制单元计算出与平衡车实时角度与期望的平衡角度的偏差,再结合自抗扰控制模块使得平衡车在平衡位置拥有较好的平衡效果;使用方向控制单元,计算实时角速度与期望角速度的偏差,再结合自抗扰控制模块使得平衡车能沿着所规划出来的路径行驶;用速度控制单元,计算实时车速与期望速度的偏差,再结合自抗扰控制模块让平衡车以所计算出来的速度进行行驶;以下阐述运动控制模块中三个单元的各自功能:直立控制单元:首先用运动控制器采集传感器MPU6050的数据,其中包含平衡车俯仰角的角速度与加速度信息;由于加速度信息容易被高频噪声湮没,因此利用巴特沃斯低通滤波器将加速度信息滤波,然后用互补滤波公式(3)将平衡车俯仰角方向的角速度gyro与加速度acc进行融合,调整权重x后再进行标定,即可得到角度信息Angle,其中dt为角度计算的周期:

Angle=x*(Angle+gyro*dt)+(1‑x)*acc;       (3)然后将实时角度Angle与期望的平衡角度做偏差输入给自抗扰控制模块;

方向控制单元:先从运动控制器的通讯模块中得到期望的角速度,再从传感器MPU6050实时采集平衡车偏航角的角速度,将它们单位统一化,然后把它们相减的结果输入给自抗扰控制模块;

速度控制单元:首先用运动控制器采集传感器编码器的数据,编码器数据代表着平衡车左右轮的转速;再通过编码器数据计算得到平衡车的实时车速;将实时车速与从运动控制器的通讯模块中得到的期望线速度单位统一化,再进行作差,将结果输入给自抗扰控制模块;

最终,直立控制单元、方向控制单元、速度控制单元这三个单元的结果都输入给了自抗扰控制模块;

所述自抗扰控制模块采用的是自抗扰控制的控制方法,包含微分跟踪单元、扩张状态观测单元和非线性控制率单元;

微分跟踪单元:用于解决由导航模块或者通信模块产生不连续或带随机噪声的信号,从中合理提取期望角速度与速度信号及微分信号的问题,使期望信号平滑;将从运动控制模块输入进来的三个偏差量,进行平滑处理,防止出现信号的突变从而影响系统稳定性,再将结果分别输出给扩张观测单元与非线性控制率单元;

扩张状态观测单元:扩张状态观测单元主要用于观测系统的扰动,并加以抵消;扩张状态观测单元从微分跟踪单元中得到三个偏差量:平衡车的角度偏差、角速度偏差与速度偏差;将它们扩张成新的状态变量,通过特殊的反馈机制观测被扩张的总扰动信号,通过输入、输出构建总扰动为一个状态变量,二阶的系统,它的扩张观测器达到三阶,加入了整个平衡车系统总扰动的状态,将最终观测到的总扰动输出,与微分跟踪单元输出给非线性控制率单元的信号作差,用于消除扰动,使系统更稳定;

非线性控制率单元:非线性控制方法由最速控制综合函数Fhan构造;解决线性控制器无法控制平衡车的非线性系统取得较好效果的问题;将微分跟踪单元的输出与扩张状态观测单元输出做差的结果作为非线性控制率单元的输入,经过计算,计算出直立控制、方向控制、速度控制各自所需要pwm波的占空比,将它们线性叠加并输出给运动执行器;

所述运动控制器中的通讯模块,实现运动控制器与上位机间的串口通讯:上位机的串口通讯单元订阅到导航模块中局部路径规划单元输出的期望角速度与期望线速度,然后通过串口向运动控制器发送期望角速度与期望线速度,运动控制器的通讯模块接收到期望角速度与期望线速度后,将数据输出给运动控制模块的方向控制单元与速度控制单元;运动控制器采集编码器的数据,利用串口将编码器数据通过运动控制器的通讯模块,向上位机通讯模块的串口通讯单元发送,上位机通讯模块的串口通讯单元接收到编码器数据后,再发送给数据处理单元的编码器数据处理子单元进行里程计计算。

2.如权利要求1所述的一种基于单线激光雷达的平衡车室内定位与导航巡回系统,其特征在于:所述的运动执行器采用直流电机,接收运动控制器所发出的PMW波,并将这些PWM波转化为驱动力,来控制平衡车平衡和到达目的地的推力。