路径输出方法、路径输出系统和路径输出程序与流程

文档序号:20166554发布日期:2020-03-24 21:36阅读:454来源:国知局
路径输出方法、路径输出系统和路径输出程序与流程

本发明涉及路径输出方法、路径输出系统和路径输出程序。



背景技术:

在当今的产业领域中,使用多个机器人。机器人在实际进行作业时,需要通过编程、教学来学习该动作。例如,专利文献1中公开了使用安装有机器人手的机器人手爪从容器中取出所散装的物品的方法。在专利文献1所记载的方法中,操作者预先指定工业用机器人取出物品的动作路径上的、对机器人手臂可采取的姿势进行定义的多个教学点,生成表示由多个教学点构成的教学点列的基准动作程序。这里,预先设定机器人的动作路径上的多个教学点的作业等使机器人学习动作的作业有时需要较大的精力。因此,开发了对机器人给出移动开始位置和目标位置并自动地生成从移动开始位置到目标位置的路径的运动计划技术。例如,专利文献2中公开了通过组合使用rrt(rapidly-exploringrandomtree:快速搜索随机树)和路线图法来搜索移动路径的方法。

现有技术文件

专利文献

专利文献1:日本特开2013-126706号公报

专利文献2:日本特开2014-73550号公报

专利文献3:日本特开2006-155559号公报



技术实现要素:

发明要解决的课题

指定表示机器人的动作路径的教学点列,在通过根据所指定的教学点列来生成的动作程序使机器人进行动作的情况下,操作者在指定教学点时,每次考虑机器人手臂的姿势。因此,机器人保持的对象物的姿势能够通过操作者所考虑的教学点中的机器人手臂的姿势来确定。但是,在自动地生成从移动开始位置(起点)到目标位置(终点)的动作路径的运动计划中,机器人在从移动开始位置(初始姿势)到目标位置(目标姿势)进行动作的期间内,机器人把持的对象物的姿势可采取任意的朝向。因此,当在运动计划中使用所自动生成的路径时,例如,有时产生在搬运装入液体的容器的期间内溢出液体等不良影响,实际上,无法直接使用所自动生成的路径。关于该方面,在上述专利文献1和专利文献2中的任意一个中均未考虑自动地生成机器人的动作路径时的对象物的姿势。

另一方面,专利文献3提及了在考虑机器人的姿势之后自动地生成机器人的动作路径的方法。该方法在生成使机器人从移动开始位置移动至目标位置的动作路径时,在移动开始位置与目标位置之间概率性生成中间点。而且,该方法将用于限制存在机器人的真实空间中的机器人可采取的姿势的约束条件设定在根据机器人的自由度来定义的配置空间中,根据约束条件生成约束中间点,使用约束中间点生成从移动开始位置到目标位置之间的路径。

这时,难以概率性生成满足约束条件的中间点,因此,专利文献3所记载的方法将满足约束条件的约束部分空间设定在配置空间中,将概率性生成的中间点投影到约束部分空间从而生成约束中间点。但是,即使使用这样的投影计算,难以概率性生成满足约束条件的中间点也不会发生改变。因此,高频度地进行投影计算,难以说是高效的计算方法。并且,在将配置空间内概率性生成的中间点q1、q2映射到该约束部分空间v1、v2中的情况下,v1与v2的逻辑积有时成为空集合。这样的现象特别容易在不具有冗余轴的机器人中产生。在这样的情况下,连接中间点q1、q2之间的路径不满足约束条件,因此,需要进行中间点的重新生成、修改,难以说是高效的计算方法。

此外,专利文献3所记载的方法通过在根据机器人的自由度来定义的配置空间中,设定满足任意位置及其附近的约束椭圆体,实现了路径计算的简单化,该任意位置满足约束条件。该计算方法可以为解决与投影计算有关的上述问题的方法,但是,约束椭圆体仅给出与机器人的姿势有关的限制。在假设约束椭圆体上的点形成的空间与配置空间上的障碍物空间的逻辑积不为空集合的情况下,根据约束椭圆体而生成的中间点有时与障碍物发生干扰。在机器人被障碍物包围的情况下,产生这样的干扰的概率较高,因此,需要进行中间点的重新生成、修改,难以说是高效的计算方法。

一般而言,在多关节机器人中,当欲将障碍物空间表现为配置空间上的约束空间时,计算量增加,因此,难以在配置空间上对约束椭圆体和障碍物空间双方的空间进行定义来高效地进行路径计算。

因此,本发明解决上述的问题,其目的在于提供一种能够在机器人搬运对象物的期间内保持对象物的姿势的路径输出方法、路径输出系统和路径输出程序。

用于解决课题的手段

本发明的一个方式的路径输出方法使用具有取得部、输出部、存储部和运算部的运算装置来输出具有多个可动轴的机器人将对象物从第1位置搬运至第2位置时的路径,其中,运算部执行以下步骤:使用取得部来取得第1位置和第2位置;取得机器人将对象物从第1位置搬运至第2位置时的搬运条件;生成机器人将对象物从第1位置搬运至第2位置的路径,该路径是遍及整个该路径而使对象物的姿势满足搬运条件的路径;以及使用输出部来输出所生成的路径。这里,搬运条件包括与对象物的姿势有关的第1条件。

根据该方式,生成遍及机器人将对象物从第1位置搬运至第2位置的整个路径而满足与对象物的姿势有关的条件的路径。因此,提供一种能够在机器人搬运对象物的期间内在一定的范围内保持对象物的姿势的路径输出方法。即,在自动地生成机器人从第1位置动作至第2位置的路径的运动计划中,有时生成对象物可采取任意的姿势的动作路径,但是,由于生成遍及所生成的整个动作路径而满足与对象物的姿势有关的条件的路径,所以能够在机器人搬运对象物的期间内,在一定的范围内保持对象物的姿势。另外,“搬运”表示具有多个可动轴的机器人使对象物从第1位置移动至第2位置。

在上述方式中,也可以为,存储部中存储有第1条件的初始值,运算部在取得搬运条件的步骤中,取得存储部所存储的初始值作为第1条件。根据该方式,即使并没有每次输入与对象物的姿势有关的第1条件,也可生成满足预先设定的条件的路径。

在上述方式中,也可以为,运算部在取得搬运条件的步骤中,经由取得部而取得用户任意设定的第1条件。根据该方式,可生成满足用户的期望的路径。

在上述方式中,也可以为,运算部在取得搬运条件的步骤中,将经由取得部而取得的、用户任意地设定的条件作为初始值或重写值存储到存储部中。根据该方式,通过将条件依次变更为符合现状的需求的形式并预先存储,能够根据符合目前的作业环境的条件生成路径。

在上述方式中,也可以为,运算部在生成路径的步骤中,搜索满足第1条件的第3位置,生成将对象物从第1位置经由第3位置而搬运至第2位置的路径。根据该方式,能够生成对象物的姿势满足规定的条件的路径。此外,以点为对象判定是否满足条件,因此,能够将是否能够生成路径的搜索处理限定于规定的范围,能够削减路径的生成中的运算负荷。并且,在用户设定机器人应该经由的点的情况下,能够容易地进行经由该点的路径的生成。

在上述方式中,也可以为,存储部中存储有判定是否满足搬运条件的规定的函数,运算部在生成路径的步骤,根据规定的函数,生成满足搬运条件的路径。根据该方式,能够防止使机器人按照对象物的姿势不满足规定的条件的路径进行动作。

在上述方式中,也可以为,运算部在取得第1位置和第2位置的步骤中,使用取得部来取得根据由规定的传感器取得的信息而计算出的第1位置和第2位置中的至少一个。根据该方式,能够使对象物的实际姿势处于第1位置或第2位置,生成从第1位置到第2位置的更准确的路径。

在上述方式中,也可以为,运算部在取得第1位置和第2位置的步骤中,使用取得部来取得由规定的传感器取得的信息,根据所取得的信息计算第1位置和第2位置中的至少一个。根据该方式,能够根据对象物的实际姿势,生成从第1位置到第2位置的更准确的路径。

在上述方式中,也可以为,由规定的传感器取得的信息为由摄像装置取得的对象物的图像信息或机器人具有的多个可动轴的角度的信息。根据该方式,能够使用从摄像装置、机器人具有的传感器等取得的信息,生成从第1位置到第2位置的更准确的路径。

在上述方式中,也可以为,搬运条件还包括与机器人的周边环境信息有关的第2条件,运算部在生成路径的步骤中,生成满足第1条件和第2条件的路径。根据该方式,能够生成考虑了机器人的周边环境信息的路径。

本发明的一个方式的路径输出方法使用具有输出部和运算部的运算装置来输出具有多个可动轴的机器人搬运对象物时的路径,其中,运算部执行以下步骤:计算满足第1条件的第1位置和第2位置,其中该第1条件用于限制存在对象物的真实空间内的对象物可采取的姿势;在真实空间内计算将第1位置与第2位置之间连接的一个以上的中间点,所述一个以上的中间点除了满足第1条件以外还满足与机器人的周边环境信息有关的第2条件;生成从第1位置经由一个以上的中间点而到达第2位置的路径;以及使用输出部来输出所生成的路径。

