wordpress资源,海南快速seo排名优化,海珠营销型网站建设公司,网站开发项目周期的文章目录 一、概述1、功能2、要求 二、使用方法1、用于运行演示2、用于开发人员2.1. 探索无/地图数据2.2. 使用 /map 数据进行探索 三、提供的组件1、explore_client1.1. 调用的操作1.2. 订阅主题1.3. 发布主题 2、explore_server2.1. 提供的操作2.2. 调用的操作2.3. 调用的服务… 文章目录 一、概述1、功能2、要求 二、使用方法1、用于运行演示2、用于开发人员2.1. 探索无/地图数据2.2. 使用 /map 数据进行探索 三、提供的组件1、explore_client1.1. 调用的操作1.2. 订阅主题1.3. 发布主题 2、explore_server2.1. 提供的操作2.2. 调用的操作2.3. 调用的服务2.4. 参数 3、BoundedExploreLayer3.1. 发布主题3.2. 服务3.3. 参数 一、概述
尝试 frontier_exploration 的最佳方法是使用 husky_navigation 中提供的演示请参阅演示教程。
1、功能
frontier_exploration 软件包提供了 costmap_2d 层插件 BoundedExploreLayer 以及 actionlib 客户端/服务器节点 explore_client 和 explore_server。
所提供的节点可用于演示成本图层的功能方法是执行一个以用户定义的多边形区域为边界的边界探索任务。
BoundedExploreLayer 图层当然也可用于执行更复杂的勘探任务其功能通过两个服务实现 UpdatePolygonBoundary 和 GetNextFrontier。
2、要求
使用本软件包进行边界探索需要一个真实或模拟的机器人配置以提供以下功能
激光扫描仪或类似传感器可清理空间并标记障碍物。适当配置的导航堆栈可接受移动基地的行动目标。(可选由 map_server、gmapping 或 move_base 提供的全局 / 地图
二、使用方法
1、用于运行演示
使用预先存在的机器人和配置您可以运行一个演示看看该软件包如何工作。
安装 frontier_exploration 算法
sudo apt-get install ros-kinetic-frontier-exploration ros-kinetic-navigation-stage在独立终端逐一运行必要的节点
roslaunch navigation_stage move_base_gmapping_5cm.launch
roslaunch navigation_stage move_base.xml
roslaunch frontier_exploration global_map.launch弹出 RViz然后在地图中心周围出现一个演示机器人。
在 RViz 上打开 Marker 插件RViz 插件可在弹出窗口中选择通过 添加 按钮打开。下拉 Displays -- Marker -- Marker Topic 菜单然后选择 exploration_polygon_marker 主题。在 RViz 的地图上想一个您希望机器人探索的区域。点击 RViz 顶部的 “Publish Point”。点击该区域 n 个角中的一个角如果您的区域是正方形/长方形请点击 n4 个角。重复上述第 6 和第 7 步 n 次。之后你会看到一个有 n 个角的多边形。再次执行步骤 6然后点击多边形内的任意位置。
视频演示
看到有个博主跑这个包没成功出现报错
ERROR: cannot launch node of type [frontier_exploration/explore_client]: Cannot locate node of type [explore_client] in package [frontier_exploration]. Make sure file exists in package path and permission is set to executable (chmod x)
ERROR: cannot launch node of type [frontier_exploration/explore_server]: Cannot locate node of type [explore_server] in package [frontier_exploration]. Make sure file exists in package path and permission is set to executable (chmod x)评论区说编译通过以后在/catkin_ws/devel/lib/frontier_exploration下没有任何文件所以会出现此报错感觉包本身是有问题的
2、用于开发人员
如果你只是想开始利用这个软件包的功能husky_navigation 软件包中的教程会有所帮助。
如果你想了解得更深入一些一般来说当启动 explore_server 时它会一直旋转直到收到一个探索目标。要提交目标
使用 explore_client 和 RViz - 在 Rviz 中为 exploration_polygon_marker 主题创建一个标记显示并使用工具栏上的 Click Point 工具标记探索边界。留意 ROS 控制台对所选边界的反馈。通过 actionlib SimpleActionClient用自己的节点向服务器提交目标。
探索目标包含一个开始探索的初始点和一个限制探索范围的多边形边界。要运行无边界探索任务只需将边界留空即可。
服务器收到目标后就会创建初始探索地图开始处理传感器/成本地图数据并发出 move_base 行动目标。默认情况下探索任务将探索边界内的所有区域无论之前是否访问过。下面提供了几种使用案例的启动文件示例。
2.1. 探索无/地图数据
在没有全局/地图信息源的情况下运行动作服务器/客户端时请启用 resize_too_boundary 参数以便根据动作目标的多边形边界动态调整地图大小。当机器人在探索边界外行进时costmap_2d 会出现传感器超出地图边界的错误信息。这些信息可以安全地忽略也可以使用 rosconsole 配置文件加以抑制。
如果不使用 resize_to_boundary例如运行无边界探索请确保成本地图配置了足够大的高度/宽度。
启动文件示例no_global_map.launch
launch!-- Set to your sensors range --arg namesensor_range default1.0/node pkgfrontier_exploration typeexplore_client nameexplore_client outputscreen/node pkgfrontier_exploration typeexplore_server nameexplore_server outputscreen param namefrequency typedouble value2.0/param namegoal_aliasing typedouble value$(arg sensor_range)/#All standard costmap_2d parameters as in move_base, other than BoundedExploreLayerrosparam nsexplore_costmap subst_valuetrue#Sample parametersfootprint: [[0.1, 0.0], [0.0, 0.1], [0.0, -0.1], [-0.1, 0.0]]robot_radius: 0.10transform_tolerance: 0.5update_frequency: 5.0publish_frequency: 5.0global_frame: maprobot_base_frame: base_linkresolution: 0.05rolling_window: falsetrack_unknown_space: trueplugins: - {name: explore_boundary, type: frontier_exploration::BoundedExploreLayer}- {name: sensor, type: costmap_2d::ObstacleLayer}- {name: inflation, type: costmap_2d::InflationLayer}explore_boundary:resize_to_boundary: truefrontier_travel_point: closestsensor:observation_sources: laserlaser: {data_type: LaserScan, clearing: true, marking: true, topic: scan, inf_is_valid: true, raytrace_range: $(arg sensor_range), obstacle_range: $(arg sensor_range)}inflation:inflation_radius: 0.15/rosparam/node
/launch2.2. 使用 /map 数据进行探索
在使用全局 /map 信息源来自 map_server 或 gmapping运行动作服务器/客户端时勘探成本地图的大小/分辨率将与静态图层加载的外部地图源地图相匹配因此必须禁用 resize_too_boundary 参数并且勘探成本地图的 global_frame 必须与外部 /map 相匹配。
使用 gmapping 进行探索时还必须禁用 explore_clear_space以防止节点重新探索已知区域。
启动文件示例global_map.launch
launch!-- Set to your sensors range --arg namesensor_range default1.0/node pkgfrontier_exploration typeexplore_client nameexplore_client outputscreen/node pkgfrontier_exploration typeexplore_server nameexplore_server outputscreen param namefrequency typedouble value2.0/param namegoal_aliasing typedouble value$(arg sensor_range)/#All standard costmap_2d parameters as in move_base, other than BoundedExploreLayerrosparam nsexplore_costmap subst_valuetruefootprint: [[0.1, 0.0], [0.0, 0.1], [0.0, -0.1], [-0.1, 0.0]]robot_radius: 0.10transform_tolerance: 0.5update_frequency: 5.0publish_frequency: 5.0#must match incoming static mapglobal_frame: maprobot_base_frame: base_linkresolution: 0.05rolling_window: falsetrack_unknown_space: trueplugins: - {name: static, type: costmap_2d::StaticLayer} - {name: explore_boundary, type: frontier_exploration::BoundedExploreLayer}#Can disable sensor layer if gmapping is fast enough to update scans- {name: sensor, type: costmap_2d::ObstacleLayer}- {name: inflation, type: costmap_2d::InflationLayer}static:#Can pull data from gmapping, map_server or a non-rolling costmap map_topic: /map# map_topic: move_base/global_costmap/costmap subscribe_to_updates: trueexplore_boundary:resize_to_boundary: falsefrontier_travel_point: middle#set to false for gmapping, true if re-exploring a known areaexplore_clear_space: falsesensor:observation_sources: laserlaser: {data_type: LaserScan, clearing: true, marking: true, topic: scan, inf_is_valid: true, raytrace_range: $(arg sensor_range), obstacle_range: $(arg sensor_range)}inflation:inflation_radius: 0.15/rosparam/node/launch三、提供的组件
1、explore_client
explore_client 节点侦听 Rviz 发布的点并构建一个 ExploreTask 行动目标发送给 explore_server。
1.1. 调用的操作
explore_server (frontier_exploration/ExploreTask) 向 explore_server 发送探索目标的客户端。
1.2. 订阅主题
/clicked_point (geometry_msgs/PointStamped) 从 rviz 工具点击的点。
1.3. 发布主题
exploration_polygon_marker visualization_msgs/Marker 通过点击点实现边界可视化。
2、explore_server
explore_server 节点为所有已连接的客户端执行探索操作。它使用 costmap_2d 对象来跟踪探索进度并在必要时为 move_base 创建移动目标。
2.1. 提供的操作
explore_server (frontier_exploration/ExploreTask) 接收勘探任务请求的服务器
2.2. 调用的操作
move_basemove_base_msgs/MoveBaseAction 向 move_base 发送移动目标的客户端。
2.3. 调用的服务
~explore_costmap/explore_boundary/update_boundary_polygon (frontier_exploration/UpdateBoundaryPolygon) (来自 Costmap 的内部服务为勘探任务设置边界。~explore_costmap/explore_boundary/get_next_frontier (frontier_exploration/GetNextFrontier) (来自 Costmap 的内部服务获取下一个要探索的边界的姿态。
2.4. 参数
~explore_costmap 插件 内部 costmap 图层的配置预计包含 BoundedExploreLayer。~frequency 浮点数默认值0.0 为下一个边界目标重新处理代价图的频率。如果频率为 0.0则只有在通过 move_base 达到上一个边界目标时才会询问新的边界目标。频率越高提交 move_base 目标的频率越高探索过程也就越 “平滑”。~goal_aliasing 浮点数默认值0.1 当频率 0.0 时~goal_aliasing 是在新目标提交给 move_base 之前上一个目标和新目标之间所需的距离 delta。在 sensor_range/2 ~goal_aliasing 0.0 范围内的任何位置设置都是安全的而且该参数将减少 平滑 探索过程中发送的冗余目标数量。
3、BoundedExploreLayer
frontier_exploration::BoundedExploreLayer 层是一个 costmap_2d 插件它实现了执行边界探索任务所需的若干功能。
3.1. 发布主题
~frontiers (sensor_msgs/PointCloud2) 点云 pcl::Pointcloud pcl::PointXYZI 在调用 ~get_next_frontier 服务时标记检测到的所有边界并使用强度较高的点标记所选边界。
3.2. 服务
~update_boundary_polygon (frontier_exploration/UpdateBoundaryPolygon) 为探索任务设置边界。~get_next_frontier (frontier_exploration/GetNextFrontier) 获取下一个探索边界的姿态。
3.3. 参数
~resize_too_boundary bool默认false 当通过 ~update_boundary_polygon 接收到多边形边界时会根据边界极值调整图层父成本贴图的大小。~frontier_travel_point 字符串默认最近 通过 ~get_next_frontier 输出下一个边界的姿态时定义要输出为 pose.position 的边界几何属性。可用离机器人最近的点、边界的中间点、所有边界点的中心点笛卡尔平均值。~explore_clear_space bool默认true 配置探索任务是探索所有清晰空间true还是只探索未知空间false。
算法流程图如下所示
参考
https://github.com/paulbovbel/frontier_explorationhttp://wiki.ros.org/frontier_explorationROS学习笔记之——基于frontier_exploration的机器人自主探索未成功运行结合frontier_exploration gmapping move_base包实现指定区域建图【SLAM】ROS平台下三种自主探索算法总结 文章转载自: http://www.morning.slzkq.cn.gov.cn.slzkq.cn http://www.morning.rlwcs.cn.gov.cn.rlwcs.cn http://www.morning.knmp.cn.gov.cn.knmp.cn http://www.morning.qtrlh.cn.gov.cn.qtrlh.cn http://www.morning.ckrnq.cn.gov.cn.ckrnq.cn http://www.morning.gjqgz.cn.gov.cn.gjqgz.cn http://www.morning.tlbhq.cn.gov.cn.tlbhq.cn http://www.morning.skbkq.cn.gov.cn.skbkq.cn http://www.morning.fbhmn.cn.gov.cn.fbhmn.cn http://www.morning.rywr.cn.gov.cn.rywr.cn http://www.morning.mxcgf.cn.gov.cn.mxcgf.cn http://www.morning.qfths.cn.gov.cn.qfths.cn http://www.morning.qkrqt.cn.gov.cn.qkrqt.cn http://www.morning.wbysj.cn.gov.cn.wbysj.cn http://www.morning.wnrcj.cn.gov.cn.wnrcj.cn http://www.morning.fhykt.cn.gov.cn.fhykt.cn http://www.morning.lonlie.com.gov.cn.lonlie.com http://www.morning.qwfl.cn.gov.cn.qwfl.cn http://www.morning.ymwny.cn.gov.cn.ymwny.cn http://www.morning.xesrd.com.gov.cn.xesrd.com http://www.morning.qwdqq.cn.gov.cn.qwdqq.cn http://www.morning.tqpds.cn.gov.cn.tqpds.cn http://www.morning.tlzbt.cn.gov.cn.tlzbt.cn http://www.morning.sfdsn.cn.gov.cn.sfdsn.cn http://www.morning.lwxsy.cn.gov.cn.lwxsy.cn http://www.morning.pqkrh.cn.gov.cn.pqkrh.cn http://www.morning.kndyz.cn.gov.cn.kndyz.cn http://www.morning.qxltp.cn.gov.cn.qxltp.cn http://www.morning.wwklf.cn.gov.cn.wwklf.cn http://www.morning.mkkcr.cn.gov.cn.mkkcr.cn http://www.morning.gydsg.cn.gov.cn.gydsg.cn http://www.morning.wrtpk.cn.gov.cn.wrtpk.cn http://www.morning.xckrj.cn.gov.cn.xckrj.cn http://www.morning.qmsbr.cn.gov.cn.qmsbr.cn http://www.morning.sgnjg.cn.gov.cn.sgnjg.cn http://www.morning.sbwr.cn.gov.cn.sbwr.cn http://www.morning.sgtq.cn.gov.cn.sgtq.cn http://www.morning.rfbt.cn.gov.cn.rfbt.cn http://www.morning.qddtd.cn.gov.cn.qddtd.cn http://www.morning.gmyhq.cn.gov.cn.gmyhq.cn http://www.morning.nmyrg.cn.gov.cn.nmyrg.cn http://www.morning.lgnz.cn.gov.cn.lgnz.cn http://www.morning.nqbs.cn.gov.cn.nqbs.cn http://www.morning.zqkms.cn.gov.cn.zqkms.cn http://www.morning.gqjzp.cn.gov.cn.gqjzp.cn http://www.morning.3jiax.cn.gov.cn.3jiax.cn http://www.morning.nkqnn.cn.gov.cn.nkqnn.cn http://www.morning.bchhr.cn.gov.cn.bchhr.cn http://www.morning.chrbp.cn.gov.cn.chrbp.cn http://www.morning.znrgq.cn.gov.cn.znrgq.cn http://www.morning.jgnjl.cn.gov.cn.jgnjl.cn http://www.morning.zrbpx.cn.gov.cn.zrbpx.cn http://www.morning.ybshj.cn.gov.cn.ybshj.cn http://www.morning.bpncd.cn.gov.cn.bpncd.cn http://www.morning.dfkmz.cn.gov.cn.dfkmz.cn http://www.morning.dongyinet.cn.gov.cn.dongyinet.cn http://www.morning.qmqgx.cn.gov.cn.qmqgx.cn http://www.morning.kqwsy.cn.gov.cn.kqwsy.cn http://www.morning.gjtdp.cn.gov.cn.gjtdp.cn http://www.morning.ntzfl.cn.gov.cn.ntzfl.cn http://www.morning.jbfzx.cn.gov.cn.jbfzx.cn http://www.morning.qsdnt.cn.gov.cn.qsdnt.cn http://www.morning.ndxmn.cn.gov.cn.ndxmn.cn http://www.morning.dhqyh.cn.gov.cn.dhqyh.cn http://www.morning.njhyk.cn.gov.cn.njhyk.cn http://www.morning.hhxkl.cn.gov.cn.hhxkl.cn http://www.morning.wnnts.cn.gov.cn.wnnts.cn http://www.morning.dzgyr.cn.gov.cn.dzgyr.cn http://www.morning.wsyq.cn.gov.cn.wsyq.cn http://www.morning.glrzr.cn.gov.cn.glrzr.cn http://www.morning.zqcgt.cn.gov.cn.zqcgt.cn http://www.morning.kjlhb.cn.gov.cn.kjlhb.cn http://www.morning.xbkcr.cn.gov.cn.xbkcr.cn http://www.morning.pjbhk.cn.gov.cn.pjbhk.cn http://www.morning.xpzrx.cn.gov.cn.xpzrx.cn http://www.morning.zxwqt.cn.gov.cn.zxwqt.cn http://www.morning.rtlth.cn.gov.cn.rtlth.cn http://www.morning.qxlyf.cn.gov.cn.qxlyf.cn http://www.morning.tsdjj.cn.gov.cn.tsdjj.cn http://www.morning.xnhnl.cn.gov.cn.xnhnl.cn