![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
ROS_Navigation学习
文章平均质量分 85
学习Navigation中遇到的问题以及总结。
LoveBc0214
记录学习,相互交流。
多机器人系统规划、Navigation、移动机器人、自动驾驶
展开
-
ros Navigation DWA学习
参考博客ROS 源码阅读——局部路径规划之DWAPlannerROS分析dwa_planner_ros.cpp中的computeVelocityCommands()函数是计算最后的速度指令的。在函数中,首先得到机器人位置,然后得到全局路径映射后的局部路径,然后由dp_.updatePlanAndLocalCosts()更新打分,然后判断是否到达目标附近,是的话调用停止的函数发布速度,否则调用dwaComputeVelocityCommands计算速度。dp_.updatePlanAndLocalCos原创 2021-08-18 17:19:34 · 636 阅读 · 0 评论 -
costmap_2d第二次阅读理解(源码第二次看确实会有新的认识)
流程costmap_2d_node 中 创建一个costmap2DROS 的对象,在costmap_2DROS的构造函数中会调用reconfigureCB 函数,reconfigureCB函数有map_update_thread_的线程,会启用 mapUpdateLoop函数,在这里对象 publisher_会发布代价地图layered_costmap_ 是类LayeredCostmap的实例化对象LayeredCostmap 实例化不同的层插件并将它们聚合为一层的类。layered_costmap原创 2021-07-31 10:15:52 · 737 阅读 · 0 评论 -
动态行人仿真pedsim_ros使用及总结(因在gazebo中模型并不自然拟人,放弃)
参考: pedsim文件介绍项目地址: pedsim_ros具体的如何编译测试在github上都有介绍。下面介绍如何在自己建立的环境中增加动态行人。修改.world文件在自己的world文件下加入以下代码块<plugin name="ActorPosesPlugin" filename="libActorPosesPlugin.so"> </plugin>修改后为:<plugin name="ActorPosesPlugin" filename原创 2020-11-11 22:32:39 · 2761 阅读 · 6 评论 -
ROS中Plugin插件学习
ROS 的Plugin官方文档是以polygon为例。本文以global_planner和 carrot_planner为例。在Navgation 中。global_planner 是基类nav_core :: BaseGlobalPlanner的一个插件子类。同时也提供了另外一个carrot_planner子类。以carrot_planner子类为例。首先在自己创建的功能包中的导出类的cpp文件的起始位置加入:(global_planner中就是planner_core.cpp文件)PLUGINLI原创 2020-09-29 12:12:19 · 779 阅读 · 0 评论 -
Navigation中A*算法源码解释
A*算法原理A*算法原理在之前的文章中也有提到,这次主要就是和Navigation中对应起来。A*算法原理A*源码示例图nx_ = 6, ny_ = 6;其中A为起始点,(1,2)。B为goal_i 为(4,4)。calculatePotential 函数是对堆中Pentential值最小的索引值取出,然后进行下一次的更新。其中toIndex函数返回值为 start_x + nx_*start_y; 即索引 queue_.clear(); //首先将堆清空 //x,y点是全部数据的第几原创 2020-09-08 20:00:45 · 1767 阅读 · 4 评论 -
ROS-Navigation学习(4)—global_palnner学习(2)
plan_node.cppplanner的入口部分如下,主要部分是class::plannerWithCostmap的构造函数 int main(int argc, char** argv) { ros::init(argc, argv, "global_planner"); tf::TransformListener tf(ros::Duration(10)); costmap_2d::Costmap2DROS lcr("costmap", tf); glo原创 2020-09-06 16:44:24 · 928 阅读 · 0 评论 -
ROS-Navigation学习(4)——global_planner学习
框架global_planner规划器的整体框架如下参考:https://zhuanlan.zhihu.com/p/46212318A*算法的原理讲解,A*算法这个是自己看到的网上很多的一篇。讲的也的确很棒。Dijkstra算法原理:Dijkstra由于之前A*和Dijkstra算法基于栅格的路线不会比较光滑,但是在navigation中有基于梯度势场的,这样会使得其比较光滑。所以想对比一下GridPath::getPath 和 GradientPath::getPath这两个程序中算法区别(之原创 2020-08-16 20:59:01 · 1711 阅读 · 3 评论 -
ROS-Navigation学习(一)——对整体功能包的认识
#下载Navigation功能包sudo apt-get install https://github.com/ros-planning/navigation原创 2020-07-22 10:50:13 · 1015 阅读 · 0 评论