当在配置空间内概率性生成中间点时,产生生成真实空间的不满足第1条件的中间点的可能性较高这样的不良情况,但是,根据该方式,通过在真实空间内生成满足第1条件的中间点,能够克服这样的不良情况。

在上述方式中,也可以为,运算部在计算第1位置和第2位置的步骤中,计算在第1位置与第2位置之间存在满足第1条件的路径的第1位置和第2位置。根据该方式,能够克服如下不良情况:有时即使第1位置和第2位置满足第1条件,第1位置与第2位置之间的任意路径都不满足第1条件。

在上述方式中,也可以为,中间点包含与从第1位置到第2位置的路径上的对象物或机器人的手部的中间位置和中间姿势有关的信息。运算部在真实空间内计算一个以上的中间点的步骤中,在不变更某一个中间点的与中间姿势有关的信息的情况下变更与该中间位置有关的信息,由此在真实空间内计算满足第1条件的另一个中间点。由此,能够通过简单计算求出满足第1条件的中间点。

在上述方式中,也可以为,运算部在真实空间内计算一个以上的中间点的步骤中,以使另一个中间点的中间位置朝向第2位置的方式,变更某一个中间点的与中间位置有关的信息。由此,能够实现机器人的高效的路径计划。

本发明的一个方式的路径输出系统输出具有多个可动轴的机器人将对象物从第1位置搬运至第2位置时的路径,其中,该路径输出系统包括:取得部,其取得第1位置、第2位置以及由机器人将对象物从第1位置搬运至第2位置时的搬运条件;运算部,其生成机器人将对象物从第1位置搬运至第2位置的路径,该路径是遍及整个该路径而使对象物的姿势满足搬运条件的路径;以及输出部,其将所生成的路径输出到外部。这里,搬运条件包括与对象物的姿势有关的第1条件。

根据该方式,生成遍及由机器人将对象物从第1位置搬运至第2位置的整个路径而满足与对象物的姿势有关的条件的路径。因此,能够提供一种在机器人搬运对象物的期间内在一定的范围内保持对象物的姿势的路径输出系统。

本发明的一个方式的路径输出程序用于生成具有多个可动轴的机器人将对象物从第1位置搬运至第2位置时的路径,其中,该程序使具有取得部和运算部的运算装置执行以下步骤:取得第1位置和所述第2位置;取得机器人将对象物从第1位置搬运至第2位置时的搬运条件;生成机器人将对象物从第1位置搬运至第2位置的路径,该路径是遍及整个该路径而使对象物的姿势满足搬运条件的路径;以及输出所生成的路径。这里,搬运条件包括与对象物的姿势有关的第1条件。

根据该方式,生成遍及机器人将对象物从第1位置搬运至第2位置的整个路径而满足与对象物的姿势有关的条件的路径。因此,能够提供一种在机器人搬运对象物的期间内在一定的范围内保持对象物的姿势的路径输出系统。

发明效果

根据本发明,可提供一种能够在机器人搬运对象物的期间内保持对象物的姿势的路径输出方法、路径输出系统和路径输出程序。

附图说明

图1是示出第1实施方式的机器人系统1的结构的一例的图。

图2是示出运算装置10的硬件结构的一例的框图。

图3是运算装置10中的、路径输出处理的流程图的一例。

图4是示出基于rrt的路径生成处理的流程图的一例。

图5是示出基于rrt的路径生成处理中的配置空间的一例的图。

图6是基于prm的路径生成处理的流程图的一例。

图7是示出基于prm的路径生成处理中的配置空间的一例的图。

图8是基于势场法的路径生成处理的流程图的一例。

图9是基于势场法的路径生成处理中的配置空间的一例的图。

图10是基于轨迹优化的路径生成处理的流程图。

图11是示出基于轨迹优化的路径生成处理中的配置空间的一例的图。

图12是基于搬运条件的配置空间中的路径生成处理的说明图。

图13是基于搬运条件的真实空间中的路径生成处理的说明图。

图14是中间点的生成处理的流程图。

图15是使用势场法的偏置处理的说明图。

图16是使用空间分割的偏置处理的说明图。

具体实施方式

参照附图,说明本发明的优选实施方式。另外,在各附图中,标注相同标号的部件具有相同或者同样的结构。此外,以下的实施方式是用于说明本发明的例示,不旨在将本发明仅限定于该实施方式。并且,本发明只要不脱离其主旨,能够进行各种各样的变形。

[第1实施方式]

首先,参照图1和图2,对本发明的第1实施方式的机器人系统进行说明。图1是示出本实施方式的机器人系统1的结构的一例的图。如该图所示,机器人系统1具有运算装置10和机器人20。此外,如图1、图2所示,机器人系统1也可以具有摄像装置30、角度检测装置40、输入装置50和输出装置60等。

运算装置10是根据初始姿势和目标姿势来运算机器人20从初始姿势移动至目标姿势的路径的装置。在本实施方式中,所运算的路径输出到机器人20。这里示出将运算装置10与机器人20分体地构成的例子,但是,不限于此,也可以构成为对运算装置10与机器人20进行一体化。另外,作为运算结果的路径也可以不一定输出到真实的机器人20,例如,也可以输出到模拟器。作为一例,也可以向后述的输出装置60输出机器人20的虚拟模型和作为运算结果的路径,利用该输出装置60对机器人20的动作进行再现。

另外,运算装置10也可以至少具有后述的执行与路径的生成和输出有关的运算处理的运算部、存储用于执行该运算处理的信息(包括程序、条件等)的易失性和/或非易失性的存储装置(包括存储部、内存等)、用于取得该信息并且输出运算处理的结果的接口。即,运算装置10只要是执行上述的各运算处理的专用或通用的信息处理装置足以。此外,机器人系统1为包括相当于运算装置10的结构的机器人系统,因此,只要是具有执行上述的各运算处理的结构的专用或通用的信息处理系统足以。

机器人20例如是六轴垂直多关节机器人。如图1的例子所示,机器人20具有基座21、第1连杆22、第2连杆23、第3连杆24、第4连杆25、第5连杆26、第6连杆27和末端执行器28。机器人20具有用于使各个连杆进行旋转运动的可动轴(驱动用马达)。由此,机器人20构成为将基座21和多个连杆经由驱动用马达而相互连接。

基座21安装在设置有机器人20的构造物上。基座21利用与上表面垂直的可动轴与第1连杆22连接。第1连杆22能够相对于基座21以该可动轴为中心旋转。

第1连杆22是基座21侧的一端相互连接起来的两片板状部件。第1连杆22的两片板状部件相互连接。第1连杆22的两片板状部件向与基座21相反的方向延伸,相互对置。第1连杆22利用两片板状部件,夹着第2连杆23的一端。第1连杆22利用与两片板状部件的相互对置的面垂直的可动轴,与第2连杆23连接。第2连杆23能够相对于第1连杆22以该可动轴为中心旋转。

第2连杆23是第1连杆22侧的一端相互连接起来的两片板状部件。第2连杆23的两片板状部件相互对置。第2连杆23利用两片板状部件夹着第3连杆24。第2连杆23利用与两片板状部件的相互对置的面垂直的可动轴,与第3连杆24连接。第3连杆24能够相对于第2连杆23以该可动轴为中心旋转。

第3连杆24是利用位于与第2连杆23的两片板状部件的相互对置的面平行的面内的可动轴来与第4连杆25连接的部件。第4连杆25能够相对于第3连杆24以该可动轴为中心旋转。

第4连杆25是第3连杆24侧的一端相互连接起来的两片板状部件。第4连杆25的两片板状部件相互对置。第4连杆25利用两片板状部件夹着第5连杆26。第4连杆25利用与两片板状部件的相互对置的面垂直的可动轴,与第5连杆26连接。第5连杆26能够相对于第4连杆25以该可动轴为中心旋转。

第5连杆26是利用与第4连杆25的两片板状部件的相互对置的面垂直的可动轴来与第6连杆27连接的部件。第6连杆27是经由可动轴而与第5连杆26连接的部件。在本实施方式中,第5连杆26和第6连杆27构成为圆筒状。此外,第5连杆26和第6连杆27具有公共的中心轴,第6连杆27相对于第5连杆26以可动轴为中心旋转。第6连杆27是在与第5连杆26连接的端部的相反侧的端部具有用于直接或经由连接部件(配件)而间接地安装末端执行器28的连接构造并经由该连接构造与末端执行器28连接的部件。

