用于控制机器人的方法和装置
技术领域
本申请实施例涉及控制技术领域,具体涉及用于控制机器人的方法和装置。
背景技术
机器人技术发展迅捷,而随着近年来机器人应用场景和模式的不断扩展,各式各样的移动机器人层出不穷。移动机器人是一个集环境感知、动态决策与规划、行为控制与执行等多功能于一体的综合系统。近年来,四轮移动机器人的应用范围大为扩展,不仅在工业、农业、医疗、服务等行业中得到广泛的应用,在城市安全、国防和空间探测领域等有害与危险场合也得到很好的应用。
转弯半径是四轮移动机器人机动性的重要评价标准,同等外形标准的四轮移动机器人具有更小的转弯半径,可以使四轮移动机器人更加灵活,通过性更强,从而使四轮移动机器人的机动性更强。
发明内容
本申请实施例提出了用于控制机器人的方法和装置。
第一方面,本申请实施例提供了一种用于控制机器人的方法,包括:根据机器人的当前位姿,确定上述机器人在第一坐标系的第一坐标;确定上述机器人在第二坐标系的第二坐标,其中,上述第二坐标系由停靠点在上述第一坐标系中的第三坐标确定;基于上述第二坐标,确定上述机器人的行驶速度和转向角;向上述机器人发送上述行驶速度和上述转向角,以使上述机器人按照上述行驶速度和上述转向角向上述停靠点行驶。
在一些实施例中,上述基于上述第二坐标,确定上述机器人的行驶速度和转向角,包括:根据上述第二坐标,确认上述机器人的当前位姿是否满足预设条件;响应于确定上述预设条件不满足,确定上述机器人预设范围内的障碍物检测结果;根据上述第二坐标以及上述障碍物检测结果,确定上述机器人的行驶速度和转向角。
在一些实施例中,上述根据上述第二坐标以及上述障碍物检测结果,确定上述机器人的行驶速度和转向角,包括:根据上述第二坐标以及上述障碍物检测结果,确定上述机器人的行驶速度;根据上述第二坐标、上述行驶速度以及第一预设权重系数,确定上述机器人的转向角。
在一些实施例中,上述第二坐标包括横坐标、纵坐标和角度;以及根据上述第二坐标,确认上述机器人是否满足预设条件,包括:根据上述第二坐标包括的横坐标、纵坐标和角度,确认上述机器人是否满足以下预设条件:至上述第二坐标系的横轴的距离小于第一预设距离阈值、至上述第二坐标系的纵轴的距离小于第二预设距离阈值、朝向与上述第二坐标系的横轴之间的夹角小于预设夹角阈值。
在一些实施例中,上述根据上述第二坐标以及上述障碍物检测结果,确定上述机器人的行驶速度,包括:响应于确定在上述机器人的前方检测到障碍物,确定上述机器人的行驶速度为第一预设速度阈值;响应于确定在上述机器人的后方检测到障碍物,确定上述机器人的行驶速度为第二预设速度阈值;响应于确定在上述机器人的前方和后方检测到障碍物,确定上述机器人的行驶速度为零。
在一些实施例中,上述根据上述第二坐标以及上述障碍物检测结果,确定上述机器人的行驶速度,包括:响应于确定上述机器人至上述第二坐标系的横轴的距离小于第一预设距离阈值、确定上述机器人的朝向与上述第二坐标系的横轴之间的夹角小于预设夹角阈值以及确定上述机器人至上述第二坐标系的纵轴的距离大于或等于第二预设距离阈值,根据第二预设权重系数以及上述第二坐标,确定上述机器人的行驶速度。
在一些实施例中,上述根据上述第二坐标以及上述障碍物检测结果,确定上述机器人的行驶速度,包括:根据上述第二坐标,确定上述机器人与上述停靠点之间的第一距离;响应于确定上述第一距离大于第三预设距离阈值,确定上述机器人的行驶速度为第三预设速度阈值。
在一些实施例中,上述第二坐标包括横坐标、纵坐标和角度,上述机器人包括前轴和后轴;以及上述根据上述第二坐标、上述行驶速度以及第一预设权重系数,确定上述机器人的转向角,包括:确定上述机器人的前轴和后轴之间的第二距离;根据上述第二距离、上述行驶速度、上述第一预设权重系数、上述第二坐标包括的纵坐标和角度,确定上述机器人的转向角。
在一些实施例中,上述基于上述第二坐标,确定机器人的行驶速度和转向角,包括:响应于确定上述机器人处于预设的停靠范围内,确定上述机器人的行驶速度和转向角均为零。
在一些实施例中,上述第三坐标包括横坐标、纵坐标和角度,上述第二坐标系通过以下步骤确定得到:将上述第三坐标中包括的横坐标和纵坐标指示的点作为上述第二坐标系的原点;将与上述第一坐标系的横轴夹角值与上述第三坐标包括的角度相同的方向作为上述第二坐标系的横轴;将与上述第二坐标系的横轴符合右手定则的纵轴为上述第二坐标系的纵轴。
第二方面,本申请实施例提供了一种用于控制机器人的装置,包括:第一坐标确定单元,被配置成根据机器人的当前位姿,确定上述机器人在第一坐标系的第一坐标;第二坐标确定单元,被配置成确定上述机器人在第二坐标系的第二坐标,其中,上述第二坐标系由停靠点在上述第一坐标系中的第三坐标确定;行驶参数确定单元,被配置成基于上述第二坐标,确定上述机器人的行驶速度和转向角;行驶参数发送单元,被配置成向上述机器人发送上述行驶速度和上述转向角,以使上述机器人按照上述行驶速度和上述转向角向上述停靠点行驶。
在一些实施例中,上述行驶参数确定单元包括:判断模块,被配置成根据上述第二坐标,确认上述机器人的当前位姿是否满足预设条件;第一确定模块,被配置成响应于确定上述预设条件不满足,确定上述机器人预设范围内的障碍物检测结果;第二确定模块,被配置成根据上述第二坐标以及上述障碍物检测结果,确定上述机器人的行驶速度和转向角。
在一些实施例中,上述第二确定模块进一步被配置成:根据上述第二坐标以及上述障碍物检测结果,确定上述机器人的行驶速度;根据上述第二坐标、上述行驶速度以及第一预设权重系数,确定上述机器人的转向角。
在一些实施例中,上述第二坐标包括横坐标、纵坐标和角度;以及上述判断模块进一步被配置成:根据上述第二坐标包括的横坐标、纵坐标和角度,确认上述机器人是否满足以下预设条件:至上述第二坐标系的横轴的距离小于第一预设距离阈值、至上述第二坐标系的纵轴的距离小于第二预设距离阈值、朝向与上述第二坐标系的横轴之间的夹角小于预设夹角阈值。
在一些实施例中,上述第二确定模块进一步被配置成:响应于确定在上述机器人的前方检测到障碍物,确定上述机器人的行驶速度为第一预设速度阈值;响应于确定在上述机器人的后方检测到障碍物,确定上述机器人的行驶速度为第二预设速度阈值;响应于确定在上述机器人的前方和后方检测到障碍物,确定上述机器人的行驶速度为零。
在一些实施例中,上述第二确定模块进一步被配置成:响应于确定上述机器人至上述第二坐标系的横轴的距离小于第一预设距离阈值、确定上述机器人的朝向与上述第二坐标系的横轴之间的夹角小于预设夹角阈值以及确定上述机器人至上述第二坐标系的纵轴的距离大于或等于第二预设距离阈值,根据第二预设权重系数以及上述第二坐标,确定上述机器人的行驶速度。
在一些实施例中,上述第二确定模块进一步被配置成:根据上述第二坐标,确定上述机器人与上述停靠点之间的第一距离;响应于确定上述第一距离大于第三预设距离阈值,确定上述机器人的行驶速度为第三预设速度阈值。
在一些实施例中,上述第二坐标包括横坐标、纵坐标和角度,上述机器人包括前轴和后轴;以及上述第二确定模块进一步被配置成:确定上述机器人的前轴和后轴之间的第二距离;根据上述第二距离、上述行驶速度、上述第一预设权重系数、上述第二坐标包括的纵坐标和角度,确定上述机器人的转向角。
在一些实施例中,上述第二确定模块进一步被配置成:响应于确定上述机器人处于预设的停靠范围内,确定上述机器人的行驶速度和转向角均为零。
在一些实施例中,上述第三坐标包括横坐标、纵坐标和角度,上述装置还包括第二坐标系确定单元,被配置成通过以下步骤确定上述第二坐标系:将上述第三坐标中包括的横坐标和纵坐标指示的点作为上述第二坐标系的原点;将与上述第一坐标系的横轴夹角值与上述第三坐标包括的角度相同的方向作为上述第二坐标系的横轴;将与上述第二坐标系的横轴符合右手定则的纵轴为上述第二坐标系的纵轴。
第三方面,本申请实施例提供了一种电子设备,包括:一个或多个处理器;存储装置,其上存储有一个或多个程序,当上述一个或多个程序被上述一个或多个处理器执行,使得上述一个或多个处理器实现如第一方面任一实施例所描述的方法。
第四方面,本申请实施例提供了一种计算机可读介质,其上存储有计算机程序,该程序被处理器执行时实现如第一方面任一实施例所描述的方法。
本申请的上述实施例提供的用于控制机器人的方法和装置,可以根据机器人的当前位姿,确定机器人在第一坐标系的第一坐标。然后,可以确定机器人在第二坐标系的第二坐标。其中,第二坐标系由停靠点在第一坐标系中的第三坐标确定。然后,可以基于第二坐标,确定机器人的行驶速度和转向角。最后,可以将行驶速度和转向角发送给机器人,以使机器人按照行驶速度和转向角向停靠点行驶。本实施例的方法,可以实现机器人的灵活控制,使得机器人可以准确地停靠在停靠点。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:
图1是本申请的一个实施例可以应用于其中的示例性系统架构图;
图2是根据本申请的用于控制机器人的方法的一个实施例的流程图;
图3是根据本申请的用于控制机器人的方法的一个应用场景的示意图;
图4是根据本申请的用于控制机器人的方法的又一个实施例的流程图;
图5是根据本申请的用于控制机器人的方法中第一坐标系与第二坐标系的位置关系图;
图6是根据本申请的用于控制机器人的装置的一个实施例的结构示意图;
图7是适于用来实现本申请实施例的电子设备的计算机统的结构示意图。
具体实施方式
下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与有关发明相关的部分。
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
图1示出了可以应用本申请的用于控制机器人的方法或用于控制机器人的装置的实施例的示例性系统架构100。
如图1所示,系统架构100可以包括机器人101、102,终端设备103,网络104和服务器105。网络104用以在机器人101、102,终端设备103和服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备103通过网络104控制机器人101、102,或者,机器人101、102可以通过网络104与服务器105交互,以接收或发送消息等。
机器人101、102可以是各种类型的机器人,例如,搬运货物的机器人、智能服务机器人等。机器人101、102上可以安装有各种通讯客户端应用,例如定位类应用、语音识别类应用等等。机器人101、102上还可以安装有各种装置或传感器,例如,图像采集应用、雷达传感器等等。
机器人101、102可以是硬件,也可以是软件。当机器人101、102为硬件时,可以是能够移动的各种机器人。当机器人101、102为软件时,可以安装在上述所列举的电子设备中。其可以实现成多个软件或软件模块(例如用来提供分布式服务),也可以实现成单个软件或软件模块。在此不做具体限定。
终端设备103上可以安装有各种通讯客户端应用,例如机器人控制类应用、网页浏览器应用、购物类应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等。终端设备103可以对机器人的位置等数据进行分析等处理,并将处理结果(例如行驶速度和转向角)反馈给机器人101、102。
终端设备103可以是硬件,也可以是软件。当终端设备103为硬件时,可以是具有显示屏的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。当终端设备103为软件时,可以安装在上述所列举的电子设备中。其可以实现成多个软件或软件模块(例如用来提供分布式服务),也可以实现成单个软件或软件模块。在此不做具体限定。
服务器105可以是提供各种服务的服务器,例如对机器人101、102进行控制的后台服务器。后台服务器可以对机器人的位置等数据进行分析等处理,并将处理结果(例如行驶速度和转向角)反馈给机器人101、102。
需要说明的是,服务器105可以是硬件,也可以是软件。当服务器105为硬件时,可以实现成多个服务器组成的分布式服务器集群,也可以实现成单个服务器。当服务器105为软件时,可以实现成多个软件或软件模块(例如用来提供分布式服务),也可以实现成单个软件或软件模块。在此不做具体限定。
需要说明的是,本申请实施例所提供的用于控制机器人的方法可以由终端设备103或服务器105执行,相应地,用于控制机器人的装置可以设置于终端设备103或服务器105中。
应该理解,图1中的机器人、终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的机器人、终端设备、网络和服务器。
继续参考图2,示出了根据本申请的用于控制机器人的方法的一个实施例的流程200。本实施例的用于控制机器人的方法,包括以下步骤:
步骤201,根据机器人的当前位姿,确定机器人在第一坐标系的第一坐标。
在本实施例中,用于控制机器人的方法的执行主体(例如图1所示的终端设备103或服务器105)可以通过有线连接方式或者无线连接方式获取机器人(例如图1所示的机器人101、102)的当前位姿。机器人可以是各种能够移动的机器人,例如四轮机器人、智能机器人等。当前位姿包括机器人的位置和姿态。机器人的位置可以包括横坐标和纵坐标,姿态可以包括机器人的朝向。可以理解的是,执行主体可以预先定义机器人的前方和后方。执行主体还可以定义,当机器人向前方行进时,行驶速度为正值。当机器人向后方后退时,行驶速度为负值。执行主体还可以进一步定义,当机器人向左方转弯时,转向角为正值。当机器人向右方转弯时,转向角为负值。
然后,执行主体可以根据机器人的位置和姿态,确定机器人在第一坐标系的第一坐标。其中,第一坐标系可以是各种坐标系,例如世界坐标系,或者以已知地点为原点的坐标系。第一坐标可以包括横坐标、纵坐标和角度。可以理解的是,角度是指机器人的朝向与第一坐标系的某一坐标轴(例如x轴)之间的夹角。
需要指出的是,上述无线连接方式可以包括但不限于3G/4G连接、WiFi连接、蓝牙连接、WiMAX连接、Zigbee连接、UWB(ultra wideband)连接、以及其他现在已知或将来开发的无线连接方式。
步骤202,确定机器人在第二坐标系的第二坐标。
执行主体在确定机器人在第一坐标系的第一坐标后,可以根据第一坐标系与第二坐标系之间的转换系数,来确定机器人在第二坐标系中的第二坐标。第二坐标也可以包括横坐标、纵坐标和角度。其中,第二坐标中的角度可以是机器人的朝向与第二坐标系的某一坐标轴(例如x轴)之间的夹角。此处,第二坐标系由停靠点在第一坐标系中的第三坐标来确定。第三坐标也可以包括横坐标、纵坐标和角度。可以理解的是,第三坐标中的角度可以表示机器人在停靠点停靠时的朝向。具体的,第二坐标系的原点可以是停靠点,第二坐标系的x轴与第一坐标系的x轴之间的夹角可以与第三坐标中的角度相同。
在本实施例的一些可选的实现方式中,执行主体可以通过图2中未示出的以下步骤来确定第二坐标系:将第三坐标中包括的横坐标和纵坐标指示的点作为第二坐标系的原点;将与第一坐标系的横轴夹角值与第三坐标包括的角度相同的方向作为第二坐标系的横轴;将与第二坐标系的横轴符合右手定则的纵轴为第二坐标系的纵轴。
本实现方式中,执行主体可以将第三坐标中包括的横坐标和纵坐标指示的点作为第二坐标系的原点。然后,将与第一坐标系的横轴夹角值与第三坐标包括的角度相同的方向作为第二坐标系的横轴。并且,将与第二坐标系的横轴符合右手定则的纵轴为第二坐标系的纵轴。
步骤203,基于第二坐标,确定机器人的行驶速度和转向角。
执行主体在确定机器人在第二坐标系的第二坐标后,可以基于第二坐标,确定机器人的行驶速度和转向角。具体的,执行主体可以确定机器人的行驶速度的方向为向前,行驶速度的大小为预设的速度值。或者,执行主体可以确定机器人的转向角为预设的转向角最大值。
步骤204,向机器人发送行驶速度和转向角,以使机器人按照行驶速度和转向角向停靠点行驶。
执行主体在确定行驶速度和转向角后,可以向机器人发送上述行驶速度和上述转向角。机器人在接收到上述行驶速度和转向角后,可以按照行驶速度和转向角向停靠点行驶。
继续参见图3,图3是根据本实施例的用于控制机器人的方法的应用场景的一个示意图。在图3的应用场景中,四轮机器人301可以将自身的位姿发送给服务端302。服务端302根据四轮机器人301的当前位姿,执行步骤201-203的处理,得到行驶速度和转向角。然后,服务端302按照服务端302与四轮机器人301之间的通信协议,将行驶速度和转向角封装后发送给四轮机器人301。四轮机器人301接收到上述信息后,可以解析得到行驶速度和转向角。然后,四轮机器人301按照行驶速度和转向角向停靠点行驶。
本申请的上述实施例提供的用于控制机器人的方法,可以根据机器人的当前位姿,确定机器人在第一坐标系的第一坐标。然后,可以确定机器人在第二坐标系的第二坐标。其中,第二坐标系由停靠点在第一坐标系中的第三坐标确定。然后,可以基于第二坐标,确定机器人的行驶速度和转向角。最后,可以将行驶速度和转向角发送给机器人,以使机器人按照行驶速度和转向角向停靠点行驶。本实施例的方法,可以实现机器人的灵活控制,使得机器人可以准确地停靠在停靠点。
继续参见图4,其示出了根据本申请的用于控制机器人的方法的另一个实施例的流程400。本实施例中,机器人与停靠点之间的距离d小于第三预设距离阈值D。也就是说,本实施例的方法是在距离停靠点一定距离时,调整机器人的朝向和/或位置。
如图4所示,本实施例的用于控制机器人的方法,可以通过以下步骤来确定行驶速度和转向角:
步骤401,根据第二坐标,确认机器人的当前位姿是否满足预设条件。
执行主体可以根据第二坐标,确认机器人的当前位姿是否满足预设条件。上述预设条件可以表明机器人处于停靠点附近范围,且机器人的朝向与停靠点的朝向相近。可以理解的是,执行主体可以预先确定一个允许的停靠范围和允许的角度范围。如果机器人处于该停靠范围内且朝向位于该角度范围内,则认为机器人的当前位姿已满足条件,不需要进行进一步调整机器人的位姿。
在本实施例的一些可选的实现方式中,第二坐标包括横坐标、纵坐标和角度。步骤401具体可以通过图4中未示出的以下步骤来实现:根据第二坐标包括的横坐标、纵坐标和角度,确认机器人是否满足以下预设条件:至第二坐标系的横轴的距离小于第一预设距离阈值、至第二坐标系的纵轴的距离小于第二预设距离阈值、朝向与第二坐标系的横轴之间的夹角小于预设夹角阈值。
本实现方式中,执行主体可以根据预先设定的三个阈值来确定机器人是否处于预设的停靠范围内。上述三个阈值分别对应第二坐标中的三个值。例如,第二坐标为(x,y,θ),三个阈值分别为xtolerance,ytolerance和θtolerance。|x|为机器人至第二坐标系的横轴的距离,|y|为机器人至第二坐标系的纵轴的距离。|θ为机器人的朝向与第二坐标系的横轴之间的夹角。当|x|<xtolerance、|y|<ytolerance并且|θ|<θtolerance时,认定机器人的当前位姿满足预设条件。
步骤402,响应于确定预设条件不满足,确定机器人预设范围内的障碍物检测结果。
执行主体在确定预设条件不满足后,可以确定机器人预设范围内的障碍物检测结果。可以理解的是,机器人上可以安装有距离传感器或摄像头,以检测机器人预设范围内的障碍物,得到障碍物检测结果。
执行主体在得到障碍物检测结果后,可以结合第二坐标确定机器人的行驶速度和转向角。具体的,执行主体可以根据步骤403首先确定机器人的行驶速度,然后根据步骤404确定机器人的转向角。
步骤403,根据第二坐标以及障碍物检测结果,确定机器人的行驶速度。
然后,执行主体可以结合第二坐标以及障碍物检测结果,来确定机器人的行驶速度。具体的,当执行主体确定机器人前方存在障碍物时,可以将机器人的行驶速度设定为向后的预设速度阈值。当执行主体确定机器人后方存在障碍物时,可以将机器人的行驶速度设定为向前的预设速度阈值。
在本实施例的一些可选的实现方式中,上述步骤403具体可以通过图4中未示出的以下步骤来实现:响应于确定在机器人的前方检测到障碍物,确定机器人的行驶速度为第一预设速度阈值;响应于确定在机器人的后方检测到障碍物,确定机器人的行驶速度为第二预设速度阈值;响应于确定在机器人的前方和后方检测到障碍物,确定机器人的行驶速度为零。
本实现方式中,如果执行主体确定在机器人的前方检测到障碍物,则将机器人的行驶速度设置为第一预设速度阈值。此处,第一预设速度阈值可以是负值,例如v=-vnorm。vnorm是一个预设的速度值,机器人在行驶时可以以vnorm来匀速行驶。v=-vnorm是指机器人以vnorm向后方移动。如果执行主体确定在机器人的后方检测到障碍物,则将机器人的行驶速度设置为第二预设速度阈值。此处,第二预设速度阈值可以是正值,例如v=vnorm。如果执行主体确定在机器人的前方和后方都检测到障碍物,确定机器人的行驶速度为零。
在本实施例的一些可选的实现方式中,上述方法还可以包括图4中未示出的以下步骤:根据第二坐标,确定机器人与停靠点之间的第一距离;响应于确定第一距离大于第三预设距离阈值,确定机器人的行驶速度为第三预设速度阈值。
本实现方式中,执行主体可以首先根据第二坐标,来确定机器人与停靠点之间的第一距离d。如果检测到第一距离d大于第三预设距离阈值D时,认定机器人远离停靠点,则执行主体可以设置机器人的行驶速度为第三预设速度阈值。此处,第三预设速度阈值可以是vnorm或-vnorm。通过此种设置,可以控制机器人向停靠点靠近。
在本实施例的一些可选的实现方式中,上述步骤403具体可以通过图4中未示出的以下步骤来实现:响应于确定机器人至第二坐标系的横轴的距离小于第一预设距离阈值、确定机器人的朝向与第二坐标系的横轴之间的夹角小于预设夹角阈值以及确定机器人至第二坐标系的纵轴的距离大于或等于第二预设距离阈值,根据第二预设权重系数以及第二坐标,确定机器人的行驶速度。
本实现方式中,当执行主体确定|y|<ytolerance、|θ|<θtolerance并且|x|≥xtolerance时,可以认定机器人距离停靠点存在一定距离,并且可以不转弯行驶到停靠点。此时,执行主体可以根据以下公式来确定机器人的行驶速度为v=-k3·xrp。其中,k3为第二预设权重系数,xrp为第二坐标中的横坐标。
步骤404,根据第二坐标、行驶速度以及第一预设权重系数,确定机器人的转向角。
在确定了执行主体的行驶速度后,执行主体可以根据第二坐标、行驶速度以及第一预设权重系数,确定机器人的转向角。可以理解的是,第一预设权重系数可以包括至少一个权重系数。
在本实施例的一些可选的实现方式中,机器人包括前轴和后轴。上述步骤404具体可以通过图4中未示出的以下步骤来实现:确定机器人的前轴和后轴之间的第二距离;根据上述第二距离、上述行驶速度、上述第一预设权重系数、上述第二坐标包括的纵坐标和角度,确定机器人的转向角。
本实现方式中,机器人为四轮机器人,包括两个前轮和两个后轮。两个前轮通过前轴连接,两个后轮通过后轴连接。执行主体可以首先根据机器人的结构,确定机器人的前轴和后轴之间的第二距离。然后,根据上述第二距离、步骤403确定的行驶速度、第一预设权重系数以及第二坐标中包括的纵坐标和角度,确定机器人的转向角。
下面以具体的例子来说明本实施例的行驶速度和转向角的确定方式。记第一坐标系为yMx,记第二坐标系为yPx,记机器人在第一坐标系中的第一坐标为R(xrm,yrm,θrm),记停靠点在第一坐标系中的第三坐标为P(xpm,ypm,θpm)。然后,执行主体可以以停靠点为坐标原点,以与第一坐标系的x轴夹角为θpm的方向为第二坐标系的x轴的方向。然后,将得到机器人在第二坐标系中的第二坐标R(xrp,yrp,θrp)。具体如图5所示,图5示出了第一坐标系与第二坐标系的位置关系。图5中,M点为第一坐标系的原点,R点为机器人所在的位置,P点为停靠点。
由图5可得到以下公式:
则可以确定第二坐标R(xrp,yrp,θrp)中各值满足:
xrp=(xrm-xpm)·cosθpm+(yrm-ypm)·sinθpm;
yrp=-(xrm-xpm)·sinθpm+(yrm-ypm)·cosθpm;
θrp=θrm-θpm。
推导可得,机器人的转向角可以由以下公式来确定:
其中,φ为机器人的转向角,L为机器人的前轴和后轴之间的距离,v为机器人的行驶速度,k1、k2为第一预设权重系数。
在本实施例的一些可选的实现方式中,上述方法还可以包括图4中未示出的以下步骤:响应于确定预设条件满足,确定机器人的行驶速度和转向角均为零。
本实现方式中,当执行主体确定预设条件满足时,可以认为机器人位于预设的停靠范围内,机器人的朝向位于预设的角度范围内,则可以认定机器人的位姿已符合停靠点的要求位姿,不需要对机器人的行驶速度和转向角进行调整。
本申请的上述实施例提供的用于控制机器人的方法,可以控制机器人在距离停靠点一定距离范围区域内,调整机器人的朝向,从而实现机器人朝向的对准。
进一步参考图6,作为对上述各图所示方法的实现,本申请提供了一种用于控制机器人的装置的一个实施例,该装置实施例与图2所示的方法实施例相对应,该装置具体可以应用于各种电子设备中。
如图6所示,本实施例的用于控制机器人的装置600包括:第一坐标确定单元601、第二坐标确定单元602、行驶参数确定单元603和行驶参数发送单元604。
第一坐标确定单元601,被配置成根据机器人的当前位姿,确定机器人在第一坐标系的第一坐标。
第二坐标确定单元602,被配置成确定机器人在第二坐标系的第二坐标。其中,第二坐标系由停靠点在第一坐标系中的第三坐标确定。
行驶参数确定单元603,被配置成基于第二坐标,确定机器人的行驶速度和转向角。
行驶参数发送单元604,被配置成向机器人发送行驶速度和转向角,以使机器人按照行驶速度和转向角向停靠点行驶。
在本实施例的一些可选的实现方式中,行驶参数确定单元603可以进一步包括图6中未示出的判断模块、第一确定模块和第二确定模块。
判断模块,被配置成根据第二坐标,确认机器人的当前位姿是否满足预设条件。
第一确定模块,被配置成响应于确定预设条件不满足,确定机器人预设范围内的障碍物检测结果。
第二确定模块,被配置成根据第二坐标以及障碍物检测结果,确定机器人的行驶速度和转向角。
在本实施例的一些可选的实现方式中,第二确定模块可以进一步被配置成:根据第二坐标以及障碍物检测结果,确定机器人的行驶速度;根据第二坐标、行驶速度以及第一预设权重系数,确定机器人的转向角。
在本实施例的一些可选的实现方式中,第二坐标包括横坐标、纵坐标和角度。判断模块可以进一步被配置成:根据第二坐标包括的横坐标、纵坐标和角度,确认机器人是否满足以下预设条件:至第二坐标系的横轴的距离小于第一预设距离阈值、至第二坐标系的纵轴的距离小于第二预设距离阈值、朝向与第二坐标系的横轴之间的夹角小于预设夹角阈值。
在本实施例的一些可选的实现方式中,第二确定模块可以进一步被配置成:响应于确定在机器人的前方检测到障碍物,确定机器人的行驶速度为第一预设速度阈值;响应于确定在机器人的后方检测到障碍物,确定机器人的行驶速度为第二预设速度阈值;响应于确定在机器人的前方和后方检测到障碍物,确定机器人的行驶速度为零。
在本实施例的一些可选的实现方式中,第二确定模块可以进一步被配置成:响应于确定机器人至第二坐标系的横轴的距离小于第一预设距离阈值、确定机器人的朝向与第二坐标系的横轴之间的夹角小于预设夹角阈值以及确定机器人至第二坐标系的纵轴的距离大于或等于第二预设距离阈值,根据第二预设权重系数以及第二坐标,确定机器人的行驶速度。
在本实施例的一些可选的实现方式中,第二确定模块可以进一步被配置成:根据第二坐标,确定机器人与停靠点之间的第一距离;响应于确定第一距离大于第三预设距离阈值,确定机器人的行驶速度为第三预设速度阈值。
在本实施例的一些可选的实现方式中,第二坐标包括横坐标、纵坐标和角度,机器人包括前轴和后轴。第二确定模块进一步被配置成:确定机器人的前轴和后轴之间的第二距离;根据第二距离、行驶速度、第一预设权重系数、第二坐标包括的纵坐标和角度,确定机器人的转向角。
在本实施例的一些可选的实现方式中,第二确定模块进一步被配置成:响应于确定机器人处于预设的停靠范围内,确定机器人的行驶速度和转向角均为零。
在本实施例的一些可选的实现方式中,第三坐标包括横坐标、纵坐标和角度,装置600还包括图6中未示出的第二坐标系确定单元,被配置成通过以下步骤确定第二坐标系:将第三坐标中包括的横坐标和纵坐标指示的点作为第二坐标系的原点;将与第一坐标系的横轴夹角值与第三坐标包括的角度相同的方向作为第二坐标系的横轴;将与第二坐标系的横轴符合右手定则的纵轴为第二坐标系的纵轴。
应当理解,用于控制机器人的装置600中记载的单元601至单元604分别与参考图2中描述的方法中的各个步骤相对应。由此,上文针对用于控制机器人的方法描述的操作和特征同样适用于装置600及其中包含的单元,在此不再赘述。
下面参考图7,其示出了适于用来实现本公开的实施例的电子设备(例如图1中的服务器或终端设备)700的结构示意图。本公开的实施例中的电子设备可以包括但不限于诸如移动电话、笔记本电脑、数字广播接收器、PDA(个人数字助理)、PAD(平板电脑)、PMP(便携式多媒体播放器)、车载终端(例如车载导航终端)等等的移动终端以及诸如数字TV、台式计算机等等的固定终端。图7示出的电子设备仅仅是一个示例,不应对本公开的实施例的功能和使用范围带来任何限制。
如图7所示,电子设备700可以包括处理装置(例如中央处理器、图形处理器等)701,其可以根据存储在只读存储器(ROM)702中的程序或者从存储装置708加载到随机访问存储器(RAM)703中的程序而执行各种适当的动作和处理。在RAM 703中,还存储有电子设备700操作所需的各种程序和数据。处理装置701、ROM 702以及RAM703通过总线704彼此相连。输入/输出(I/O)接口705也连接至总线704。
通常,以下装置可以连接至I/O接口705:包括例如触摸屏、触摸板、键盘、鼠标、摄像头、麦克风、加速度计、陀螺仪等的输入装置706;包括例如液晶显示器(LCD)、扬声器、振动器等的输出装置707;包括例如磁带、硬盘等的存储装置708;以及通信装置709。通信装置709可以允许电子设备700与其他设备进行无线或有线通信以交换数据。虽然图7示出了具有各种装置的电子设备700,但是应理解的是,并不要求实施或具备所有示出的装置。可以替代地实施或具备更多或更少的装置。图7中示出的每个方框可以代表一个装置,也可以根据需要代表多个装置。
特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信装置709从网络上被下载和安装,或者从存储装置708被安装,或者从ROM 702被安装。在该计算机程序被处理装置701执行时,执行本公开的实施例的方法中限定的上述功能。需要说明的是,本公开的实施例所述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开的实施例中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开的实施例中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读信号介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、RF(射频)等等,或者上述的任意合适的组合。
上述计算机可读介质可以是上述电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该电子设备执行时,使得该电子设备:根据机器人的当前位姿,确定机器人在第一坐标系的第一坐标;确定机器人在第二坐标系的第二坐标,其中,第二坐标系由停靠点在第一坐标系中的第三坐标确定;基于第二坐标,确定机器人的行驶速度和转向角;向机器人发送行驶速度和转向角,以使机器人按照行驶速度和转向角向停靠点行驶。
可以以一种或多种程序设计语言或其组合来编写用于执行本公开的实施例的操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本公开的实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的单元也可以设置在处理器中,例如,可以描述为:一种处理器包括第一坐标确定单元、第二坐标确定单元、行驶参数确定单元和行驶参数发送单元。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定,例如,第一坐标确定单元还可以被描述为“根据机器人的当前位姿,确定所述机器人在第一坐标系的第一坐标的单元”。
以上描述仅为本公开的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本公开的实施例中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本公开的实施例中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。