首页 > 其他分享 >Ros2 - Moveit2 - 使用 Bullet 进行碰撞检查

Ros2 - Moveit2 - 使用 Bullet 进行碰撞检查

时间:2024-09-18 15:04:06浏览次数:12  
标签:Bullet 机器人 碰撞 碰撞检测 CCD FCL Moveit2 Ros2

 

除了灵活碰撞库 (FCL) 之外,Bullet 碰撞检测也可用作碰撞检查器。本教程以可视化碰撞教程为基础,展示碰撞。

此外,还提供连续碰撞检测(CCD),并通过 Bullet 进行演示。

入门

如果您还没有这样做,请确保您已经完成入门指南中的步骤。

运行代码

使用 Roslaunch 启动文件直接从 moveit_tutorials 运行代码:

roslaunch moveit_tutorials bullet_collision_checker_tutorial.launch

现在您应该可以看到熊猫机器人和一个带有可拖动交互式标记的框。请注意,与 FCL 不同,Bullet 不会计算形状的所有单个接触点,而只会计算最深穿透点。

 左图:FCL 碰撞结果。右图:子弹碰撞结果。

请注意,由于内部碰撞管理器是可变成员,因此 Bullet 作为碰撞检测器的当前实现不是线程安全的。

持续碰撞检测

此外,Bullet 具有连续碰撞能力。这意味着可以保证在两个离散机器人状态与环境之间的过渡期间不会发生碰撞。要获得 CCD 的演示,请单击RViz 左下角面板上Next的按钮moveit_visual_tools。交互式机器人消失,机器人出现在手就在箱子后面的状态。再次按下下一步时,机器人跳转到手就在箱子前面的配置。在这两种状态下,均未检测到碰撞(参见终端输出)。

 

 

 左图:配置 1 中的机器人。右图:配置 2 中的机器人。

接下来Next,使用铸造机器人模型在两个离散姿势之间执行 CCD。报告碰撞(有关详细信息,请参阅终端输出)。

 

 

 

标签:Bullet,机器人,碰撞,碰撞检测,CCD,FCL,Moveit2,Ros2
From: https://www.cnblogs.com/ai-ldj/p/18418523

相关文章

  • Ros2 - Moveit2 - MoveItCpp
    MoveItCpp教程介绍MoveItCpp是一个新的高级接口,一个统一的C++API,不需要使用ROS操作、服务和消息来访问核心MoveIt功能,并且是现有MoveGroupAPI的替代方案(不是完全替代),我们建议需要更多实时控制或行业应用的高级用户使用此接口。PickNikRobotics已根据我们许多商业应......
  • Ros2- Moveit2- Subrame( 子坐标 )
    子坐标是在CollisionObjects上定义的坐标。它们可用于定义您放置在场景中的对象上的兴趣点,例如瓶子的开口、螺丝刀的尖端或螺丝的头部。它们可用于规划和编写机器人指令,例如“拿起瓶子,然后将开口移到水龙头的喷口下方”,或“拿起螺丝刀,然后将其放在螺丝头上方”。编写专注于机器......
  • Ros2 - Moveit2 - DeepGrasp(深度抓握)
    MoveIt深度把握本教程演示了如何在MoveIt任务构造器中使用抓握姿势检测(GPD)和 Dex-Net。GPD(左)和Dex-Net(右)用于生成拾取圆柱体的抓取姿势。https://moveit.picknik.ai/main/_images/mtc_gpd_panda.gif 入门如果您还没有这样做,请确保您已经完成入门指南中的步骤。......
  • ROS2图形化方式新建功能包工具- Turtle Nest
    提示:全文AI生成。链接:https://github.com/Jannkar/turtle_nest配置TurtleNest使用说明(中文版)一、TurtleNest简介正如海龟巢是幼海龟的诞生地,ROS2TurtleNest是ROS2包的诞生和成长之地。TurtleNest提供了一个易用的图形用户界面(GUI),简化了ROS2包的创建......
  • Ros2 - Moveit2 - Grasps(抓握)
    MoveItGrasps是一款用于抓取块或圆柱体等物体的抓取生成器,可用作MoveIt拾取和放置管道的替代品。MoveItGrasps提供基于可达性和接近、抬起和后退运动的笛卡尔规划来过滤抓取的功能。抓握生成算法基于简单的长方体形状,不考虑摩擦锥或其他抓握动力。MoveItGrasps可与平行......
  • Ros2 - Moveit2 - Pick And Place(拾取和放置)
    拾取和放置注意:本教程中使用的功能已弃用。要执行拾取和放置操作,应使用MoveIt任务构造器(MTC)(使用MoveIt任务构造器拾取和放置)。 在MoveIt中,抓取是使用MoveGroup接口完成的。为了抓取一个物体,我们需要创建moveit_msgs::Graspmsg,以便定义抓取操作中涉及的各种姿势和姿......
  • ROS2 - Moveit2 - Planning with Approximated Constraint Manifolds(使用近似约束流
    使用近似约束流形进行规划OMPL支持自定义约束,以使规划轨迹遵循所需的行为。约束可以在关节空间和笛卡尔空间中定义,后者基于方向或位置。在规划轨迹时,每个关节状态都需要遵循所有设置的约束,默认情况下,这是通过拒绝采样来执行的。然而,这可能会导致非常长的规划时间,特别是当约束非......
  • Ros2 - Moveit2 - TimeParameter(时间参数化)
    时间参数化MoveIt目前主要是一个运动规划框架-它规划关节或末端执行器的位置,但不规划速度或加速度。但是,MoveIt确实利用后处理来对速度和加速度值的运动轨迹进行时间参数化。下面我们将解释MoveIt这一部分所涉及的设置和组件。 速度控制来自文件默认情况下,MoveIt将关......
  • ROS2开发前置基础知识
    前言笔者发现现在市面上(主要是某站上)的ros2相关的教程内容大多不太基础(例如古某居(手动狗头保命),对于那些不熟悉Linux和C++甚至Python的童鞋来说不太友好,之前笔者自己在跟着学习过程中也有不少疑惑,踩了不少坑,现进行一些前置知识的总结(主要学习古某居和鱼香ros的教程,墙裂推荐),一......
  • Ros2- Moveit2 - Visualizing Collisions(可视化碰撞)
    本节将引导您了解C++示例代码,该代码可让您在RViz中移动和与机器人手臂交互时可视化机器人本身与世界之间的碰撞接触点。入门运行代码使用Roslaunch启动文件直接从moveit_tutorials运行代码:roslaunchmoveit_tutorialsvisualizing_collisions_tutorial.launch现在......