如图1的例子所示,末端执行器28是把持对象物w的机构。该机构只要能够把持对象物w即可,未特别限定。此外,末端执行器28也可以是替代把持对象物w来吸附对象物w的机构。末端执行器28利用位于与第4连杆25的两片板状部件的相互对置的面平行的面内的可动轴来与第5连杆26连接。末端执行器28能够相对于第5连杆26以该可动轴为中心旋转。另外,末端执行器28不限定于把持对象物的机构。例如,也可以使用吸附并保持对象物w的吸附衬垫,作为末端执行器28。此外,也可以使用具有载置对象物w的平面的平板状部件,作为末端执行器28。

末端执行器28也可以在悬挂的状态把持对象物w。由此,机器人20能够在将对象物w从初始位置搬运至目标位置的期间内,保持对象物w的姿势。

另外,末端执行器28也可以具有以满足后述的存储部12中包含的初始条件存储部121所存储的搬运条件的方式把持对象物w的机构。此外,末端执行器28也可以具有以使初始条件存储部121所存储的搬运条件满足用户或运算装置10任意变更后的条件的方式把持对象物w的机构。

这里,搬运条件是机器人20将对象物w从第1位置搬运至第2位置时的条件,包括与对象物w的姿势有关的第1条件。在本实施方式中,运算装置10根据搬运条件,生成或修改机器人20的路径。另外,搬运条件也可以包括与配置机器人20的环境有关的第2条件。第2条件例如是指与存在机器人20的周边物(障碍物)的区域有关的条件、即与禁止机器人20的进入的区域有关的条件。另外,与对象物w的姿势有关的条件优选为用于将对象物w的姿势保持在相对于水平方向小于规定的角度范围的条件。这样,能够抑制在将对象物w从第1位置搬运至第2位置时上下反转。此外,搬运条件不限定于第1条件和第2条件,例如,也可以包括与机器人20将对象物w从第1位置搬运至第2位置时的速度有关的条件。另外,第1位置和第2位置分别不限定于开始对象物w的保持的规定位置和在使所保持的对象物移动之后结束对象物的保持的规定位置。例如,也可以为从开始对象物w的保持起到结束对象物w的保持为止的期间内包含的任意一个位置。

如上述的例子所示,基座21、第1连杆22、第2连杆23、第3连杆24、第4连杆25、第5连杆26、第6连杆27和末端执行器28利用可动轴连接成一列,构成六轴垂直多关节机器人。另外,机器人20不限定于六轴垂直多关节机器人,也可以具有两个以上的可动轴。机器人20例如也可以为五轴垂直多关节机器人或七轴垂直多关节机器人。此外,如上所述,机器人20不限于由硬件构成的真实的机器人,也可以为模拟器等虚拟地构成的机器人。

摄像装置30是用于拍摄被末端执行器28把持的对象物w的图像的装置。摄像装置30例如为照相机。摄像装置30将被末端执行器28把持的对象物w的图像发送到运算装置10,利用运算装置10计算对象物w的初始位置、目标位置。或者,摄像装置30也可以通过使用自身具有的处理器对被末端执行器28把持的对象物w的图像实施图像处理来计算对象物w的初始位置、目标位置,并发送到运算装置10。初始位置是利用机器人20搬运的起点处的对象物w的位置。目标位置是利用机器人20搬运的终点处的对象物w的位置。

另外,初始位置和目标位置也可以分别包括与对象物w的姿势有关的信息。此外,初始位置和目标位置也可以分别包括把持对象物w的末端执行器28的位置和姿势中的至少一个信息。

另外,机器人系统1也可以替代摄像装置30,或者除了摄像装置30以外,还具有角度检测装置40。角度检测装置40检测被末端执行器28把持的对象物w的角度。角度检测装置40例如为加速度传感器、陀螺仪传感器。这些传感器例如安装在末端执行器28上。末端执行器28牢固地把持对象物w。因此,角度检测装置40能够通过检测末端执行器28的角度来检测对象物w的角度。角度检测装置40将计测出的对象物w的角度发送到运算装置10。另外,角度检测装置40检测的对象物w的角度的基准未特别限定。例如,在以铅直方向为基准的情况下,角度检测装置40根据末端执行器28相对于铅直方向的角度,检测对象物w的角度。

另外,角度检测装置40也可以安装在对象物w上。此外,角度检测装置40也可以安装在第1连杆22、第2连杆23、第3连杆24、第4连杆25、第5连杆26、第6连杆27和末端执行器28中的至少一个上。具体而言,角度检测装置40也可以分别安装在第4连杆25、第5连杆26和末端执行器28上。该情况下,角度检测装置40例如通过计测第4连杆25相对于第3连杆24的旋转角度、第5连杆26相对于第4连杆25的旋转角度和末端执行器28相对于第5连杆26的旋转角度,进行规定的运算处理(例如,基于正向运动学的运算),检测被末端执行器28把持的对象物w的角度。

图2是示出本实施方式的运算装置10的硬件结构的一例的框图。运算装置10是运算机器人20的路径的装置,如该图所示,在本实施方式中,运算装置10具有外部接口11、存储部12和运算部15。此外,运算装置10也可以具有驱动器13。

外部接口11是用于将外部设备与运算装置10连接的接口。在图2所示的例子中,外部接口11以能够进行电通信并且信息通信的方式将机器人20、摄像装置30、角度检测装置40、输入装置50以及输出装置60与运算装置10连接。外部接口11具有作为用于取得对象物w的初始位置和目标位置的取得部的功能。外部接口11例如取得用户使用输入装置50而输入的对象物w的初始位置和目标位置。或者,外部接口11从摄像装置30取得被末端执行器28把持的对象物w的图像。运算部15基于存储部12所存储的图像处理程序,根据所取得的图像计算对象物w的初始位置和目标位置。或者,外部接口11取得摄像装置30计算出的初始位置和目标位置。

外部接口11也可以与初始位置一起或者除了初始位置以外,取得抓住放置于初始位置的对象物w时的机器人20的姿势。在以下的说明中,将该姿势称作初始姿势。此外,外部接口11也可以与目标位置一起或者除了目标位置以外,还取得将对象物w放置于目标位置时的机器人20的姿势。在以下的说明中,将该姿势称作目标姿势。此外,外部接口11也可以取得从角度检测装置40计测出的对象物w的角度,并存储到存储部12中。此外,外部接口11也可以构成为还取得机器人20的目前的姿势(目前姿势)。另外,外部接口11取得的机器人20的姿势也可以是与机器人20的多个可动轴对应地设置的、检测与机器人20的可动轴的旋转角度有关的信息的编码器值。

一般来说,机器人的姿势能够表现为配置空间(configurationspace)内的点。配置空间是在进行路径计划时使用的向量空间。还有时将在配置空间中放置点称作采样。路径计划是在被赋予了障碍物的位置、起点和终点的配置空间内生成将从起点到终点连接的路径。配置空间具有与机器人具有的可动轴的数量相同数量的维数。配置空间的某一个点利用与机器人具有的可动轴的个数相同的个数的值来定义,各可动轴的值表示绕机器人的各可动轴的旋转角度。另外,在机器人的路径计划的领域中,配置空间有时称作关节空间。另外,也可以使用基于真实空间的绝对坐标空间,作为进行路径计划的空间。

如本实施方式那样,在使用六轴垂直多关节机器人作为机器人20的情况下,配置空间为六维向量空间。机器人20的配置空间的各可动轴的值分别为第1连杆22相对于基座21的旋转角度、第2连杆23相对于第1连杆22的旋转角度、第3连杆24相对于第2连杆23的旋转角度、第4连杆25相对于第3连杆24的旋转角度、第5连杆26相对于第4连杆25的旋转角度和第6连杆27相对于第5连杆26的旋转角度。运算部15在生成路径的运算处理中,使用外部接口取得与各可动轴的旋转角度有关的数据(设置于机器人20的编码器的检测值),根据正向运动学来运算机器人20或该虚拟模型的位置、姿势。此外,运算部15也可以使用配置空间来运算确定机器人20的初始姿势的点的各坐标的值和确定机器人20的目标姿势的各坐标的值。另外,运算部15也可以使用作为外部接口11的取得部的功能来取得用于确定配置空间中的机器人20的初始姿势和/或目标姿势的点的各坐标的值。

此外,外部接口11具有作为后述的用于将由路径生成过程存储部122和路径修改过程存储部123生成的路径输出到机器人20或输出装置60的输出部的功能。

存储部12例如由易失性存储器、非易失性存储器、硬盘驱动器(harddiscdrive:hdd)构成。在本实施方式中,存储部12具有初始条件存储部121、路径生成过程存储部122、路径修改过程存储部123、路径存储部124和路径输出过程存储部125。

