廊坊网站建设价格,wordpress随机评论头像,惠州模板网站,延安市建设工程交易中心网站scene_manager
Scene Manager包是由 Robotnik 创建的 ROS 包#xff0c;旨在帮助构建和与 MoveIt 机器人的规划场景进行交互。
背景信息
MoveIt 规划场景
是一个用于存储机器人周围世界的表示#xff08;外部碰撞#xff09;以及机器人自身状态#xff08;内部碰撞和当…scene_manager
Scene Manager包是由 Robotnik 创建的 ROS 包旨在帮助构建和与 MoveIt 机器人的规划场景进行交互。
背景信息
MoveIt 规划场景
是一个用于存储机器人周围世界的表示外部碰撞以及机器人自身状态内部碰撞和当前位置的对象。碰撞环境可以使用 MoveIt 碰撞对象或 Octomap 构建。规划场景在路径规划期间被 MoveIt 使用以获取无碰撞的轨迹。准确表示世界是非常重要的。MoveIt 允许用户与规划场景中存在的碰撞对象进行交互附加、分离对象。
Scene Manager
便于创建规划场景以及与规划场景的交互。继承自 moveit::planning_interface::PlanningSceneInterface 类的 C 类。提供一个 API允许用户轻松与 MoveIt 规划场景进行交互。
优势
MoveIt 碰撞对象可以在 YAML 文件中轻松定义并且可以随时修改。允许用户构建相同对象的矩阵适用于托盘化应用。添加了与对象交互的新功能例如相对于对象移动启用/禁用与对象的碰撞检测等。暴露 ROS 服务以调用所有 Scene Manager 功能外部用户可以轻松与环境交互。包含 RViz 中对象名称的可视化。在 TF 树中发布相对于世界的对象框架。
如何将 Scene Manager 添加到项目中 将 scene_manager 和 scene_manager_msgs 包添加到 catkin 工作空间。 在将使用 Scene Manager 的 ROS 包中在 CMakeLists.txt 和 package.xml 文件中添加对上述包的依赖。 将 Scene Manager 库添加到您正在开发的 CPP 节点中 #include corosect_manipulation/scene_manager.h创建 SceneManager 类的对象 ros::NodeHandle nh;
// 初始化 Scene Manager
bool wait true;
std::unique_ptrSceneManager scene_manager_ std::make_uniqueSceneManager(nh, wait);Scene Manager YAML
允许用户轻松将碰撞对象添加到规划场景中每个对象需要添加以下属性
spawn: 默认情况下对象在 Scene Manager 初始化场景时被添加到规划场景中。static: 静态对象无法被操作也无法改变其在空间中的位置。frame_id: 对象在场景中的位置相对于此坐标轴定义。geometry: 几何形状盒子或网格文件的路径package://ros_package_name/route_to_file_folder/mesh_file_name.stl。pose: 相对于 frame_id 坐标轴的 xyz 位移或 rpy 方向。layout: 可用于添加当前对象的矩阵例如带有箱子的托盘。
Scene Manager 功能
Scene Manager 类提供以下方法
SceneManager::initScene(): 将 YAML 文件中定义的对象添加到规划场景中。SceneManager::addObjects(vector object_ids): 将特定对象添加到规划场景中。SceneManager::removeObjects(vector object_ids): 从规划场景中移除特定对象。SceneManager::attachObjects(vector object_ids): 将碰撞对象附加到末端执行器。SceneManager::detachObjects(vector object_ids): 从末端执行器分离碰撞对象。SceneManager::moveRelativeTo(string object_id, rel_pose): 以相对于给定对象的 frame_id 的相对姿态移动末端执行器。SceneManager::allowCollision(string link_id, vector objects_id): 允许机器人链接或碰撞对象与其他碰撞对象之间发生碰撞。SceneManager::restoreCollision(string link_id, vector objects_id): 恢复机器人链接或碰撞对象与其他碰撞对象之间的碰撞避免。
Scene Manager ROS 服务
Scene Manager 提供 ROS 服务以调用所有 Scene Manager 功能外部用户可以轻松与机械臂和场景进行交互。
/scene_manager/add_objects/scene_manager/remove_objects/scene_manager/attach_objects/scene_manager/detach_objects/scene_manager/modify_object/scene_manager/move_relative_to