如何买域名发布网站,互联网广告投放公司,谷歌seo是什么,wordpress首页模板文件navigation是ROS的二维导航功能包#xff0c;简单来说#xff0c;就是根据输入的里程计等传感器的信息流和机器人的全局位置#xff0c;通过导航算法#xff0c;计算得出安全可靠的机器人速度控制指令。
代码库#xff1a;https://github.com/ros-planning/navigation
代…navigation是ROS的二维导航功能包简单来说就是根据输入的里程计等传感器的信息流和机器人的全局位置通过导航算法计算得出安全可靠的机器人速度控制指令。
代码库https://github.com/ros-planning/navigation
代码里文件较多进行梳理后如下图 map_server地图服务器主要功能是保存地图和导入地图。costmap_2d可以生产代价地图以及提供各种相关的函数。robot_pose_ekf扩展卡尔曼滤波器输入是里程计、IMU、VO中的任意两个或者三个输出是一个融合之后的pose。localization这里是两个定位用的package。fake_localization一般是仿真用的amcl才是实际定位用的package。nav_core这里面只有三个文件对应的是全局路径规划、局部路径规划、recovery_action的通用接口定义具体功能实现则是在各个对应的规划器package里。move_base这里实现的是整个导航的流程。什么时候调用全局路径规划、什么时候调用局部路径规划、什么时候调用recovery_action都是这个package管的。就是下图中间方框里做的事情可以说是整个navigation stack的核心。 总体框架图中可以看到
一、move_base
move_base提供了ROS导航的配置、运行、交互接口它主要包括两个部分
1 全局路径规划global planner根据给定的目标位置进行总体路径的规划.
在ROS的导航中首先会通过全局路径规划计算出机器人到目标位置的全局路线。这一功能是navfn这个包实现的。
navfn通过Dijkstra最优路径的算法计算costmap上的最小花费路径作为机器人的全局路线。将来在算法上应该还会加入A*算法。
2 本地实时规划local planner根据附近的障碍物进行躲避路线规划。
本地的实时规划是利用base_local_planner包实现的。该包使用Trajectory Rollout 和Dynamic Window approaches算法计算机器人每个周期内应该行驶的速度和角度dxdydtheta velocities。
base_local_planner这个包通过地图数据通过算法搜索到达目标的多条路经利用一些评价标准是否会撞击障碍物所需要的时间等等选取最优的路径并且计算所需要的实时速度和角度。
二、map_server map_server提供map_server ROS节点它提供地图数据作为一个ROS服务器。
也提供map_saver命令行功能能动态生成保存到文件中的地图。 包中通过工具操作的地图是以成堆的文件存储的。YAML文件描述地图的元数据并命名image文件。Image文件编码占用数据。
Image 以对应单元的颜色描述世界中每个单元的占用状态。白色单元格表示自由黑色单元格表示占用两种颜色之间的单元表示未知。接受彩色图像但颜色值平均为灰度值。
三、costmap_2d
costmap_2d包提供了一种2D代价地图的实现方案该方案从实际环境中获取传感器数据构建数据的2D或3D占用栅格取决于是否使用基于体素的实现以及基于占用栅格和用户定义膨胀半径的2D代价地图的膨胀代价。
该包也支持基于map_server初始化代价地图基于滚动窗口的代价地图以及基于参数化订阅和配置传感器主题。
costmap_2d包提供了一种可配置框架来维护机器人在占用栅格应该如何导航的信息。代价地图使用传感器数据和来自静态地图的信息通过costmap_2d :: Costmap2DROS对象来存储和更新实际环境中的障碍物信息。
初始化costmap_2d :: Costmap2DROS对象的方法主要有两种。
第一种是使用用户生成的静态地图进行初始化有关构建地图的文档请参阅map_server包。在这种情况下代价地图被初始化来匹配与静态地图提供的宽度高度和障碍物信息。这种方式通常与定位系统如AMCL结合使用允许机器人在地图坐标系注册障碍物并且当基座在环境中移动时可以根据传感器数据更新其代价地图。第二种是给出一个宽度和高度并将rolling_window参数设置为true。当机器人在移动时rolling_window参数将机器人保持在代价地图的中心。然而当机器人在给定区域移动得太远时障碍物信息将会被从地图中丢弃。这种方式的配置最常用于里程计坐标系中机器人只关注局部区域内的障碍物
四、robot_pose_ekf
Robot Pose EKF 包用于评估机器人的3D位姿基于来自不同来源的位姿测量信息。
它使用带有6D3D position and 3D orientation模型信息的扩展卡尔曼滤波器来整合来自轮式里程计IMU传感器和视觉里程计的数据信息。
基本思路就是用松耦合方式融合不同传感器信息实现位姿估计。
五、acml
amcl是一种机器人在2D中移动的概率定位系统。 它实现了自适应或KLD采样蒙特卡罗定位方法该方法使用粒子滤波器来针对已知地图跟踪机器人的位姿。 参考资料
https://blog.csdn.net/tansir94/article/details/83720740
http://wiki.ros.org/navigation
https://blog.csdn.net/bazinga_IIIIII/article/details/79369451
https://blog.csdn.net/jinking01/article/details/79455962
https://www.ncnynl.com/archives/201708/1911.html