发明内容
有鉴于此,本申请实施例所解决的技术问题之一在于提供一种确定机器人安全线路的方法和装置,在能够实现为机器人的机械臂找出完成任务所需的安全线路的情况下,降低了求解安全线路的工作量,进而节省了求解安全线路的时间。
第一方面,本申请实施例提供了一种确定机器人安全线路的方法,包括:
S100:利用传感器的测量数据确定机械臂的作业场景实体空间;
S200:确定机械臂的作业场景实体空间与机械臂的允许活动空间的重合空间;
S300:判断机械臂的允许活动空间是否超过机械臂的理论活动空间的50%,若否,则执行步骤S400,若是,则执行步骤S500;
S400:判断重合空间是否超过机械臂的允许活动空间的50%,若否,则执行步骤S500,若是,则确定机械臂的安全活动空间后执行步骤S600;
S500:根据目标位置,将模拟轨迹与重合空间不存在交集的移动线路确定为安全线路;
S600:根据目标位置,将模拟轨迹全部位于安全活动空间内的移动线路确定为安全线路。
可选地,所述根据目标位置,将模拟轨迹与重合空间不存在交集的移动线路确定为安全线路包括:
S5000:根据目标位置及碰撞线路文档得到机械臂的移动线路;
S5100:根据机械臂的移动线路,得到机械臂的移动线路在机械臂坐标系下的模拟轨迹点云;
S5200:判断模拟轨迹点云和重合空间点云是否存在交集,若是,则执行步骤S5300,若否,则执行步骤S5400;
S5300:将当前机械臂的移动线路写入碰撞线路文档,并返回步骤S5000;
S5400:将当前机械臂的移动线路确定为安全线路;
其中,碰撞线路文档用于记录与机械臂的作业场景实体空间发生碰撞的移动线路。
可选地,所述根据目标位置,将模拟轨迹全部位于安全活动空间内的移动线路确定为安全线路包括:
S6000:根据目标位置及碰撞线路文档得到机械臂的移动线路;
S6100:根据机械臂的移动线路,得到机械臂的移动线路在机械臂坐标系下的模拟轨迹点云;
S6200:判断模拟轨迹点云中是否存在不与安全活动空间点云重合的点,若是,则执行步骤S6300,若否,则执行步骤S6400;
S6300:将当前机械臂的移动线路写入碰撞线路文档,并返回步骤S6000;
S6400:将当前机械臂的移动线路确定为安全线路;
其中,碰撞线路文档用于记录与机械臂的作业场景实体空间发生碰撞的移动线路。
可选地,所述利用传感器建立机械臂的作业场景实体空间包括:
利用传感器得到场景表面点云,并根据场景表面点云、传感器的采集方向及空间生成长度,建立机械臂的作业场景实体空间。
可选地,所述根据场景表面点云、传感器的采集方向及空间生成长度,建立机械臂的作业场景实体空间的步骤具体为:
以场景表面点云中每个点在传感器坐标系中的坐标为起点,按照传感器的采集方向和空间生成长度进行立体点云的生成,得到机械臂的作业场景实体空间中每个点在传感器坐标系中的坐标。
可选地,所述空间生成长度为预设值,或者为传感器的有效测量距离,或者为场景表面上每个点到一边界平面的距离。
可选地,利用传感器得到场景表面点云包括:判断处于传感器最佳测量范围外的场景表面上的点是否形成一个平面,若是,则以传感器最佳测量范围内的场景表面上的点作为场景表面点云,若否,则以传感器有效测量范围内的所有场景表面上的点作为场景表面点云。
可选地,确定机械臂的作业场景实体空间与机械臂的允许活动空间的重合空间的方法为:将机械臂的允许活动空间中的每个点与机械臂的作业场景实体空间中的每个点统一到一个坐标系下,得到的交集为机械臂的作业场景实体空间和机械臂的允许活动空间的重合空间。
第二方面,本申请实施例还提供了一种确定机器人安全线路的装置,包括:
作业场景模块,与重合空间模块连接,用于利用传感器的测量数据建立机械臂的作业场景实体空间,并将确定的作业场景实体空间的数据发送给重合空间模块;
重合空间模块,与作业场景模块、判断模块A相连,用于根据接收到的作业场景实体空间的数据后,确定作业场景实体空间与机械臂的允许活动空间的重合空间,并把确定的重合空间的数据发送给判断模块A;
判断模块A,与重合空间模块、判断模块B以及线路模块A相连,用于在接收到所述重合空间的数据后,判断机械臂的允许活动空间是否超过机械臂的理论活动空间的50%,若是,则将所述重合空间的数据发送给线路模块A,若否,则将所述重合空间的数据发送给判断模块B;
判断模块B,与判断模块A、线路模块A以及安全空间模块相连,用于在接收到所述重合空间的数据后,判断重合空间是否超过机械臂的允许活动空间的50%,若是,则将所述重合空间的数据发送给安全空间模块,若否,则将所述重合空间的数据发送给线路模块A;
线路模块A,与判断模块A以及判断模块B相连,用于在接收到所述重合空间的数据后,根据目标位置,将模拟轨迹与重合空间不存在交集的移动线路确定为安全线路;
安全空间模块,与判断模块B以及线路模块B相连,用于在接收到所述重合空间的数据后,确定机械臂的安全活动空间,并将确定的安全活动空间的数据发送给线路模块B;
线路模块B,与安全空间模块相连,用于在接收到所述安全活动空间的数据后,根据目标位置,将模拟轨迹全部位于安全活动空间内的移动线路确定为安全线路。
可选地,所述线路模块A包括:
移动线路模块,和模拟轨迹点云模块及线路处理模块A连接,用于根据目标位置及碰撞线路文档得到机械臂的移动线路,并把得到的机械臂的移动线路发送给模拟轨迹点云模块;
模拟轨迹点云模块,和移动线路模块及线路处理模块A连接,用于根据接收到的机械臂的移动线路,得到机械臂的移动线路在机械臂坐标系下的模拟轨迹点云,并将得到的模拟轨迹点云发送给线路处理模块A;
线路处理模块A,和移动线路模块及模拟轨迹点云模块连接,用于根据接收到的模拟轨迹点云,判断模拟轨迹点云和重合空间点云是否存在交集,若是,则将当前机械臂的移动线路写入碰撞线路文档,并把更新的碰撞线路文档发送给移动线路模块,若否,则将当前机械臂的移动线路作为安全线路;
其中,碰撞线路文档用于记录与机械臂的作业场景实体空间发生碰撞的移动线路。
可选地,所述线路模块B包括:
移动线路模块,和模拟轨迹点云模块及线路处理模块B连接,用于根据目标位置及碰撞线路文档得到机械臂的移动线路,并把得到的机械臂的移动线路发送给模拟轨迹点云模块;
模拟轨迹点云模块,和移动线路模块及线路处理模块B连接,用于根据接收到的机械臂的移动线路,得到机械臂的移动线路在机械臂坐标系下的模拟轨迹点云,并将得到的模拟轨迹点云发送给线路处理模块B;
线路处理模块B,和移动线路模块及模拟轨迹点云模块连接,用于根据接收到的模拟轨迹点云,判断模拟轨迹点云中是否存在不与安全活动空间点云重合的点,若是,则将当前机械臂的移动线路写入碰撞线路文档,并把更新的碰撞线路文档发送给移动线路模块,若否,则将当前机械臂的移动线路作为安全线路;
其中,碰撞线路文档用于记录与机械臂的作业场景实体空间发生碰撞的移动线路。
第三方面,本申请实施例还提供了一种存储介质,所述存储介质包括存储的程序,其中,所述程序运行时执行上述第一方面所提供的确定机器人安全线路的方法。
第四方面,本申请实施例还提供了一种电子装置,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器通过所述计算机程序执行上述第一方面所提供的确定机器人安全线路的方法。
由以上技术方案可见,本申请实施例所涉及的确定机器人安全线路的方法,由于整个确定安全线路的过程利用较小的空间来计算安全线路,因此减少了点云匹配的运算量,从而可以快速求出安全线路。
具体实施方式
为了使本领域的人员更好地理解本申请实施例中的技术方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请实施例一部分实施例,而不是全部的实施例。基于本申请实施例中的实施例,本领域普通技术人员所获得的所有其他实施例,都应当属于本申请实施例保护的范围。
基于已有技术中,当机器人执行非固定尺寸的加工任务或者执行手术时,由于没有任何一条移动线路能够满足机器人执行各种各样的任务的安全性,因此针对每一次任务,都需要人工事先为机器人的机械臂找出安全的移动线路而导致的降低了机器人完成工作任务的效率,且增加了操作人员的工作量的问题,本申请实施例提供了一种确定机器人安全线路的方法,请参阅图1,包括步骤S100~S600,具体地:
S100:利用传感器的测量数据确定机械臂的作业场景实体空间。
不管是机器人进行加工物体的操作还是执行手术的操作,都需要在一个实际场景中进行,为了在该实际场景中为机器人的机械臂找出加工物体或者执行手术等所需的安全线路,首先需要确定机械臂的作业场景实体空间,本申请利用传感器的测量数据来确定机械臂的作业场景实体空间。
具体地,利用传感器的测量数据确定机械臂的作业场景实体空间的步骤可以为:利用传感器得到场景表面点云,并根据场景表面点云、传感器的采集方向及空间生成长度,建立机械臂的作业场景实体空间。
需要说明的是,传感器一般具有最佳测量范围和有效测量范围,由于最佳测量范围内的测量数据精度极高,一般会将目标物体置于最佳测量范围内;处在最佳测量范围外,有效测量范围内的部分,虽然可以得到测量数据,但是测量数据的精度一般;处于有效测量范围外的部分则无法得到测量数据。
进一步地,本申请实施例中,利用传感器得到场景表面点云包括:判断处于传感器最佳测量范围外的场景表面上的点是否形成一个平面,若是,则以传感器最佳测量范围内的场景表面上的点作为场景表面点云,若否,则以传感器有效测量范围内的所有场景表面上的点作为场景表面点云。
进一步地,本申请实施例中的空间生成长度可以为预设值,或者为传感器的有效测量距离(如有效测量范围内的最大测量距离),或者为场景表面上每个点到一边界平面的距离。本申请对设置空间生成长度的方式不作具体限定,只要能够与场景表面点云结合,建立机械臂的作业场景实体空间即可。
具体在实际操作中,利用传感器建立机械臂的作业场景实体空间时,以场景表面点云中每个点在传感器坐标系中的坐标为起点,按照传感器的采集方向和空间生成长度进行立体点云的生成,即以场景表面点云中每个点在传感器坐标系中的坐标为起点,按照传感器的采集方向和空间生成长度进行延伸,进而得到机械臂的作业场景实体空间中每个点在传感器坐标系下的坐标,从而根据机械臂的作业场景实体空间中每个点在传感器坐标系下的坐标,建立机械臂的作业场景实体空间。
更具体地,由于机械臂的作业场景下包含了待加工物,亦或患者等目标物体,也包含了加工平台,手术床等需要机械臂规避的障碍物体,因此可以首先利用传感器确定场景表面(即所有物体朝向传感器的表面)与传感器之间的位置关系,例如,可以在场景表面上取点,形成场景表面点云,进而通过确定场景表面上每个点与传感器的位置关系,得到场景表面点云中每个点在传感器坐标系下的坐标。加之传感器的采集方向和空间生成长度可以在传感器坐标系中得以体现(如传感器的采集方向和空间生成长度可以组成一个矢量),因此就可以将场景表面点云中的每个点,按照传感器的采集方向和空间生成长度进行延伸,生成并得到特定方向上和特定长度内的点,这些点就组成了机械臂的作业场景实体空间。
需要说明的是,由于场景表面点云中每个点在传感器坐标系中都有各自的坐标,因此以场景表面点云中每个点在传感器坐标系中的坐标为起点,按照传感器的采集方向和空间生成长度生成并得到的特定方向上和特定长度内的点在传感器坐标系下也有各自的坐标,即可以得到机械臂的作业场景实体空间中每个点在传感器坐标系中的坐标。
实际操作中,可以利用激光传感器,红外传感器,电磁传感器,光学传感器等能够测量物体与传感器之间距离的传感器来确定机械臂的作业场景实体空间,本申请实施例以利用光学传感器中的双目摄像头确定机械臂的作业场景实体空间为例进行详细说明。
首先根据双目测距原理,获取场景表面上每个点到双目摄像头中心的距离,以得到场景表面点云中每个点在双目摄像头所拥有的传感器坐标系中的坐标。
由于场景表面点云只能表示出障碍物的一部分,场景表面之下的部分同样可能会与机械臂发生碰撞,因此为了使机械臂有效地规避障碍物,还需要根据双目摄像头的图像采集方向(如双目摄像头的中心轴线方向)、空间生成长度,以及场景表面点云得到场景实体点云。
在获取场景实体点云的过程中,空间生成长度用于与场景表面点云相结合,建立场景实体点云,空间生成长度的大小可以等于双目摄像头的有效采集距离,也可以为空间生成长度人为设置一个具体数值,还可以设置一个垂直于双目摄像头的图像采集方向的边界平面,将场景表面点云中每个点到这个边界平面的距离作为每个点各自的空间生成长度,总之设置空间生成长度的方式很多,只要能够与场景表面点云相结合,建立场景实体点云即可。
由于双目摄像头的图像采集方向和空间生成长度可以在传感器坐标系中得以体现(双目摄像头的图像采集方向和空间生成长度可以组成一个矢量),因此可以以场景表面点云中每个点在双目摄像头所拥有的传感器坐标系中的坐标为起点,根据双目摄像头的图像采集方向和空间生成长度进行延伸,得到特定方向上和特定距离内的点的坐标,这些点就组成了场景实体点云,加之每个点在传感器坐标系中都有各自的坐标,因此也就得到了场景实体点云中每个点在传感器坐标系中的坐标。
S200:确定机械臂的作业场景实体空间与机械臂的允许活动空间的重合空间。
机械臂自身存在一个理论范围的活动空间,即机械臂的理论活动空间,该空间是以机械臂基座位置为中心,以机械臂末端最大伸展距离为半径的球形空间。但是在实际应用中,机械臂的基座会被安装到台车上,或与其他固定物相固定,为了防止这些与机械臂存在固定位置关系的物体和机械臂之间发生碰撞,一般会为机械臂设置一个允许活动的空间,即机械臂的允许活动空间,且机械臂的理论活动空间中的每个点与机械臂的允许活动空间中的每个点在机械臂坐标系下的坐标均可以得到。
由上述实施例可知,本申请实施例已经建立了场景实体空间,且确定了场景实体空间中的每个点在传感器坐标系下的坐标,以及确定了机械臂的允许活动空间中的每个点在机械臂坐标系下的坐标,加之可使用现有方法确定传感器坐标系与机械臂坐标系之间的转换关系,因此,可根据上述信息确定机械臂的作业场景实体空间与机械臂的允许活动空间的重合空间。具体操作可以为:将机械臂的允许活动空间中的每个点与机械臂的作业场景实体空间中的每个点统一到一个坐标系下,得到的交集即为机械臂的作业场景实体空间和机械臂的允许活动空间的重合空间。举例来说,可以将机械臂的允许活动空间中的每个点与机械臂的作业场景实体空间中的每个点统一到机械臂坐标系下,具体操作为:根据机械臂的作业场景实体空间中的每个点在传感器坐标系下的坐标,以及机械臂坐标系与传感器坐标系之间的转换关系,得到机械臂的作业场景实体空间中的每个点在机械臂坐标系下的坐标,进而机械臂的允许活动空间中的每个点与机械臂的作业场景实体空间中的每个点在机械臂坐标系下的坐标均已确定,因此只需要求出交集就可以得到机械臂的作业场景实体空间与机械臂的允许活动空间的重合空间,将机械臂的允许活动空间中的每个点与机械臂的作业场景实体空间中的每个点统一到传感器坐标下同样如此,此处不再赘述。
S300:判断机械臂的允许活动空间是否超过机械臂的理论活动空间的50%,若否,则执行步骤S400,若是,则执行步骤S500。
由于机械臂的允许活动空间的体积与机械臂的理论活动空间的体积都是已知的,因此可以判断机械臂的允许活动空间的体积是否超过机械臂的理论活动空间的体积的50%,如果机械臂的允许活动空间的体积超过了机械臂的理论活动空间的体积的50%,则跳转到步骤S500,如果机械臂的允许活动空间的体积不超过机械臂的理论活动空间的体积的50%,则执行步骤S400。
S400:判断重合空间是否超过机械臂的允许活动空间的50%,若否,则执行步骤S500,若是,则确定机械臂的安全活动空间后执行步骤S600。
由上述实施例可知,由于通过将机械臂的允许活动空间中的每个点与机械臂的作业场景实体空间中的每个点统一到一个坐标系下,得到了机械臂的作业场景实体空间与机械臂的允许活动空间的重合空间,因此在步骤S400中可以判断重合空间是否超过机械臂的允许活动空间的50%,如果重合空间不超过机械臂的允许活动空间的50%,则执行步骤S500,如果重合空间超过了机械臂的允许活动空间的50%,则确定机械臂的安全活动空间后执行步骤S600。
S500:根据目标位置,将模拟轨迹与重合空间不存在交集的移动线路确定为安全线路。
为了让机器人完成工作任务,需要使机器人的机械臂安全到达目标位置,但是并不是每一条能够到达目标位置的移动线路都是安全线路,在步骤S500中采用根据移动线路的模拟轨迹与重合空间是否存在交集来判断移动线路是否安全。由于模拟轨迹是模拟机械臂在执行工作任务过程中运动的轨迹,而可以在机械臂坐标系下生成与该模拟轨迹对应的点云数据,即可以得到模拟轨迹中每个点在机械臂坐标系下的坐标,加之在上述实施例中已经得到了重合空间中每个点在机械臂坐标系下的坐标,因此可以根据模拟轨迹中每个点在机械臂坐标系下的坐标,和重合空间中每个点在机械臂坐标系下的坐标,确定模拟轨迹与重合空间之间是否存在交集。
在实际操作中,如图2所示,步骤S500包含步骤S5000~S5400,具体地:
S5000:根据目标位置及碰撞线路文档得到机械臂的移动线路。
在步骤S5000中,机械臂自身程序会根据目标位置求解出一条满足限制条件(如以移动线路必须经过某个点为限制条件)的移动线路(此过程在机械臂的下位机上进行)。
需要说明的是,使机械臂到达同一目标位置的移动线路有很多,机械臂自身程序能够根据机械臂自身的特定结构及限制条件求解出具体的移动线路,在满足限制条件的情况下,机械臂自身程序会输出一个最优线路(如输出一条使机械臂到达目标位置的最短线路),由于下位机的各种参数是机械臂的生产厂家设定好的,无法更改,机械臂自身程序输出的移动线路是否安全是在机械臂的上位机上运行的。
本申请实施例将机械臂自身程序输出的移动线路不与碰撞线路文档中的移动线路相同作为限制条件,其中,碰撞线路文档用于记录机械臂自身程序输出的移动线路中,与机械臂的作业场景实体空间发生碰撞的移动线路。碰撞线路文档最初没有任何记录,经过机械臂的上位机对机械臂自身程序输出的移动线路是否安全的判断步骤后,会将与机械臂的作业场景实体空间发生碰撞的移动线路记录到碰撞线路文档中。
S5100:根据机械臂的移动线路,得到机械臂的移动线路在机械臂坐标系下的模拟轨迹点云。
步骤S5100就是根据步骤S5000中得到的移动线路在机械臂坐标系下的坐标确定移动线路在机械臂坐标系下的模拟轨迹点云,该过程中,由于机械臂的尺寸,结构、各个关节之间的位置关系,以及机械臂上各个点在机械臂坐标系中的坐标均可以得到,加之又获得了机械臂的移动路线,因此根据上述信息可以模拟出机械臂上各个点的移动轨迹,从而得到移动线路在机械臂坐标系下的模拟轨迹点云,并且可以获得模拟轨迹点云中每个点在机械臂坐标系下的坐标。
S5200:判断模拟轨迹点云和重合空间点云是否存在交集,若是,则执行步骤S5300,若否,则执行步骤S5400;
S5300:将当前机械臂的移动线路写入碰撞线路文档,并返回步骤S5000;
S5400:将当前机械臂的移动线路确定为安全线路。
由于在上述实施例中已经得到了重合空间点云中每个点在机械臂坐标系下的坐标,也得到了模拟轨迹点云中每个点在机械臂坐标系下的坐标,因此能够比较重合空间点云与模拟轨迹点云是否存在交集,如比较重合空间点云与模拟轨迹点云中是否存在相同的坐标。若存在相同的坐标,则说明当前得到的移动线路会使机械臂在移动过程中与机械臂的作业场景实体空间发生碰撞,因此当前的移动线路就不是一个安全线路,可以将当前移动线路记录到碰撞线路文档中,并返回步骤S5000重新计算一条新的移动线路;若不存在相同的坐标,则说明当前得到的移动线路不会使机械臂在移动过程中与机械臂的作业场景实体空间发生碰撞,可以将当前移动线路作为机械臂的实际移动线路使用。
当重合空间超过机械臂的允许活动空间的50%时,根据模拟轨迹和安全活动空间的关系来确定安全线路,即执行步骤S600:根据目标位置,将模拟轨迹全部位于安全活动空间内的移动线路确定为安全线路。
与步骤S500同样的目的,为了让机器人完成工作任务,需要使机器人的机械臂安全到达目标位置,但是并不是每一条能够到达目标位置的移动线路都是安全线路,在步骤S600中采用根据移动线路的模拟轨迹是否完全处于安全活动空间内来判断机械臂的移动线路是否安全。
由于在上述实施例中已经得到了机械臂的作业场景实体空间与机械臂的允许活动空间的重合空间,而安全活动空间为机械臂的允许活动空间与重合空间的补集,即机械臂的允许活动空间减去重合空间后的剩余空间,因此根据重合空间和机械臂的允许活动空间可以得到安全活动空间,加之机械臂的允许活动空间中的每个点和重合空间中的每个点在机械臂坐标系下都有相应的坐标,因此可以得到安全活动空间中每个点在机械臂坐标系下的坐标,而在机械臂坐标系下可以得到模拟轨迹中每个点在机械臂坐标系下的坐标,因此可以确定模拟轨迹是否处于安全活动空间内。
在实际执行过程中,如图3所示,步骤S600包含步骤S6000~S6400,具体地:
S6000:根据目标位置及碰撞线路文档得到机械臂的移动线路。
实际操作过程中,步骤S6000和步骤S5000基本相同,即根据目标位置及用于记录与机械臂的作业场景实体空间发生碰撞的移动线路的碰撞线路文档,得到机械臂的移动线路。此处不再详细赘述。
S6100:根据机械臂的移动线路,得到机械臂的移动线路在机械臂坐标系下的模拟轨迹点云。
实际操作中,步骤S6100和步骤S5100基本相同,即根据机械臂的尺寸、结构、各个关节之间的位置关系,机械臂上各个点在机械臂坐标系中的坐标,以及机械臂的移动路线模拟出机械臂上各个点的移动轨迹,得到当前移动线路在机械臂坐标系下的模拟轨迹点云,进而得到模拟轨迹点云中每个点在机械臂坐标系下的坐标。
S6200:判断模拟轨迹点云中是否存在不与安全活动空间点云重合的点,若是,则执行步骤S6300,若否,则执行步骤S6400;
S6300:将当前机械臂的移动线路写入碰撞线路文档,并返回步骤S6000;
S6400:将当前机械臂的移动线路确定为安全线路。
具体地,根据安全活动空间中每个点在机械臂坐标系中的坐标,以及模拟轨迹点云中每个点在机械臂坐标系中的坐标,可以判断模拟轨迹点云中是否存在不与安全活动空间点云重合的点,若存在,则说明当前计算得到的移动线路会使机械臂在移动过程中与机械臂的作业场景实体空间发生碰撞,因此当前移动线路就不是一个安全线路,可以将当前移动线路记录到碰撞线路文档,并返回步骤S6000重新计算一条新的移动线路;若不存在,则说明当前计算得到的移动线路不会使机械臂在移动过程中与机械臂的作业场景实体空间发生碰撞,因此可以将当前移动线路作为机械臂的移动线路在实际当中使用。
上述实施例中,当重合空间比较小时,根据目标位置,将模拟轨迹与重合空间不存在交集的移动线路确定为安全线路;当安全活动空间比较小时,则根据目标位置,将模拟轨迹全部位于安全活动空间内的移动线路降低了求解安全线路的工作量,从而节省了求解安全线路的时间。
基于相同的发明构思,如图4所示,本申请实施例还提供了一种确定机器人安全线路的装置,包括:
作业场景模块401,与重合空间模块402连接,用于利用传感器的测量数据建立机械臂的作业场景实体空间,并将确定的作业场景实体空间的数据发送给重合空间模块402;
重合空间模块402,与作业场景模块401、判断模块A相连,用于根据接收到的作业场景实体空间的数据后,确定作业场景实体空间与机械臂的允许活动空间的重合空间,并把确定的重合空间的数据发送给判断模块A;
判断模块A,与重合空间模块402、判断模块B以及线路模块A相连,用于在接收到所述重合空间的数据后,判断机械臂的允许活动空间是否超过机械臂的理论活动空间的50%,若是,则将所述重合空间的数据发送给线路模块A,若否,则将所述重合空间的数据发送给判断模块B。
判断模块B,与判断模块A、线路模块A以及安全空间模块403相连,用于在接收到所述重合空间的数据后,判断重合空间是否超过机械臂的允许活动空间的50%,若是,则将所述重合空间的数据发送给安全空间模块403,若否,则将所述重合空间的数据发送给线路模块A。
线路模块A,与判断模块A以及判断模块B相连,用于在接收到所述重合空间的数据后,根据目标位置,将模拟轨迹与重合空间不存在交集的移动线路确定为安全线路。
安全空间模块403,与判断模块B以及线路模块B相连,用于在接收到所述重合空间的数据后,确定机械臂的安全活动空间,并将确定的安全活动空间的数据发送给线路模块B。
线路模块B,与安全空间模块403相连,用于在接收到所述安全活动空间的数据后,根据目标位置,将模拟轨迹全部位于安全活动空间内的移动线路作确定为安全线路。
在一示例性实施例中,线路模块A包括:
移动线路模块,和模拟轨迹点云模块及线路处理模块A连接,用于根据目标位置及碰撞线路文档得到机械臂的移动线路,并把得到的机械臂的移动线路发送给模拟轨迹点云模块;
模拟轨迹点云模块,和移动线路模块及线路处理模块A连接,用于根据接收到的机械臂的移动线路,得到机械臂的移动线路在机械臂坐标系下的模拟轨迹点云,并将得到的模拟轨迹点云发送给线路处理模块A;
线路处理模块A,和移动线路模块及模拟轨迹点云模块连接,用于根据接收到的模拟轨迹点云,判断模拟轨迹点云和重合空间点云是否存在交集,若是,则将当前机械臂的移动线路写入碰撞线路文档,并把更新的碰撞线路文档发送给移动线路模块,若否,则将当前机械臂的移动线路作为安全线路。
在一示例性实施例中,线路模块B包括:
移动线路模块,和模拟轨迹点云模块及线路处理模块B连接,用于根据目标位置及碰撞线路文档得到机械臂的移动线路,并把得到的机械臂的移动线路发送给模拟轨迹点云模块;
模拟轨迹点云模块,和移动线路模块及线路处理模块B连接,用于根据接收到的机械臂的移动线路,得到机械臂的移动线路在机械臂坐标系下的模拟轨迹点云,并将得到的模拟轨迹点云发送给线路处理模块B;
线路处理模块B,和移动线路模块及模拟轨迹点云模块连接,用于根据接收到的模拟轨迹点云,判断模拟轨迹点云中是否存在不与安全活动空间点云重合的点,若是,则将当前机械臂的移动线路写入碰撞线路文档,并把更新的碰撞线路文档发送给移动线路模块,若否,则将当前机械臂的移动线路作为安全线路。
上述确定机器人安全线路的装置中,作业场景实体模块401,重合空间模块402,判断模块A,判断模块B,线路模块A,安全空间模块403,线路模块B可以用于执行上述方法实施例中所描述的确定机器人安全线路的方法。
本申请实施例还提供了一种存储介质,所述存储介质包括存储的程序,其中,所述程序运行时执行上述方法实施例中所描述的确定机器人安全线路的方法。
本申请实施例还提供了一种电子装置,如图5所示,该电子装置可以通过软件、硬件或者两者的结合实现成为电子装置的部分或者全部,该电子装置用于执行上述方法实施例中所描述的确定机器人安全线路的方法。如图5所示,电子装置50包括存储器502、处理器501及存储在所述存储器502上并可在所述处理器501上运行的计算机程序,所述处理器501通过所述计算机程序执行上述方法实施例中所描述的确定机器人安全线路的方法。
在一个实施例中,在执行根据目标位置,将模拟轨迹与重合空间不存在交集的移动线路确定为安全线路的步骤时,上述处理器501可被配置为执行以下具体步骤:
S5000:根据目标位置及碰撞线路文档得到机械臂的移动线路;
S5100:根据机械臂的移动线路,得到机械臂的移动线路在机械臂坐标系下的模拟轨迹点云;
S5200:判断模拟轨迹点云和重合空间点云是否存在交集,若是,则执行步骤S5300,若否,则执行步骤S5400;
S5300:将当前机械臂的移动线路写入碰撞线路文档,并返回步骤S5000;
S5400:将当前机械臂的移动线路确定为安全线路;
其中,碰撞线路文档用于记录与机械臂的作业场景实体空间发生碰撞的移动线路。
在一个实施例中,在执行根据目标位置,将模拟轨迹全部位于安全活动空间内的移动线路确定为安全线路时,上述处理器501还可被配置为执行以下具体步骤:
S6000:根据目标位置及碰撞线路文档得到机械臂的移动线路;
S6100:根据机械臂的移动线路,得到机械臂的移动线路在机械臂坐标系下的模拟轨迹点云;
S6200:判断模拟轨迹点云中是否存在不与安全活动空间点云重合的点,若是,则执行步骤S6300,若否,则执行步骤S6400;
S6300:将当前机械臂的移动线路写入碰撞线路文档,并返回步骤S6000;
S6400:将当前机械臂的移动线路确定为安全线路;
其中,碰撞线路文档用于记录与机械臂的作业场景实体空间发生碰撞的移动线路。
本公开实施例提供的电子装置可以是一个如图6所示的终端设备,图6是根据一示例性实施例示出的一种终端设备的框图,该终端设备60可以是智能手机、平板电脑等,该终端设备60用于执行上述方法实施例中所描述的确定机器人安全线路的方法。
终端设备60可以包括以下一个或多个组件:处理组件601,存储器602,电源组件603,多媒体组件604,音频组件605,输入/输出(I/O)的接口606,传感器组件607,以及通信组件608。
处理组件601通常控制终端设备60的整体操作,诸如与显示,电话呼叫,数据通信,相机操作和记录操作相关联的操作。处理组件601可以包括一个或多个处理器6011来执行指令,以完成上述的方法的全部或部分步骤。此外,处理组件601可以包括一个或多个模块,便于处理组件601和其他组件之间的交互。例如,处理组件601可以包括多媒体模块,以方便多媒体组件604和处理组件601之间的交互。
存储器602被配置为存储各种类型的数据以支持在终端设备60的操作。这些数据的示例包括用于在终端设备60上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。存储器602可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(英文全称:Static Random Access Memory,英文简称:SRAM),电可擦除可编程只读存储器(英文全称:Electrically Erasable ProgrammableRead Only Memory,英文简称:EEPROM),可擦除可编程只读存储器(英文全称:ErasableProgrammable Read Only Memory,英文简称:EPROM),可编程只读存储器(英文全称:Programmable Read Only Memory,英文简称:PROM),只读存储器(英文全称:Read OnlyMemory,英文简称:ROM),磁存储器,快闪存储器,磁盘或光盘。
电源组件603为终端设备60的各种组件提供电力。电源组件603可以包括电源管理系统,一个或多个电源,及其他与为终端设备60生成、管理和分配电力相关联的组件。
多媒体组件604包括在终端设备60和用户之间的提供一个输出接口的屏幕。在一些实施例中,屏幕可以包括液晶显示器(英文全称:Liquid Crystal Display,英文简称:LCD)和触摸面板(英文全称:Touch Panel,英文简称:TP)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与触摸或滑动操作相关的持续时间和压力。在一些实施例中,多媒体组件604包括一个前置摄像头和/或后置摄像头。当终端设备60处于操作模式,如拍摄模式或视频模式时,前置摄像头和/或后置摄像头可以接收外部的多媒体数据。每个前置摄像头和后置摄像头可以是一个固定的光学透镜系统或具有焦距和光学变焦能力。
音频组件605被配置为输出和/或输入音频信号。例如,音频组件605包括一个麦克风(英文全称:Microphone,英文简称:MIC),当终端设备60处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器602或经由通信组件608发送。在一些实施例中,音频组件605还包括一个扬声器,用于输出音频信号。
I/O接口606为处理组件601和外围接口模块之间提供接口,上述外围接口模块可以是键盘,点击轮,按钮等。这些按钮可包括但不限于:主页按钮、音量按钮、启动按钮和锁定按钮。
传感器组件607包括一个或多个传感器,用于为终端设备60提供各个方面的状态评估。例如,传感器组件607可以检测到终端设备60的打开/关闭状态,组件的相对定位,例如组件为终端设备60的显示器和小键盘,传感器组件607还可以检测终端设备60或终端设备60中一个组件的位置改变,用户与终端设备60接触的存在或不存在,终端设备60方位或加速/减速和终端设备60的温度变化。传感器组件607可以包括接近传感器,被配置用来在没有任何的物理接触时检测附近物体的存在。传感器组件607还可以包括光传感器,如互补金属氧化物半导体(英文全称:Complementary Metal Oxide Semiconductor,英文简称:CMOS)或电荷耦合元件(英文全称:Charge Coupled Device,英文简称:CCD)图像传感器,用于在成像应用中使用。在一些实施例中,该传感器组件607还可以包括加速度传感器,陀螺仪传感器,磁传感器,压力传感器或温度传感器。
通信组件608被配置为便于终端设备60和其他设备之间有线或无线方式的通信。终端设备60可以接入基于通信标准的无线网络,如无线保真(英文全称:Wireless-Fidelity,英文简称:WiFi),2G或3G,或它们的组合。在一个示例性实施例中,通信组件608经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,通信组件608还包括近场通信(英文全称:Near Field Communication,英文简称:NFC)模块,以促进短程通信。例如,该NFC模块可基于射频识别(英文全称:Radio FrequencyIdentification,英文简称:RFID)技术,红外数据协会(英文全称:Infrared DataAssociation,英文简称:IrDA)技术,超宽带(英文全称:Ultra Wideband,英文简称:UWB)技术,蓝牙(英文全称:Bluetooth,英文简称:BT)技术和其他技术来实现。
在示例性实施例中,终端设备60可以被一个或多个应用专用集成电路(英文全称:Application Specific Integrated Circuit,英文简称:ASIC)、数字信号处理器(英文全称:Digital Signal Processing,英文简称:DSP)、数字信号处理设备(英文全称:DigitalSignal Processing Device,英文简称:DSPD)、可编程逻辑器件(英文全称:ProgrammableLogic Device,英文简称:PLD)、现场可编程门阵列(英文全称:Field Programmable GateArray,英文简称:FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述方法实施例中所描述的确定机器人安全线路的方法。
在示例性实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,例如包括指令的存储器602,上述指令可由终端设备60的处理组件601执行以完成上述方法。例如,非临时性计算机可读存储介质可以是ROM、随机存取存储器(英文全称:RandomAccess Memory,英文简称:RAM)、CD-ROM、磁带、软盘和光数据存储设备等。当存储介质中的指令由终端设备60的处理组件601执行时,使得终端设备60能够执行上述方法实施例中所描述的确定机器人安全线路的方法,该方法包括步骤:
S100:利用传感器的测量数据确定机械臂的作业场景实体空间;
S200:确定机械臂的作业场景实体空间与机械臂的允许活动空间的重合空间;
S300:判断机械臂的允许活动空间是否超过机械臂的理论活动空间的50%,若否,则执行步骤S400,若是,则执行步骤S500;
S400:判断重合空间是否超过机械臂的允许活动空间的50%,若否,则执行步骤S500,若是,则确定机械臂的安全活动空间后执行步骤S600;
S500:根据目标位置,将模拟轨迹与重合空间不存在交集的移动线路确定为安全线路;
S600:根据目标位置,将模拟轨迹全部位于安全活动空间内的移动线路确定为安全线路。
本公开实施例提供的存储介质以及电子装置,在能够实现为机器人的机械臂找出完成任务所需的安全线路的情况下,降低了求解安全线路的工作量,进而节省了求解安全线路的时间。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其他实施例的相关描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的功能模块及方法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
上述实施例仅用以说明本申请的技术方案,而非对其限制。尽管已描述了本申请实施例的优选实施例,但本领域内的普通技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请实施例范围的所有变更和修改。显然,本领域的技术人员可以对本申请实施例进行各种改动和变型而不脱离本申请实施例的精神和范围。这样,倘若本申请实施例的这些修改和变型属于本申请实施例权利要求及其等同技术的范围之内,则本申请实施例也意图包含这些改动和变型在内。