初始条件存储部121存储搬运条件的初始值,例如,由设置于存储部12的内部的规定的存储区域构成。这里,搬运条件也可以包含上述的第2条件、即、与配置机器人20的周边的环境有关的条件。这里,第2条件的初始值例如为障碍物区域co。障碍物区域co表示在配置空间内存在给出如机器人20和对象物w中的至少一个与周围的障碍物发生冲突那样的机器人20的姿势的点的区域。另外,在以下的说明中,“机器人20与障碍物发生冲突”还包括机器人20把持的对象物w与障碍物发生冲突的情况。此外,这里,将与机器人20的周边环境有关的信息称作“周边环境信息”,障碍物区域co为周边环境信息的一例。此外,搬运条件也可以包含机器人将对象物w从第1位置搬运至第2位置时的、与对象物w的姿势有关的第1条件。例如,与对象物w的姿势有关的第1条件的初始值也可以包括角度不符合区域cp。角度不符合区域cp是在配置空间内存在给出对象物w的姿势不符合规定条件的机器人20的姿势的点的区域。对象物w被末端执行器28把持而从初始姿势搬运至目标姿势,因此,角度不符合区域cp能够表示为配置空间内的规定区域。角度不符合区域cp根据与对象物w的姿势有关的条件来确定,作为该条件,例如,在搬运中,对象物w不上下反转或者将搬运中的对象物w的角度相对于铅直方向保持在规定的范围内等。另外,障碍物区域和角度不符合区域还有时重叠。这些搬运条件能够由用户任意地设定或变更。例如,搬运条件也可以由用户使用输入装置50来输入。这时,运算装置10经由外部接口11而取得所输入的条件。所取得的条件也可以作为初始条件存储部121的初始值或重写值存储到存储部12中。此外,搬运条件例如也可以根据取得机器人20的周边环境的未图示的传感器、cad的数据、预先确定的值等,由运算装置10任意地设定或变更。例如,运算装置10根据从取得机器人20的周边环境的传感器所取得的值来对障碍物区域co进行更新,并且执行对伴随障碍物区域co的更新而增减的角度不符合区域cp进行更新的运算处理。

另外,初始条件存储部121也可以存储与使用路径的机器人20有关的条件。即,如上所述,机器人20构成为利用可动轴将基座和多个连杆分别相互连接。因此,初始条件存储部121也可以将与基座和各连杆的形状有关的信息、与可动轴有关的信息(例如,与可旋转的角度、速度、加速度有关的信息)作为与机器人20有关的条件存储。这样,例如,能够利用运算装置10运算机器人20的路径,此外,能够在虚拟空间上对使用该路径的机器人20的动作进行再现。另外,初始条件存储部121也可以将机器人20的近似模型作为与机器人20有关的条件存储,以容易进行机器人20的动作的再现。此外,初始条件存储部121也可以存储末端执行器28和/或对象物w的初始位置和目标位置。另外,初始条件存储部121所存储的条件可以通过各种形式表现,例如,也可以通过用于判别是否满足条件的规定的函数来表现。

路径生成过程存储部122例如由设置于存储部12的内部的规定的存储区域构成。路径生成过程存储部122存储用于使运算部15执行运算处理的程序,该运算处理用于生成机器人20将对象物w从初始位置搬运至目标位置时的路径。例如,存储部12的路径生成过程存储部122所保存的软件程序被运算部15读出并执行,由此,执行与路径的生成有关的运算处理。运算部15根据路径生成过程存储部122所存储的程序,从运算装置10的外部取得或从初始条件存储部121调用搬运条件。运算部15根据所取得或调用的条件,生成遍及机器人20将对象物w从初始位置搬运至目标位置的整个路径而满足该搬运条件的路径。例如,在搬运条件为将搬运对象物w时的角度收敛至规定的范围内的搬运条件的情况下,运算部15在机器人20将对象物w从初始位置搬运至目标位置的期间内,生成使对象物w的角度收敛至规定的范围内的路径。

在本实施方式中,路径生成过程存储部122存储有用于生成机器人20不与设置于周边环境的障碍物发生干扰并且满足与搬运中的对象物w的姿势有关的条件的路径的程序。另外,所生成的路径能够表示为在配置空间上将从表示初始姿势的点s到表示目标姿势的点g连接起来的多个点ni的列t。作为由运算部15执行的路径生成处理的方法,能够使用包括势场法、路线图法、优化法等的任意方法。之后叙述基于各个方法的路径生成处理。

路径修改过程存储部123例如由设置于存储部12的内部的规定的存储区域构成。路径修改过程存储部123存储用于使运算部15执行运算处理的程序,该运算处理用于修改根据路径生成过程存储部122所存储的程序而生成的路径。在本实施方式中,路径修改过程存储部123所存储的程序是用于执行以机器人20不与设置于周边环境的障碍物发生干扰并且满足与搬运中的对象物w的姿势有关的条件的方式修改路径的处理的程序。路径修改过程存储部123所存储的程序也可以是用于执行对路径生成过程存储部122所生成的路径进行平滑化的处理的程序。此外,也可以是用于执行搜索根据路径生成过程存储部122所存储的程序而生成的路径的捷径的处理的程序。此外,也可以是用于确定基于到终点的路径程度、角速度、计算时间、移动预测时间中的至少一个的评价函数并执行以使评价函数的值进行最大化的方式修改路径的处理的程序。另外,在通过基于路径生成过程存储部122所存储的程序的运算处理来生成多个路径的情况下,也可以利用规定的评价函数对各路径进行评价,从多个路径中选择最佳的路径。另外,用于以避免机器人20与设置于周边环境的障碍物的干扰的方式修改路径的程序和以满足与搬运中的对象物w的姿势有关的条件的方式修改路径的程序也可以单独存储。

路径存储部124存储通过执行路径生成过程存储部122、路径修改过程存储部123所存储的程序而生成或修改的路径(以下,也简称作“所生成的路径”。),例如,由设置于存储部12的内部的存储区域构成。在生成或修改路径时的条件不发生改变的情况下,也可以通过读出路径存储部124所存储的路径来进行基于路径生成过程存储部122所存储的程序的运算处理。例如,在已经生成的路径中的对象物w的初始位置和目标位置不发生变化的情况或位于机器人20的周围的障碍物等环境即周边环境信息不存在变化的情况下,运算部15也可以通过读出路径存储部124所存储的路径来生成或修改路径。由此,运算部15能够迅速地生成适当的路径。另外,路径存储部124优选预先将通过执行路径生成过程存储部122、路径修改过程存储部123所存储的程序而生成的路径与在生成或修改路径时所考虑的条件相关联地存储。

路径输出过程存储部125例如由设置于存储部12的内部的规定的存储区域构成。路径输出过程存储部125存储用于将通过执行路径生成过程存储部122、路径修改过程存储部123所存储的程序而生成的路径或路径存储部124所存储的路径经由外部接口11而输出至机器人20的程序。路径输出过程存储部125所保存的软件程序被运算部15读出并执行,由此,路径经由外部接口11而输出到外部。

另外,路径生成过程存储部122、路径修改过程存储部123和路径输出过程存储部125也可以不分别进行区分。例如,也可以一体地进行利用路径生成过程存储部122所存储的程序执行的处理、利用路径修改过程存储部123所存储的程序执行的处理和利用路径输出过程存储部125所存储的程序执行的处理。

驱动器13对插入到运算装置10中的存储介质14进行驱动。在存储介质14中存储有对象物w的初始位置和目标位置的情况下,运算装置10也可以从存储介质14取得对象物w的初始位置和目标位置。这时,驱动器13作为用于取得对象物w的初始位置和目标位置的取得部发挥功能。此外,运算装置10也可以将由路径生成过程存储部122和路径修改过程存储部123生成的路径输出到存储介质14。这时,驱动器13作为用于将所生成的路径输出到存储介质14的输出部发挥功能。

存储介质14能够替代存储部12,作为存储初始条件存储部121和路径存储部124所存储的数据的介质使用。此外,存储介质14可以替代存储部12,存储路径生成过程存储部122和路径修改过程存储部123中的至少一个所存储的软件程序。存储介质14例如为cd-rom、cd-r、cd-rw、dvd-rom、dvd-r、dvd-rw、dvd-ram、ld、光磁盘、存储卡。

运算部15具有作为硬件处理器的cpu(centralprocessingunit:中央处理器)151、ram(randomaccessmemory:随机存取存储器)152和rom(readonlymemory:只读存储器)153。

cpu151是读出并执行存储部12的路径生成过程存储部122、路径修改过程存储部123和路径输出过程存储部125中的至少一个所存储的软件程序的处理器。cpu151例如读出并执行存储部12的路径生成过程存储部122、路径修改过程存储部123和路径输出过程存储部125中的至少一个所存储的程序,将这些程序存储到ram(randomaccessmemory:随机存取存储器)152和rom(readonlymemory:只读存储器)153,并执行这些程序。

输入装置50是用于向机器人系统1输入指示、设定的装置,例如,由鼠标、键盘构成。用户向输入装置50输入的指示、设定被发送到运算装置10的运算部15。

输出装置60例如是显示器,并将路径生成过程存储部122和/或路径修改过程存储部123所生成的路径输出到用户。

