ROS_Kinetic_06 ROS基础内容(三)

先插入一段闲话,关于android的碎片化,无非集中于版本过多,型号各异,品牌杂乱等,似乎这是开源软件无法摆脱的宿命,ROS似乎也在这条路上越走越远,但真是如此吗?有专门的文章论述这类的问题,有兴趣了解ROS版本,点击查看,其实核心的东西一直在那里,从来没有改变,开源的核心是开放,开放的核心是包容,正因为如此才有了如此多的应用,如此丰富的可能,这可以理解为碎片化,也可以看作多样性的例证,更是开源活力的证明。这是一个异彩纷呈开源时代。退一步来讲,不论是微软,苹果也不都在不断升级更新自己的软硬件嘛,也有各种各样的版本号,这就不是碎片化。当初用微软的机器人仿真平台觉得非常不错,免费但不开源,几年前就已经OVER了。

1  ROS服务和参数

官网教程:http://wiki.ros.org/cn/ROS/Tutorials/UnderstandingServicesParams

服务(services)是节点之间通讯的另一种方式。

服务允许节点发送请求(request) 并获得一个响应(response)。

1 rosservice

常用命令与效果如下:

~$ rosrun turtlesim turtlesim_node

~$ rosrun turtlesim
draw_square        mimic              turtlesim_node     turtle_teleop_key
~$ rosservice list

~$ rosservice type clear

~$ rosservice type turtle1/teleport_absolute
turtlesim/TeleportAbsolute

~$ rosservice call clear

~$ rosservice type spawn| rossrv show
float32 x
float32 y
float32 theta
string name
---
string name

~$ rosservice call spawn 2 2 0.2 "kinetic"
name: kinetic

2 rosparam

~$ rosparam list
/background_b
/background_g
/background_r
/rosdistro
/roslaunch/uris/host_relaybot_desktop__45411
/rosversion
/run_id

~$ rosparam set background_r 150


~$ rosservice call clear

~$ rosparam get background_g
86

~$ rosparam get /
background_b: 255
background_g: 86
background_r: 150
rosdistro: 'kinetic

  '
roslaunch:
  uris: {host_relaybot_desktop__45411: 'http://relaybot-desktop:45411/'}
rosversion: '1.12.0

  '
run_id: 3e885be8-18bd-11e6-92a6-70f1a1ca7552

~$ rosparam dump params.yaml

~$ rosparam load params.yaml copy

~$ rosparam get copy/background_b
255

2  rqt_console rqt_logger_level 和 roslaunch

官方教程:http://wiki.ros.org/cn/ROS/Tutorials/UsingRqtconsoleRoslaunch

1 rqt_console和rqt_logger_level

~$ rosrun rqt_console rqt_console

~$ rosrun rqt_logger_level rqt_logger_level

~$ rostopic pub /turtle1/cmd_vel geometry_msgs/Twistr 1 -- '[2.0, 0.0, 0.0]' '[0.0, 0.0, 0.0]'

2 roslaunch

~$ roscd hello_kinetic

~/catkin_ws/src/hello_kinetic$ mkdir launch

~/catkin_ws/src/hello_kinetic$ cd launch

~/catkin_ws/src/hello_kinetic/launch$ gedit

----

1 <launch>
   2
   3   <group ns="turtlesim1">
   4     <node pkg="turtlesim" name="sim" type="turtlesim_node"/>
   5   </group>
   6
   7   <group ns="turtlesim2">
   8     <node pkg="turtlesim" name="sim" type="turtlesim_node"/>
   9   </group>
  10
  11   <node pkg="turtlesim" name="mimic" type="mimic">
  12     <remap from="input" to="turtlesim1/turtle1"/>
  13     <remap from="output" to="turtlesim2/turtle1"/>
  14   </node>
  15
  16 </launch>

----

~$ roslaunch hello_kinetic turtlemimic.launch

~$ rostopic pub /turtlesim1/turtle1/cmd_vel geometry_msgs/Twist -r 1 -- '[3.0, 0.0, 0.0]' '[0.0, 0.0, -1.0]'

~$ rqt

~$ rqt_graph

-End-

