ros navigation stack---move_base
大部分内容参考自:
ros_by_example_hydro_volume_1.pdf
主要是讲如何让先锋机器人在空白地图上运动
上面图是navigation框架图,可以看到move_base处在核心地位
move_base这个包由许多组件组成
详细看:
http://wiki.ros.org/move_base?distro=kinetic
component apis部分
/map提供全局地图
/tf提供当前全局位姿
“odom”topic提供机器人速度与角速度,这个在DWA(动态窗口法)中会用到,
因为动态窗口法是使用当前机器人速度与角速度推断一段时间后轨迹看看会不会与障碍物相碰
sensor topics 还没有弄明白点云是怎么转换成cost_map
如何使用move_base:
move_base这个包启动后会同时启用
global_planner:参数配置链接:http://wiki.ros.org/global_planner?distro=kinetic
local_planner:参数配置链接:http://wiki.ros.org/base_local_planner?distro=kinetic
global_costmap:参数配置链接:http://wiki.ros.org/costmap_2d
local_costmap:参数配置链接:http://wiki.ros.org/costmap_2d
参数文件配置范例参考:ros by example volume1 中 8.1.2小节
其中planner可以通过设置move_base参数
http://wiki.ros.org/move_base?distro=kinetic
~base_global_planner (string, default: "navfn/NavfnROS" For 1.1+ series)
- The name of the plugin for the global planner to use with move_base, see pluginlib documentation for more details on plugins. This plugin must adhere to the nav_core::BaseGlobalPlanner interface specified in the nav_core package. (1.0 series default: "NavfnROS")
~base_local_planner (string, default: "base_local_planner/TrajectoryPlannerROS" For 1.1+ series)
- The name of the plugin for the local planner to use with move_base see pluginlib documentation for more details on plugins. This plugin must adhere to the nav_core::BaseLocalPlanner interface specified in the nav_core package. (1.0 series default: "TrajectoryPlannerROS")
比如要使用别的local planner
http://wiki.ros.org/nav_core#BaseLocalPlanner
上面链接有说明哪些现成local planner可以用
比如用eband_local_planner
http://wiki.ros.org/eband_local_planner
<node pkg="move_base" type="move_base" name="move_base">
<param name="base_local_planner" value="eband_local_planner/EBandPlannerROS"/>
...
</node>
就可以在move_base使用使用eband_local_planner了
move_base默认使用base_local_planner
这个可以在
~base_local_planner (string, default: "base_local_planner/TrajectoryPlannerROS" For 1.1+ series)
中看出来
指定了planner之后就可以到对应页面参考参数设置了
之后是一个例子,实现局部路径规划(避障)
因为不需要全局cost_map,所以将/odom和/map固定在一块,用/odom tf来进行定位
两个launch file
这个launch file是启动先锋机器人驱动
<launch>
<!--launch driver-->
<node pkg="rosaria" type="RosAria" name="RosAria">
<param name="port" value="/dev/ttyUSB0" />
</node> <!-- Launch move_base and load all navigation parameters -->
<include file="$(find pioneer_zed)/launch/pioneer_move_base.launch" /> <!-- Run the map server with a blank map -->
<node name="map_server" pkg="map_server" type="map_server" args="$(find pioneer_zed)/maps/blank_map.yaml" /> <!-- Run a static transform between /odom and /map -->
<node pkg="tf" type="static_transform_publisher" name="odom_map_broadcaster" args="0 0 0 0 0 0 /map /odom 100" /> </launch>
这个launch file是move_base配置
<launch> <node pkg="move_base" type="move_base" respawn="false" name="move_base" output="screen" clear_params="true">
<remap from="/cmd_vel" to="/RosAria/cmd_vel"/>
<rosparam file="$(find pioneer_zed)/config/costmap_common_params.yaml" command="load" ns="global_costmap" />
<rosparam file="$(find pioneer_zed)/config/costmap_common_params.yaml" command="load" ns="local_costmap" />
<rosparam file="$(find pioneer_zed)/config/local_costmap_params.yaml" command="load" />
<rosparam file="$(find pioneer_zed)/config/global_costmap_params.yaml" command="load" />
<rosparam file="$(find pioneer_zed)/config/base_local_planner_params.yaml" command="load" />
</node> </launch>
ros navigation stack---move_base的更多相关文章
- ros navigation stack 各个包的作用
nav_core 该包定义了整个导航系统关键包的接口函数,包括base_global_planner, base_local_planner以及recovery_behavior的接口.里面的函数全是 ...
- ROS naviagtion analysis: move_base
博客转载自:https://blog.csdn.net/u013158492/article/details/50483123 这是navigation的第一篇文章,主要通过分析ROS代码级实现,了解 ...
- Roomblock: a Platform for Learning ROS Navigation With Roomba, Raspberry Pi and RPLIDAR(转)
What is this? "Roomblock" is a robot platform consists of a Roomba, a Raspberry Pi 2, a ...
- while an existing transition or presentation is occurring; the navigation stack will not be updated
使用UIAlertController提示信息,在之后使用navigation进行逻辑跳转时,出现popToViewController:transition: called on <UINav ...
- ROS Navigation中的map_server地图包功能和使用
博客参考 http://wiki.ros.org/map_server 和 https://www.ncnynl.com/archives/201708/1897.html 1. 安装map_serv ...
- Ionic3错误记录:navigation stack needs at least one root page
BUG场景:在 ActionSheetController 使用modalCtrl.create 创建模态框时报如下错误 原代码片段 解决方式: 重新设置root page
- ROS机器人程序设计(原书第2版)补充资料 (捌) 第八章 导航功能包集入门 navigation
ROS机器人程序设计(原书第2版)补充资料 (捌) 第八章 导航功能包集入门 navigation 书中,大部分出现hydro的地方,直接替换为indigo或jade或kinetic,即可在对应版本中 ...
- ROSCon 2016视频和幻灯片发布 ROS机器人操作系统重要参考资料
ROSCon 2016视频和幻灯片发布 By Tully Foote on 十月19,2016 7:28 AM 全部PPT下载地址:http://pan.baidu.com/s/1gf2sn2F RO ...
- ROS-2 : ROS系统层级结构
一.ROS文件系统层级 ROS的文件和文件夹按如下层级来组织:
随机推荐
- P3818 小A和uim之大逃离 II(洛谷月赛)
P3818 小A和uim之大逃离 II 题目背景 话说上回……还是参见 https://www.luogu.org/problem/show?pid=1373 吧 小a和uim再次来到雨林中探险.突然 ...
- 03019_过滤器Filter
1.Filter的简介 (1)Filter是对客户端访问资源的过滤,符合条件放行,不符合条件不放行,并且可以对目标资源访问前后进行逻辑处理: (2)快速入门步骤 ①编写一个过滤器的类实现Filter接 ...
- 顺序查找&二分查找&索引查找
1.查找技术的分类.如下图: 2.什么是顺序查找呢?(无序表) 顺序查找的原理很简单,就是遍历整个列表,逐个进行记录的关键字与给定值比较,若某个记录的关键字和给定值相等,则查找成功,找到所查的记录.如 ...
- javascript类式继承模式#4——共享原型
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- 【Count Complete Tree Nodes】cpp
题目: Given a complete binary tree, count the number of nodes. Definition of a complete binary tree fr ...
- 最短路径(Floyd法)
最短路径法: 算法的主要思想是:单独一条边的路径也不一定是最佳路径. 从任意一条单边路径开始.所有两点之间的距离是边的权的和,(如果两点之间没有边相连, 则为无穷大). 对于每一对顶点 u 和 v,看 ...
- GTID环境中手动修复主从故障一例(Error 1146)
Preface In my last test of pt-heartbeat,both of master and slave were out of disk.And the my ...
- linux path环境变量基础
系统环境变量与个人环境变量的配置文件 系统级别的配置文件: /etc/profile :这个文件预设了几个重要的变量,例如PATH, USER, LOGNAME, MAIL, INPUTRC, HO ...
- sqlalchemy 查询姿势总结
sqlalchemy查询使用 1.带条件查询 查询是最常用的,对于各种查询我们必须要十分清楚,首先是带条件的查询 #带条件查询 rows = session.query(User).filter_by ...
- 上手Caffe(一)
@author:oneBite 本文记录编译使用caffe for windows 使用环境 VS2013 ultimate,win7 sp1,caffe-windows源码(从github上下载ca ...