另外,运算装置10也可以构成为根据运算处理的结果,生成满足搬运条件的路径。因此,运算装置10也可以至少具有执行生成满足搬运条件的路径的处理的硬件处理器、存储用于使硬件处理器执行生成满足搬运条件的路径的处理的软件程序的易失性存储器和非易失性存储器中的至少一个、和用于从外部取得搬运条件的外部接口。

接着,参照图3,对本实施方式的路径输出处理的流程进行说明。图3是运算装置10中的路径输出处理的流程图的一例。

首先,运算部15使用外部接口11取得机器人20的初始姿势和目标姿势(步骤s31)。具体而言,外部接口11取得用户从输入装置50输入的初始姿势和目标姿势。此外,外部接口11可以取得根据从摄像装置30、角度检测装置40获得的信息而计算出的初始姿势和目标姿势中的至少一个,也可以取得从摄像装置30、角度检测装置40获得的信息从而计算初始姿势和目标姿势中的至少一个。并且,外部接口11也可以取得根据检测机器人20具有的可动轴的角度的传感器(编码器)的检测值而计算出的、机器人20的目前的姿势,作为初始姿势。此外,运算部15也可以使用外部接口11来取得检测机器人20具有的可动轴的角度的传感器(编码器)的检测值,从而计算机器人20的目前的姿势,设该目前的姿势为初始姿势。

此外,运算部15与s31的处理并列地或在s31的处理的前后取得机器人20搬运对象物w时的搬运条件(步骤s32)。运算部15可以经由外部接口11而取得用户从输入装置50输入的搬运条件,或者,也可以预先取得初始条件存储部121所存储的搬运条件。运算部15取得的搬运条件是任意的,但是,例如,取得与搬运中的对象物w的姿势有关的条件、与配置机器人20的周边的环境有关的条件等。另外,在图3中,以在步骤s31之后执行步骤s32的形式进行了图示,但是,这只不过是一例。也可以如上所述,并列地执行步骤s31和s32,此外,也可以在步骤s32之后执行步骤s31。运算部15将使用外部接口11而取得的信息和计算出的信息存储或重写到初始条件存储部121中并保存。

另外,步骤s31和步骤s32中的至少一个处理能够作为生成后述的路径的处理(步骤s33)和修改路径的处理(步骤s34)的事先处理来执行。例如能够在进行使用机器人20的作业工序的设置、启动时执行该事先处理。

这时,运算部15也可以执行判定在步骤s31中取得的初始位置和目标位置是否满足在步骤s32中取得的搬运条件的处理、和在所取得的初始位置和目标位置中的至少一个不满足搬运条件的情况下将用于将该情况通知给用户的信息经由外部接口11而输出到外部(例如,输出装置60)的处理。这样,在进行使用机器人20的作业工序的设置、启动时,用户错误地输入了初始位置、目标位置的情况下,能够识别出该错误。其结果,能够防止根据用户意外地所设定的搬运条件来生成机器人20的路径。

另外,该事先处理适于搬运对象物w的起点(初始位置)和终点(目标位置)不根据对象物w而发生变动或者变动较少的情况。例如,适于通过送料器等将保持为预先确定的位置和姿势的对象物w收纳到规定的箱中的工序。这样,由于能够使用在事先处理的步骤中所设定的搬运条件来反复生成和修改路径,所以能够缩短到计算路径并输出为止的时间。

接着,运算部15根据路径生成过程存储部122所存储的程序,执行路径生成处理(步骤s33)。运算部15根据路径生成过程存储部122所存储的程序,在配置空间内配置表示初始姿势的点s和表示目标姿势的点g,在配置空间中的除了障碍物区域co和角度不符合区域cp以外的空间内生成路径。之后叙述具体的路径生成处理的方法。

然后,运算部15针对根据路径生成过程存储部122所存储的程序而生成的路径,调用路径修改过程存储部123存储的程序来执行平滑化、捷径等修改路径的处理(步骤s34)。运算部15针对根据路径生成过程存储部122存储的程序而生成的路径,在配置空间中的除了障碍物区域co和角度不符合区域cp以外的空间内修改路径。另外,修改路径的处理不是必须的,根据需要任意执行即可。

运算部15根据路径输出过程存储部125所存储的程序,将所生成的路径(包括修改后的路径)经由外部接口11而输出到机器人20(步骤s35)。机器人20依照从运算装置10接收到的路径进行动作,将对象物w从初始位置搬运至目标位置。另外,路径不一定输出到机器人20。例如,运算部15也可以向显示器等输出装置60输出机器人20的近似模型和路径,在输出装置60上对机器人20的动作进行再现。

另外,这里分为基于路径生成过程存储部122所存储的程序的路径生成处理(步骤s33)和基于路径修改过程存储部123所存储的程序的路径修改处理(步骤s34)进行了说明,但是,也可以将路径修改处理包括在路径生成处理中。

以下,对路径生成处理具体地进行说明。这些处理更加适于搬运对象物w的起点(初始位置)和终点(目标位置)中的至少一个按照每个对象物w而不同的情况。例如,适于将不规则地配置在带搬运机上的多个对象物w分类到按照对象物w的每个类别而设定的多个箱的工序。另外,在以下的各实施例中,说明为路径生成过程存储部122所存储的软件程序被运算部15读出并执行,由此,运算部15执行与路径的生成有关的各种运算处理。

<实施例1>

在实施例1中,对基于随机采样法之一的rrt(rapidly-exploringrandomtree:快速搜索随机树)的路径生成处理进行说明。在本实施例中,运算部15通过反复在配置空间内配置一个点并将该点与已经配置在配置空间内的点连接的处理,生成路径。

图4是示出基于rrt的路径生成处理的流程图的一例。图5是示出基于rrt的路径生成处理中的配置空间的一例的图。在本实施例中,是否满足与配置机器人20的周边的环境有关的搬运条件(第2条件)的判定中使用障碍物区域co,使用满足与机器人20将对象物w从第1位置搬运至第2位置时的对象物的姿势有关的搬运条件(第1条件)的判定中使用角度不符合区域cp。另外,是否满足第1条件和第2条件的判定不一定使用区域。例如,也可以通过基于正向运动学的运算将表示机器人20的姿势的配置空间的点变换为规定的形式,对该变换值与用户所指定的搬运条件进行比较,判定是否满足搬运条件。

运算部15在配置空间上配置表示机器人20的初始姿势的点s和表示目标姿势的点g(步骤s101),判定能否将点s与点g连接(步骤s102)。具体而言,在将点s与点g连接的线段不与障碍物区域co和角度不符合区域cp重叠的情况下,运算部15判定为能够将该两个点连接。在存在将点s与点g连接的线段与障碍物区域co和角度不符合区域cp的至少一方重叠的部分的情况下,运算部15判定为无法将该两个点连接。这是因为,在这样的情况下,机器人20与障碍物发生冲突或者不满足与对象物w的姿势有关的条件。

在判定为能够将点s与点g连接的情况下(步骤s102:是),运算部15使处理进入步骤s103。另一方面,在判定为无法将点s与点g连接的情况下(步骤s102:否),运算部15使处理进入步骤s104。

运算部15将点s与点g连接,生成路径,使处理结束(步骤s103)。

运算部15在配置空间内配置(采样)一个点ni(步骤s104)。该点是与点s以及点g不同的点,表示机器人20的姿势、即具有多个可动轴的多关节机器人即机器人20中的一个规定姿势。该姿势是设置在初始位置(姿势)与目标位置(姿势)之间的中继位置(姿势)的候选。

运算部15根据利用在步骤s104中所配置的点表示的机器人20的姿势,判定机器人20是否与周围的障碍物发生冲突(步骤s105)。具体而言,在步骤s104中所配置的点存在于障碍物区域co内的情况下(例如,图5的点nb、nd),运算部15判定为机器人20与周围的障碍物发生冲突。另一方面,在步骤s104中所配置的点不存在于障碍物区域co内的情况下(例如,图5的点n1~n5、na、nc),运算部15判定为机器人20不与周围的障碍物发生冲突。

在步骤s105中判定为机器人20与周围的障碍物发生冲突的情况下(步骤s105:是),运算部15从配置空间内删除在步骤s104中所配置的点ni(步骤s110),使处理返回步骤s104。另一方面,在步骤s105中判定为机器人20不与周围的障碍物发生冲突的情况下(步骤s105:否),运算部15使处理进入步骤s107。

运算部15判定机器人20所把持的对象物w是否满足与姿势有关的条件(步骤s107)。

具体而言,在步骤s104中所配置的点存在于根据与对象物w的姿势有关的条件来求出的角度不符合区域cp内的情况下(例如,图5的点na、nc),运算部15判定为通过利用该点表示的机器人20的姿势来把持的对象物w的姿势不满足条件。此外,在步骤s104中所配置的点不存在于角度不符合区域cp内的情况下(例如,图5的点n1~n5),运算部15判定为通过利用该点表示的机器人20的姿势来把持的对象物w的姿势满足条件。

