ROS探索总结
ROS(robot operating system)是用于机器人的一种后操作系统,主要目标是在机器人研发领域提高代码复用率。目前ROS在国内使用较少,本专栏主要介绍作者在学习和使用ROS过程中的总结与创新,帮助其他学习者更快了解、熟悉ROS。
古-月
怕什么真理无穷,进一寸有一寸的欢喜
展开
-
ROS探索总结(十九)——如何配置机器人的导航功能
ROS的二维导航功能包,简单来说,就是根据输入的里程计等传感器的信息流和机器人的全局位置,通过导航算法,计算得出安全可靠的机器人速度控制指令。但是,如何在特定的机器人上实现导航功能包的功能,却是一件较为复杂的工程。作为导航功能包使用的必要先决条件,机器人必须运行ROS,发布tf变换树,并发布使用ROS消息类型的传感器数据。同时,为了让机器人更好的完成导航任务,开发者还要根据原创 2016-01-18 22:07:23 · 33325 阅读 · 19 评论 -
ROS探索总结(十八)——重读tf
在之前的博客中,有讲解tf的相关内容,本篇博客重新整理了tf的介绍和学习内容,对tf的认识会更加系统。1 tf简介1.1 什么是tf tf是一个让用户随时间跟踪多个参考系的功能包,它使用一种树型数据结构,根据时间缓冲并维护多个参考系之间的坐标变换关系,可以帮助用户在任意时间,将点、向量等数据的坐标,在两个参考系中完成坐标变换。 tf的相关设计思想,可以参见:tf设计 1原创 2015-12-02 23:11:10 · 38474 阅读 · 8 评论 -
ROS探索总结(十七)——构建完整的机器人应用系统
上一篇博客介绍了HRMRP机器人平台的设计,基于该平台,可以完成丰富的机器人应用,以较为典型的机器人导航为例,如何使用HRMRP来完成相应的功能?本篇博客将详细介绍如何将HRMRP应用到实际的应用当中。原创 2015-09-20 12:30:40 · 16479 阅读 · 15 评论 -
ROS探索总结(十六)——HRMRP机器人的设计
HRMRP(Hybrid Real-time Mobile Robot Platform,混合实时移动机器人平台)机器人是我在校期间和实验室的其他小伙伴一起从零开始设计并开发的一款机器人平台,其中大部分扩展电路、驱动和ROS相关的底层功能都是我们自己做的。该机器人平台具有软硬件可编程、灵活性强、模块化、易扩展、实时性强等特点。HRMRP具备丰富的传感器和执行器,在该平台的基础上,我们设计并实现了机器人SLAM、自主导航、人脸识别、机械臂控制等功能。原创 2015-09-13 15:22:10 · 12475 阅读 · 4 评论 -
关于ROS学习的一些反思
距离发布上一篇ROS的博客已经过去两年了,才发现原来自己已经这么久可没有写过关于ROS的文章,想来很是惭愧。这两年时间,自己怀着程序员的梦想,研究过RTOS,探索过Linux,编写过Android应用,玩过web站点,但是回想起来,也并没有比ROS让我更加记忆深刻。两年时间,我也从来没有离开过ROS,使用ROS做过一些项目,也对ROS有了更加深刻的认识。这三天的假期时间,我认真拜读了国内开发者近年原创 2015-09-06 01:51:09 · 22024 阅读 · 24 评论 -
Unable to handle 'index' format version '2', please update rosdistro的解决办法
之前安装的ROS是Fuerte版本的,好久没有更新,不知不觉又出来了好几个新的版本,今天删除了Fuerte,计划安装Hydro版本的尝尝新,按照官网的安装流程,很快就可以把新版本安装上去了,但是在“rosdep update”这一步却总是报错:reading in sources list data from /etc/ros/rosdep/sources.list.dHit https:/原创 2014-03-17 16:46:53 · 4909 阅读 · 3 评论 -
ROS探索总结(十五)——amcl(导航与定位)
在理解了move_base的基础上,我们开始机器人的定位与导航。gmaping包是用来生成地图的,需要使用实际的机器人获取激光或者深度数据,所以我们先在已有的地图上进行导航与定位的仿真。 amcl是移动机器人二维环境下的概率定位系统。它实现了自适应(或kld采样)的蒙特卡罗定位方法,其中针对已有的地图使用粒子滤波器跟踪一个机器人的姿态。一、测试 首先运行原创 2013-09-27 21:10:33 · 70659 阅读 · 33 评论 -
ROS探索总结(十四)——move_base(路径规划)
在上一篇的博客中,我们一起学习了ROS定位于导航的总体框架,这一篇我们主要研究其中最重要的move_base包。原创 2013-07-25 16:26:22 · 88956 阅读 · 35 评论 -
ROS探索总结(十三)——导航与定位框架
导航与定位是机器人研究中的重要部分。 一般机器人在陌生的环境下需要使用激光传感器(或者深度传感器转换成激光数据),先进行地图建模,然后在根据建立的地图进行导航、定位。在ROS中也有很多完善的包可以直接使用。 在ROS中,进行导航需要使用到的三个包是: (1) move_base:根据参照的消息进行路径规划,使移动机器人到达指定的位置;原创 2013-07-15 18:03:43 · 51531 阅读 · 14 评论 -
ROS探索总结(十二)——坐标系统
在机器人的控制中,坐标系统是非常重要的,在ROS使用tf软件库进行坐标转换。 相关链接:http://www.ros.org/wiki/tf/Tutorials#Learning_tf一、tf简介 我们通过一个小小的实例来介绍tf的作用。1、安装turtle包$ rosdep install turtle_tf rviz$ rosmake turt原创 2013-07-05 19:55:12 · 59944 阅读 · 17 评论 -
ROS探索总结(十一)——机器视觉
机器视觉在计算机时代已经越来越流行,摄像头价格越来越低廉,部分集成深度传感器的混合型传感器也逐渐在研究领域普及,例如微软推出的Kinect,而且与之配套的软件功能十分强大,为开发带来了极大的便利。ROS集成了Kinect的的驱动包OpenNI,而且使用OpenCV库可以进行多种多样的图像处理。 注:本章内容及代码均参考《ROS by Example》书中的第十章。一、图像原创 2013-06-24 21:24:19 · 55818 阅读 · 74 评论 -
ROS探索总结(十)——语音控制
如今语音识别在PC机和智能手机上炒的火热,ROS走在技术的最前沿当然也不会错过这么帅的技术。ROS中使用了CMU Sphinx和Festival开源项目中的代码,发布了独立的语音识别包,而且可以将识别出来的语音转换成文字,然后让机器人智能处理后说话。一、语音识别包1、安装 安装很简单,直接使用ubuntu命令即可,首先安装依赖库:$ sudo apt-ge原创 2013-06-15 22:03:03 · 27512 阅读 · 30 评论 -
ROS探索总结(九)——操作杆控制
对于移动机器人,键盘的控制往往满足不了我们的需求,以前看好多电影里边都是用一个摇杆来控制机器人的,简直帅爆了,正好我这里有一个操作杆,那就来尝试感受一下。 操作杆(joystick)控制会更加有操作感,ROS中的很多机器人也带有操作杆的相关代码,只需要简单的移植即可。我们使用的是赛钛客(saitek)的一款操作杆,如下图所示: 使用的移植代码是clear原创 2013-06-06 21:39:46 · 12621 阅读 · 15 评论 -
ROS探索总结(八)——键盘控制
如果尝试过前面的例子,有没有感觉每次让机器人移动还要在终端里输入指令,这也太麻烦了,有没有办法通过键盘来控制机器人的移动呢?答案室当然的了。我研究了其他几个机器人键盘控制的代码,还是有所收获的,最后移植到了smartcar上,实验成功。一、创建控制包 首先,我们为键盘控制单独建立一个包:roscreate-pkg smartcar_teleop rospy geometr原创 2013-06-01 17:04:12 · 45205 阅读 · 16 评论 -
ROS探索总结(七)——smartcar源码上传
看到前面写的博客还是帮助了很多ROS的学习者,我感到非常荣幸。其实我也是一名ROS的新手,ROS的相关资料少,上手难度大,我现在也在摸索着学习,还希望大家都将自己的学习成果在网上或者ROS群里分享。 我看到有些人在运行我前面写的smartcar程序,为了方便大家的学习,我这两天整理了一下代码,已经上传到csdn上,下载请见: http://download.cs原创 2013-05-31 13:30:28 · 13866 阅读 · 7 评论 -
ROS探索总结(六)——使用smartcar进行仿真
之前的博客中,我们使用rviz进行了TurtleBot的仿真,而且使用urdf文件建立了自己的机器人smartcar,本篇博客是将两者进行结合,使用smartcar机器人在rviz中进行仿真。一、模型完善 之前我们使用的都是urdf文件格式的模型,在很多情况下,ROS对urdf文件的支持并不是很好,使用宏定义的.xacro文件兼容性更好,扩展性也更好。所以我们把之前的urdf原创 2013-05-20 19:04:19 · 25600 阅读 · 62 评论 -
ROS链接openni库获取kinect数据(ARM端)
在上一篇博客中已经实现了ROS链接openni库的实验,但是最重要的是要移植到ARM的嵌入式系统中。 ARM端配置: 操作系统:Ubuntu12.04 ROS版本:groovy (安装见http://blog.csdn.net/hcx25909/article/details/8539587)原创 2013-02-28 10:52:41 · 6870 阅读 · 9 评论 -
ROS链接openni库获取kinect数据(PC端)
ROS库中本身带有kinect的驱动和应用包,但是很难应用到嵌入式系统当中,但是单独的openni库已经很完善了,很容易应用在PC机和嵌入式系统当中。为了在嵌入式的ARM系统中应用ROS和kinect,首先我在PC机上进行ROS链接openni库的实验。 一、安装openni库 参考链接:http://www.20papercups.net/programming/原创 2013-02-27 20:17:41 · 10854 阅读 · 6 评论 -
使用ROS进行ARM端与PC端通信
终于在ZYNQ上跑起了ROS,接下来最令人关心的就是能否使用ROS使ARM端和PC端进行通讯了,我按照wiki上的教程进行了实验,基本上是没有问题的,只是需要修改一下ARM端和PC端的hosts文件。 1、实验环境:ZYNQ(ubuntu 12.04 groovy)+ PC(ubuntu 12.04 fuerte) 2、实验教程:http://www.ros.o原创 2013-01-28 10:08:01 · 7822 阅读 · 0 评论 -
ROS在ARM上的编译
ROS(robot operaring system)作为移动机器人软件架构,近几年得到了越来越广泛的应用,但是大部分应用是基于X86架构的处理器,怎么样将这么强大的工具和应用极为广泛的ARM处理器结合在一起,是现在很多开发者急于解决的问题。我作为ROS的初学者最近也尝试了一把ROS 的ARM移植,纠结了四五天,不过最后还是成功了。 虽然现在针对非X86架构的处理器产生了一些ROS的原创 2013-01-24 21:02:08 · 25992 阅读 · 12 评论 -
ROS探索总结(五)——创建简单的机器人模型smartcar
前面我们使用的是已有的机器人模型进行仿真,这一节我们将建立一个简单的智能车机器人smartcar,为后面建立复杂机器人打下基础。一、创建硬件描述包roscreat-pkg smartcar_description urdf二、智能车尺寸数据 因为建立的是一个非常简单的机器人,所以我们尽量使用简单的元素:使用长方体代替车模,使用圆柱代替车轮,具体尺寸原创 2013-05-09 10:56:40 · 33407 阅读 · 50 评论 -
ROS探索总结(四)——简单的机器人仿真
前边我们已经介绍了ROS的基本情况,以及新手入门ROS的初级教程,现在就要真正的使用ROS进入机器人世界了。接下来我们涉及到的很多例程都是《ROS by Example》这本书的内容,我是和群里的几个人一起从国外的亚马逊上买到的,还是很有参考价值的,不过前提是你已经熟悉之前的新手教程了。一、ROS by Example 这本书是关于国外关于ROS出版的第一本书,主要针原创 2013-04-30 21:21:41 · 57838 阅读 · 57 评论 -
ROS探索总结(三)——ROS新手教程
前面我们介绍了ROS的特点和结构,接下来就要开始准备动手感受一下ROS的强大了。ROS官网的wiki上针对新手的教程很详细,最好把所有的新手教程都搞清楚,这是后面开发最基础的东西。尽管如此,ROS对于新手来说还是很难上手,这里,我就来总结一下我当时学习的历程,也为其他新手作为一个参考。一、ROS的安装 ROS的安装当然是我们开始动手的第一步了,这里我们使用的操作系统是原创 2013-04-16 21:56:23 · 131514 阅读 · 33 评论 -
ROS探索总结(二)——ROS总体框架
一、 总体结构 根据ROS系统代码的维护者和分布来标示,主要有两大部分: (1)main:核心部分,主要由Willow Garage公司和一些开发者设计、提供以及维护。它提供了一些分布式计算的基本工具,以及整个ROS的核心部分的程序编写。 (2)universe:全球范围的代码,有不同国家的ROS社区组织开发和维护。一种是库的代码,如OpenCV、PCL等原创 2013-04-12 22:23:30 · 44019 阅读 · 8 评论 -
ROS探索总结(一)——ROS简介
一、历史 随着机器人领域的快速发展和复杂化,代码的复用性和模块化的需求原来越强烈,而已有的开源机器人系统又不能很好的适应需求。2010年Willow Garage公司发布了开源机器人操作系统ROS(robot operating system),很快在机器人研究领域展开了学习和使用ROS的热潮。 ROS系统是起源于2007年斯坦福大学人工智能实验室的项目与机原创 2013-04-12 21:30:25 · 67850 阅读 · 27 评论