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

此功能包包含如下文件:

结构如下:

$ tree -L 2
.
├── CMakeLists.txt -> /opt/ros/kinetic/share/catkin/cmake/toplevel.cmake
├── husky_base
│   ├── CHANGELOG.rst
│   ├── CMakeLists.txt
│   ├── config
│   ├── include
│   ├── launch
│   ├── package.xml
│   └── src
├── husky_bringup
│   ├── CHANGELOG.rst
│   ├── CMakeLists.txt
│   ├── config
│   ├── debian
│   ├── env-hooks
│   ├── launch
│   ├── package.xml
│   ├── scripts
│   └── udev
├── husky_control
│   ├── CHANGELOG.rst
│   ├── CMakeLists.txt
│   ├── config
│   ├── launch
│   └── package.xml
├── husky_description
│   ├── CHANGELOG.rst
│   ├── CMakeLists.txt
│   ├── launch
│   ├── meshes
│   ├── package.xml
│   └── urdf
├── husky_desktop
│   ├── CHANGELOG.rst
│   ├── CMakeLists.txt
│   └── package.xml
├── husky_gazebo
│   ├── CHANGELOG.rst
│   ├── CMakeLists.txt
│   ├── launch
│   ├── package.xml
│   └── worlds
├── husky_msgs
│   ├── CHANGELOG.rst
│   ├── CMakeLists.txt
│   ├── msg
│   └── package.xml
├── husky_navigation
│   ├── CHANGELOG.rst
│   ├── CMakeLists.txt
│   ├── config
│   ├── launch
│   ├── maps
│   └── package.xml
├── husky_robot
│   ├── CHANGELOG.rst
│   ├── CMakeLists.txt
│   └── package.xml
├── husky_simulator
│   ├── CHANGELOG.rst
│   ├── CMakeLists.txt
│   └── package.xml
└── husky_viz
    ├── CHANGELOG.rst
    ├── CMakeLists.txt
    ├── launch
    ├── package.xml
    └── rviz

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

$ roslaunch husky_gazebo husky_empty_world.launch

$ roslaunch husky_viz view_robot.launch

$ roslaunch husky_navigation exploration_demo.launch

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

<launch>

  <arg name="world_name" default="worlds/empty.world"/>

  <arg name="laser_enabled" default="true"/>
  <arg name="kinect_enabled" default="false"/>

  <include file="$(find gazebo_ros)/launch/empty_world.launch">
    <arg name="world_name" value="$(arg world_name)"/> <!-- world_name is wrt GAZEBO_RESOURCE_PATH environment variable -->
    <arg name="paused" value="false"/>
    <arg name="use_sim_time" value="true"/>
    <arg name="gui" value="true"/>
    <arg name="headless" value="false"/>
    <arg name="debug" value="false"/>
  </include>

  <include file="$(find husky_gazebo)/launch/spawn_husky.launch">
    <arg name="laser_enabled" value="$(arg laser_enabled)"/>
    <arg name="kinect_enabled" value="$(arg kinect_enabled)"/>
  </include>

</launch>

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

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

启动rviz。

<launch>

  <!--- Run gmapping -->
  <include file="$(find husky_navigation)/launch/gmapping.launch" />

  <!--- Run Move Base -->
  <include file="$(find husky_navigation)/launch/move_base.launch" />

  <!-- Run Frontier Exploration -->
  <include file="$(find husky_navigation)/launch/exploration.launch" />

</launch>

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

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

<launch>

  <node pkg="frontier_exploration" type="explore_client" name="explore_client" output="screen"/>

  <node pkg="frontier_exploration" type="explore_server" name="explore_server" output="screen">

    <param name="frequency" value="1.0"/>

    <!-- Should be less than sensor range -->
    <param name="goal_aliasing" value="2.0"/>

    <rosparam file="$(find husky_navigation)/config/costmap_common.yaml" command="load" ns="explore_costmap" />
    <rosparam file="$(find husky_navigation)/config/costmap_exploration.yaml" command="load" ns="explore_costmap" />

  </node>

</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. 使用ShowDoc在线管理API接口文档

    ShowDoc是什么 每当接手一个他人开发好的模块或者项目,看着那些没有写注释的代码,我们都无比抓狂.文档呢?!文档呢?!Show me the doc !! ShowDoc就是一个非常适合IT团队的 ...

  2. HDU 6319.Problem A. Ascending Rating-经典滑窗问题求最大值以及COUNT-单调队列 (2018 Multi-University Training Contest 3 1001)

    2018 Multi-University Training Contest 3 6319.Problem A. Ascending Rating 题意就是给你长度为k的数列,如果数列长度k<n ...

  3. hihocoder1069 最近公共祖先·三(tarjin算法)(并查集)

    #1069 : 最近公共祖先·三 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 上上回说到,小Hi和小Ho使用了Tarjan算法来优化了他们的“最近公共祖先”网站,但是 ...

  4. Jenkins集成SonarQube

    sonar安装配置 准备软件包 安装 mysql5.6+ 创建数据库sonar,字符集编码utf8 新建用户如heboan 因为sonarqube不能使用root用户运行 调整系统参数,/etc/se ...

  5. 树莓派编译nginx,支持rtmp直播

    树莓派3B+ 系统更新至最新 下载依赖 sudo apt-get update sudo apt-get install libxslt1-dev libgd-dev libgeoip-dev lib ...

  6. intellij idea android错误: Missing styles. Is the correct theme chosen for this layout?

    Missing styles. Is the correct theme chosen for this layout? Use the Theme combo box above the layou ...

  7. [Contest20180314]数列

    数据范围告诉我们要写两档的分 第一档:$M\leq200,N\leq10^9$,可以枚举$m$计算答案 直接矩阵快速幂:$O\left(M^4\log_2N\right)$,会超时,所以我们需要某些“ ...

  8. 【AC自动机】【状压dp】hdu2825 Wireless Password

    f(i,j,S)表示当前字符串总长度为i,dp到AC自动机第j个结点,单词集合为S时的方案数. 要注意有点卡常数,注意代码里的注释. #include<cstdio> #include&l ...

  9. 【2-SAT】【并查集】ICM Technex 2017 and Codeforces Round #400 (Div. 1 + Div. 2, combined) D. The Door Problem

    再来回顾一下2-SAT,把每个点拆点为是和非两个点,如果a能一定推出非b,则a->非b,其他情况同理. 然后跑强连通分量分解,保证a和非a不在同一个分量里面. 这题由于你建完图发现都是双向边,所 ...

  10. 【最大流】【Dinic】bzoj1711 [Usaco2007 Open]Dingin吃饭

    把牛拆点,互相连1的边. 把牛的食物向牛连边,把牛向牛的饮料连边. 把源点向牛的食物连边,把牛的饮料向汇点连边. 要把牛放在中间,否则会造成一头牛吃了自己的食物后又去喝别的牛的饮料的情况. #incl ...