robot operating system
文章平均质量分 68
BigHerbert
git仓库:https://github.com/wangxiaoq
展开
-
ROS的安装
学习ROS有两周了吧,发现网上的中文资料很少。再网上搜出来的好多ROS都是和路由器相关的一些东西,我们这里说的ROS是robot operating system,也就是机器人操作系统,所以我的学习主要是基于ROS的官网:http://wiki.ros.org。当然也有网友古月在csdn上发表了一系列关于ROS的学习博客,很有参考价值,可以在百度中搜索之,今天主要来讲述一下如何安装ROS。原创 2013-10-28 11:03:31 · 65215 阅读 · 74 评论 -
ROS的学习(十五)验证publisher和subscriber
在前面的两篇博客中我们用C++在ROS中创建了一个发布者和接收者,并使用catkin_make构建了新的节点,下面就需要验证一下,我们写的是否正确。 首先运行roscoreroscore 打开一个新的终端在里面运行talker:rosrun beginner_tutorials talker 看到的运行结果如下:[INFO] [WallTim原创 2013-10-30 21:01:11 · 7376 阅读 · 10 评论 -
ROS的学习(十六)用C++写一个简单的服务器(service)和客户端(client)
我们将创建一个服务器节点add_two_ints_server,它将会收到两个整数,并且返回它们的和。切换目录到之前建立的beginner_tutorials包下:cd ~/catkin_ws/src/beginner_tutorials 编辑src/add_two_ints_server.cpp文件:vim src/add_two_ints_server.cpp原创 2013-10-30 21:51:25 · 17054 阅读 · 13 评论 -
ROS的学习(十一)ROS的msg和srv
msg是一个描述ROS中消息的域的简单的文本文件,它用来为消息产生不同语言的源代码。 一个srv文件描述一个服务,它由两部分组成,请求和服务。 msg文件被存储在一个包的msg目录下,srv文件被存储在srv目录下。msg是简单的文本文件,它的每一行由一个与的类型和域的名字组成。你可以使用的域的类型有:int8, int16, int32, int64 (plus ui原创 2013-10-30 18:45:52 · 15979 阅读 · 4 评论 -
ROS的学习(十二)用C++写一个简单的发布者
节点是一个可执行程序,它连接到了ROS的网络系统中。我们将会创建一个发布者,也就是说话者节点,它将会持续的广播一个信息。 改变目录到之前所建立的那个包下:cd ~/catkin_ws/src/beginner_tutorials 在beginner_tutorials包下面建立一个src文件夹:mkdir -p ~/catkin_ws/src/beginner_原创 2013-10-30 20:04:42 · 29797 阅读 · 6 评论 -
ROS学习(十七)安装ARDUINO IDE使用rosserial
arduino和arduino IDE是非常好的和简单的可编程硬件工具,使用rosserial_arduino包,你可以使用arduino IDE直接使用ROS。rosserial提供了一个通信协议,它通过arduino的UART来工作。它允许arduino作为一个ROS的节点,可以直接发布和订阅ROS的消息,发布TF变换,以及获取ROS的系统时间。 如果你没有安装arduino ID原创 2013-10-31 15:23:17 · 20896 阅读 · 14 评论 -
ROS的学习(十八)使用rosserial创建一个publisher
在arduino开发人群中,经常把源代码称为“sketch”,之后,我们就会使用这个惯例。打开一个终端,启动arduino:arduino 将arduino开发板连接到电脑的usb口,在arduino IDE中进行设置。选择Tools->Board,选择你所使用的arduino开发板的类型,笔者所使用的arduino开发板是arduino UNO。设置好开发板之后,继续选择To原创 2013-11-01 12:04:31 · 11525 阅读 · 0 评论 -
ROS的学习(十九)用rosserial创建一个subscriber
在前面的一篇博客中,我们已经使用arduino创建了一个publisher节点,接下来将会创建一个subscriber,打开arduino IDE:arduino 选择File->Examples->ros_lib->Blink,就可以打开一个示例程序,代码如下:/* * rosserial Subscriber Example * Blinks an LED on c原创 2013-11-01 16:30:36 · 8826 阅读 · 0 评论 -
ROS的学习(二十)rosserial中的Publisher和Subscriber中的编程步骤
1.在一个话题上发布消息。 可以使用ros::Publisher类创建一个句柄来在一个话题上发布消息,应该首先创建一个publisher将要使用的消息,然后在setup函数中调用advertise。整个程序的结构如下:#include ros::NodeHandle nh;// before your setup() functionstd_msgs::String str原创 2013-11-01 17:09:57 · 10000 阅读 · 0 评论 -
ROS的学习(十四)用C++写一个简单的接收者
打开一个终端,进入到beginner_tutorials包下面:cd ~/catkin_ws/src/beginner_tutorials 编辑文件src/listener.cpp:vim src/listener.cpp 将下面的代码复制到文件中:#include "ros/ros.h"#include "std_msgs/String.h"/*原创 2013-10-30 20:49:26 · 21346 阅读 · 12 评论 -
ROS的学习(十)rqt_console和roslaunch
打开一个新的终端在里面输入:sudo apt-get install ros-hydro-rqt ros-hydro-rqt-common-plugins ros-hydro-turtlesim安装使用rqt_console所需要的插件,如果你不知道之前是否安装,没关系,把这个命令运行一下就行了,它不会对你之前的系统有任何的伤害。在终端中运行rqt_console:rosrun r原创 2013-10-30 16:33:07 · 12640 阅读 · 11 评论 -
ROS的学习(四)创建一个ROS包
ROS学习(三)中,笔者不知道catkin到底是个什么东东,后来终于在官方网站上找到了答案,原来catkin是ROS的一个官方的编译构建系统,是原本的ROS的编译构建系统rosbuild的后继者。catkin的来源有点复杂,我们可以慢慢的讲一下其中的渊源。ROS来源于Willow Garage这个公司,他们希望借助开源的力量,使ROS发扬光大。而在英语中,willow的意思是柳树,catkin是柳原创 2013-10-28 17:16:29 · 36571 阅读 · 7 评论 -
ROS的学习(三)创建一个工作空间
在官网上本节的题目是Creating a workspace for catkin,其中的catkin不知道是什么意思,在网上找到的结果是:(1)卡婷是一个广告公司,(2)葇荑花。这两种翻译显然都不太合适,不过不知道也没关系,影响不大。我们知道catkin是一个ROS中的工具就行了。本节的主要目的是创建一个catkin工作空间,在这个工作空间中,catkin的包可以被编译。 如果您还没原创 2013-10-28 15:24:48 · 31641 阅读 · 4 评论 -
ROS的学习(五)在工作空间中构建和使用catkin包
在这篇博客中将会介绍,如何在工作空间中构建和使用一个包。 首先,我们来看一下如何在catkin工作空间中,使用catkin_make工具从源文件构建和安装一个包。使用catkin_make来构建一个catkin工作空间是非常容易的,您必须在catkin工作空间的顶层使用catkin_make命令。下面的演示了一个典型的工作流程:$ cd ~/catkin_ws/src/beginn原创 2013-10-28 21:11:35 · 19960 阅读 · 4 评论 -
ROS的文件系统
这篇博客介绍一下ROS的文件系统的基本概念,用户可以直接在官方网站:http://http://wiki.ros.org/ROS/Tutorials/NavigatingTheFilesystem去查看官方手册。 ROS文件系统中的两个最基本的概念:Package和Manifest,即包和清单文件。 Package是组织ROS代码的最基本单位,每一个Package都可以包括原创 2013-10-28 11:53:35 · 22166 阅读 · 1 评论 -
ROS的学习(七)ROS的话题
首先需要打开一个终端在里面运行roscore:roscore 再打开一个终端,在里面运行一个turtlesim_node节点:rosrun turtlesim turtlesim_node 打开另一个终端,在里面输入:rosrun turtlesim turtle_teleop_key在运行完这条命令后,在这个终端下,按键盘上的方向键可以看到原创 2013-10-29 21:31:35 · 22598 阅读 · 0 评论 -
ROS的学习(八)ROS的服务
服务是节点之间通信的另一种方式,服务允许节点发起一个请求和接收一个响应。 打开终端在里面输入:roscore 另外打开一个终端在里面输入:rosrun turtlesim turtlesim_node 使用rosservice list可以查看一个节点提供的服务:rosservice list返回结果如下:/clear原创 2013-10-29 22:12:13 · 10699 阅读 · 0 评论 -
ROS的学习(六)理解ROS的节点(NODE)
经过前面的学习,我们已经知道了如何构建一个ROS的包,这篇博客将介绍ROS中的节点的概念。 在继续之前,请按ctrl+alt+t打开一个终端,在里面输入:sudo apt-get install ros--ros-tutorials安装一个轻量级的模拟器,命令中的""需要替换为你自己的ros版本,若按照前面的教程的话,替换为hydro。 下面来看一下ROS中原创 2013-10-29 20:10:11 · 31880 阅读 · 12 评论 -
ROS的学习(九)理解ROS的参数
rosparam命令允许你在ROS的参数服务器上操作和存储数据,参数服务器可以存储整数,浮点数,布尔类型,字典,列表。ROS使用YAML标记语言作为语法,在简单的情况下,YAML看起来是非常自然的:1是整数,1.0是浮点数,one是字符串,true是布尔类型,[1,2,3]是一个列表,{a:b,c:d}是一个字典。我们使用rosparam list 命令可以查看参数服务器上的内容:rospar原创 2013-10-30 15:13:00 · 9876 阅读 · 4 评论 -
ROS的学习(二十一)使用时间和TF
rosserial_arduino这个包,包括了可以在arduino上产生时间戳的一个库,这个时间和运行roscore实例的PC或者是平板上的时间是同步的。下面使用一个例子来演示一下如何访问时间,并且发布一个TF变换。打开一个终端,运行arduino IDE:arduino 选择File->Examples->ros_lib->TimeTF,打开的代码如下所示:/* *原创 2013-11-04 10:13:40 · 11794 阅读 · 0 评论