在判定为在步骤s104中所配置的点存在于角度不符合区域cp内、即、对象物w的姿势不满足与该姿势有关的条件的情况下(步骤s107:是),运算部15从配置空间内删除在步骤s104中所配置的点ni(步骤s110),使处理返回步骤s104。另一方面,在判定为对象物w的姿势满足条件的情况下(步骤s107:否),运算部15使处理进入步骤s109。

运算部15判定是否能够将在步骤s104中所配置的点ni与在表示初始姿势的点s和已经配置的点中配置于点ni的最附近的点ni-nearest连接(步骤s109)。具体而言,在将步骤s104中所配置的点ni与在之前配置的点n0、……、ni-1(点s设为点n0)中配置于点ni的最附近的点ni-nearest连接的线段与障碍物区域co和角度不符合区域cp中的任何区域都不重叠的情况下,运算部15判定为能够将该两个点连接。

在判定为无法将步骤s104中所配置的点ni与点ni-nearest连接的情况下(步骤s109:否),运算部15从配置空间内删除在步骤s104中所配置的点ni(步骤s110),使处理返回步骤s104。另一方面,在能够将在步骤s104中所配置的点ni与点ni-nearest连接的情况下(步骤s109:是),运算部15使处理进入步骤s111。

运算部15将在步骤s104中所配置的点ni与上一次所配置的点ni-nearest连接(步骤s111)。

运算部15判定是否能够将点ni与表示目标姿势的点g连接(步骤s112)。具体而言,在将点ni与点g连接的线段与障碍物区域co和角度不符合区域cp中的任何区域都不重叠的情况下,运算部15判定为能够将该两个点连接。

在判定为无法将点ni与点g连接的情况下(步骤s112:否),运算部15在将i的值与1相加之后,使处理返回步骤s104,对新的点ni+1进行采样。另一方面,在判定为能够将点ni与点g连接的情况下(步骤s112:是),运算部15使处理进入步骤s113。这样,直到能够连接至点g为止反复执行从步骤s104到步骤s112的处理。

运算部15将点ni与点g连接,生成路径(步骤s113)。

这样,运算部15生成将对象物w从初始位置(点s)经由中继位置(点n1、n2、……)而搬运至目标位置(点g)的路径(点列t=(s、n1、n2、……、g))。在图5中,生成点列t=(s、n1、n2、n3、n5、n6、g)作为路径。

另外,步骤s110的处理不限于从配置空间内单纯地删除点ni的处理。例如,设定以点ni为基准的规定的区域,在s104中所设定的该区域中对点ni进行采样,由此,能够在该区域内搜索点ni。此外,例如,设定以点ni为基准的规定的区域,在s104中所设定的该区域之外对点ni进行采样,由此,能够在该区域外搜索点ni。

另外,在上述的路径生成处理中,记载了从初始位置(点s)向目标位置(点g)以单方通行的方式配置点并连接的处理,但是,也可以从初始位置(点s)和目标位置(点g)双方起配置点ni。即,也可以设从初始位置(点s)依次配置的点为nsi、从目标位置(点g)起依次配置的点为ngi,从点s和点g双方起依次配置点,在进行路径计划的规定的空间(配置空间)内,将点nsi与点ngi连接,由此,设计将点s与点g连接的路径。

<实施例2>

在实施例2中,对基于作为路线图法之一的概率路线图(probabilisticroadmap:prm)的路径生成处理进行说明。在本实施例中,运算部15将多个点随机地配置在配置空间内,从这些点中提取位于障碍物区域co和角度不符合区域cp外的点,将这些点连接,由此,生成从初始姿势到目标姿势的路径。

图6是示出基于prm的路径生成处理的流程图的一例。图7是示出基于prm的路径生成处理中的配置空间的一例的图。在本实施例中,是否满足与配置机器人20的周边的环境有关的搬运条件(第2条件)的判定中使用障碍物区域co,使用满足与机器人20将对象物w从第1位置搬运至第2位置时的对象物的姿势有关的搬运条件(第1条件)的判定中使用角度不符合区域cp。另外,是否满足第1条件和第2条件的判定不一定使用区域。例如,也可以通过基于正向运动学的运算将表示机器人20的姿势的配置空间的点变换为规定的形式,对该变换值与用户所指定的搬运条件进行比较,判定是否满足搬运条件。

运算部15在配置空间上配置表示机器人20的初始姿势的点s和表示目标姿势的点g(步骤s201)。

运算部15在配置空间内随机地配置多个点ni(步骤s202)

运算部15从在步骤s202中所配置的点ni中舍弃障碍物区域co中包含的点,提取位于障碍物区域co外的点(步骤s203)。在图7中,舍弃障碍物区域co中包含的点nb和nd。

接下来,运算部15舍弃角度不符合区域cp中包含的点,提取位于角度不符合区域cp外的点(步骤s204)。在图7中,舍弃角度不符合区域cp中包含的点na和nc,提取剩余的点n1~n8。

运算部15根据在步骤s204中所提取的点,生成将表示初始姿势的点s至表示目标姿势的点g连接的路径(步骤s205)。具体而言,运算部15通过利用与障碍物区域和角度不符合区域均不重叠的线段将这些点相互连接,生成路径。此外,也可以在将某个点至另一点连接时,将点之间的距离位于规定范围内的点连接。例如,在图7中,点n1与位于点n1的附近的点s、n2、n3、n7连接。在图7中,用实线或虚线表示将点之间相互连接。

在根据所提取的点生成多个路径时,运算部15使用基于规定的基准的评价函数来选择最佳路径(步骤s206)。例如,评价函数也可以为用于选择从点s到点g的路径长度最短的路径的评价函数。在图7中,例如,选择用实线连接的点列t=(s、n1、n3、n4、n6、g)作为路径。另外,评价函数不限于路径长度,也可以根据其他基准选择路径。

另外,步骤s203、s204的处理不限于舍弃各个区域中包含的点的处理。例如,能够设定以点ni为基准的规定的区域,返回s202,在该区域中,进一步配置多个点ni。此外,例如,能够设定以点ni为基准的规定的区域,返回s202,在所设定的该区域外进一步设置多个点ni。并且,例如,也可以在舍弃点ni之后,返回s202,在配置空间内重新赋予另一点ni。这样,即使在舍弃点ni的情况下,也能够确保作为路径生成的候选的点ni的数量,即使在障碍物等较多、路径生成的条件严格的情况下,也能够抑制无法进行路径生成处理的情况。

<实施例3>

在实施例3中,对基于势场法(artificialpotentialmethod:人工势场法)的路径生成处理进行说明。在本实施例中,运算部15计算机器人20和对象物w可能所处的区域内的势场,根据势场来生成路径。运算部15例如通过使用评价函数,计算机器人20和对象物w可能所处的区域内的势场。

评价函数是指如下函数:在配置空间中,以在表示机器人20的初始姿势的点s、障碍物区域co和角度不符合区域cp设定斥力并在表示机器人20的目标姿势的点g设定引力的方式,对机器人20和对象物w可能所处的区域内进行评价。即,与存在于机器人20的周围的障碍物、对象物w的姿势有关的条件根据评价函数来定义。此外,运算部15例如也可以使用将第4连杆25相对于第3连杆24的旋转角度、第5连杆26相对于第4连杆25的旋转角度和末端执行器28相对于第5连杆26的旋转角度分别限制在规定的范围内的评价函数。

图8是基于势场法的路径生成处理的流程图的一例。图9是示出基于势场法的路径生成处理中的配置空间的一例的图。

首先,运算部15通过成本(cost)根据到障碍物的距离而发生变化的评价函数,对配置空间内的场区(field)进行加权(步骤s301)。例如,以在配置空间内,在障碍物区域co设定斥力的方式,利用势场值随着距障碍物区域co的距离远离而减少的评价函数对场区进行评价。

接着,运算部15利用成本根据对象物w的姿势而发生变化的评价函数,对配置空间内的场区进行加权(步骤s302)。例如,以在配置空间内,在角度不符合区域cp设定斥力的方式,利用势场值随着距角度不符合区域cp的距离远离而减少的评价函数对场区进行评价。

这样,运算部15根据障碍物区域co和角度不符合区域cp,对配置空间内的场区进行评价。优选事先进行该处理,但是也不限于此。另外,根据到障碍物的距离而发生变化的评价函数与成本根据对象物w的姿势而发生变化的评价函数也可以表现为单一的函数。

运算部15根据经由外部接口11而输入的或初始条件存储部121所存储的、机器人20的初始姿势和目标姿势,利用成本根据表示初始姿势的点s与表示目标姿势的点g的距离而发生变化的评价函数,对配置空间内的场区进行加权(步骤s303)。例如,以在配置空间中,在点s设定斥力并在点g设定引力的方式,利用到点s的距离越近则势场值越高并且到点g的距离越近则势场值越低的评价函数,对场区进行评价。

