ROS导航
文章平均质量分 65
_ONEtoONE_
这个作者很懒,什么都没留下…
展开
-
roscontrol学习笔记
0 概述一组包,包括控制器接口、控制器管理器、传输和硬件接口。1 overview输入:机器人编码器的关节状态数据、输入设定点功能:使用闭环控制器(如PID),控制输出(如扭矩)...翻译 2019-10-30 16:27:41 · 520 阅读 · 0 评论 -
tf中的常用类和函数
geometry_msgs::PoseStamped消息简介:内容包括序列号、时间戳、frameID、位姿(点表示位置和四元数表示姿态)tf::Transform和tf::pose完全一样,就是一个typedef类简介:储存了3×3旋转矩阵和3×1平移矢量。tf::StampedTransform类简介:保存stamped transform类型的数据。带有ROS时间戳、子坐标系、父坐标...原创 2019-01-15 11:11:56 · 1317 阅读 · 0 评论 -
teb优化轨迹流程
概述teb源码分析中,我大概了解到了teb算法的底层实现过程,涉及到弹性带定义、初始化、g2o优化、各种参数配置。但是我对于teb的轨迹优化流程不甚明了。弹性带轨迹存放在哪里?何时、如何初始化?何时优化?多久优化一次?如何将costmap的障碍进行表示?movebase多久调用一次teb?怀揣着这些问题,读源码了解调用流程。movebase对teb_local_planner_ros类功能的...原创 2019-02-23 17:26:14 · 8524 阅读 · 6 评论 -
navigation代码行数统计
概述仅仅是出于无聊,统计一下ros navigation代码行数。amclcostmap_2dnav_coremove_baseglobal_plannerteb_local_plannerdwa_local_plannerbase_local_plannermap_serverfake_localizationclear_costmap_recover...原创 2019-02-26 13:01:36 · 279 阅读 · 2 评论 -
ros stage仿真工具学习
概述ros的这个教程写的很不完善。1 stage controller介绍可以仿真机器人运动。2 开始一个turtlebot的仿真提到了一个turtlebot_stage包3 自定义stage仿真器四个文件:.png.world里面可以改变机器人的初始位姿,障碍的位置等.yaml.inc可以定义一些动态障碍的大小,传感器信息。定义机器人这两个文件的参数不同,必须对齐。在...翻译 2019-04-28 21:34:53 · 2058 阅读 · 0 评论 -
map_server简介
概述提供了map_server 节点,以服务的方式提供地图数据。也提供了命令行。1 地图格式yaml描述的是地图meta-data,并且命名了image文件。image文件编码了occupancy data。1.1 image 格式该图像以相应像素的颜色描述世界上每个单元的占用状态。1.2 yaml 格式image:image的路径resolution:地图分辨率 单位:met...翻译 2019-04-29 19:40:40 · 3120 阅读 · 0 评论 -
AMCL简介
概述amcl是一种机器人二维运动的概率定位系统。它实现了自适应(或kld采样)蒙特卡罗定位方法(如Dieter Fox所述),该方法使用粒子过滤器跟踪机器人对已知地图的姿态。1 算法只适用于激光扫描2 exampleamcl scan:=base_scan3 节点3.1 amcl3.1.1 订阅scan (sensor_msgs/LaserScan)tf (tf/tfMessa...翻译 2019-04-29 20:35:51 · 2385 阅读 · 0 评论 -
ROS pluginlib笔记
概述pluginlib可以用来创建和加载plugin。思想:pluginlib是一个用于从ROS包中加载和卸载插件的C++库。 插件是从运行时库(即共享对象,动态链接库)加载的动态可加载类。使用pluginlib,不必显式地将其应用程序与包含类的库链接。pluginlib可以在任何时候打开包含导出类的库,而应用程序不必预先知道库或包含类定义的头文件。插件可用于扩展/修改应用程序行为,...翻译 2019-05-05 17:13:18 · 398 阅读 · 0 评论 -
导航recovery机制
概述recovery机制是当移动机器人认为自己被卡住时,指导机器人进行一系列的恢复行为。1 恢复机制如图:move_base节点可以在机器人认为自己被卡住时选择性地执行恢复行为。默认情况下,move_base节点将采取以下操作来清除空间:首先,用户指定区域以外的障碍物将从机器人的地图上清除。接下来,如果可能的话,机器人将进行原地旋转以清除空间。如果这也失败了,机器人将更积极地清除地图,...原创 2019-01-14 18:43:19 · 2597 阅读 · 0 评论 -
costmap2D数据结构及生成过程
概述前一篇源码分析,让我了解到了costmap_2d包类的具体功能。但costmap2d包的到底整体包含什么地图数据?如何维护地图数据?何时调用各层更新?何时聚合?这些问题还不甚明了。这篇对costmap2d维护的地图数据、更新过程做一个总结。地图数据结构‘如中序号对应了地图生成过程的步骤,可能不全,但是已经对地图的数据有了清晰的认识。地图生成过程move_base类的构造函数,调用了...原创 2019-01-18 23:51:38 · 1095 阅读 · 0 评论 -
move_base源码学习
综述这个类调用actionlib::ActionServer接口接受目标,然后将小车导航到目标位置。move_base类公有接口MoveBase ():初始化类成员,通过模板化的插件构造全局、局部规划器。基于传感器数据,激活全局与局部costmap。提供了ros服务:“make_plan”,“clear_costmaps”提供动态参数配置。回调函数void MoveBase::go...原创 2018-12-27 10:37:41 · 951 阅读 · 0 评论 -
teb_localplanner源码学习
概述teb_localplanner是以优化的方法进行局部导航的软件包。基于timed elastic band 方法进行轨迹生成。考虑了运动时的轨迹执行时间、避障、动力学的界约束等条件。此笔记是对teb包的源代码进行学习的一个记录。teb包的类继承图1、teb中的g2o类型利用doxywizard+graphiz对包进行解析,查看类继承图teb的优化问题的解决利用了开源软件包g2o,先...原创 2018-12-23 16:05:16 · 10445 阅读 · 0 评论 -
ros::nodehandle常规操作
ros::nodehandle::param(const std::string & param_name,T & param_val,const T & default_val )此方法尝试从参数服务器检索指示的参数值,并将结果存储在param_val中。 如果无法从服务器检索该值,则使用default_val。param_name:参数服务器中的参数名par...原创 2018-12-24 20:16:31 · 4724 阅读 · 0 评论 -
actionlib常规操作
actionlib::ActionServer< ActionSpec >::ActionServer ( ros::NodeHandle n,std::string name,boost::function< void(GoalHandle)> goal_cb,boost::function< void(GoalHandle)> cancel_c...原创 2019-01-15 11:09:32 · 457 阅读 · 0 评论 -
nav_core包源码学习
简介gav_core包里面只有四个头文件,规定了导航核心功能包必须有的接口。四个头文件中:三个虚基类:BaseGlobalPlanner、BaseLocalPlanner、RecoveryBehavior函数:loadParameterWithDeprecation加载ros参数服务器中的参数。BaseGlobalPlanner类1、虚函数initialize:需实现功能:设定全局规...原创 2019-01-06 14:52:27 · 352 阅读 · 0 评论 -
costmap_2d包源码学习
0 概述该软件包订阅现实世界的传感器数据,实现2d栅格costmap。该软件包还支持基于map_server的costmap初始化,基于滚动窗口的costmaps,以及基于参数的订阅和传感器主题的配置。0.1 层次分为三层:staticlayer,obstaclelayer,inflationlayer。0.2 基础cost值每个单元分为三个状态。Occupied(costmap_2d...原创 2019-01-18 23:47:00 · 1959 阅读 · 1 评论 -
global_planner源码学习
简介global_planner负责全局规划,主要利用了A*算法和Dijkstra算法。提供了makeplan接口做全局规划。可以发布geometry_msgs::PoseStamped类型的信息。类简介原创 2019-01-07 20:13:33 · 1152 阅读 · 0 评论 -
ROS Navigation -- base_local_planner
ROS Navigation – base_local_planner概述ROS Navigation – base_local_planner使用算法:trajectory Rollout and Dynamic Window approaches。输入:全局规划、costmap输出:速度命令适用对象:全向和非全向机器人轮廓:凸多边形或者圆形概述Trajectory Rollou...翻译 2018-10-12 21:13:09 · 726 阅读 · 0 评论