一种行走双臂机器人实时遥感控制方法与流程

文档序号:26949194发布日期:2021-10-16 00:30阅读:118来源:国知局

1.本发明涉及遥感控制技术领域,更具体地说,本发明涉及一种行走双臂机器人实时遥感控制方法。


背景技术:

2.随着遥感技术的发展,特别是遥感传感器技术的不断发展,通过遥感技术所获得的遥感影像或数据的用途越来越广。目前,遥感数据的应用范围已经扩展到社会信息服务领域,例如,广泛应用于测绘、农业、林业、地质矿产、水文与水资源、环境监测、自然灾害、区域分析与规划、军事、土地利用等方面。
3.目前,虽然在机器人行走的控制方面也有应用遥感技术,但由于对机器人的实时控制性较差,使得往往因环境的多变性,导致机器人在行走过程中会出现偏离路径或受阻停滞的情况。
4.在所述背景技术部分公开的上述信息仅用于加强对本公开的背景的理解,因此它可以包括不构成对本领域普通技术人员已知的现有技术的信息。


技术实现要素:

5.为了克服现有技术的上述缺陷,本发明的实施例提供一种行走双臂机器人实时遥感控制方法,本发明所要解决的技术问题是:如何实现对行走中的双臂机器人进行实时精准控制。
6.为实现上述目的,本发明提供如下技术方案:一种行走双臂机器人实时遥感控制方法,具体包括以下步骤:
7.步骤一:在后台服务器中预先设定好该双臂机器人的拟态行走路径,并设定好自动纠正程序;
8.步骤二:通过影像采集设备来采集双臂机器人行走过程中的视频数据,以获得双臂机器人的当前状态信息,并将该状态信息通过以太网传输至安装有动作实时控制程序的后台服务器进行综合处理;
9.步骤三:通过将采集到的视频数据与拟态行走路径自动匹配,并利用自动纠正程序对该双臂机器人的当前状态进行纠偏;
10.步骤四:由动作实时控制程序来计算该双臂机器人下一步应该执行的动作,并将该动作的控制信息再通过以太网传回给双臂机器人,以控制双臂机器人执行该动作。
11.在一个优选地实施方式中,上述步骤一中,自动纠正程序中的衡量模板t和采集影响sij的匹配程度公式为
12.在一个优选地实施方式中,上述步骤一中,自动纠正程序采用的模板匹配算法为match template。
13.在一个优选地实施方式中,match template算法的函数具体为:
14.cv_exports_w void cv::matchtemplate(const mat&image,
15.const mat&templ,
16./*cv_out*/mat&result,
17.int method);。
18.在一个优选地实施方式中,上述步骤二中,动作实时控制程序的计算值函数为其中:s表示状态,a表示执行动作,(s,a)表示状态动作对,k为向量,d为初始化数据库,θ为值函数参数。
19.本发明的技术效果和优点:
20.本发明可以在双臂机器人行走过程中利用控制点片匹配的算法来对机器人行走的状态信息与拟态行走路径进行实时自动匹配,并利用动作实时控制程序中的计算函数来计算该双臂机器人下一步应该执行的动作,可实现对双臂机器人行走过程中的实时精准控制,从而确保机器人行走的稳定性。
具体实施方式
21.现在将结合本发明的实施例更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些示例实施方式使得本公开的描述将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
22.此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多示例实施方式中。在下面的描述中,提供许多具体细节从而给出对本公开的示例实施方式的充分理解。然而,本领域技术人员将意识到,可以实践本公开的技术方案而省略所述特定细节中的一个或更多,或者可以采用其它的方法、组元、步骤等。在其它情况下,不详细示出或描述公知结构、方法、实现或者操作以避免喧宾夺主而使得本公开的各方面变得模糊。
23.本发明提供了一种行走双臂机器人实时遥感控制方法,具体包括以下步骤:
24.步骤一:在后台服务器中预先设定好该双臂机器人的拟态行走路径,并设定好自动纠正程序,其中,自动纠正程序中的衡量模板t和采集影响sij的匹配程度公式为而自动纠正程序采用的模板匹配算法为match template,且match template算法的函数具体为:
25.cv_exports_w void cv::matchtemplate(const mat&image,
26.const mat&templ,
27./*cv_out*/mat&result,
28.int method);;
29.步骤二:通过影像采集设备来采集双臂机器人行走过程中的视频数据,以获得双臂机器人的当前状态信息,并将该状态信息通过以太网传输至安装有动作实时控制程序的
后台服务器进行综合处理,其中,动作实时控制程序的计算值函数为其中:s表示状态,a表示执行动作,(s,a)表示状态动作对,k为向量,d为初始化数据库,θ为值函数参数;
30.步骤三:通过将采集到的视频数据与拟态行走路径自动匹配,并利用自动纠正程序对该双臂机器人的当前状态进行纠偏;
31.步骤四:由动作实时控制程序来计算该双臂机器人下一步应该执行的动作,并将该动作的控制信息再通过以太网传回给双臂机器人,以控制双臂机器人执行该动作。
32.进一步的,在上述步骤一中,match template算法函数的相关源代码(添加有部分注释)如下:
33.void matchtemplate(const mat&_img,const mat&_templ,mat&result,int method)
34.{
35.cv_assert(cv_tm_sqdiff<=method&&method<=cv_tm_ccoeff_normed);
36.//numtype用来表示模板匹配的方式,0表示相关匹配法,1表示相关系数匹配法,2表示平方差匹配法
37.//isnormed表示是否进行归一化处理,true表示进行归一化,false表示不进行归一化处理
38.int numtype=method==cv_tm_ccorr||method==cv_tm_ccorr_normed?0:
39.method==cv_tm_ccoeff||method==cv_tm_ccoeff_normed?1:2;
40.bool isnormed=method==cv_tm_ccorr_normed||
41.method==cv_tm_sqdiff_normed||
42.method==cv_tm_ccoeff_normed;
43.//判断两幅图像的大小关系,如果输入的原始图像比匹配图像要小,则将原始图像作为模板,原来的模板图像作为搜索图
44.mat img=_img,templ=_templ;
45.if(img.rows<templ.rows||img.cols<templ.cols)
46.std::swap(img,templ);
47.cv_assert((img.depth()==cv_8u||img.depth()==cv_32f)&&
48.img.type()==templ.type());
49.//crosscorr函数是将输入图像做了一次dft变换(离散傅里叶变换),将空间域的图像转换到频率域中来进行处理,并将处理的结果存放在result中
50.int cn=img.channels();
51.crosscorr(img,templ,result,
52.size(img.cols

templ.cols+1,img.rows

templ.rows+1),
53.cv_32f,point(0,0),0,0);
54.//如果是相关匹配方法,此处已经计算完毕,返回
55.if(method==cv_tm_ccorr)return;
56.//将模板看作单位1,计算每一个像元所占的百分比(也可以理解为整个模板面积
为1,计算每个像元的面积)
57.double invarea=1./((double)templ.rows*templ.cols);mat sum,sqsum;scalar templmean,templsdv;double*q0=0,*q1=0,*q2=0,*q3=0;double templnorm=0,templsum2=0;
58.//相关系数匹配算法
59.if(method==cv_tm_ccoeff){integral(img,sum,cv_64f);//对原始图像进行求和templmean=mean(templ);//计算模板图像的均值向量}else//其他匹配算法{integral(img,sum,sqsum,cv_64f);//计算原始图像的和以及平方和meanstddev(templ,templmean,templsdv);//计算模板图像的均值向量和方差向量templnorm=cv_sqr(templsdv[0])+cv_sqr(templsdv[1])+cv_sqr(templsdv[2])+cv_sqr(templsdv[3]);//计算所有通道的方差和if(templnorm<dbl_epsilon&&method==cv_tm_ccoeff_normed){//如果所有通道的方差的和等于0,并且使用的方法是归一化相关系数匹配方法,则返回result=scalar::all(1);return;}templsum2=templnorm+cv_sqr(templmean[0])+cv_sqr(templmean[1])+cv_sqr(templmean[2])+cv_sqr(templmean[3]);//计算所有通道的均值的平方和if(numtype!=1)//匹配方式不是相关系数,对模板均值向量和templnorm重新赋值{templmean=scalar::all(0);templnorm=templsum2;}templsum2/=invarea;templnorm=sqrt(templnorm);templnorm/=sqrt(invarea);//care of accuracy here q0=(double*)sqsum.data;q1=q0+templ.cols*cn;q2=(double*)(sqsum.data+templ.rows*sqsum.step);q3=q2+templ.cols*cn;}
[0060]
进一步的,在上述步骤二中,向量其中(s
i
,a
i
)∈d,β((s,a),(s
i
,a
i
))是一个指示函数,当状态动作对(s,a)与(s
i
,a
i
)存在一定关系,则β((s,a),(s
i
,a
i
))=1,反之等于0;而执行行走动作a的最短路径为是数据库d中样本游离状态动作对(s,a)最短的距离,此时即为完成执行动作的最短路径,最后将该数据传递给双臂机器人即可。
[0061]
最后应说明的是:虽然,上文中已经用一般性说明及具体实施例对本发明作了详尽的描述,但在本发明的基础上,以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1