1.一种基于色彩识别的移动机器人导航方法,其特征在于,包括以下步骤:步骤1:在移动机器人运动路径上布置辅助识别点标,移动机器人通过摄像头采集周围环境中辅助识别点标的彩色图像,对所得到的彩色图像进行处理,对彩色图像信息的有效性进行判断,最终获得有效的彩色图像信息;
步骤2:根据预先设定的条件,对彩色图像信息进一步识别,判断环境中是否存在辅助识别点标之外阻碍运输的障碍物,如果存在,则直接执行步骤5,否则顺序执行步骤3;
步骤3:读取辅助识别点标和环境中阻碍运输的障碍物的位置信息;
步骤4:根据辅助识别点标的位置信息,确定移动机器人在进行运输作业时的运动控制方案;
步骤5:根据障碍物的位置信息,移动机器人进行减速并绕开障碍物;
步骤6:如果出现辅助识别点标的位置信息传输中断的情形,将自动切换到特定的运动控制方案,保证移动机器人的正常工作。
2.根据权利要求1所述的方法,其特征在于,所述步骤1包括:步骤1.1:设定N组颜色阈值参数,每一组颜色阈值参数设定了6个数值,即LAB三个颜色通道的上下限,即确定出一个颜色范围,用于识别图像中的特定颜色;
步骤1.2:设定像素阈值,彩色图像中像素点需要满足如下条件:pixels_threshold>A;
其中,pixels_threshold为彩色图像信息中任意一像素点的像素值,A为设定的像素阈值;
步骤1.3:设定面积阈值,彩色图像信息中的彩色图像面积的大小需要满足如下条件:area_threshold>S
其中,area_threshold为彩色图像信息中彩色图像的面积值,S为预先设定的面积阈值;
步骤1.4:将满足颜色阈值、像素阈值和面积阈值的彩色图像信息,确定为有效的彩色图像信息,将有效彩色图像记作:blob_color,彩色图像中心坐标记作:(pointrow,pointcol)。
3.根据权利要求2所述的方法,其特征在于,步骤2包括:
为避免在行进途中碰撞到障碍,根据以下公式判断是否存在障碍物:其中,pointrow1表示有效彩色图像blob_color的横坐标,pointcol1表示有效彩色图像blob_color的纵坐标;pointrow2表示障碍物blob_obstacle的横坐标,pointcol2表示障碍物blob_obstacle的纵坐标;W表示预先设定的距离阈值;
当上述公式成立时,则判断所述障碍物为环境中阻碍运输的障碍物,根据障碍物的横坐标在有效彩色图像左侧或右侧,设定一个避障的标志位,记作bflag。
4.根据权利要求3所述的方法,其特征在于,步骤4包括:
步骤4.1:读取摄像头发送的信息,包括有效彩色图像blob_color的点标坐标(pointrow,pointcol)和避障标志位bflag;
步骤4.2:计算运输过程中的偏移量和运动偏差;
步骤4.3:计算运输过程中的直线速度大小;
步骤4.4:计算运输过程中的转向速度大小;
步骤4.5:解算运输过程中移动机器人各电机的速度或转向分量。
5.根据权利要求4所述的方法,其特征在于,步骤4.2包括:步骤4.2.1:根据以下公式,计算运输过程中的偏移量:
其中,Add(pointrow)为表示pointrow和运动偏移量之间关系的函数;Add为运动偏移量;P为提前设定的偏移量定值;k,b为表示运动偏移量之间关系的函数的系数;row_min、row_max为事先设定的区间数值,即设定一个行数范围(row_min,row_max),pointrow在这一区间内时,Add与pointrow成线性关系;pointrow在这一区间外时,Add为固定值;
步骤4.2.2:根据以下公式,计算运输过程中的运动偏差Error:Error=Add+pointcol-Sa/2
其中,Sa为有效彩色图像宽度。
6.根据权利要求5所述的方法,其特征在于,步骤4.3包括:根据以下公式,计算运输过程中的直线速度大小:
当row_min<pointrow<row_max
其中,Y_SpdSet表示运输过程中的直线速度;Vhigh、Vlow为预先设置好的速度定值;KS为减速系数;aim_spd为设定的速度值参数。
7.根据权利要求6所述的方法,其特征在于,步骤4.4包括:步骤4.4.1:根据以下公式,对运输过程中的运动偏差进行处理:ErrorError=Error-LastError
其中,Error为运动偏差,Error_max为预先设定的偏差绝对值上限,ErrorError为偏差变化量,Last_Error为前一个控制周期的运动偏差,ErrorError_max为预先设定的偏差变化量绝对值上限;
步骤4.4.2:根据以下公式,计算运输过程中的模糊比例参数:FuzzyE=Error/Error_max*4
FuzzyEE=Error/ErrorError_max*2bi=-4+i,当0<=i<=8,
ei=-2+i,当0<=i<=4,
Rulei,j={{KpNL,KpNB,KpNM,KpNS,KpZO,KpPS,KpPM,KpPB,KpPL},{KpNL,KpNB,KpNM,KpNS,KpZO,KpPS,KpPM,KpPB,KpPL},{KpNL,KpNB,KpNM,KpZO,KpZO,KpZO,KpPM,KpPB,KpPL},{KpNL,KpNB,KpNM,KpNS,KpZO,KpPS,KpPM,KpPB,KpPL},{KpNL,KpNB,KpNM,KpNS,KpZO,KpPS,KpPM,KpPB,KpPL}}其中,FuzzyE为按比例缩放到(-4,4)区间的模糊偏差,FuzzyEE为缩放到(-2,2)区间的模糊偏差变化率,Dei、Deei分别为FuzzyE在第i个区间的隶属度和FuzzyEE在第i个区间的隶属度,ai、bi、ci、di、ei、fi为计算隶属度Dei、Deei的区间端点,即用于FuzzyE和FuzzyEE在计算中的分段端点;Rulei,j为模糊规则表,表的每一行或每一列表示一个模糊子集,行对应偏差,列对应偏差变化率,i,j分别表示模糊规则表的行数、列数,KpNL、KpNB、KpNM、KpNS、KpZO、KpPS、KpPM、KpPB、KpPL分别表示偏差和偏差变化率在负最大、负大、负中、负小、零、正小、正中、正大、正最大处的模糊值,Kfp即模糊比例参数;
步骤4.4.3:根据以下公式,计算运输过程中的转向速度:
S_SpdTemp=Kfp*Error+K1d*ErrorErrorAngle_Error=S_SpdTemp-Angle_SpeedS_SpdSet=Kp*Angle_Error+K2d*(Angle_Error-LastAngle_Error)其中S_SpdTemp为Error经比例微分运算的结果,K1d为微分项系数,Angle_Speed为移动机器人上陀螺仪检测的转向角速度,Angle_Error为角速度的偏差值,LastAngle_Error为前一控制周期的Angle_Error的值;S_SpdSet为转向速度,其为Angle_Error经比例微分运算后的结果;其中Kp、K2d分别为比例项、微分项的系数,Sspd_max为预先设定的转向速度绝对值上限。
8.根据权利要求7所述的方法,其特征在于,步骤4.5包括:当所述移动机器人使用麦克纳姆轮时,根据以下公式,计算运输过程中各电机的速度分量:LB_SpdSet=-X_SpdSet+Y_SpdSet+S_SpdSet;
RB_SpdSet=X_SpdSet+Y_SpdSet-S_SpdSet;
LF_SpdSet=X_SpdSet+Y_SpdSet+S_SpdSet;
RF_SpdSet=-X_SpdSet+Y_SpdSet-S_SpdSet;
其中LB_SpdSet、RB_SpdSet、LF_SpdSet、RF_SpdSet分别表示移动机器人的左后轮、右后轮、左前轮、右前轮的速度分量;X_SpdSet为移动机器人的侧向速度,无障碍时为根据陀螺仪加速度值计算得到的补偿量,有障碍时为步骤5中移动机器人做减速运动时设定的特定速度值。
9.根据权利要求8所述的方法,其特征在于,步骤6包括:
如果出现辅助识别点标的位置信息传输中断的情形,即无位置信息传输时,设直线速度Y_SpdSet为一设定值,设定一常数D用于时间计算,即定时为D个5ms内,移动机器人保持原直线速度与原偏差行进;
同时,红外信号以1ms/次的中断频率读取了5*D次,超出定时后,根据这一阶段红外的接收情况判断移动机器人向前行进还是向后倒车、向左转向还是向右转向,判断原则为:红外信号显示辅助识别点标在左侧时,则默认向左转,仅当右侧红外信号大于左侧红外信号时向右转;否则,红外信号显示辅助识别点标在右侧时,仅当左侧红外信号强度大于右侧红外信号强度时向左转。