ROS导航功能包示例husky amcl gmapping slam exploration

此功能包包含如下文件:

结构如下:

  1. $ tree -L 2
  2. .
  3. ├── CMakeLists.txt -> /opt/ros/kinetic/share/catkin/cmake/toplevel.cmake
  4. ├── husky_base
  5.    ├── CHANGELOG.rst
  6.    ├── CMakeLists.txt
  7.    ├── config
  8.    ├── include
  9.    ├── launch
  10.    ├── package.xml
  11.    └── src
  12. ├── husky_bringup
  13.    ├── CHANGELOG.rst
  14.    ├── CMakeLists.txt
  15.    ├── config
  16.    ├── debian
  17.    ├── env-hooks
  18.    ├── launch
  19.    ├── package.xml
  20.    ├── scripts
  21.    └── udev
  22. ├── husky_control
  23.    ├── CHANGELOG.rst
  24.    ├── CMakeLists.txt
  25.    ├── config
  26.    ├── launch
  27.    └── package.xml
  28. ├── husky_description
  29.    ├── CHANGELOG.rst
  30.    ├── CMakeLists.txt
  31.    ├── launch
  32.    ├── meshes
  33.    ├── package.xml
  34.    └── urdf
  35. ├── husky_desktop
  36.    ├── CHANGELOG.rst
  37.    ├── CMakeLists.txt
  38.    └── package.xml
  39. ├── husky_gazebo
  40.    ├── CHANGELOG.rst
  41.    ├── CMakeLists.txt
  42.    ├── launch
  43.    ├── package.xml
  44.    └── worlds
  45. ├── husky_msgs
  46.    ├── CHANGELOG.rst
  47.    ├── CMakeLists.txt
  48.    ├── msg
  49.    └── package.xml
  50. ├── husky_navigation
  51.    ├── CHANGELOG.rst
  52.    ├── CMakeLists.txt
  53.    ├── config
  54.    ├── launch
  55.    ├── maps
  56.    └── package.xml
  57. ├── husky_robot
  58.    ├── CHANGELOG.rst
  59.    ├── CMakeLists.txt
  60.    └── package.xml
  61. ├── husky_simulator
  62.    ├── CHANGELOG.rst
  63.    ├── CMakeLists.txt
  64.    └── package.xml
  65. └── husky_viz
  66. ├── CHANGELOG.rst
  67. ├── CMakeLists.txt
  68. ├── launch
  69. ├── package.xml
  70. └── rviz

按官网介绍,安装并配置后,启动示例如下:

  1. $ roslaunch husky_gazebo husky_empty_world.launch
  2.  
  3. $ roslaunch husky_viz view_robot.launch
  4.  
  5. $ roslaunch husky_navigation exploration_demo.launch

机器人在给定区域内自主探索绘制地图。下面简单看下这三个启动文件:

  1. <launch>
  2.  
  3. <arg name="world_name" default="worlds/empty.world"/>
  4.  
  5. <arg name="laser_enabled" default="true"/>
  6. <arg name="kinect_enabled" default="false"/>
  7.  
  8. <include file="$(find gazebo_ros)/launch/empty_world.launch">
  9. <arg name="world_name" value="$(arg world_name)"/> <!-- world_name is wrt GAZEBO_RESOURCE_PATH environment variable -->
  10. <arg name="paused" value="false"/>
  11. <arg name="use_sim_time" value="true"/>
  12. <arg name="gui" value="true"/>
  13. <arg name="headless" value="false"/>
  14. <arg name="debug" value="false"/>
  15. </include>
  16.  
  17. <include file="$(find husky_gazebo)/launch/spawn_husky.launch">
  18. <arg name="laser_enabled" value="$(arg laser_enabled)"/>
  19. <arg name="kinect_enabled" value="$(arg kinect_enabled)"/>
  20. </include>
  21.  
  22. </launch>

启动一个仿真环境,激光和深度传感器有效。

  1. <launch>
  2. <node name="rviz" pkg="rviz" type="rviz" args="-d $(find husky_viz)/rviz/robot.rviz" output="screen"/>
  3. </launch>

