当前位置: 首页 > news >正文

网站建化网站发布文章怎么才能让百度收录

网站建化,网站发布文章怎么才能让百度收录,温州网站网站建设,百度竞价运营文章目录 一、rrt_exploration 介绍1、原理2、主要思想3、拟解决的问题4、优缺点 二、安装环境三、安装与运行1、安装2、运行 四、配置说明1、Robots Network2、Robots frame names in tf3、Robots node and topic names4、Setting up the navigation stack on the robots5、A … 文章目录 一、rrt_exploration 介绍1、原理2、主要思想3、拟解决的问题4、优缺点 二、安装环境三、安装与运行1、安装2、运行 四、配置说明1、Robots Network2、Robots frame names in tf3、Robots node and topic names4、Setting up the navigation stack on the robots5、A mapping node6、A map merging node 五、节点介绍1、global_rrt_frontier_detector1.1. 参数1.2. 订阅的主题1.3. 发布的主题 2、local_rrt_frontier_detector2.1. 参数2.2. 订阅的主题2.3. 发布的主题 3、frontier_opencv_detector3.1. 参数3.2. 订阅的主题3.3. 发布的主题 4、filter4.1. 参数4.2. 订阅的主题4.3. 发布的主题 5、Assigner5.1. 参数5.2. 订阅的主题5.3. 发布的主题 六、分析 一、rrt_exploration 介绍 rrt_exploration 是一个 ROS 软件包用于实现基于 RRTrapidly exploring random tree 的多机器人地图探索算法。它还具有基于图像的边界检测功能可使用图像处理来提取边界点。 rrt_exploration 是一个 ROS 软件包为移动机器人实现了一种多机器人地图探索算法。它基于快速探索随机树RRT算法。该软件包有 5 个不同的 ROS 节点 全局 RRT 边界点检测器节点Global RRT frontier point detector node.局部 RRT 边界点检测器节点Local RRT frontier point detector node.过滤器节点Filter node.分配器节点Assigner node.基于 opencv 的边界点检测器节点opencv-based frontier detector node. 1、原理 该包的基本原理是基于2D的通常采用图像算法的边缘检测来检测已知区域与未知区域的边界。基于Rapidly-exploring Random Trees的探索策略。由于RRT基本上是朝向未知区域的unexplored and unvisited并且RRT可以扩展到更高维区域。同时采用 local tree 与 global tree 来检查边缘点使得机器人的 exploration 更加高效。 一旦检测到边缘后就会取其中心为目标点然后让机器人去探索该点。而为了检测边缘点需要对整张地图进行处理而这个操作通常是耗时的为此大量的研究人员focus在检测 frontier edges 的效率上。 本包中RRT树只是用于search边缘点而检测到的边缘点经过滤波就会依次安排给机器人。当机器人接收到 point 时就会运动到对应的点。在此期间机器人上的传感器将会扫描建图。 而通过多个独立的RRT树来加速边缘点的检测则是本包的创新点。 2、主要思想 RRT算法是一种树型算法它由一个起始点 Xinit 作为树的起始节点根节点然后从这个起始点进行随机生长通过随机采样增加叶子节点 Xnew 的方式生成一个随机扩展树当随机树中的叶子节点包含了目标点或进入了目标区域便从随机树中找到一条由从初始点到目标点的路径。 3、拟解决的问题 在一个未知环境中使机器人快速对环境进行建模。使机器人在一个未知环境中到达目标点。 4、优缺点 1优点 适合多维空间 可以使机器人能够快速有效地搜索高维空间从而实现对目标点的路径规划。原理简单适用性强无需预知环境也可完成对机器人的路径规划。快速提取地图的边界点双边界点探测器局部全局提高探索效率和灵活性 2缺点 路径规划的效果受规划时间、地形复杂程度以及生长步长的影响而且规划好的路径不一定是最优路径。对于具有狭窄通道和狭窄入口的区域RRT生长困难探索效率低探索过程的后期RRT生长缓慢。 二、安装环境 该软件包已在 ROS Kinetic 和 ROS Indigo 上进行过测试在其他发行版如 Jade上也能正常运行。安装软件包前需要满足以下要求 已经安装了 ROS 发行版indigo 或更高版本推荐使用 indigo 或 kinetic。创建一个工作区。安装 “gmapping” ROS package在 Ubuntu 上如果运行的是 ROS Kinectic可以在终端键入以下命令$ sudo apt-get install ros-kinetic-gmapping安装 ROS navigation stack。使用以下命令即可完成假设使用 Ubuntu 和 ROS Kinetic$ sudo apt-get install ros-kinetic-navigationPython 2.7未在 Python 3 上测试。应安装以下 Python 模块 OpenCV (cv2)$ sudo apt-get install python-opencv Numpy$ sudo apt-get install python-numpy Sklearn$ sudo apt-get install python-scikits-learn 三、安装与运行 1、安装 下载软件包并将其放在工作区的 /src 文件夹中。然后使用 catkin_make 进行编译。 $ git clone https://github.com/hasauino/rrt_exploration.git编译 $ catkin_make2、运行 运行命令 $ roslaunch rrt_exploration single.launch 注意要开启 move_base 如果使用一个 launch 文件则该文件中需要包含3个内容 ① rrt_exploration ② move_base ③ gmapping其他建图算法也可以 例如rrt_slam.launch 文件 launchinclude file$(find rrt_exploration)/launch/simple.launch/ include file$(find slam)/launch/gmapping.launch/ node pkgrviz typerviz namerviz/node pkgmove_base typemove_base respawnfalse namemove_base_node outputscreenparam namefootprint_padding value0.01 /param namecontroller_frequency value5.0 /param namecontroller_patience value3.0 /param nameoscillation_timeout value30.0 /param nameoscillation_distance value0.5 /param nameplanner_patience value1 /param namecontroller_patience value1 / param namerecovery_behavior_enabled valuefalse /rosparam file$(find slam)/config/costmap_common_params.yaml commandload nsglobal_costmap /rosparam file$(find slam)/config/costmap_common_params.yaml commandload nslocal_costmap /rosparam file$(find slam)/config/local_costmap_params.yaml commandload /rosparam file$(find slam)/config/global_costmap_params.yaml commandload /rosparam file$(find slam)/config/base_local_planner_params.yaml commandload /param nameglobal_costmap/global_frame value/map/param nameglobal_costmap/robot_base_frame value/base_link/param nameglobal_costmap/laser_scan_sensor/sensor_frame value/base_scan/param nameglobal_costmap/laser_scan_sensor/topic value/scan/ param namelocal_costmap/global_frame value/map/param namelocal_costmap/robot_base_frame value/base_link/param namelocal_costmap/laser_scan_sensor/sensor_frame value/base_scan/param namelocal_costmap/laser_scan_sensor/topic value/scan/param namelocal_costmap/obstacle_layer/laser_scan_sensor/topic value/scan/remap fromcmd_vel tocmd_vel//node /launch注将 slam 改成自己的文件名称 这里还可能出现一个问题运行之后发现小车并没有运动查看/cmd_vel也没有数据出现这个问题的原因就在于目前 move_base 无法和 rrt_exploraiton 连接。也就是 name“move_base_node” 这一段的问题。 rrt_exploration 作者给的文件 filter.py、functions.py 中是根据 name“move_base_node” 来写代码的但大部分 ros 都是使用 move_base 这个命名而作者的源代码采用的是 move_base_node而且没有在 launch 文件中给出接口来更改 move_base 的命名因此大部分人在使用 rrt_exploration 的时候会发现move_base 无法和 rrt_exploraiton 连接导致自主探索功能失败有两种解决办法 在launch文件中将 move_base 节点命名为 move_base_node。 在源代码中修改 move_base_node 名。 1functions.py /move_base_node/NavfnROS/make_plan 改为 /move_base/NavfnROS/make_plan 2filter.py ‘/move_base_node/global_costmap/costmap’ 改为 ‘/move_base/global_costmap/costmap’ 改好后重新编译运行就可以了。 运行成功的节点图 四、配置说明 本软件包为单个或多个机器人提供了探索策略。不过要让它发挥作用必须使用 navigation stack 设置好机器人。此外还必须按照以下步骤设置和准备机器人。 注如果您想快速运行并测试该程序包可以尝试使用 rrt_exploration_tutorials 程序包它提供了单个和多个机器人的 Gazebo 仿真您可以直接使用它来运行该程序包。 1、Robots Network 对于多机器人配置该软件包不需要特殊的网络配置只需有一个 ROS 主控器可以是其中一个机器人即可工作。因此在其他机器人上ROS_MASTER_URI 参数应指向主控器的地址。有关在多台机器上设置 ROS 的更多信息请点击此链接。 2、Robot’s frame names in tf 所有机器人框架都应以名称为前缀。机器人的命名从/robot_1、“/robot_2”、/robot_3 开始以此类推。即使是为单个机器人使用软件包机器人的框架也应该以其名称为前缀即 /robot_1。因此对于 robot_1tf 树中的帧应如下所示 3、Robot’s node and topic names 机器人上运行的所有节点和主题也必须以其名称为前缀。对于 robot 1节点名称应如下所示 /robot_1/move_base_node、/robot_1/slam_gmapping。 主题名称应为 /robot_1/odom, /robot_1/map, /robot_1/base_scan, …等等。 4、Setting up the navigation stack on the robots 必须运行 move_base_node 节点该节点用于在机器人上建立 navigation stack。这个软件包rrt_exploration会生成目标探索点每个机器人都必须能够接收这些点并向其移动。这就是需要 navigation stack 的原因。此外每个机器人都必须有一个全局和局部成本地图。所有这些都由 move_base_node 生成。 5、A mapping node 每个机器人都应该有一个由 gmapping 软件包生成的本地地图。 6、A map merging node 在多机器人情况下应该有一个节点能将所有本地地图合并成一个全局地图。您可以使用这个软件包。 五、节点介绍 rrt_exploration 共有 3 种模块 基于RRT的边界检测模块负责检测边界点滤波模块存储边界点并通过mean shift算法来聚类检测出无效以及旧的边界点task allocator模块接收到滤波模块传来的边界点后分配到机器人 本包还需要与 SLAM 及 path planning 模块相结合来使用 下图显示了 rrt_exploration 模块结构 1、global_rrt_frontier_detector global_rrt_frontier_detector 节点接收一个占用网格并在其中寻找边界点即探索目标。它发布检测到的点以便过滤节点进行处理。在多机器人配置中该节点只运行一个实例。 如果需要运行额外的全局边界探测器实例可以提高边界点的探测速度。 1.1. 参数 ~map_topic 字符串默认为 “/robot_1/map” 该参数定义节点接收地图的主题名称。~eta 浮点数默认值0.5 该参数控制用于检测边界点的 RRT 增长率单位为米。该参数应根据地图的大小来设置数值越大树的生长速度越快因此检测边界点的速度也越快但生长速度过大也意味着树会遗漏地图中的小角落。 1.2. 订阅的主题 map主题名称由 ~map_topic 参数定义nav_msgs/OccupancyGridclicked_pointgeometry_msgs/PointStamped Message global_rrt_frontier_detector 节点需要定义要探索的区域。本主题是节点接收定义区域的五个点的地方。前四个点定义了要探索的正方形区域四个点需要能构成封闭图形顺逆时针发布都行最后一个点是树的起点。在此主题上发布这五个点后RRT 将开始检测边界点。这五个点可以通过 Rviz 上的 Publish Point 按钮发布。 1.3. 发布的主题 detected_points geometry_msgs/PointStamped Message 节点发布检测到的边界点的主题。~shapes visualization_msgs/Marker Message 节点在此主题上发布线形以便使用 Rviz 可视化 RRT。 2、local_rrt_frontier_detector 该节点与 global_rrt_frontier_detector 类似。但是它的工作方式有所不同因为每次检测到一个边界点时这里的树都会不断重置。该节点与 global_rrt_frontier_detector 节点同时运行负责快速检测机器人附近的边界点。 在多机器人配置中每个机器人运行一个 local_rrt_frontier_detector 实例。因此对于一个由 3 个机器人组成的团队将有 4 个节点用于检测边界点3 个本地检测器和 1 个全局检测器。如果需要运行额外的本地边界探测器实例可以提高边界点的检测速度。 所有检测器都将在同一主题/detected_points上发布检测到的边界点。 2.1. 参数 ~robot_frame 字符串默认为 “/robot_1/base_link”与机器人相连的框架。每次树重置时都会从该帧获取的当前机器人位置开始。~map_topic 字符串默认值“/robot_1/map” 该参数定义节点接收地图的主题名称。~eta 浮点数默认值0.5 该参数控制本地 RRT 的增长率。 2.2. 订阅的主题 map主题名称由 ~map_topic 参数定义nav_msgs/OccupancyGrid。clicked_pointgeometry_msgs/PointStamped Message 与 global_rrt_frontier_detector 类似lobal_rrt_frontier_detector 也会订阅此主题。 2.3. 发布的主题 detected_points geometry_msgs/PointStamped Message 节点发布检测到的边界点的主题。~shapes visualization_msgs/Marker Message 节点在此主题上发布线形以便使用 Rviz 可视化 RRT。 3、frontier_opencv_detector 该节点是另一个边界检测器但不是基于 RRT。该节点使用 OpenCV 工具检测边界点。它可以单独运行在多机器人配置中只需运行一个实例运行该节点的其他实例不会产生任何影响。 最初实施该节点是为了与基于 RRT 的边界点检测器进行比较。在运行 RRT 探测器局部和全局的同时运行该节点可以提高边界点的探测速度。 注意您可以运行任何类型和数量的探测器所有探测器都将发布在过滤器节点将在下一节中解释订阅的同一主题上。另一方面过滤器将把过滤后的边界点传递给分配器以便命令机器人探索这些点。 3.1. 参数 ~map_topic 字符串默认为/robot_1/map 该参数定义了节点接收地图的主题名称。 3.2. 订阅的主题 map主题名称由 ~map_topic 参数定义 (nav_msgs/OccupancyGrid) 3.3. 发布的主题 detected_points geometry_msgs/PointStamped Message 节点发布检测到的边界点的主题。shapesvisualization_msgs/Marker Message 节点在此主题上发布检测到的点以便使用 Rviz 可视化。 4、filter 过滤节点从所有探测器接收检测到的边界点对这些点进行过滤然后将它们传递给分配节点由分配节点指挥机器人。过滤包括删除旧点和无效点以及删除冗余点。 4.1. 参数 ~map_topic 字符串默认为/robot_1/map 该参数定义了节点将接收地图的主题名称。地图用于了解哪些点不再是边界点旧点。~costmap_clearing_threshold 浮点数默认值70.0 占用率值大于此阈值的任何边界点都将被视为无效点。占用率值从成本地图中获取。~info_radiusfloat, 默认值1.0 用于计算边界点信息增益的信息半径。~goals_topic 字符串默认值“/detected_points”定义节点接收边界点检测结果的主题。~n_robots浮点数默认值1.0 机器人数量~rate(float默认100)节点循环速率单位Hz。 4.2. 订阅的主题 map主题名称由 ~map_topic 参数定义nav_msgs/OccupancyGrid。robot_x/move_base_node/global_costmap/costmap (nav_msgs/OccupancyGrid)其中 x在 robot_x 中指机器人编号。 过滤器节点订阅所有机器人的所有成本计算主题因此需要成本计算。通常情况下成本图应由 navigation stack 发布在机器人上调出 navigation stack 后每个机器人都会有一个成本图。例如如果 n_robots2节点将订阅robot_1/move_base_node/global_costmap/costmap 和 robot_2/move_base_node/global_costmap/costmap。代价图用于删除无效点。 注意与机器人相对应的所有节点的命名空间都应以 robot_x 开头。x 代表机器人编号。 goals topic主题名称由 ~goals_topic 参数定义(geometry_msgs/PointStamped Message) 过滤节点接收检测到的边界点的主题。 4.3. 发布的主题 frontiersvisualization_msgs/Marker Message 过滤节点将接收到的边界点发布到 Rviz 上进行可视化的主题。centroidsvisualization_msgs/Marker Message过滤节点将接收到的边界点发布到 Rviz 上进行可视化的主题 过滤节点仅将过滤后的边界点发布到 Rviz 上进行可视化的主题。filtered_pointsPointArray 所有过滤后的点都会以点数组的形式发送到此主题上的分配器节点。 5、Assigner 该节点接收目标探索目标即过滤器节点发布的经过过滤的边界点并据此对机器人发出指令。分配器节点通过 move_base_node 命令机器人。这就是在机器人上设置 navigation stack 的原因。 5.1. 参数 ~map_topic 字符串默认为/robot_1/map 该参数定义了节点接收地图的主题名称。在单机器人情况下该主题应设置为机器人的地图主题。在多机器人情况下该主题必须设置为全局合并地图。~info_radiusfloat, 默认值: 1.0 用于计算边界点信息增益的信息半径。~info_multiplier(float, 默认值3.0)单位为米。该参数用于重视边界点的信息增益而不是成本到边界点的预期旅行距离。~hysteresis_radiusfloat, 默认值3.0 单位为米。该参数定义滞后半径。~hysteresis_gainfloat, 默认值2.0滞后半径 单位为米。该参数定义磁滞增益。~frontiers_topic 字符串默认值“/filtered_points” 分配器节点接收过滤边界点的主题。~n_robots浮点数默认值1.0 机器人数量。~delay_after_assignementfloat, 默认值0.5单位为秒。它定义了每次机器人分配后的延迟时间。~ratefloat默认值100节点循环速率单位 Hz。 5.2. 订阅的主题 map主题名称由 ~map_topic 参数定义nav_msgs/OccupancyGrid。Filtered frontier points topic主题名称由 ~frontiers_topic 参数定义PointArray。 5.3. 发布的主题 分配节点不会发布任何信息。它使用 actionlib 将指定的点发送到 move_base_node指定节点是 move_base_node actionlib 服务器的 actionlib 客户端。 六、分析 关于 global 与 local detector 当检测到一个边界点时local detector 会 reset并且会基于机器人当前的位置重新生长。这带来两个好处 1、检测边界点更快。因为机器人总是会向着边界点移动而如果RRT树从机器人当前的位置开始那么它到达未知区域的概率更高。 2、机器人可能会miss掉一些地图上边角的小的边界点而为了解决这个问题就通过global detector。但随着地图的变大global detector会越来越慢或者说随着树的变大exploration会变慢为此需要local detector 关于assigner其基于以下几个要素来分配机器人导航的目标点 1、Navigation cost 2、Information gain 参考 https://github.com/hasauino/rrt_explorationhttp://wiki.ros.org/rrt_exploration论文Autonomous robotic exploration based on multiple rapidly-exploring randomized treesROS仿真笔记之——基于rrt_exploration的单个机器人自主探索建图http://wiki.ros.org/rrt_exploration/Tutorials/singleRobot基于rrt_exploration实现自主建图rosROS移动机器人基于RRT快速探索随机树算法 rrt_exploration实现真实机器人自主探索建图
http://www.pierceye.com/news/810007/