运算部15根据到障碍物的距离、对象物w的姿势、点s与点g的距离来计算配置空间内的各位置处的势场值,根据计算出的势场值来生成路径(步骤s304)。例如,将在步骤s301~s303的各步骤中所评价的值相加或相乘,从而对场区的势场进行评价。图9所图示的箭头表示评价后的势场的向量。运算部15根据计算出的势场,生成从点s到点g的路径的成本为最小的路径。该路径与在实施例1、实施例2所生成的路径不同,多数情况下,该路径成为连续的路径。

<实施例4>

在实施例4中,对基于轨迹优化(trajectoryoptimization)的路径生成处理进行说明。在本实施例中,运算部15通过解决与配置空间内的点的配置有关的成本函数的优化问题,生成机器人20的路径。成本函数例如是根据机器人20或对象物w与障碍物之间的距离、配置空间内的路径的平滑度、机器人20的扭矩的最大值、第1连杆22、第2连杆23、第3连杆24、第4连杆25、第5连杆26或末端执行器28的旋转角度等来设定的函数。此外,机器人20或对象物w与障碍物之间的距离的成本也可以根据两者的距离而发生变化。作为轨迹优化的具体方法,例如,可举出stomp(stochastictrajectoryoptimizationformotionplanning:运动规划的随机轨迹优化)、chomp(covarianthamiltonianoptimizationformotionplanning:运动规划的协变哈密顿优化)等。

图10是基于轨迹优化的路径生成处理的流程图。图11是示出基于轨迹优化的路径生成处理中的配置空间的一例的图。在路径优化中,在配置于配置空间内的多个点中从表示初始姿势的点s起经由多个点n1、n2、……而连接至表示目标姿势的点g时,通过以使连接这些点及相邻点的线段与障碍物区域co和角度不符合区域cp中的任何区域都不重叠的方式使点ni移动,生成路径。

首先,运算部15在配置空间内配置表示初始姿势的点s和表示目标姿势的点g,在连接这些点的线段上配置多个点ni(步骤s401)。例如,将连接点s与点g的线段以等间隔进行n等分,配置n-1个点ni(i=1、2、……、n-1)。在图11中,在连接点s与点g的线段上配置有4个点n1~n4。

接着,运算部15提取配置在连接点s与点g的线段上的多个点ni中的、位于障碍物区域co中的点ni,使其移动至障碍物区域co外(步骤s402)。这时,优选使点ni移动至成本函数进行最小化的位置。在图11中,点n4包含在障碍物区域co中,因此,移动至障碍物区域co外的点n4’。另外,成本函数也可以设计成使该输出值越大越合适。

并且,运算部15提取多个点ni中的、位于角度不符合区域cp中的点ni,使其移动至角度不符合区域cp外(步骤s403)。这时,优选使点ni移动至成本函数进行最小化的位置。在图11中,点n1和n2包含在角度不符合区域cp中,因此,移动至角度不符合区域cp外的点n1’和n2’。

运算部15判定是否能够在不与障碍物区域co和角度不符合区域cp重叠的情况下将移动后的点ni之间连接(步骤s404)。如果能够在不存在重叠的部分的情况将全部点连接(步骤s404:是),则生成移动后的点列t作为路径(步骤s405)。在图11中,生成点列t=(s、n1’、n2’、n3、n4’、g)作为路径。

另一方面,在步骤s404中存在将至少一个点之间连接的线段与障碍物区域co或角度不符合区域cp重叠的部分的情况下(步骤s404:否),返回步骤s401,运算部15通过使点ni移动至另一位置等,再次进行路径搜索。此外,在即使使点ni移动至另一位置也无法生成路径的情况下,运算部15也可以改变配置在将点s与点g连接的线段上的点的数量,进行路径搜索。另外,步骤s402的运算处理和步骤s403的运算处理也可以调换顺序来执行。此外,步骤s402的运算处理和步骤s403的运算处理也可以根据规定的成本函数来同时进行。

另外,在上述各实施例中,运算部15也可以执行判定作为初始位置(初始姿势)给出的点s和作为目标位置(目标姿势)给出的点g中的至少一个是否满足在步骤s32中所取得的搬运条件的步骤(未图示)。这时,在点s和点g中的至少一个不满足搬运条件的情况下,运算部15也可以执行重新设定满足搬运条件的点s或点g的步骤(未图示)。优选在生成或修改将点s与点g连接的路径的处理之前进行这些步骤。

另外,包含这些步骤的路径生成处理例如优选应用于批量拣选。即,在批量拣选中,在将多个对象物w在位置和姿势为不规则的状态下收纳在箱中之后,通过执行该步骤,能够自动地判别并拣选满足条件的对象物w。

<实施例5>

在实施例5中,对基于轨迹优化(trajectoryoptimization)的路径生成处理进行说明。搬运条件例如包括用于限制对象物w可采取的姿势的条件和与对象物w的周边环境信息有关的条件。作为用于限制对象物w可采取的姿势的条件的一例,可举出与工件坐标系中的绕轴的旋转角度(例如,滚转角、俯仰角、偏摆角)的限制有关的条件。作为与对象物w的周边环境信息有关的条件的一例,可举出用于使对象物w不与其周边的障碍物发生干扰的条件。

另外,在本实施例中,“配置空间”是指根据机器人20的动作的自由度确定的空间,与存在对象物w的“真实空间”相区分。此外,在本实施例中,为了方便说明,将用于限制存在对象物w的真实空间内的对象物w可采取的姿势的条件称作“第1条件”、与机器人的周边环境信息有关的条件称作“第2条件”。此外,例示点s(初始位置)作为“第1位置”,例示点g(目标位置)作为“第2位置”,但是不限定于此。

图12是说明第1位置(点s)和第2位置(点g)的计算的说明图。运算部15以使能够提高在配置空间中的第1位置(点s)与第2位置(点g)之间存在满足第1条件的路径r的可能性的方式,根据真实空间上的第1位置、第2位置计算配置空间中的第1位置(点s)和第2位置(点g)。运算部15例如选择配置空间中的第1位置(点s)和第2位置(点g)的距离变短的逆向运动学的解的组合。通过这样的计算,例如,能够克服如下不良情况:即使第1位置(点s)和第2位置(点g)满足第1条件,第1位置(点s)与第2位置(点g)之间的任意路径也都不满足第1条件。产生这样的不良情况的原因是由于可能存在多个用于将真实空间上的第1位置(点s)和第2位置(点g)映射到配置空间的逆向运动学的解。在这样的情况下,即使在第1位置(点s)与第2位置(点g)之间搜索出满足第1条件的路径,也无法求出解。另外,图12所示的配置空间示出具有j1~j6的6个自由度的情况。

图13是说明一个以上的中间点qn、qn+1的计算的说明图。从第1位置(点s)到第2位置(点g)的路径上的第n个中间点qn作为相对于真实空间的基准坐标系的工件坐标系的相对坐标或相对于真实空间的基准坐标系的工具坐标系的相对坐标,具有与中间位置有关的信息(x、y、z)和与中间姿势有关的信息(α、β、γ)。例如,在工件坐标系中,中间点具有与从第1位置(点s)到第2位置(点g)的路径上的对象物w的中间位置和中间姿势有关的信息。这里,工件坐标系上的中间位置表示中间点qn处的对象物w的坐标位置,中间姿势表示中间点qn处的对象物w的倾斜(例如,滚转角、俯仰角、偏摆角)。此外,例如,在工具坐标系中,中间点具有与从第1位置(点s)到第2位置(点g)的路径上的机器人20的手部(例如,末端执行器28)的中间位置和中间姿势有关的信息。这里,工具坐标系中的中间位置表示中间点qn处的机器人20的手部(例如,末端执行器28)的坐标位置,中间姿势表示中间点qn处的机器人20的手部(例如,末端执行器28)的倾斜(例如,滚转角、俯仰角、偏摆角)。工件坐标系或工具坐标系的中间位置和中间姿势的信息还能够通过使用变换矩阵来表现为基准坐标系的中间位置和中间姿势。此外,机器人20的手部(例如,末端执行器28)的中间位置和中间姿势能够根据对象物w的中间位置和中间姿势,通过计算来求出。运算部15在真实空间内计算将第1位置(点s)与第2位置(点g)之间连接的一个以上的中间点(qn、qn+1)、即除了第1条件还满足第2条件的一个以上的中间点(qn、qn+1)。当在配置空间内概率性生成中间点时,生成真实空间的不满足第1条件的中间点的可能性较高。因此,在真实空间内生成满足第1条件的中间点,在该所生成的中间点也满足第2条件的情况下,将该所生成的中间点用作配置空间内的中间点,由此,能够高效地搜索满足第1条件和第2条件的中间点。

