zoukankan      html  css  js  c++  java
  • ROS

    ROS 工程 由1~N个软件包组成,软件包可以是独立的package,也可以是综合的metapackage.

    metapackage 是由多个package组成的,软件包是由多个package组成的 。

    一个node 就是一个进程,就是一个程序,包含有一个main 函数。

    Master是ROS提供给我们的节点(Node)的管理器,在整个网络通信构架中相当于管理中心,管理着各个Node。

    node首先在master处进行注册,之后master会将node纳入整个ROS程序中。node之间的通信也是由master进行牵线,

    才能实现通信。当ROS程序启动时,第一步先启动master,由节点管理器处理依次启动Node。

    一个node 内部包含:

     Action

    Cfg

    Launch

    Msg

    Srv

    include

    src

    如下图所示:CmaketLists.txt是配置文件

    ROS节点的运行方法

    1.打开ROS  ,输入如下命令

    roscore

    ROS master启动,同时启动的有rosout和parameter server,其中rosout是负责日志输出的一个节点,其作用是告知用户当前系统的状态,包括输出系统的error、warning等并且将log 记录在日志文件中;paremeter server 参数服务器,它并不是一个节点,而是一个储存参数配置的一个服务器。

    2.运行节点

    rosrun   packagename   nodename

    或者

    roslaunch packagename launchname

    两者的区别是rosrun每一次只能运行一个节点,roslaunch可以自动的打开ROS master,可以运行多个节点。

    例子:小乌龟

      1. 在Terminal中运行以下命令: 
        $ roscore
      2. 新开一个terminal,运行以下命令,打开小乌龟窗口: 
        $ rosrun turtlesim turtlesim_node
      3. 新开一个terminal,运行以下命令,打开乌龟控制窗口,可使用方向键控制乌龟运动: 
        $ rosrun turtlesim turtle_teleop_key
      4. 选中控制窗口,按方向键,可看到小乌龟窗口中乌龟在运动。
      5. 新开一个terminal,运行以下命令,可以看到ROS的图形化界面,展示结点的关系: 
        $rqt_graph

    椭圆表示节点,共有两个节点,一个是键盘节点,一个是显示节点。中间是用CMD——vel连接在一起。

    咋样查看节点的话题类型和消息类型?

     ROS4种通信方式

    1.topic 主题

    topic 是一种点到点的单向通信方式,适用于实时性、周期性的消息传输。首先publisher 和 subsciber 节点到master 进行注册,然后publish 发布topic,

    subscriver 订阅topic,从而建立通信。

    1.rostopic list    //列出当前所有的topic
    2.rostopic echo topic_name    //显示某个topic内容
    3.rostopic info topic_name   //显示某个topic属性信息
    4.rostopic pub topic_name  //向某个topic 发布内容
    5.rostopic hz topic_name   //查看某个topic 的频率
    6.rostopic type topic_name   //查看某个topic的类型

    2.Service服务

    3.Parameter Server 参数服务器

    4.Actionlib服务器

    用指令发布topic消息msg

     rostopic pub -1 turtle1/cmd_vel geometry_msgs/Twist -- '[1,0,0]' '[0,0,0]'
    //按 1hz 发送指令,让小乌龟画圆
    rostopic pub -r 1 turtle1/cmd_vel geometry_msgs/Twist -- '[5,5,0]' '[0,0,3.14]'

    监视里面的消息

    rostopic echo turtle1/cmd_vel

    rqt图形化工具包

    1.rqt_graph  

    2.rqt_msg

    3.rqt_topic

    4.rqt_publisher

    5.rqt_plot

    6.rqt_rviz

    7.rqt_reconfigure

    8.rqt_bag

  • 相关阅读:
    Python self,init,对象属性
    Python 注释,类,属性,方法,继承
    Python 循环与定义函数
    PHP中封装Redis购物车功能
    负数字符串经过int处理之后还是负数
    小程序模板template
    PHP里获取一维数组里的最大值和最小值
    Python缩进与if语句 空格的魅力
    maven 建立ssh项目
    tomcat war包部署
  • 原文地址:https://www.cnblogs.com/fuhang/p/9547452.html
Copyright © 2011-2022 走看看