System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术属于碰撞检测领域,尤其涉及一种基于sdf函数的机械臂碰撞检测方法。
技术介绍
1、在机械臂运动规划领域,经常需要判断机械臂有无与外界环境发生碰撞。这种判断机械臂有无与环境发生碰撞的算法就是碰撞检测方法,其保证了机械臂运行的安全性可靠性。但不同原理的碰撞检测算法技术有着不同的优缺点。
2、目前常见的碰撞检测技术主要有包围盒法,分离轴法等。包围盒法是通过使用立方体,球体,圆柱体等形状将机械臂各个连杆以及障碍物进行包围,然后判断这几个包围盒有无碰撞。包围盒方法简单易懂,但当使用常见的包围盒包围较为复杂的模型时会损失较多的自由空间,导致精度较差使原本不会碰撞的情况被判断为有碰撞;若使用较为复杂的包围盒,如多个三角面片等形状进行包围时,虽能减少自由空间的损失,但会极大增加碰撞检测的耗时。分离轴法的原理是如果两个物体不发生碰撞,则一定存在一个面,能将两个物体分离,这个能够分开两个物体的的面称为分离面,假设有一束平行光从不同角度照射这个两个待测物体,当有一个合适的角度使得两者影子没有重叠时,就找到了分离面,这个方法可以用来检测较为复杂形状的物体也不会损失过多自由空间,但其计算较为复杂,并且只能适用于凸形物体之间的碰撞检测。
3、sdf函数是符号距离函数(signed distance function)的缩写,其是指一种在空间中的一个有限区域上确定一个点到区域边界的距离并同时对距离的符号进行定义的函数。其以隐式的表达方法来描述空间中二维或者三维物体的几何形状,sdf函数常用在二维或者三维的模型表达中。
...【技术保护点】
1.一种基于SDF函数的机械臂碰撞检测方法,其特征在于,包括离线阶段和在线阶段;
2.根据权利要求1所述的一种基于SDF函数的机械臂碰撞检测方法,其特征在于,所述离线阶段中的构建机械臂末端工具可达空间的几何形状SDF函数具体为SDF_ee:将整个包围盒均匀地离散化为若干体素并构造体素化网格,将所有体素化网格初始化为负值;
3.根据权利要求2所述的一种基于SDF函数的机械臂碰撞检测方法,其特征在于,所述遍历机械臂的整个关节空间并根据正运动学将可达的体素化网格标记为正值具体为:按照关节的顺序从上到下,每次对一个关节转动一个微小的角度,然后计算这组关节角下机械臂的正运动学解,获得机械臂的末端位置信息,将位置信息在X,Y,Z方向上栅格化,找到对应的单位体素,并将该体素化网格的SDF值赋正值。
4.根据权利要求1所述的一种基于SDF函数的机械臂碰撞检测方法,其特征在于,所述离线阶段中构建机械臂各连杆的几何形状SDF函数SDF_link_i具体为:将整个包围盒均匀地离散化为若干体素并构造体素化网格,将所有体素化网格初始化为负值,将连杆的几何外形信息进行栅格
5.根据权利要求1所述的一种基于SDF函数的机械臂碰撞检测方法,其特征在于,所述离线阶段中构建机器人所处工作环境的几何信息的SDF函数SDF_env具体为:将整个包围盒均匀地离散化为若干体素并构造体素化网格,将所有体素化网格初始化为负值,将空间中所有障碍物栅格化,在体素化网格中将被障碍物占据的体素单元赋予正值,若网格为正值且相邻网格存在负值,则将该网格标记为0,代表障碍物的边界信息,该系列体素化网格进行存储,即得到了描述机器人所处工作环境几何信息SDF函数SDF_env。
6.根据权利要求1所述的一种基于SDF函数的机械臂碰撞检测方法,其特征在于,所述环境中障碍物侵入机器人可达空间部分的几何边界通过如下步骤实现:
7.根据权利要求1所述的一种基于SDF函数的机械臂碰撞检测方法,其特征在于,所述机械臂的基坐标系与工作环境的世界坐标系之间的变换矩阵通过如下步骤实现:在已知目位姿时根据目标位姿,进行逆运动学解算,得到对应的关节角q,并且计算出各连杆坐标系相对于机器人基坐标系的变换矩阵
8.根据权利要求1所述的一种基于SDF函数的机械臂碰撞检测方法,其特征在于,所述机械臂的基坐标系与工作环境的世界坐标系之间的变换矩阵通过如下步骤实现:在已知关节角时,通过正运动学解算出在该组关节角下,机械臂末端的位姿T,以及每个连杆的连杆坐标系相对于世界坐标系的变换矩阵其中i表示连杆编号。
9.根据权利要求1所述的一种基于SDF函数的机械臂碰撞检测方法,其特征在于,所述根据目标位置和SDF_ee_new的关系判断可达性具体为:将目标位置栅格化,查询该位置在SDF_ee_new中的符号值来判断其可达性。
10.一种基于SDF函数的机械臂碰撞检测装置,包括传感器,工控机和机械臂,所述传感器用于获取外界信息,所述工控机中存储有可执行代码,其特征在于,所述工控机执行所述可执行代码时,实现如权利要求1-9中任一项所述的一种基于SDF函数的机械臂碰撞检测方法。
...【技术特征摘要】
1.一种基于sdf函数的机械臂碰撞检测方法,其特征在于,包括离线阶段和在线阶段;
2.根据权利要求1所述的一种基于sdf函数的机械臂碰撞检测方法,其特征在于,所述离线阶段中的构建机械臂末端工具可达空间的几何形状sdf函数具体为sdf_ee:将整个包围盒均匀地离散化为若干体素并构造体素化网格,将所有体素化网格初始化为负值;
3.根据权利要求2所述的一种基于sdf函数的机械臂碰撞检测方法,其特征在于,所述遍历机械臂的整个关节空间并根据正运动学将可达的体素化网格标记为正值具体为:按照关节的顺序从上到下,每次对一个关节转动一个微小的角度,然后计算这组关节角下机械臂的正运动学解,获得机械臂的末端位置信息,将位置信息在x,y,z方向上栅格化,找到对应的单位体素,并将该体素化网格的sdf值赋正值。
4.根据权利要求1所述的一种基于sdf函数的机械臂碰撞检测方法,其特征在于,所述离线阶段中构建机械臂各连杆的几何形状sdf函数sdf_link_i具体为:将整个包围盒均匀地离散化为若干体素并构造体素化网格,将所有体素化网格初始化为负值,将连杆的几何外形信息进行栅格化,在体素化网格中将被连杆占据的体素单元赋正值,将该系列体素化网格进行存储,即得到了单个连杆的sdf函数sdf_link_i。
5.根据权利要求1所述的一种基于sdf函数的机械臂碰撞检测方法,其特征在于,所述离线阶段中构建机器人所处工作环境的几何信息的sdf函数sdf_env具体为:将整个包围盒均匀地离散化为若干体素并构造体素化网格,将所有体素化网格初始化为负值,将空间中所有障碍物栅格化,在体素化网格中将被障碍物...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。