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的应用程序,允许用户加载,搜索和绘图数据. ...
随机推荐
- mysql union用法代码示例
MYSQL UNION 操作符 UNION 操作符用于合并两个或多个 SELECT 语句的结果集. 请注意,UNION 内部的 SELECT 语句必须拥有相同数量的列.列也必须拥有相似的数据类型.同时 ...
- 肖申克的救赎 -Hope
典狱长诺顿高高在上,平时道貌岸然,对圣经倒背如流,实际上攫取利益时不择手段,残酷.阴险而贪婪.狱警长海利和其他警员,凶狠残暴,充当诺顿的打手,草菅囚犯的人命.他们是不是象极了我们现实中的掌权阶层?我称 ...
- Codeforces 538 C. Tourist's Notes
C. Tourist's Notes time limit per test 2 seconds memory limit per test 256 megabytes input standar ...
- HDU 6081 度度熊的王国战略【并查集/数据弱水题/正解最小割算法】
链接6081 度度熊的王国战略 Time Limit: 40000/20000 MS (Java/Others) Memory Limit: 32768/132768 K (Java/Others) ...
- 训练指南 UVALive - 4080(最短路Dijkstra + 边修改 + 最短路树)
layout: post title: 训练指南 UVALive - 4080(最短路Dijkstra + 边修改 + 最短路树) author: "luowentaoaa" ca ...
- Linux命令之find(一)
find [-H] [-L] [-P] [-Olevel] [-D help| tree| search| stat| rates| opt| exec] [路径] [表达式] find是查找文件的命 ...
- 6、Flask实战第6天:视图函数Response返回值
视图函数的返回值会被自动转换为一个响应对象,Flask的转换逻辑如下: 如果返回的是一个合法的响应对象,则直接返回 可以使用make_response函数来创建Response对象,这个方法可以设置额 ...
- 数字 function
SELECT TRUNC(15.79), TRUNC(), ROUND(15.79), ), ), FLOOR(26.983), CEIL(26.123), ), ), ), MOD(,) FROM ...
- 动态RIP配置路由表
动态RIP配置路由表 以Router11为例子: (1)配置端口ip(两个端口需要设置两个ip) Router(config)#inter f0/0 Router(config-if)#ip add ...
- Java杂谈3——类加载机制与初始化顺序
Java语言的哲学:一切都是对象.对于Java虚拟机而言,一个普通的Java类同样是一个对象,那如果是对象,必然有它的初始化过程.一个类在JVM中被实例化成一个对象,需要经历三个过程:加载.链接和初始 ...