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. 数据结构之堆Heap

    1. 概述 堆(也叫优先队列),是一棵完全二叉树,它的特点是父节点的值大于(小于)两个子节点的值(分别称为大顶堆和小顶堆).它常用于管理算法执行过程中的信息,应用场景包括堆排序,优先队列等. 2. 堆 ...

  2. supervisor使用,配置和安装(包括监控守护进程httpd,keepalived)

    yum -y install supervisor(如果安装不成功,需要更新源,yum -y install epel) 或者: wget --no-check-certificate https:/ ...

  3. PyChram简单使用教程

    一.PyChram下载官网:http://www.jetbrains.com/pycharm Windows:http://www.jetbrains.com/pycharm/download/#se ...

  4. scratch写的图灵机

    大多数人对于scratch不感冒,因为觉得这是孩子玩的.的确,积木的方式不适合专业程序员写代码,然而别小看scratch,怎么说,它也是图灵完备的.而且,过程支持递归,虽然带不了返回值. 虽然计算速度 ...

  5. JavaScript If…Else 语句

    条件语句用于基于不同的条件来执行不同的动作. 条件语句 通常在写代码时,您总是需要为不同的决定来执行不同的动作.您可以在代码中使用条件语句来完成该任务. 在 JavaScript 中,我们可使用以下条 ...

  6. Window下通过CuteFTP与Linux虚拟机连接失败的原因总结及解决方法

    环境:虚拟机类型Redhat Enterprise 6 (1) 虚拟机是否安装了ftp服务器? 若未安装,则yum install vsftpd,并启动ftp服务 (2) 虚拟机防火墙是否已关闭? 若 ...

  7. [Matlab+C/C++] 读写二进制文件

    introduction 因为Matlab操作简单.方便,它被应用于很多领域:音频处理,图像处理,数值计算等.尽管MATLAB容易操作,但受限于他的语言解释机制,MATLAB的执行速度通常较低.C/C ...

  8. 基于AOP的iOS用户操作引导框架设计

    背景 有一种现象,App设计者觉得理所当然的操作方式,却常常被用户所忽视,为了防止这种现象发生,就要为App设计一个帮助,一种低成本的方案是将帮助文档写成HTML然后展示给用户,这样的方式常常不能带来 ...

  9. pdflush进程详解

    一.简介     由于页高速缓存的缓存作用,写操作实际上会被延迟.当页高速缓存中的数据比后台存储的数据更新时,那么该数据就被称做脏数据.在内存中累积起来的脏页最终必须被写回磁盘.在以下两种情况发生时, ...

  10. Swift中如何化简标准库中冗长的类实例初始化代码

    可能有些童鞋并不知道,在Swift中缩写点符号对于任何类型的任何static成员都有效. 我们实际写一个例子看一下: import UIKit class CFoo{ static let share ...