启动rviz。

  1. <launch>
  2.  
  3. <!--- Run gmapping -->
  4. <include file="$(find husky_navigation)/launch/gmapping.launch" />
  5.  
  6. <!--- Run Move Base -->
  7. <include file="$(find husky_navigation)/launch/move_base.launch" />
  8.  
  9. <!-- Run Frontier Exploration -->
  10. <include file="$(find husky_navigation)/launch/exploration.launch" />
  11.  
  12. </launch>

exploration自主地图探索包含三个功能gmapping,move_base,exploration。

其中exploration.launch使用frontier_exploration进行地图探索:

  1. <launch>
  2.  
  3. <node pkg="frontier_exploration" type="explore_client" name="explore_client" output="screen"/>
  4.  
  5. <node pkg="frontier_exploration" type="explore_server" name="explore_server" output="screen">
  6.  
  7. <param name="frequency" value="1.0"/>
  8.  
  9. <!-- Should be less than sensor range -->
  10. <param name="goal_aliasing" value="2.0"/>
  11.  
  12. <rosparam file="$(find husky_navigation)/config/costmap_common.yaml" command="load" ns="explore_costmap" />
  13. <rosparam file="$(find husky_navigation)/config/costmap_exploration.yaml" command="load" ns="explore_costmap" />
  14.  
  15. </node>
  16.  
  17. </launch>

graph:

tf-tree:

--附录--来源官网

1. 位 -米半径范围内有无障碍的移动空间。

月1日,用于规划的universal_robot包尚未在debs中更新,因此必须使用source),请安装universal_robot的源包,并使用它去ovveride deb安装。

年5月16日,但仍然没有已公布给公众的Indigo debs。)

移动Husky

打开交互式标记服务器:

rosrun interactive_marker_twist_server marker_server

并确保添加交互式标记插件到RViz通过单击“添加”,然后找到交互式标记。请务必将主题设置为正确的主题,否则您将无法使用它们移动Husky。

与机器人的接口是超级简单!看到场景中的标记?只需点击它们就可以移动机器人。蓝色标记将控制它的旋转。

红色标记将控制其向前和向后运动

7.移动Husky的手臂

在使用Husky的运动能力后,现在我们可以看看如何移动其手臂。在RViz的左边,你会看到一个看起来像这样的面板。确保选择“计划”。

现在单击并拖动在RViz中的末端执行器,它将突出显示当您的鼠标在它:

在下一张图片中有很多事情。我会解释。橙色手臂是手臂的目标位置。拖动球体允许您将末端执行器移动到所需位置。运动求解器将移动橙色臂,以满足您放置球体的约束。靠近球体的标记将允许你精确地将球体精确到任何你想要的。正确的着色手臂是手臂当前在真实世界中定位的地方(但在这种情况下,Gazebo仿真)。

现在,在计划选项卡中,按计划并执行。这将计划手臂采取的路径,以将其移动到橙色目标状态。执行将与机器人上的控制器交互,将其移动到该位置。

注意,在我按下计划和执行之后,手臂在仿真和可视化软件中移动。

----

