首页 > 其他分享 >Ros2-Moveit2-PlanningSceneMonitor(规划场景监控)

Ros2-Moveit2-PlanningSceneMonitor(规划场景监控)

时间:2024-09-02 11:04:06浏览次数:9  
标签:场景 RobotState subscriber PlanningSceneMonitor 关节 规划 Moveit2 Ros2

PlanningSceneMonitor是维护最新规划场景的推荐接口。RobotStateCurrentStateMonitorPlanningScenePlanningSceneMonitorPlanningSceneInterface之间

关系一开始可能非常令人困惑。本教程旨在阐明这些关键概念。

机器人状态

RobotState 是机器人的快照。 它包含RobotModel和一组关节值。

当前状态监视器(CurrentStateMonitor)

CurrentStateMonitor (CSM) 可以看作是 RobotState 的 ROS 包装器。它订阅了JointState消息的指定主题,该消息为单自由度执行器(例如旋转关节或平移关节提供最新的传感器值,并使用这些关节值更新其内部 RobotState。除了单自由度关节外,机器人还可以拥有多自由度关节,例如浮动关节和平面关节。为了维护连杆和其他附有多自由度关节的框架的最新变换信息,CSM 存储了一个 TF2缓冲区,该缓冲区使用 TF2 TransformListener在其内部数据中设置它们的变换。

规划场景

PlanningScene是世界的快照其中包括 RobotState 和任意数量的碰撞对象。Planning Scene 可用于碰撞检查以及获取有关环境的信息。

规划场景监控

PlanningSceneMonitor使用 ROS 接口包装 PlanningScene 以使 PlanningScene 保持最新状态。要访问 PlanningSceneMonitor 的底层 PlanningScene,请使用提供的LockedPlanningSceneRWLockedPlanningSceneRO类。

PlanningSceneMonitor 具有以下对象,它们具有自己的 ROS 接口,用于使规划场景的子组件保持最新状态:

  • CurrentStateMonitor用于通过和跟踪对 RobotState 的更新,以及规划场景订阅者用于监听来自其他发布者的规划场景差异
  • OccupancyMapMonitor 用于通过 ROS 主题和服务跟踪 OccupancyMap 的更新。

PlanningSceneMonitor 具有以下订阅者:

PlanningSceneMonitor 有以下服务:

  • get_scene_service_- 这是获取完整规划场景状态的可选服务。

PlanningSceneMonitor 的初始化方法如下:

  • startSceneMonitor- 这开始了planning_scene_subscriber_

  • startWorldGeometryMonitor- 启动collision_object_subscriber_planning_scene_world_subscriber_和 OccupancyMapMonitor,

  • startStateMonitor- 启动 CurrentStateMonitorattached_collision_object_subscriber_

  • startPublishingPlanningScene- 启动另一个线程,在提供的主题上发布整个规划场景,供其他 PlanningSceneMonitors 订阅

  • providePlanningSceneService- 这开始了get_scene_service_。

规划场景接口(PlanningSceneInterface)

PlanningSceneInterface是一个有用的类,它可以通过 C++ API 将更新发布到 MoveGroup 的PlanningSceneMonitor 而无需创建自己的订阅者和服务客户​​端。如果没有 MoveGroup 或 MoveItCpp,它可能无法工作。

 

 

标签:场景,RobotState,subscriber,PlanningSceneMonitor,关节,规划,Moveit2,Ros2
From: https://www.cnblogs.com/ai-ldj/p/18392338

相关文章

  • NVIDIA 系列之 使用生成式 AI 增强 ROS2 机器人技术:使用 BLIP 和 Isaac Sim 进行实时
    简介在快速发展的机器人领域,集成先进的AI模型可以显著增强机器人系统的功能。在本博客中,我们将探讨如何在ROS2(机器人操作系统2)环境中利用BLIP(引导语言图像预训练)模型进行实时图像字幕制作,并使用NVIDIAIsaacSim进行模拟。我们将介绍如何实现一个ROS2节点,该节点订......
  • ROS2 Moveit2 - moveit_resources_panda_moveit_config包简介
    moveit_resources_panda_moveit_config是一个在MoveIt框架中常用的资源包,包含了Panda机器人模型(FrankaEmikaPanda)的配置文件。这个包用于测试和演示MoveIt的功能。它通常包含以下内容:URDF/XACRO文件:描述Panda机器人的几何、动力学和运动学模型。SRDF文件:描述Pand......
  • Ros2 vscode 调试运行
    1.编译调试版本:在使用colconbuild编译工作区时,你需要确保以调试模式编译,添加--cmake-args-DCMAKE_BUILD_TYPE=Debug参数:colconbuild--cmake-args-DCMAKE_BUILD_TYPE=Debug2.使用gdb进行调试gdb是一个常用的调试工具,可以帮助你在命令行中调试ROS2节点。步......
  • 2.ros2创建话题+发布消息(VScode环境搭建+编写)
    前言:这是在1.ROS2安装-创建节点的基础上进行改进的,由于ubuntu自带的nano和vim在编写的时候不是很方便,在这教大家怎么用VScode进行编写代码1.Vscode安装1.1下面是Vscode的deb网盘连接,你也可以去官网下载        官网连接:DownloadVisualStudioCode-Mac,Linux,......
  • Ros2 Moveit2 编译安装报错解决方案 - By not providing "Findgz_sim_vendor.cmake" i
    moveit_resources---stderr:gz_ros2_controlCMakeErroratCMakeLists.txt:27(find_package):Bynotproviding"Findgz_sim_vendor.cmake"inCMAKE_MODULE_PATHthisprojecthasaskedCMaketofindapackageconfigurationfileprovidedby"gz......
  • Robot Operating System——使用VSCode调试ROS2代码
    大纲安装插件/组件VSCode插件调试组件自定义cmake命令配置CMakeTools新增CMakePresets.json修改默认的cmake编译Debug版配置测试环境启动测试总结参考资料工欲善其事必先利其器。直接使用GDB调试代码毕竟不是很方便,我们将探索如何使用VSCode调试ROS2的代码。我们......
  • Ros2 Moveit2 - Robot Model and Robot State
    RobotModelandRobotState 在本节中,我们将向您介绍用于在MoveIt中使用运动学的C++API。RobotModel和RobotState类RobotModel 和 RobotState 类是提供对机器人运动学访问权限的核心类。RobotModel 类包含所有链接和关节之间的关系,包括从URDF加载的关节限制属......
  • ROS2 Moveit2 - URDF 和 SRDF
    URDFMoveIt2从URDF(统一机器人描述格式)开始,这是用于在ROS和ROS2中描述机器人的原生格式。在本教程中,您将找到URDF的资源、重要提示以及MoveIt2特定要求的列表。URDF资源URDFROSWiki页面-URDF ROSWiki页面是关于URDF的大部分信息的来源。URDF教程-......
  • Ros2 MoveIt2 MoveGroup C++接口
     在MoveIt中,最简单的用户界面是通过 MoveGroupInterface 类。它为用户可能想要执行的大多数操作提供了易于使用的功能,特别是设置关节或姿势目标、创建运动计划、移动机器人、将对象添加到环境中以及从机器人上连接/分离对象。此接口通过ROS主题、服务和操作与 MoveGrou......
  • ubuntu 22.04安装 ROS2 (清华源)
    下载ROS的GPGKey:sudoaptinstallcurlgnupg2sudocurl-sSLhttps://mirror.ghproxy.com/https://raw.githubusercontent.com/ros/rosdistro/master/ros.key-o/usr/share/keyrings/ros-archive-keyri添加ROS源echo"deb[arch=$(dpkg--print-architecture)s......