具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本发明实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本发明。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本发明的描述。
为了说明本发明所述的技术方案,下面通过具体实施例来进行说明。
如图1所示,图1为本发明实施例提供的一种控制机器人绕圆的方法的流程图。本实施例中控制机器人绕圆的方法的执行主体为轮式机器人。如图1所示的控制机器人绕圆的方法可以包括以下步骤:
S101:在运动状态下,确定绕圆控制参数以及获取圆心的位置信息。
在机器人领域中,机器人的种类包括很多种。从应用环境出发将机器人分为两大类,即工业机器人和特种机器人。所谓工业机器人就是面向工业领域的多关节机械手或多自由度机器人。而特种机器人则是除工业机器人之外的、用于非制造业并服务于人类的各种先进机器人。而根据机器人的运动机构可将机器人分为轮式、履带式和足类。其中,履带式机器人能更好的适应松软的地形,例如沙地、泥地,履带与支撑面接触面积大,较平稳,缺点是对高地落差较大的地形无能为力;双足式机器人几乎可以适应各种复杂地形,能够跨越障碍,缺点是行进速度较低,且由于重心原因容易侧翻,不稳定;轮式机器人更适合平坦的路面,特别是马路,且能高速移动。
在轮式机器人运动时,通过安装在机器人底部的轮子进行移动。其中安装在机器人底部的轮子可以为两排分别安装在机器人左右两侧的轮子,用于支撑和滚动前行。也有一种四轮驱动的轮式机器人,它通过四个车轮传递动力,因此所获得的驱动力是两轮驱动的2倍,且前后轮相互支持,这样大大提高了在湿滑冰雪路面和凹凸不平路面的通过性,以使四轮驱动的轮式机器人爬上两轮驱动轮式机器人爬不上去的陡坡。因为轮胎的附着力与传输至道路的动力大小有密切的关系,随动力的增大,轮胎的转弯力减小,提高湿滑路面转弯时的性能。
在本实施例中,机器人两排轮子之间的距离是固定的,这里将机器人两排轮子之间的距离称为轮距。一般来说,更宽的轮距能提供更好的稳定性,能在机器人运动时,若发生横向倾斜,较宽的轮距则能提供更好的支撑。在机器人进行转弯或者绕圆运动时,轮距较宽,则弯道中机器人的侧倾角更小,外侧车轮的极限也会出现的更迟,两边车轮的速度相差也较小。因此,机器人的轮距的大小将会影响机器人在进行绕圆运动时的左轮和右轮的速度大小、以及绕圆半径的位置。
在机器人运行时,通过控制机器人两排的轮子的转动速度,以达到控制机器人转弯或者绕圆的目的。当机器人两排的轮子的转动角速度相差越大时,则说明相同时间内,两排的轮子行驶的距离相差越大,若该机器人处于转弯或绕圆运动,可知两排轮子行驶过的圆弧的弧长相差越大。若该机器人在转弯,则说明转弯越猛;若该机器人在绕圆,则说明绕圆半径越小。即通过确定机器人两排轮子的转动速度,或者两排轮子转动速度的比例关系,便可控制机器人绕圆运动的半径大小。
机器人的机身上安装有激光发射器,且该激光发射器的水平位置为机器人的左轮和右轮之间的中心轴面上,垂直高度不做限定。通过激光发射器发出光源,指向外界或者支撑面的某个位置,便可得到该位置对应的位置信息,并能通过该激光发射器得到实时激光长度,以测量某个位置到激光发射器的距离。其中,激光测距按照测距方法分为相位法和脉冲法。相位法利用检测发射光和反射光在空间中传播时发生的相位差来检测距离;脉冲法是向目标射出一束或一序列短暂的脉冲激光束,由光电元件接收目标反射的激光束,计时器测定激光束从发射到接收的时间,计算出从观测者到目标的距离。激光发射器具有重量轻、体积小的优点,可以方便的安装于机器人,且不影响机器人的正常运行。并且,激光发射器操作简单、速度快而准确,其误差仅为其它光学测距仪的五分之一到数百分之一,能高效、精确的测量出目标位置距离自身的距离。
进一步的,通过预先获取到该激光发射器在机器人上安装的高度,即该激光发射器到支撑面的垂直距离,则可以根据直角三角形的勾股定理,通过该高度以及目标位置到激光发射器的距离,确定出机器人自身到该目标位置的水平距离。具体的,激光发射器距离支撑面的垂直距离为直角三角形的一条直角边,激光发射器所测得的目标位置距离激光发射器的距离为直角三角形的斜边,通过勾股定理得到的另一条直角边即为机器人自身到该目标位置的距离。通过这种距离计算方式,可以获取到机器人至支撑面上任意一个目标位置的距离,较大程度的减少了距离测量的步骤和装置,并且提高了距离测量的准确性。
通过在机器人的轮子上安装转速传感器,以获取到机器人的左轮转速和右轮转速。通过预先确定的机器人轮子的半径,将半径和左轮转速,相乘得到左轮线速度和右轮线速度。
用户人为的通过激光发射器或者其他指示装置,发射出一个指向目标位置的激光点,作为期望机器人进行绕圆运动的圆心位置。机器人识别到该目标位置的位置信息,并将获取该目标位置的位置信息作为绕圆运动的圆心的位置信息。
S102:根据所述圆心的位置信息以及所述绕圆控制参数进行绕圆运动。
可选的,当获取到的信息是机器人的左轮的第一线速度值、右轮的第二线速度值时,根据第一线速度值、第二线速度值以及左轮与右轮之间的轮距计算当前的绕圆半径;再根据绕圆半径、机器人上的激光发射器发射的激光的长度、激光发射器到支撑机器人的支撑面的距离值,确定圆心的位置信息,并用激光发射器指示出来,以精确地确定机器人在执行绕圆运动时的控制参数,使用户获取到机器人在进行绕圆运动时的圆心信息,并根据获取到的信息控制机器人进行绕圆运动。
可选的,当获取到的信息是绕圆运动的圆心位置时,通过获取设置于机器人上的激光发射器与圆心的第一距离值以及激光发射器到用于支撑机器人的支撑面的第二距离值。根据第一距离值与第二距离值计算绕圆运动时机器人的绕圆半径,再根据绕圆半径、机器人的左轮与右轮之间的轮距,计算机器人执行绕圆运动时左轮的第一线速度值与右轮的第二线速度值的线速度比值。最后根据线速度比值控制机器人的舵机的转速,并根据圆心的位置信息、绕圆半径以及转速执行绕圆运动。通过圆心的位置信息以及绕圆控制参数这些信息对机器人进行控制,可以全面的控制该机器人进行精确的绕圆运动。
上述方案,通过在运动状态下,确定绕圆控制参数以及获取圆心的位置信息,并根据圆心的位置信息以及绕圆控制参数进行绕圆运动。在用户在不知道绕圆半径长度的情况下,通过激光指示圆心位置,保证了机器人在进行绕圆运动时能获取到精确的控制参数,并根据获取到的信息控制机器人实现绕圆运动,提高了机器人进行绕圆运动时的控制效率,以及机器人在与人交互时的灵敏度。
如图2所示,图2为本发明另一实施例提供的一种控制机器人绕圆的方法的流程图。本实施例中控制机器人绕圆的方法的执行主体为轮式机器人。如图2所示的控制机器人绕圆的方法可以包括以下步骤:
S201:在运动状态下,获取机器人的左轮的第一线速度值以及右轮的第二线速度值。
在机器人进行运动的过程中,获取当前机器人左轮的左轮转速和右轮的右轮转速。通过在机器人的左轮和右轮上安装转速计来获取左轮的第一线速度值以及右轮的第二线速度值。转速计通过配备激光和一系列接触适配器,利用激光或者接触的方式测量轮子的转速或者线速度,具有灵活方便的优势。
可选的,通过在机器人的舵机上安装传感器来获取舵机的转速做为左轮转速和右轮转速。在获取到机器人的左轮转速和右轮转速之后,根据转速、轮子半径以及线速度之间的关系,将左轮转速乘以左轮的半径得到左轮的第一线速度值,并将右轮转速乘以右轮的转速得到右轮的第二线速度值。通过这种方法,可以精确地获取到机器人的左轮的第一线速度值以及右轮的第二线速度值。
可选的,也可以在机器人上安装速度计,通过速度计直接获取到左轮的第一线速度值以及右轮的第二线速度值。
S202:根据所述第一线速度值、所述第二线速度值以及所述左轮与所述右轮之间的轮距,确定当前的绕圆半径。
请一并结合图3所示,其中,L为机器人左轮和右轮之间的轮距,R为左轮和右轮的中点与绕圆圆心之间的距离,将机器人的左轮和右轮分别视为一个以第一线速度VL和第二线速度VR进行绕圆运动的质点,且左轮和右轮通过轴承连接。因此两质点是在同一轴上进行绕圆运动,则这两个质点在进行绕圆运动时的角速度是相同的。由角速度的计算方式可知:
其中,w为机器人进行绕圆运动时左轮和右轮的角速度,L为机器人左轮和右轮之间的轮距,R为左轮和右轮的中点与绕圆圆心之间的距离,即绕圆半径。
由公式(1)可得:
根据第一线速度VL、第二线速度VR以及轮距L,由公式(2)可得机器人在进行绕圆运动时的绕圆半径。通过确定出绕圆半径,则可以获取机器人在进行绕圆运动时的到圆心位置的距离,进而控制左轮和右轮的速度,进行准确地绕圆运动。
S203:根据所述绕圆半径、设置于所述机器人上的激光发射器发射的激光的长度、所述激光发射器到用于支撑所述机器人的支撑面的距离值,确定圆心的位置信息。
在确定了机器人进行绕圆运动的半径之后,通过绕圆半径、设置于机器人上的激光发射器发射的激光的长度、激光发射器到用于支撑所述机器人的支撑面的距离值,确定所述圆心的位置信息。
通过在机器人上安装激光发射器,以进行圆心位置的确定。其中,激光发射器的水平位置为左轮和右轮的中心位置;激光发射器的垂直位置可以为从机器人的轮子顶部到机器人自身的顶部,此处不做限定。但应将激光发射器安装在发射出的激光不会被阻挡或隔断的部位上。通过确定激光发射器的位置,以根据激光发射器的高度和绕圆半径,确定绕圆圆心的位置信息。
请一并结合图3所示,其中,将机器人的左轮和右轮视为线速度分别为VL、和VR的质点,R为机器人的绕圆半径;H为激光发射器到用于支撑所述机器人的支撑面的距离值,即激光发射器的高度;M为激光发射器到期望的绕圆圆心的距离,即基准长度。其中,基准长度M用于判定激光发射器在移动式发射的激光的实时长度是否等于基准长度,若实时长度不等于基准长度,则说明激光发射器当前发射的激光指向的位置并不是期望的绕圆圆心;若实时长度等于基准长度,则说明激光发射器当前发射的激光指向的位置就是期望的绕圆圆心
通过H、R以及M共同组成一个直角三角形,其中,H和R都是直角三角形的两个直角边,M为直角三角形的斜边。根据直角三角形的勾股定理,可得:
根据激光发射器到支撑面的垂直距离H、绕圆半径R,由公式(3)可得激光发射器到期望绕圆圆心的距离M,即基准长度。通过根据确定的绕圆半径和确定的激光发射器的高度计算激光发射器到绕圆圆心的距离的方式,将计算得到的激光发射器到绕圆圆心的距离作为基准长度,用于判定从激光发射器发射的激光与支撑面的交点到激光发射器的距离,是否满足基准长度,以在机器人的支撑面上寻找满足该距离的点作为圆心。
S204:根据所述圆心的位置信息以及所述当前的绕圆半径执行绕圆运动。
在确定基准长度之后,控制机器人上的激光发射器向支撑面发射激光,并转动激光发射器,直至激光发射器发出的射线与绕圆半径、激光发射器到支撑面的垂直距离构成直角三角形,将激光发射器当前指向支撑面的目标点的位置信息识别为所述圆心的位置信息。
请一并结合图3所示,根据图3中的箭头方向,激光发射器先从垂直于支撑面的方向发射激光,并将激光方向朝机器人的垂直于右轮的方向转动,同时实时获取该激光的长度。直至获取到的激光的长度与计算出的基准长度相等,则说明当前激光发射器所指向的目标位置即为绕圆圆心的位置,且该位置满足之前所计算出的绕圆半径,以及当前的左轮轮速和右轮轮速,将激光发射器发射的激光与支撑面的交点的位置信息识别为圆心的位置信息。
可选的,激光发射器也可以先从垂直于支撑面的方向发射激光,并将激光方向朝垂直于机器人左轮的方向转动,同时实时获取该激光的长度。若激光的长度与基准长度相等,则将激光发射器发射的激光与支撑面的交点的位置信息识别为圆心的位置信息。
在确定了绕圆半径和圆心位置信息之后,根据左轮速度、右轮速度、绕圆半径以及圆心位置进行绕圆运动。
上述方案,通过获取机器人的左轮的第一线速度值、右轮的第二线速度值,以准确地获取到机器人当前的工况数据;并根据第一线速度值、第二线速度值以及左轮与右轮之间的轮距计算当前的绕圆半径;再根据绕圆半径、机器人上的激光发射器发射的激光的长度、激光发射器到支撑机器人的支撑面的距离值,确定圆心的位置信息;以精确地确定机器人在执行绕圆运动时的控制参数,使用户获取到机器人在进行绕圆运动时的圆心信息,并根据获取到的信息控制机器人实现绕圆运动,提高了机器人进行绕圆运动时的控制效率,以及机器人在与人交互时的灵敏度。
如图4所示,图4为本发明再一实施例提供的一种控制机器人绕圆的方法的流程图。本实施例中控制机器人绕圆的方法的执行主体为轮式机器人。如图4所示的控制机器人绕圆的方法可以包括以下步骤:
S401:在运动状态下,获取期望绕圆的圆心的位置信息、设置于所述机器人上的激光发射器与所述圆心的第一距离值以及激光发射器到用于支撑所述机器人的支撑面的第二距离值。
在机器人上安装扫描或者识别装置,通过该装置获取期望绕圆的圆心的位置信息。其中,圆心的位置信息为用户通过具有指示目标位置点功能的装置发出的信息,具有指示目标位置点功能的装置可以为激光发射器等装置。机器人获取当前视野中的环境信息,并识别或扫描环境信息中是否存在目标位置。
示例性的,机器人获取当前视野的照片或视频,并通过图像识别技术实时地识别获取到的照片或视频中是是否有用户发出的激光指示,若有,则识别该激光的位置,并确定该激光位置信息为期望绕圆的圆心的位置信息。
其中,期望绕圆的圆心的位置信息可以通过环境信息中的其余物体作为参照物确定;也可以预先根据环境数据搭建的三轴立体坐标系,根据该坐标系确定目标位置的坐标作为期望绕圆的圆心的位置信息;还可以预先设定经纬度信息,通过获取目标位置的经纬度作为期望绕圆的圆心的位置信息。
在获取到期望绕圆的圆心的位置信息之后,获取安装在机器人上的激光发射器距离该圆心的第一距离值,以及激光发射器到用于支撑机器人的支撑面的第二距离值。
示例性的,在获取第一距离值时,通过控制激光发射器向圆心发射激光,打到支撑面上的该圆心时激光返回,通过获取激光发射到返回的时间,将该时间乘以激光的发射速度,该值的一半即为实时激光长度,该激光长度即为第一距离值。
同样的,获取激光发射器到用于支撑机器人的支撑面的第二距离值时,也可以通过获取第一距离值的方式获取。并且第二距离值是激光发射器到用于支撑机器人的支撑面的距离,第二距离值也可以在安装该激光发射器之后,就测量第二距离值的大小,并将该测量得到的数值存储至机器人的存储中,用于在根据第二距离值计算机器人绕圆控制参数时直接调用。
通过这种激光测量第一距离值的方式,可以精确地获取到激光发射器与圆心,为之后的计算做以精确的数据基础。
S402:根据所述第一距离值与所述第二距离值计算绕圆运动时机器人的绕圆半径。
由公式(3)可得,
通过公式(4)得到绕圆半径;其中,R表示绕圆半径;M表示第一距离值;H表示第二距离值。
需要说明的是,公式(4)的来源详见上一实施例中的步骤S203,此处不做赘述。
S403:根据所述绕圆半径、所述机器人的所述左轮与所述右轮之间的轮距,计算所述机器人执行绕圆运动时所述左轮的第一线速度值与所述右轮的第二线速度值的线速度比值。
由公式(2)可得,
其中,VL表示第一线速度值;VR表示第二线速度值;R表示绕圆半径;L表示机器人的左轮和右轮之间的轮距。根据公式(5)得到左轮的第一线速度值与右轮的第二线速度值的线速度比值。通过线速度比值,控制机器人左轮和右轮之间的转速,进而根据该转速控制该机器人根据绕圆圆心和绕圆半径进行绕圆运动。
需要说明的是,公式(5)的来源详见上一实施例中的步骤S202,此处不做赘述。
S404:根据所述线速度比值控制所述机器人的舵机的转速,并根据所述圆心的位置信息以及所述绕圆半径执行绕圆运动。
在确定左轮的第一线速度值与右轮的第二线速度值的线速度比值之后,通过该线速度比值控制机器人的舵机的转速,并根据圆心的位置信息以及所述绕圆半径执行绕圆运动执行绕圆运动。
其中,机器人中常见舵机电机一般为永磁直流电动机,如直流有刷空心杯电机。直流电动机有线形的转速转矩特性和转矩电流特性,因此具有较好的可控性,且驱动和控制电路相比于其他的电动机较为简单。驱动控制有电流控制模式和电压控制两种模式。舵机电机控制实行的是电压控制模式,即转速与所施加电压成正比,驱动是由四个功率开关组成H桥电路的双极性驱动方式,运用脉冲宽度调制技术调节供给直流电动机的电压大小和极性,实现对电动机的速度和旋转方向(正/反转)的控制。电机的速度取决于施加到在电机平均电压大小,即取决于脉冲宽度调制时驱动波形占空比(占空比为脉宽/周期的百分比)的大小。通过加大占空比,则电机加速,伴随着对应的轮子的速度增加;减少占空比,则电机减速,对应的轮子的速度降低。因此,若要加大某个轮子的速度,则要加快相应的舵机电机速度。可以通过加大电机的工作电压、降低电机主回路的阻值或者加大电流的方式进行控制。通过控制机器人中的舵机的速度,进而控制机器人的左轮速度和右轮速度,使机器人按照计算的绕圆运动参数进行绕圆运动。
上述方案,通过获取用户指示的期望绕圆圆心、设置于机器人上的激光发射器与圆心的第一距离值以及激光发射器到用于支撑机器人的支撑面的第二距离值,计算绕圆运动时机器人的绕圆半径。再根据绕圆半径、机器人左轮与右轮之间的轮距,计算机器人执行绕圆运动时左轮速度值与右轮速度值的线速度比值,并根据计算得到的绕圆控制参数控制机器人的舵机的转速,使机器人进行绕圆运动。提高了机器人进行绕圆运动时的控制效率,以及机器人在与人交互时的灵敏度。
如图5所示,图5是本发明实施例提供的一种机器人的示意图。本实施例的机器人500包括的各单元用于执行图1对应的实施例中的各步骤,具体请参阅图1及图1对应的实施例中的相关描述,此处不赘述。本实施例的机器人500包括信息确定单元501和运动控制单元502。
信息确定单元501用于在运动状态下,确定绕圆控制参数以及获取圆心的位置信息;
运动控制单元502用于根据所述圆心的位置信息以及所述绕圆控制参数进行绕圆运动。
上述方案,通过在运动状态下,确定绕圆控制参数以及获取圆心的位置信息,并根据圆心的位置信息以及绕圆控制参数进行绕圆运动。在用户在不知道绕圆半径长度的情况下,通过激光指示圆心位置,保证了机器人在进行绕圆运动时能获取到精确的控制参数,并根据获取到的信息控制机器人实现绕圆运动,提高了机器人进行绕圆运动时的控制效率,以及机器人在与人交互时的灵敏度。
如图6所示,图6是本发明另一实施例提供的一种机器人的示意图。本实施例的机器人600包括的各单元用于执行图2对应的实施例中的各步骤,具体请参阅图2及图2对应的实施例中的相关描述,此处不赘述。本实施例的机器人600包括信息确定单元601和运动控制单元602。
信息确定单元601用于在运动状态下,确定绕圆控制参数以及获取圆心的位置信息;
运动控制单元602用于根据所述圆心的位置信息以及所述绕圆控制参数进行绕圆运动。
具体的,信息确定单元601还可以包括:速度获取单元6011、半径确定单元6012以及圆心确定单元6013。
速度获取单元6011用于在运动状态下,获取机器人的左轮的第一线速度值以及右轮的第二线速度值。
半径确定单元6012用于根据所述第一线速度值、所述第二线速度值以及所述左轮与所述右轮之间的轮距,计算当前的绕圆半径。
圆心确定单元6013用于根据所述绕圆半径、设置于所述机器人上的激光发射器发射的激光的长度、所述激光发射器到用于支撑所述机器人的支撑面的距离值,确定所述圆心的位置信息。
具体的,运动控制单元602还包括运动执行单元6021。
运动执行单元6021,用于根据所述圆心的位置信息以及所述当前的绕圆半径执行绕圆运动。
上述方案,通过获取机器人的左轮的第一线速度值、右轮的第二线速度值,以准确地获取到机器人当前的工况数据;并根据第一线速度值、第二线速度值以及左轮与右轮之间的轮距计算当前的绕圆半径;再根据绕圆半径、机器人上的激光发射器发射的激光的长度、激光发射器到支撑机器人的支撑面的距离值,确定圆心的位置信息;以精确地确定机器人在执行绕圆运动时的控制参数,使用户获取到机器人在进行绕圆运动时的圆心信息,并根据获取到的信息控制机器人实现绕圆运动,提高了机器人进行绕圆运动时的控制效率,以及机器人在与人交互时的灵敏度。
如图7所示,图7是本发明再一实施例提供的一种机器人的示意图。本实施例的机器人700包括的各单元用于执行图4对应的实施例中的各步骤,具体请参阅图4及图4对应的实施例中的相关描述,此处不赘述。本实施例的机器人700包括信息确定单元701和运动控制单元702。
信息确定单元701用于在运动状态下,确定绕圆控制参数以及获取圆心的位置信息;
运动控制单元702用于根据所述圆心的位置信息以及所述绕圆控制参数进行绕圆运动。
具体的,信息确定单元701还可以包括:信息获取单元7011、半径确定单元7012以及速度比确定单元7013。
信息获取单元7011,用于在运动状态下,获取期望绕圆的圆心的位置信息、设置于所述机器人上的激光发射器与所述圆心的第一距离值以及激光发射器到用于支撑所述机器人的支撑面的第二距离值;
半径确定单元7012,用于根据所述第一距离值与所述第二距离值计算绕圆运动时机器人的绕圆半径;
速度比确定单元7013,用于根据所述绕圆半径、所述机器人的所述左轮与所述右轮之间的轮距,计算所述机器人执行绕圆运动时所述左轮的第一线速度值与所述右轮的第二线速度值的线速度比值;
具体的,运动控制单元702还可以包括:绕圆运动单元7021。
绕圆运动单元7021,用于根据所述线速度比值控制所述机器人的舵机的转速,并根据所述圆心的位置信息以及所述绕圆半径执行绕圆运动。
上述方案,通过用户指示圆心,进而机器人根据该圆心的位置信息以及预设的计算方法计算绕圆半径、机器人的左轮的第一线速度值与右轮的第二线速度值的线速度比值,并根据计算得到的绕圆控制参数控制机器人的舵机的转速,使机器人进行绕圆运动。提高了机器人进行绕圆运动时的控制效率,以及机器人在与人交互时的灵敏度和用户体验。
参见图8,图8是本发明再一实施例提供的一种机器人的示意图。如图8所示的本实施例中的机器人800可以包括:处理器801、存储器802以及存储在存储器802中并可在处理器801上运行的计算机程序803。处理器801执行计算机程序803时实现上述各个用于控制机器人绕圆的方法实施例中的步骤。存储器802用于存储计算机程序,所述计算机程序包括程序指令。处理器801用于执行存储器802存储的程序指令。其中,处理器801被配置用于调用所述程序指令执行以下操作:
处理器801用于在运动状态下,确定绕圆控制参数以及获取圆心的位置信息;
处理器801还用于根据所述圆心的位置信息以及所述绕圆控制参数进行绕圆运动。
处理器801具体用于在运动状态下,获取机器人的左轮的第一线速度值以及右轮的第二线速度值;
处理器801具体用于根据所述第一线速度值、所述第二线速度值以及所述左轮与所述右轮之间的轮距,计算当前的绕圆半径;
处理器801具体用于根据所述绕圆半径、设置于所述机器人上的激光发射器发射的激光的长度、所述激光发射器到用于支撑所述机器人的支撑面的距离值,确定所述圆心的位置信息;
处理器801具体用于根据所述圆心的位置信息以及所述当前的绕圆半径执行绕圆运动。
处理器801具体用于在运动状态下,获取期望绕圆的圆心的位置信息、设置于所述机器人上的激光发射器与所述圆心的第一距离值以及激光发射器到用于支撑所述机器人的支撑面的第二距离值;
处理器801具体用于根据所述第一距离值与所述第二距离值计算绕圆运动时机器人的绕圆半径;
处理器801具体用于根据所述绕圆半径、所述机器人的所述左轮与所述右轮之间的轮距,计算所述机器人执行绕圆运动时所述左轮的第一线速度值与所述右轮的第二线速度值的线速度比值;
处理器801具体用于根据所述线速度比值控制所述机器人的舵机的转速,并根据所述圆心的位置信息以及所述绕圆半径执行绕圆运动。
处理器801具体用于通过以下公式计算得到所述绕圆半径,
其中,R表示所述绕圆半径;L表示所述机器人的左轮和右轮之间的轮距;VL表示所述第一线速度值、VR表示所述第二线速度值;
处理器801具体用于通过以下公式计算得到所述激光的基准长度,
其中,M表示所述基准长度;H表示所述激光发射器到用于支撑所述机器人的支撑面的距离值;
处理器801具体用于控制所述激光发射器从垂直支撑面方向向右轮方向转动并发射激光,实时获取所述激光的长度;
处理器801具体用于若所述激光的长度与所述基准长度相等,则将所述激光发射器发射的激光与支撑面的交点的位置信息识别为所述圆心的位置信息。
处理器801具体用于通过以下公式计算得到所述绕圆半径,
其中,R表示所述绕圆半径;M表示所述第一距离值;H表示所述第二距离值;
处理器801具体用于通过以下公式计算所述机器人做绕圆运动时机器人的左轮的第一线速度值与右轮的第二线速度值的线速度比值,
其中,L表示所述机器人的左轮和右轮之间的轮距;VL表示所述第一线速度值、VR表示所述第二线速度值。
上述方案,通过获取用户指示的期望绕圆圆心、设置于机器人上的激光发射器与圆心的第一距离值以及激光发射器到用于支撑机器人的支撑面的第二距离值,计算绕圆运动时机器人的绕圆半径。再根据绕圆半径、机器人左轮与右轮之间的轮距,计算机器人执行绕圆运动时左轮速度值与右轮速度值的线速度比值,并根据计算得到的绕圆控制参数控制机器人的舵机的转速,使机器人进行绕圆运动。提高了机器人进行绕圆运动时的控制效率,以及机器人在与人交互时的灵敏度和用户体验。
应当理解,在本发明实施例中,所称处理器801可以是中央处理单元(CentralProcessing Unit,CPU),该处理器还可以是其他通用处理器、数字信号处理器(DigitalSignal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
该存储器802可以包括只读存储器和随机存取存储器,并向处理器801提供指令和数据。存储器802的一部分还可以包括非易失性随机存取存储器。例如,存储器802还可以存储设备类型的信息。
具体实现中,本发明实施例中所描述的处理器801、存储器802、计算机程序803可执行本发明实施例提供的控制机器人绕圆的方法的第一、二和三实施例中所描述的实现方式,也可执行本发明实施例所描述的终端的实现方式,在此不再赘述。
在本发明的另一实施例中提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令被处理器执行时实现:
在运动状态下,确定绕圆控制参数以及获取圆心的位置信息;
根据所述圆心的位置信息以及所述绕圆控制参数进行绕圆运动。
进一步的,所述计算机程序被处理器执行时还实现:
在运动状态下,获取机器人的左轮的第一线速度值以及右轮的第二线速度值;
根据所述第一线速度值、所述第二线速度值以及所述左轮与所述右轮之间的轮距,计算当前的绕圆半径;
根据所述绕圆半径、设置于所述机器人上的激光发射器发射的激光的长度、所述激光发射器到用于支撑所述机器人的支撑面的距离值,确定所述圆心的位置信息;
根据所述圆心的位置信息以及所述当前的绕圆半径执行绕圆运动。
进一步的,所述计算机程序被处理器执行时还实现:
在运动状态下,获取期望绕圆的圆心的位置信息、设置于所述机器人上的激光发射器与所述圆心的第一距离值以及激光发射器到用于支撑所述机器人的支撑面的第二距离值;
根据所述第一距离值与所述第二距离值计算绕圆运动时机器人的绕圆半径;
根据所述绕圆半径、所述机器人的所述左轮与所述右轮之间的轮距,计算所述机器人执行绕圆运动时所述左轮的第一线速度值与所述右轮的第二线速度值的线速度比值;
根据所述线速度比值控制所述机器人的舵机的转速,并根据所述圆心的位置信息以及所述绕圆半径执行绕圆运动。
进一步的,所述计算机程序被处理器执行时还实现:
通过以下公式计算得到所述绕圆半径,
其中,R表示所述绕圆半径;L表示所述机器人的左轮和右轮之间的轮距;VL表示所述第一线速度值、VR表示所述第二线速度值;
通过以下公式计算得到所述激光的基准长度,
其中,M表示所述基准长度;H表示所述激光发射器到用于支撑所述机器人的支撑面的距离值;
控制所述激光发射器从垂直支撑面方向向右轮方向转动并发射激光,实时获取所述激光的长度;
若所述激光的长度与所述基准长度相等,则将所述激光发射器发射的激光与支撑面的交点的位置信息识别为所述圆心的位置信息。
进一步的,所述计算机程序被处理器执行时还实现:
通过以下公式计算得到所述绕圆半径,
其中,R表示所述绕圆半径;M表示所述第一距离值;H表示所述第二距离值;
通过以下公式计算所述机器人做绕圆运动时机器人的左轮的第一线速度值与右轮的第二线速度值的线速度比值,
其中,L表示所述机器人的左轮和右轮之间的轮距;VL表示所述第一线速度值、VR表示所述第二线速度值。
上述方案,通过获取机器人的左轮的第一线速度值、右轮的第二线速度值,以准确地获取到机器人当前的工况数据;并根据第一线速度值、第二线速度值以及左轮与右轮之间的轮距计算当前的绕圆半径;再根据绕圆半径、机器人上的激光发射器发射的激光的长度、激光发射器到支撑机器人的支撑面的距离值,确定圆心的位置信息;以精确地确定机器人在执行绕圆运动时的控制参数,使用户获取到机器人在进行绕圆运动时的圆心信息,并根据获取到的信息控制机器人实现绕圆运动,提高了机器人进行绕圆运动时的控制效率,以及机器人在与人交互时的灵敏度。
所述计算机可读存储介质可以是前述任一实施例所述的机器人的内部存储单元,例如机器人的硬盘或内存。所述计算机可读存储介质也可以是所述机器人的外部存储设备,例如所述机器人上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,所述计算机可读存储介质还可以既包括所述机器人的内部存储单元也包括外部存储设备。所述计算机可读存储介质用于存储所述计算机程序及所述机器人所需的其他程序和数据。所述计算机可读存储介质还可以用于暂时地存储已经输出或者将要输出的数据。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的机器人和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的机器人和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口、装置或单元的间接耦合或通信连接,也可以是电的,机械的或其它的形式连接。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本发明实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。