本教程作者:小鱼 公众号:鱼香ROS QQ交流群:139707339 教学视频地址:小鱼的B站 官网:鱼香ROS官网 版权声明:如非允许禁止转载与商业用途。
特斯拉机器人开始招聘了。据外媒报道,美国当地时间周二,电动汽车制造商特斯拉在其招聘页面上发布了与特斯拉人形机器人(Tesla Bot)项目相关的诸多新岗位。这些工作绝大多数都在加州,除了一个位于得克萨斯州奥斯汀。
特斯拉还发布了许多2022年夏天的实习职位,移动机器人方面的相关岗位包括自主性、软件工程、控制工程、固件工程和电气工程等。
碰撞检测与运动规划大家好,我是小鱼,很早之前发过关于碰撞检测相关的文章,给大家介绍fcl库的python包装python-fcl的简单使用,但并未将其应用在机械臂上做过相关的测试,所以从本篇文章小鱼就从fcl库和一些基础的操作讲起,带你一起了解如果实现机械臂的碰撞检测。
1.碰撞对象与包围盒fcl支持多种碰撞对象的碰撞检测,常见的几何体都是支持的,Box、Cylinder、Sphere等。
在机械臂中我们常用的是可能是BVHModel,原因是我们常把机械臂的关节模型文件导出为STL格式
将STL模型的三角形数据解析到FCL中就可以使用BVHModel来表示,BVH定义了层次包围盒的格式,全拼:Bounding Volume Hierarchies(BVH)
包围盒的概念很重要,常见的包围盒有AABB、OBB等,FCL目前实现的只有AABB类型的检测,但OBB也被写到TODO List中了
所以想使用FCL,我们需要简单了解一下先AABB和OBB。
2.AABB与OBB包围盒在后面的fcl使用过程中我们会用到这样一个AABB动态碰撞检测管理器
fcl.DynamicAABBTreeCollisionManager()
这里的AABB(Axis-aligned bounding box)指的就是一种包围盒类型,包围盒又是什么?可以理解为包装盒,那AABB指的是轴对齐包装盒(Axis-aligned bounding box),也就是包装盒的方向和坐标系的轴平行。
那OBB又是什么样子的呢?OBB指的是Oriented Bounding Box,即有方向的包装盒,所以OBB包装盒的轴不需要像AABB那样与坐标轴对齐。
这个FCL已经告诉我们了,可以做碰撞检测。
我们检测两个物体是否碰撞可以先对其包装盒进行检测,看看有没有相交的区域,有再进行进一步的计算。
4.碰撞对象在fcl中用于检测是否发生碰撞的对象就是碰撞对象CollisionObject,碰撞对象的生成就是用过机械臂的模型文件和其位置生成的。
geom = self._get_BVH(gparam)
t = fcl.Transform(transform[:3, :3], transform[:3, 3])
o = fcl.CollisionObject(geom, t)
5.划重点
- 碰撞对象(CollisionObject)是检测碰撞的单位 CollisionObject通过几何形状和位置生成的
- fcl最常用的碰撞检测管理器是DynamicAABBTreeCollisionManager
- CollisionObject是可以注册或注销到碰撞检测管理器
- DynamicAABBTreeCollisionManager采用的是AABB类型的碰撞检测
技术交流&&问题求助:
- 微信公众号及交流群:鱼香ROS
- 小鱼微信:AiIotRobot
- QQ交流群:139707339
- 版权保护:已加入“维权骑士”(rightknights.com)的版权保护计划
我是小鱼,机器人领域资深玩家,现深圳某独脚兽机器人算法工程师一枚 初中学习编程,高中开始接触机器人,大学期间打机器人相关比赛实现月入2W+(比赛奖金) 目前在输出机器人学习指南、论文注解、工作经验,欢迎大家关注小鱼,一起交流技术,学习机器人