ROS示例----导航功能包Husky_exploration的更多相关文章

  1. ROS机器人程序设计(原书第2版)补充资料 (玖) 第九章 导航功能包集进阶 navigation

    ROS机器人程序设计(原书第2版)补充资料 (玖) 第九章 导航功能包集进阶 navigation 书中,大部分出现hydro的地方,直接替换为indigo或jade或kinetic,即可在对应版本中 ...

  2. ROS机器人程序设计(原书第2版)补充资料 (捌) 第八章 导航功能包集入门 navigation

    ROS机器人程序设计(原书第2版)补充资料 (捌) 第八章 导航功能包集入门 navigation 书中,大部分出现hydro的地方,直接替换为indigo或jade或kinetic,即可在对应版本中 ...

  3. ROS二进制日志包 ROS binary logger package

    原文网址: 1 http://www.ros.org/news/2017/02/ros-binary-logger-package.html 2 https://github.com/CNR-ITIA ...

  4. 在github上最热门好评高的ROS相关功能包

    在github上最热门最受欢迎的ROS相关功能包 下面依次列出,排名不分先后: 1  Simulation Tools In ROS https://github.com/ros-simulation ...

  5. ROS学习手记 - 2.1: Create and Build ROS Package 生成包(Python)

    ROS学习手记 - 2.1: Create and Build ROS Package 生成包(Python) 时隔1年,再回来总结这个问题,因为它是ros+python开发中,太常用的一个操作,需要 ...

  6. 创建ros的程序包--3

    创建ros的程序包(原创博文,转载请标明出处--周学伟http://www.cnblogs.com/zxouxuewei/) 1.一个catkin程序包由什么组成? 一个程序包要想称为catkin程序 ...

  7. ROS 笔记 程序包/节点/topic

    官方教程: wiki.ros.org/cn/ROS/tutorials 程序包打创建于编译 创建程序包 在工作空间的src底下,输入如下命令: $ catkin_create_pkg 要创建的包名 依 ...

  8. 4.1 ROS元功能包

    4.1 ROS元功能包 场景:完成ROS中一个系统性的功能,可能涉及到多个功能包,比如实现了机器人导航模块,该模块下有地图.定位.路径规划...等不同的子级功能包.那么调用者安装该模块时,需要逐一的安 ...

  9. ROS新功能包PlotJuggler绘图

    http://www.ros.org/news/2017/01/new-package-plotjuggler.html PlotJuggler,一个基于Qt的应用程序,允许用户加载,搜索和绘图数据. ...

随机推荐

  1. MATLAB作图方法与技巧(二)

    作为MATLAB作图方法与技巧(一)的补充 1.绘制二维散点图 ① scatter函数 scatter(x,y,s,c)函数绘制向量x和y的散点图,其中s代表点的大小,c代表点的形状,s和c缺省时为默 ...

  2. swipper插件引起的a链接失效问题

    在使用swiper过程中,发现a链接失效,此处没有效果,问题是 swiper是基于移动端触摸的,会有一个全局的click事件,这个事件屏蔽了A标签的链接,是为了防止手机滑动的时候不小心触发A标签而设定 ...

  3. 记录一下安卓本地文件File处理的问题

    在项目中更新软件下载更新包的时候删除系统文件夹会报错导致下载失败 研究了下是因为目录不存在导致的由于系统自带下载目录,但是一些极限操作当目录不存在时就需要处理下 项目中的解决方案 File f = n ...

  4. 让IE6/IE7/IE8支持CSS3属性的8种方法介绍

    我们都知道,IE浏览器暂不支持CSS3的一些属性.国外的工程师们,不安于此现状,他们总是尽量使用一些手段使IE浏览器也能支持CSS3属性,我觉得这些都是很有意义,很有价值的工作,可以推动整个技术领域的 ...

  5. sum (bestcoder)

    sum Accepts: 640 Submissions: 1744 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/13107 ...

  6. [Lydsy1805月赛] 对称数

    挺不错的一道数据结构题QWQ. 一开始发现这个题如果不看数据范围的话,妥妥的树上莫队啊23333,然鹅10组数据是不可能让你舒舒服服的树上莫队卡过的23333 于是想了想,这个题的模型就是,把u到v链 ...

  7. 【差分约束系统】【spfa】UVALive - 4885 - Task

    差分约束系统讲解看这里:http://blog.csdn.net/xuezhongfenfei/article/details/8685313 模板题,不多说.要注意的一点是!!!对于带有within ...

  8. 【点分治】【乘法逆元】hdu4812 D Tree

    思路比较裸,但是要把答案存到哈希表里面,这里需要一定技巧,否则会被K=1且点权全是1的数据卡飞.预处理乘法逆元.TLE了一天.换了种点分治的姿势…… #pragma comment(linker,&q ...

  9. 【进制转换】CODEVS 1740 进制计算器

    #include<cstdio> #include<iostream> #include<string> using namespace std; string s ...

  10. c++基础类型之signed、unsigned的一个细节

    数值型 c++中,对于 int.long.int64....等这些数值类型,如果是有符合的,则类型前加不加 signed 其效果都是一样的. 比如如下声明: int nA; // 与 signed i ...