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的应用程序,允许用户加载,搜索和绘图数据. ...
随机推荐
- 构建maven动态web 工程
项目构建 总体参考: http://www.java2blog.com/2015/09/how-to-create-dynamic-web-project-using.html https://sta ...
- uiautomator2 +Python进行Android原生应用UI测试
uiautomator2封装了google的uiautomator(只能用java),uiautomator2可以使用脚本语言python进行编写,更简单直观地修改.运行自动化测试代码: 不足为:仅支 ...
- [Jquery]斑马线表格
<!doctype html> <html> <head> <script src='js/jquery-1.9.1.min.js'></scri ...
- 洛谷P3929 SAC E#1 - 一道神题 Sequence1【枚举】
题目描述 小强很喜欢数列.有一天,他心血来潮,写下了一个数列. 阿米巴也很喜欢数列.但是他只喜欢其中一种:波动数列. 一个长度为n的波动数列满足对于任何i(1 <= i < n),均有: ...
- Retrying Operations using Spring's RetryTemplate
If your application is using Spring then it is easier to use the Spring Framework's RetryTemplate. T ...
- 洛谷——P1689 方程求解
P1689 方程求解 题目描述 给一个方程,形如X+Y=Z或X-Y=Z.给出了其中两个未知数,请求出第三个数.未知数用‘?’表示,等式中也许会出现一些多余的空格. 输入输出格式 输入格式: 一行,方程 ...
- ansible管理window
设置window以支持远程执行命令======================================= 升级powershell到3.0+-------------------------- ...
- 【后缀数组】【线段树】poj3974 Palindrome
考虑奇数长度的回文,对于字符串上的每个位置i,如果知道从i开始的后缀和到i为止的前缀反转后的字符串的lcp长度的话,也就知道了以第i个字符为对称中心的最长回文的长度了.因此,我们用在S中不会出现的字符 ...
- lua的luasocket程序
-- load namespace local socket = require("socket") -- create a TCP socket and bind it to t ...
- React Native学习之自定义Navigator
Navigator还是最常用的组件, 所以自己封装了一个, 使用起来也比较简单, 如下: 首先导入组件 var MLNavigator = require('../Lib/MLNavigator'); ...