运算部15例如也可以通过在不变更满足第1条件的某一个中间点qn的与中间姿势有关的信息(α、β、γ)的情况下变更与中间位置有关的信息(x、y、z),在真实空间内计算满足第1条件的另一个中间点qn+1。这时,中间点qn+1具有以真实空间的坐标系为基准的与中间位置有关的信息(x+a、y+b、z+c)和与中间姿势有关的信息(α、β、γ)。根据这样的计算方法,能够根据满足第1条件的某一个中间点qn,通过简单的计算求出满足第1条件的另一个中间点qn+1。运算部15例如也可以通过分别将x、y、z与随机数a、b、c相加,根据与某一个中间点的中间位置有关的信息(x、y、z),计算与另一个中间点qn+1的中间位置有关的信息(x+a、y+b、z+c)。运算部15也可以替代加法,使用减法、除法、乘法或者函数运算。另外,在以这样的方式求出的另一个中间点qn+1不满足第2条件的情况下,也可以将该另一个中间点qn+1投影到满足第2条件的约束空间中。

运算部15生成从第1位置(点s)经由一个以上的中间点(qn、qn+1)而到达第2位置(点g)的路径。运算部15通过外部接口11向机器人20输出以这样的方式所生成的路径。

图14是中间点的生成处理的流程图的一例。

首先,运算部15将第1位置(点s)的位置信息(例如,初始位置的信息)和姿势信息(例如,初始姿势的信息)登记在路径信息中(步骤s501)。这里,路径信息表示从第1位置(点s)经由一个以上的中间点(qn、qn+1)而到达第2位置(点g)的路径的信息。

运算部15设定具有在步骤501中登记在路径信息中的位置信息和姿势信息的点作为关注点(步骤s502)。“关注点”与在后述的步骤503中生成的中间点的前一个中间点同义。在步骤503中生成的中间点例如为qn+1的情况下,设定中间点qn作为关注点。此外,在步骤503中生成的中间点例如为q1的情况下,设定第1位置(点s)作为关注点。

运算部15对关注点的位置信息(x、y、z)的x、y、z分别与a、b、c相加,生成具有位置信息(x+a、y+b、z+c)和姿势信息(α、β、γ)的中间点(步骤s503)。假设该姿势信息(α、β、γ)与关注点的姿势信息(α、β、γ)相同。

运算部15以使在步骤503中所生成的中间点除了第1条件以外还满足第2条件的方式校正该位置信息或姿势信息(步骤s504)。

运算部15对在步骤504中所校正的中间点进行逆向运动学计算,计算中间点的姿势(步骤s505)。

运算部15判定步骤s505中的逆向运动学计算是否具有解(步骤s506)。

在步骤506的判定结果为“肯定判定”的情况下,运算部15判定在步骤s502中所设定的关注点与在步骤503中所生成的中间点之间的路径是否满足第1条件和第2条件(步骤s507)。

在步骤507的判定结果为“肯定判定”的情况下,运算部15将在步骤503中所生成的中间点的位置信息和姿势信息登记到路径信息中(步骤s508)。

在步骤508的登记处理之后,运算部15判定在步骤503中所生成的中间点的位置信息和姿势信息是否与第2位置(点g)的位置信息(例如,目标位置的信息)和姿势信息(例如,目标姿势的信息)一致(步骤s509)。在步骤509的判定结果为“否定判定”的情况下,从第1位置(点s)到第2位置(点g)的路径上的中间点的生成不足,因此,运算部15返回步骤502的处理。

另外,在步骤506或507的判定结果为“否定判定”的情况下,运算部15返回步骤503的处理。

为了实现机器人20的高效的路径计划,运算部15也可以沿着从第1位置(点s)朝向第2位置(点g)的方向计算中间点(qn、qn+1)。例如,通过分别将x、y、z与a、b、c相加,在根据与某一个中间点qn的中间位置有关的信息(x、y、z)计算与另一个中间点qn+1的中间位置有关的信息(x+a、y+b、z+c)的情况下,以使中间点qn+1朝向第2位置(点g)的方式调整a、b、c的值即可。这样,在本说明书中,将以使另一个中间点qn+1的中间位置朝向第2位置(点g)的方式变更与某一个中间点qn的中间位置有关的信息的运算处理称作“偏置处理”。

图15是示出偏置处理的一例的说明图。这里,与实施例3的势场法同样使用评价函数。在该评价函数中,势场值根据从中间点到第1位置(点s)、第2位置(点g)和障碍物71、72的各个距离而发生变化。例如,将斥力设定在第1位置(点s)和障碍物71、72,将引力设定在第2位置(点g)。由此,到第1位置(点s)或障碍物71、72的距离越近,评价函数的势场值越高,到第2位置(点g)的距离越近,评价函数的势场值越低。运算部15使用这样的评价函数进行偏置处理,以使评价函数的势场值下降。由此,能够以从障碍物71、72远离并朝向第2位置(点g)的方式,进行偏置处理。

图16是示出偏置处理的其他例的说明图。在该例子中,将障碍物71、72之间的空间分割为任意的立体形状(例如,立方体、长方体、球体等),通过朝向第2位置(点g)的有向图80将分割后的立体形状连接。运算部15以沿着有向图80的朝向生成中间点qn+1的方式进行偏置处理。由此,能够以不与障碍物71、72发生干扰而朝向第2位置(点g)的方式,进行偏置处理。另外,立体形状的种类、尺寸无需一定相同,也可以以适合障碍物71、72的形状的方式组合各种各样的种类或尺寸的立体形状。

另外,为了方便说明,在附图上示出了中间点的个数为两个的情况,但是,中间点的个数也可以为三个以上。

如上所述,在本发明的规定的实施方式中,运算装置10在从配置空间整个区域中不仅去除障碍物区域co也去除角度不符合区域cp后的区域内生成机器人20的路径。由此,运算装置10能够在机器人20将对象物w从初始姿势搬运至目标姿势时,避免与障碍物的干扰,并使机器人20按照满足与对象物w的姿势有关的条件的路径进行动作。因此,运算装置10能够在以下的工序中顺利地使用机器人20从初始位置搬运至目标位置的对象物w。在实施例1、2和4中,运算装置10搜索满足与对象物w的姿势有关的条件的中继位置,生成使对象物w从初始位置经由中继位置而搬运至目标位置的路径。在实施例3和实施例4中,运算装置10使用满足与存在于机器人20的周边的障碍物有关的条件和与对象物w的姿势有关的条件的规定的函数(评价函数、成本函数等),生成将对象物w从初始位置搬运至目标位置的路径。

与对象物w的姿势有关的条件能够由用户任意地设定或变更。由此,运算装置10能够生成满足用户的期望的路径。

也可以为,存储部12存储与对象物w的姿势有关的条件的初始值,运算装置10取得该初始值作为与对象物w的姿势有关的条件。由此,运算装置10能够生成满足利用机器人20和对象物w可能所处的区域内的环境和机器人20从初始位置搬运至目标位置的对象物w的姿势应该满足的条件的路径。

以上所说明的实施方式为用于容易地理解本发明实施方式,并不用于以限定的方式解释本发明。实施方式具有的各要素及其配置、材料、条件、形状和尺寸等不限定于所例示的内容,能够适当变更。此外,能够部分置换或者组合在不同的实施方式中示出的结构彼此。上述实施方式在所有方面只是单纯的例示,不限定地进行解释。例如,上述的各处理步骤能够在处理内容不产生矛盾的范围内任意变更顺序或并列地执行。

此外,上述的实施方式的一部分或全部可以如以下的附记那样记载,但是,不限定为以下内容。

(附记1)

一种路径输出方法,其中,

利用至少一个硬件处理器执行以下步骤:

取得具有多个可动轴的机器人将对象物从第1位置搬运至第2位置时的所述第1位置和所述第2位置;

取得所述机器人将所述对象物从所述第1位置搬运到所述第2位置时的、与所述对象物的姿势有关的第1条件;

生成所述机器人将所述对象物从所述第1位置搬运到所述第2位置的路径,生成遍及整个该路径而使所述对象物的姿势满足所述取得的第1条件的路径;以及

输出所述生成的路径。

(附记2)

一种路径输出系统,其具备至少一个硬件处理器并输出具有多个可动轴的机器人将对象物从第1位置搬运至第2位置时的路径,其中,

所述硬件处理器

取得所述第1位置和所述第2位置、以及所述机器人将所述对象物从所述第1位置搬运到所述第2位置时的、与所述对象物的姿势有关的条件,

生成所述机器人将所述对象物从所述第1位置搬运到所述第2位置的路径,该路径是遍及整个该路径而使所述对象物的姿势满足所述取得的条件的路径,

将所述生成的路径输出到外部。

标号说明

1:机器人系统;10:运算装置;11:外部接口(取得部;输出部);12:存储部;13:驱动器(取得部、输出部);14:存储介质;15:运算部;121:初始条件存储部;122:路径生成过程存储部;123:路径修改过程存储部;124:路径存储部;125:路径输出过程存储部;20:机器人;30:摄像装置;40:角度检测装置;50:输入装置;60:输出装置;w:对象物。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1