ROS示例----导航功能包Husky_exploration
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日,用于规划的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的更多相关文章
- ROS机器人程序设计(原书第2版)补充资料 (玖) 第九章 导航功能包集进阶 navigation
ROS机器人程序设计(原书第2版)补充资料 (玖) 第九章 导航功能包集进阶 navigation 书中,大部分出现hydro的地方,直接替换为indigo或jade或kinetic,即可在对应版本中 ...
- ROS机器人程序设计(原书第2版)补充资料 (捌) 第八章 导航功能包集入门 navigation
ROS机器人程序设计(原书第2版)补充资料 (捌) 第八章 导航功能包集入门 navigation 书中,大部分出现hydro的地方,直接替换为indigo或jade或kinetic,即可在对应版本中 ...
- ROS二进制日志包 ROS binary logger package
原文网址: 1 http://www.ros.org/news/2017/02/ros-binary-logger-package.html 2 https://github.com/CNR-ITIA ...
- 在github上最热门好评高的ROS相关功能包
在github上最热门最受欢迎的ROS相关功能包 下面依次列出,排名不分先后: 1 Simulation Tools In ROS https://github.com/ros-simulation ...
- ROS学习手记 - 2.1: Create and Build ROS Package 生成包(Python)
ROS学习手记 - 2.1: Create and Build ROS Package 生成包(Python) 时隔1年,再回来总结这个问题,因为它是ros+python开发中,太常用的一个操作,需要 ...
- 创建ros的程序包--3
创建ros的程序包(原创博文,转载请标明出处--周学伟http://www.cnblogs.com/zxouxuewei/) 1.一个catkin程序包由什么组成? 一个程序包要想称为catkin程序 ...
- ROS 笔记 程序包/节点/topic
官方教程: wiki.ros.org/cn/ROS/tutorials 程序包打创建于编译 创建程序包 在工作空间的src底下,输入如下命令: $ catkin_create_pkg 要创建的包名 依 ...
- 4.1 ROS元功能包
4.1 ROS元功能包 场景:完成ROS中一个系统性的功能,可能涉及到多个功能包,比如实现了机器人导航模块,该模块下有地图.定位.路径规划...等不同的子级功能包.那么调用者安装该模块时,需要逐一的安 ...
- ROS新功能包PlotJuggler绘图
http://www.ros.org/news/2017/01/new-package-plotjuggler.html PlotJuggler,一个基于Qt的应用程序,允许用户加载,搜索和绘图数据. ...
随机推荐
- 实例解析嵌套的JSON格式数据
关于JSON数据格式的基本知识和概念,参看: http://www.cnblogs.com/zouzf/archive/2012/03/31/2426646.html <span style=& ...
- 树莓派3b基于UbuntuMate下载中文输入法
输入命令:sudo apt-get install fcitx-sunpinyin,就可以下载中文输入法包了. 命令格式:sudo apt-get install package是下载安装包.apt- ...
- tomcat中reloadable作用
reloadable作用 reloadable:如果这个属性设为true,tomcat服务器在运行状态下会监视在WEB-INF/classes和WEB-INF/lib目录下class文件的改动,如果监 ...
- PHP文件操作函数
1 获得文件名: basename(); 给出一个包含有指向一个文件的全路径的字符串,本函数返回基本的文件名.如果文件名是以 suffix 结束的,那这一部分也会被去掉. eg: 复制代码 代码如下: ...
- 2017 ACM-ICPC 亚洲区(青岛赛区)网络赛 1010
#include<iostream> #include<cstdio> #include<cmath> #include<cstring> #inclu ...
- bzoj3942
有一个S串和一个T串,长度均小于1,000,000,设当前串为U串,然后从前往后枚举S串一个字符一个字符往U串里添加,若U串后缀为T,则去掉这个后缀继续流程.将s中的每一个字符压入栈暴力将s中的字符和 ...
- 并查集&线段树&树状数组&排序二叉树
超级无敌巨牛逼并查集(带权并查集)https://vjudge.net/problem/UVALive-4487 带删点的加权并查集 https://vjudge.net/problem/UVA-11 ...
- 谜题15:令人晕头转向的Hello
下面的程序是对一个老生常谈的例子做出了稍许的变化之后的版本.那么,它会打印出什么呢? /** * Generated by the IBM IDL-to-Java compiler, version ...
- Interaction triggers in WPF
Interaction Class - static class that owns the Triggers and Behaviors attached properties. Handles p ...
- 在WPF中合并两个ObservableCollection
WPF中的ObservableCollection是一个非常常用的集合对象,我们可以通过将它绑定到ListBox之类的集合控件上时,当集合发生变更时,会同步更新到界面上.但是,有的时候我们需要合并两个 ...