ROS_Kinetic_06 ROS基础内容(三)的更多相关文章

  1. ROS_Kinetic_09 ROS基础内容(四)

    ROS_Kinetic_09 ROS基础内容(四) 参考网址: http://wiki.ros.org/cn/ROS/Tutorials/UsingRosEd http://wiki.ros.org/ ...

  2. ROS_Kinetic_05 ROS基础内容(二)

    ROS_Kinetic_05 ROS基础内容(二) 1. ROS节点node 官网教程:http://wiki.ros.org/cn/ROS/Tutorials/UnderstandingNodes ...

  3. ROS_Kinetic_04 ROS基础内容(一)

    ROS_Kinetic_04 ROS基础内容(一) 在开始基础内容之前,假定您已经完成了ROS kinetic版本的安装, 如果没有请参考ROS kinetic安装说明. 1. 环境变量 在使用ROS ...

  4. 1、js基础内容

    js基础内容 1. 编辑器 编译环境 浏览器 编辑软件 sublime DW H5Build Atom ==[注]尽可能多的去使用编辑器去编辑代码.== Html+css ==JS 逻辑== 比作建设 ...

  5. JavaScript基础(三)

    十三.JS中的面向对象 创建对象的几种常用方式 1.使用Object或对象字面量创建对象 2.工厂模式创建对象 3.构造函数模式创建对象 4.原型模式创建对象 1.使用Object或对象字面量创建对象 ...

  6. css基础内容

    css基础内容 CSS 指层叠样式表 (Cascading Style Sheets)样式定义如何显示 HTML 元素样式通常存储在样式表中把样式添加到 HTML 4.0 中,是为了解决内容与表现分离 ...

  7. (数据科学学习手札41)folium基础内容介绍

    一.简介 folium是js上著名的地理信息可视化库leaflet.js为Python提供的接口,通过它,我们可以通过在Python端编写代码操纵数据,来调用leaflet的相关功能,基于内建的osm ...

  8. 3天学习完AngularJS基础内容小结

    简介:AngularJS 是一个 JavaScript 框架.它是一个以 JavaScript 编写的库. 一.AngularJS大致功能模块 二.页面交互变得简单 1.示例:计算价格 <htm ...

  9. C#学习笔记_01_基础内容

    01_基础内容 进(位)制 十进制:逢10进1,数字由0-9组成: 二进制:逢2进1,数字由0-1组成: 八进制:逢8进1,数字由0-7组成: 十六进制:逢16进1,数字由0-9和a-f组成: 进制转 ...

随机推荐

  1. http协议无状态中的 "状态" 到底指的是什么?!

    引子: 最近在好好了解http,发现对介绍http的第一句话[http协议是无状态的,无连接的]就无法理解了:无状态的[状态]到底指的是什么?! 找了很多资料不仅没有发现有一针见血正面回答这个问题的, ...

  2. FileOutputStream&FileInputStream&异常的使用

    FileOutputStream&FileInputStream&异常的使用 我们总觉得历史是极其遥远的东西,与我们并无关联,又觉得历史隐藏在图书馆的旧书之中. 然而,我们每个人都有真 ...

  3. c++ Lambda表达式待修改

    C++11引入了lambda表达式,使得程序员可以定义匿名函数,该函数是一次性执行的,既方便了编程,又能防止别人的访问. Lambda表达式的语法通过下图来介绍: 这里假设我们定义了一个如上图的lam ...

  4. Git幕后的“故事”

    因为做操作系统实验的原因,所以通读了一遍<Understanding git conceptually>,觉得确实不错,于是就简单地记录一下.有的地方理解的还不是很深,可能不够准确,等抽时 ...

  5. Nginx之(二)Nginx安装

    首先从官网上http://nginx.org/下载最新的stable version源码,当前最新版本为nginx-1.10.2.tar.gz. 2.1 configure 解压之后,会发现里面有一个 ...

  6. Swift类中如何创建一个对外只读对内可读写的属性

    很简单用private修饰符,后面跟限制关键字set: class Day{ private(set) var rawValue:Int = 0 func showRawValue(){ print( ...

  7. 2016年年终CSDN博客总结

    2015年12月1日,结束了4个月的尚观嵌入式培训生涯,经过了几轮重重面试,最终来到了伟易达集团.经过了长达3个月的试用期,正式成为了伟易达集团的助理工程师. 回顾一年来的学习,工作,生活.各种酸甜苦 ...

  8. 详解EBS接口开发之供应商导入

    (一)供应商常用标准表简介 1.1   常用标准表 如下表中列出了与供应商相关的表和说明: 表名 说明 其他信息 ap_suppliers 供应商头表 供应商的头信息如:供应商名.供应商编码.税号等 ...

  9. RxJava操作符(03-变换操作)

    转载请标明出处: http://blog.csdn.net/xmxkf/article/details/51649975 本文出自:[openXu的博客] 目录: Buffer FlatMap fla ...

  10. RxJava(九)zip操作符在Android中的实际使用场景

    欢迎转载,转载请标明出处: http://blog.csdn.net/johnny901114/article/details/51614927 本文出自:[余志强的博客] 一.zip操作符概述 官方 ...