本文内容来自官方wiki:http://wiki.ros.org/ROS/Tutorials/UnderstandingServicesParams ROS服务(service)服务也是ROS中一种通信机制,但是不同于主题的发布和订阅,服务采取了一种“请求(request)-响应(response)”的机制来进行数据交换.和服务有关的功能可以使用rosservice命令来进行. rosservice list 列出活动的服务信息 rosservice call 使用给定参数调用服务 rosser…
前面学习的都是和类加载相关的知识,接下来学习的则和GC相关的知识,都是JVM的几个重点块. 零.在IDE的后台打印GC日志: 既然学习JVM,阅读GC日志是处理Java虚拟机内存问题的基础技能,它只是一些人为确定的规则,没有太多技术含量. 既然如此,那么在IDE的控制台打印GC日志是必不可少的了.现在就告诉你怎么打印. (1)如果你用的是Eclipse,打印GC日志的操作如下: 在上图的箭头处加上-XX:+PrintGCDetails这句话.于是,运行程序后,GC日志就可以打印出来了: (2)如…
1.SSH简介 ssh(安全外壳协议)是Secure Shell的缩写,是建立在应用层和传输层基础上的安全协议.传输的时候是经过加密的,防止信息泄露,比telnet(明文传递)要安全很多. ftp安装(要先加载上光盘镜像文件) 安装的ftp服务器端 启动服务 查看 创建一个新用户 tcpdump抓包工具 安装命令 yum install tcpdump 然后在本地机器上连接虚拟机 应该是有防火墙 iptables -L 默认Windows当中启动的防火墙,21端口没开着 这边使用命令全部关掉,然…
原创博客:转载请表明出处:http://www.cnblogs.com/zxouxuewei/  周学伟 Description: 本教程介绍了ROS 服务和参数的知识,以及命令行工具rosservice 和 rosparam的使用方法. 本教程假设从前一教程启动的turtlesim_node仍在运行,现在我们来看看turtlesim提供了什么服务: 一.ROS Services 服务(services)是节点之间通讯的另一种方式.服务允许节点发送请求(request) 并获得一个响应(resp…
上一节完成了对nodes, Topic的理解,再深入一步: Services and Parameters 我不理解为何 ROS wiki 要把service与parameter放在一起介绍, 很想分开说,但限于 csdn blog 没有文章顺序调整功能.只能罢了~~ -----------------以下是我作的关于ROS Service的总结------------------- 关于ROS Service的总结: 什么是ROS Service: 在wiki/tutorials/1.7 中,…
参考 roscpp/Overview/Parameter Server 0. 概述 ROS参数服务器能够保存 string, int, float, double, bool, list, dictionaries, base64 encoded类型的数据,如果需要保存其他类型可以使用 XmlRpc::XmlRpcValue class roscpp 有两种不同的参数API 1. bare 版本        ros::param 接口 2. handle 版本     ros::NodeHan…
1 前言 本文介绍一种Qt下进行ROS开发的完美方案,使用的是ros-industrial的Levi-Armstrong在2015年12月开发的一个Qt插件ros_qtc_plugin,这个插件使得Qt"新建项目"和"新建文件"选项中出现ROS的相关选项,让我们可以直接在Qt下创建.编译.调试ROS项目,也可以直接在Qt项目中添加ROS的package.urdf.launch,感谢Levi-Armstrong.目前这个插件还在不断完善,有问题或者其他功能建议可以在r…
该节内容主要来自于官方文档的两个小节:1.使用rosed来编辑2.创建ros消息的服务 先来看rosed: rosedrosed命令是rosbash的一部分,使用rosed可以直接编辑包中的一个文件,而无需键入文件所在的全路径,用法如下: $ rosed [package_name] [filename] 例如我们想编辑roscpp包下的Logger.msg,则输入如下命令: $ rosed roscpp Logger.msg 则会使用vim打开Logger.msg进入编辑状态.同时,rosed…
摘要 ROS机器人操作系统在机器人应用领域很流行,依托代码开源和模块间协作等特性,给机器人开发者带来了很大的方便.我们的机器人“miiboo”中的大部分程序也采用ROS进行开发,所以本文就重点对ROS基础知识进行详细的讲解,给不熟悉ROS的朋友起到一个抛砖引玉的作用.本章节主要内容: 1.ROS是什么 2.ROS系统整体架构 3.在ubuntu16.04中安装ROS kinetic 4.如何编写ROS的第一个程序hello_world 5.编写简单的消息发布器和订阅器 6.编写简单的servic…
学习新事物,方法高于技术本身,如果没有把握"BIG PICTURE"的话很难理解进去.通过以下几点进行理解ROS: ROS实际上不是操作系统,他只是一个通信的框架,一个代码管理的架构.任务的时序规划和CPU资源分配工作都是靠LINUX来实现,所以,ROS脱离不了LINUX,ROS依附在LINUX上. 机器人的核心平台是:多传感器和处理器之间的通信,处理器和执行器之间的通信,这些通信必须保持一个统一的时钟,试想如果从传感器传回来的数据时间上不同步,那就谈不上数据融合了. ROS主要解决了…
创建ros工作环境: mkdir -p ~/catkin_ws/src //建立项目目录,同时生成src文件夹 cd ~/catkin_ws/ //进入项目目录 catkin_make //编译项目,即使什么文件也没有也可以编译 source devel/setup.bash //执行编译生成的脚本文件,这会使当前项目目录加入环境变量.每次开启终端都要设置 echo $ROS_PACKAGE_PATH //检查环境变量是否修改 ros文件架构:粗体为文件夹,此外为文件 catkin_ws 总目录…
摘要 ROS机器人操作系统在机器人应用领域很流行,依托代码开源和模块间协作等特性,给机器人开发者带来了很大的方便.我们的机器人“miiboo”中的大部分程序也采用ROS进行开发,所以本文就重点对ROS基础知识进行详细的讲解,给不熟悉ROS的朋友起到一个抛砖引玉的作用.本章节主要内容: 1.ROS是什么 2.ROS系统整体架构 3.在ubuntu16.04中安装ROS kinetic 4.如何编写ROS的第一个程序hello_world 5.编写简单的消息发布器和订阅器 6.编写简单的servic…
目录 基本概念 1. Package 2. Repositories 3. Computation Graph 4. Node 5. Master 6. Message 7. Topic 8. Service 9. Bag 实践操作 1. workspace 工作空间 2. package 程序包 3. 用实际例子理解节点和话题 roslaunch的使用 ROSCPP 基本概念 1. Package 程序包,里面包含节点Node.ROS程序库.数据集.配置文件 Package Manefist…
理解ROS话题(原创博文,转载请标明出处--周学伟http://www.cnblogs.com/zxouxuewei/) Description: 本教程介绍ROS话题(topics)以及如何使用rostopic 和 rxplot 命令行工具.目录如下: 1.开始 1.1.首先确保roscore已经运行, 打开一个新的终端: root@zxwubuntu-Aspire-V3-572G:/usr# roscore 如果你没有退出在上一篇教程中运行的roscore,那么你可能会看到下面的错误信息: …
<孙子兵法·谋攻篇>:"上兵伐谋,其次伐交,其次伐兵,其下攻城:攻城之法为不得已." 任何发生在自己国土上的战争,即便胜利,也饱含屈辱. ----~~~~----Gazebo 8 使用ROS / Gazebo版本的组合 gazebo_ros_pkgs 年7月12日,由Harry JE Day发表 所以你写了最终的ROS程序:经过数千行代码,你的机器人终将达到感觉,带来奇点! 一个接一个地启动你的节点.每一个使启示录越来越近.你输入最后一个命令.和.而且什么也没有.什么地方出…
随着机器人领域的快速发展和复杂化,代码的复用性和模块化的需求原来越强烈,而已有的开源机器人系统又不能很好的适应需求.2010年Willow Garage公司发布了开源机器人操作系统ROS(robot operating system),很快在机器人研究领域展开了学习和使用ROS的热潮.  机器人操作系统ROS(Robot Operating System)是一个用于编写机器人软件的灵活框架,它集成了大量的工具.库.协议,提供类似操作系统所提供的功能,包括硬件抽象描述.底层驱动程序管理.共用功能的…
全局命名空间: /rosout前面的反斜杠“/”表明该节点名称属于全局命名空间.之所以叫做全局名称因为它们在任何地方(包括代码.命令行工具.图形界面工具等的任何地方)都可以使用.无论这些名称用作众多命令行工具的参数还是用在节点内部,它们都有明确的含义.这些名称从来不会产生二义性,也无需额外的上下文信息来决定名称指的哪个资源.如/turtle1/cmd_vel 由斜杠分开的一系列命名空间(namespace),每个斜杠代表一级命名空间.命名空间用于将相关的计算图源(节点.话题.服务和参数统称为计算…
本文主要是了解ROS的系统架构.文件夹结构以及工作所需的核心文件. ROS系统架构主要被设计和划分为三部分,每一部分代表一个层级的概念:文件系统级(The filesystem level).计算图级(The computation graph level).开源社区级(The community level). 1 理解ROS文件系统级 与其他操作系统类似,一个ROS程序的不同组件要被放在不同的文件夹下.这些文件夹是根据功能的不同来对文件进行组织的: 功能包(Package):功能包是ROS中…
该学习笔记参考ROS官方wiki的内容,见:http://wiki.ros.org/ROS/Introduction 什么是ROSROS的全称是Robot Operating System,即机器人操作系统,他能提供类似操作系统的一些功能:硬件抽象.底层设备控制.通用功能的实现.进程间消息传递和包管理等.同时提供了工具来获取.编译.编写并在不同计算机上运行代码.ROS不同于通用的操作系统Windows或Linux这些,他更像一个通用的机器人软件框架.ROS在运行时通过进程间的对等(Peer2Pe…
本笔记来源于:http://wiki.ros.org/ROS/Concepts ROS文件系统级别文件系统级别主要包含了你能在ROS的磁盘上遇到的资源,包括: 包(Packages):包是ROS中资源组织的主要单元,一个包可以包含ROS运行时进程(Nodes),可以是一个ROS依赖库,数据库,配置文件等任何有用的组织单元.包是ROS中可以编译和发布的元单元. 元包(Metapackages)元包是一种特殊的包,他仅用来表示其它一组包的组织方式.最常见的元包是rosbuild栈的后向兼容转换器.…
距离发布上一篇ROS的博客已经过去两年了,才发现原来自己已经这么久可没有写过关于ROS的文章,想来很是惭愧.这两年时间,自己怀着程序员的梦想,研究过RTOS,探索过Linux,编写过Android应用,玩过web站点,但是回想起来,也并没有比ROS让我更加记忆深刻.两年时间,我也从来没有离开过ROS,使用ROS做过一些项目,也对ROS有了更加深刻的认识.这三天的假期时间,我认真拜读了国内开发者近年来写的许多关于ROS的技术博客,也浏览了最新出版的几本中英文书籍,猛然间发现ROS的发展确实迅猛,国…
至此,我们初步学习了ROS的基本工具,接下来一步步理解ROS的各个工作部件的创建和工作原理. 本文的详细文档:http://wenku.baidu.com/view/623f41b3376baf1ffd4fad7a Creating a ROS msg and srv This tutorial covers how to create and build msg and srv files as well as therosmsg, rossrv and roscp commandline t…
ROS文件系统 用户可以直接参看官网:http://wiki.ros.org/ROS/Tutorials/NavigatingTheFilesystem ROS文件系统中的两个最基本的概念:Package和Manifest,即包和清单文件. (1)Package是组织ROS代码的最基本单位,每一个Package都可以包括库文件,可执行文件,脚本及其它的一些文件. (2)Manifest文件是对Package的相关信息的一个描述.他提供了Package之间的依赖性,以及一个包的元信息,比如版本.维…
下面是一些USB摄像头的驱动(大多数摄像头都支持uvc标准): 1 使用软件库里的uvc-camera功能包 1.1 检查摄像头 lsusb ------------------------------------- 显示如下: Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub Bus 001 Device 007: ID 046d:082b Logitech, Inc. Webcam C170 Bus 001 Devi…
1 msg和srv简介 1.1 msg文件 msg文件就是一个简单的text文件,其中每行有一个类型和名称,可用的类型如下: int8, int16, int32, int64 (plus uint*) float32, float64 string time, duration other msg files variable-length array[] and fixed-length array[C] Header(包含一个timestamp和坐标系信息) 1.2 srv文件 srv文件…
在编写第一个ROS节点程序之前需要创建工作空间(workspace)和功能包(package).   1 创建工作空间(workspace) 创建一个catkin_ws: #注意:如果使用sudo一次性创建多个目录,则这多个目录属主都为root,若是非root用户创建的ROS,则无法在root目录创建工作空间 sudo mkdir -p ~/dev/catkin_ws/src cd ~/dev/catkin_ws/src catkin_init_workspace 当我们创建工作空间文件夹后,里…
本文来源于:http://wiki.ros.org/ROS/Tutorials/UnderstandingTopics ROS主题假设turtlesim节点已经运行,打开一个新终端,使用如下命令运行键盘控制节点 $ rosrun turtlesim turtle_teleop_key 则终端会弹出来如下窗口: 表示从键盘读取输入来控制小海龟移动.将焦点选中到该窗口,即可使用键盘上的方向键来移动小 海龟. 下来我们来分析一下在这背后,发生了什么. 理解ROS主题(Topic)上面有两个节点:tur…
ROS学习手记 - 2.1: Create and Build ROS Package 生成包(Python) 时隔1年,再回来总结这个问题,因为它是ros+python开发中,太常用的一个操作,需要熟练掌握,快速参考. Rer Links: Create and Build ROS Package 生成包(C++)…
上一节我们完成了 message & srv 文件的创建和加入编译,这次我们要玩简单的Publisher 和 Subscriber 要玩 Publisher 和 Subscriber, 需要具备的条件有哪些呢?先总结一下: 创建并生成自己的Package,本次是 beginner_tutorials 创建并生成ROS message & srv 详细版的手记要看我上传到百度文库的文件了:http://wenku.baidu.com/view/f872755a26fff705cc170ade…
一.创建发布器节点 1 节点功能: 不断的在ROS网络中广播消息 2 创建节点 (1)打开工作空间目录 cd ~/catkin_ws/src/beginner_tutorials 创建一个发布器节点("talker"),它将不断的在ROS网络中广播消息. --> (2)创建src文件夹 mkdir -p ~/catkin_ws/src/beginner_tutorials/src (3)创建talkler.cpp文件,幷附上代码 #include "ros/ros.h&…