相关文章:

  • wordpress建站网站根目录短视频怎么赚钱
  • 亳州网站开发公司wordpress 添加分享
  • 如何查询网站接入信息移动网站开发框架
  • 河南做网站的百度竞价推广收费标准
  • 深圳的深圳的网站建设公司校园网站建设方向
  • 电商网站建设 解决方案的设计营销策略都有哪些方面
  • 菏泽网站建设兼职凡科网制作网站教程
  • 实验一 电子商务网站建设与维护北京网站设计培训学校
  • 周到的网站建设合肥建筑网站大全
  • 国外互联网资讯网站南宁网站制作费用
  • 建设公司网站要注意哪些蜜雪冰城推广软文
  • 做信息安全的网站博客网站的建设
  • 门户网站建设项目书提升学历是什么意思
  • 上海网站建设极简慕枫塘沽有哪些互联网公司
  • 社区网站如何做官方网站建设哪儿有
  • 做兼职的网站策划书大连中山网站建设
  • 中国摄影网站深圳网站建设龙华
  • 个人网站怎么建立深圳网站建站费用
  • 笔趣阁建站教程网页设计 网站建设啥意思
  • 海门网站开发西安响应式网站建设服务提供商
  • 自适应网站建站哈尔滨市建设安全监察网站
  • nas服务器可以做网站吗电商类网站开发方案
  • 免费的个人的网站网站建设 考虑
  • 医院网站建设的目的高端网站有哪些优势
  • 佛山网站建设首选如何备份wordpress
  • 优化稳定网站排名网站建设需要学什么语言
  • 可以做设计私单的网站硬件开发工程师面试
  • 竞价网站单页网页设计师中级证书有用吗
  • 做网站 简单外包wordpress 插件api
  • 白城网站seo新手怎么建立自己网站