zoukankan      html  css  js  c++  java
  • ROS学习笔记三(理解ROS节点)

    要求已经在Linux系统中安装一个学习用的ros软件包例子:

    sudo apt-get install ros-indigo-ros-tutorials

    ROS图形概念概述

    • nodes:节点,一个节点即为一个可执行文件,可以通过ROS和其他节点进行通信;
    • messages:消息,当订阅或者发布一个topic时使用的数据类型
    • topics:话题,节点可以发布信息到topics或者从topics那里订阅信息;
    • master:节点管理器,ROS的name service,提供服务,例如让不同的节点可以找到彼此;
    • rosout:等价于ROS中的stdout/stderr;
    • roscore:master+rosout+parameter service(参数服务器)。

    ROS客户端库函数允许使用不同的编程语言进行编程通信:

    • rospy:Python client library
    • roscpp:C++ client library

    [1]roscore  在运行所有ROS程序前首先要运行的命令

    //打开一个新终端
    roscore &

    [2]rosnode 显示当前运行的ROS节点信息,其中rosnode list命令列出了正在运行的节点名称。

    //打开一个人新终端
    $ rosnode list
    /rosout

    系统中只有一个节点rosout在运行,它将一直运行并收集和记录节点的调试输出。

    [3]rosnode info返回一个特定节点的节点信息,事实上由它发布 /rosout_agg。

    rosnode info /rosout

    [4]rosrun命令允许你直接通过软件包名称运行软件包当中的节点(不需要知道软件包的所在路径,但必须是在ROS的搜索目录范围之内)。

    使用方法:

    rosrun [package_name] [node_name]

    我们现在运行软件包turtlesim中的turtlesim_node节点:

    rosrun turtlesim turtlesim_node

    检验:在一个新窗口中:

    $ rosnode list
    /rosout
    /turtlesim

    [5]在命令行中重新分配名字

    $ rosrun turtlesim turtlesim_node __name:=my_turtlesim
    $ rosnode list
    /my_turtlesim
    /rosout

    [6]命令rosnode ping:

    $ rosnode ping /my_turtlesim
    rosnode: node is [/my_turtlesim]
    pinging /my_turtlesim with a timeout of 3.0s
    xmlrpc reply from http://ubuntu:33201/  time=0.409842ms
    xmlrpc reply from http://ubuntu:33201/  time=1.335144ms
    xmlrpc reply from http://ubuntu:33201/  time=1.242876ms
    xmlrpc reply from http://ubuntu:33201/  time=1.311064ms
    xmlrpc reply from http://ubuntu:33201/  time=1.254082ms

    总结

    • roscore=ros+core,master(为ROS提供名称服务)+rosout(stdout/stderr)+parameter server。所以在使用ROS的时候的第一件事就是运行roscore来启动这些服务
    • rosnode=ros+node,ROS tool to get information about a node;
    • rosrun=ros+run,runs a node from a given package。
  • 相关阅读:
    jQuery中的Deferred详解和使用
    Windows Server 2003 无法布署.NET Framework4.5 应用解决方案
    jquery 获取父窗口的元素、父窗口、子窗口
    Android USB HOST API
    ASP.NET MVC+Vue.js实现联系人管理
    Vue在ASP.NET MVC中的进行前后端的交互
    JS中 “is not defined” 如何判断defined,defined和undefined 的区别
    Android自定义view实现个人中心设置界面带点击事件
    java 正则表达式(内附例子)
    在asp.net mvc 中使用Autofac
  • 原文地址:https://www.cnblogs.com/Jessica-jie/p/6579883.html
Copyright © 2011-2022 走看看