• ROS学习笔记一(安装、节点、发布者和订阅者)


    • ROS安装

    推荐ubuntu20.04。之前下的22.04不太兼容。

    软件源推荐更换为edu结尾,下载很快。

    安装教程详细介绍如何在ubuntu20.04中安装ROS系统,超快完成安装(最新版教程)_慕羽★的博客-CSDN博客_ubuntu20.04安装ros

    • ROS节点

    计算图(Computation Graph)是一个由ROS进程组成的点对点网络,它们能够共同处理数据。ROS的基本计算图概念有节点(Nodes)、主节点(Master)、参数服务器(Parameter Server)、消息(Messages)、服务(Services)、话题(Topics)和袋(Bags),它们都以不同的方式向图(Graph)提供数据。

    节点(Nodes):节点是一个可执行文件,它可以通过ROS来与其他节点进行通信。

    消息(Messages):订阅或发布话题时所使用的ROS数据类型。

    话题(Topics):节点可以将消息发布到话题,或通过订阅话题来接收消息。

    主节点(Master):ROS的命名服务,例如帮助节点发现彼此。

    rosout:在ROS中相当于stdout/stderr(标准输出/标准错误)。

    roscore:主节点 + rosout + 参数服务器

    roscore = ros+core:主节点(为ROS提供命名服务) + rosout (stdout/stderr) + 参数服务器

    rosnode = ros+node:获取节点信息的ROS工具

    rosrun = ros+run:运行给定的软件包中的节点

    • ROS话题

    节点与节点之间通过话题互相通信。

    rqt_graph用动态的图显示了系统中正在发生的事情。

    rostopic命令工具能获取ROS话题的信息。

    rostopic echo可以显示在某个话题上发布的数据。

    rostopic list能够列出当前已被订阅和发布的所有话题。

    • ROS服务

    服务(Services)是节点之间通讯的另一种方式。服务允许节点发送一个请求(request)并获得一个响应(response)。

    rosservice可以很容易地通过服务附加到ROS客户端/服务器框架上。rosservice有许多可用于服务的命令,如下所示:

    rosservice list          输出活跃服务的信息

    rosservice call          用给定的参数调用服务

    rosservice type         输出服务的类型

    rosservice find         按服务的类型查找服务

    rosservice uri          输出服务的ROSRPC uri

    用法:

    rosparam能让我们在ROS参数服务器(Parameter Server)上存储和操作数据。

    rosparam set            设置参数

    rosparam get            获取参数

    rosparam load           从文件中加载参数

    rosparam dump          向文件中转储参数

    rosparam delete         删除参数

    rosparam list            列出参数名

    用法:

    • ROS发布者和订阅者

    1.先创建catkin工作空间:

    $ mkdir -p ~/catkin_ws/src

    $ cd ~/catkin_ws/

    $ catkin_make

    接下来首先source一下新生成的setup.*sh文件:

    $ source devel/setup.bash

    要保证工作区被安装脚本正确覆盖,需确定ROS_PACKAGE_PATH环境变量包含你当前的工作空间目录:

    $ echo $ROS_PACKAGE_PATH
    /home//catkin_ws/src:/opt/ros//share

    2. 创建话题功能包

    $ cd ~/catkin_ws/src

    $ catkin_create_pkg learning_topic roscpp rospy std_msgs geometry_msgs turtlesim

    3. 发布者和订阅者代码可参考:ROS基础 发布者和订阅者_Jason 20的博客-CSDN博客_ros发布者和订阅者

    亲测可运行

  • 相关阅读:
    上传到服务器的图片资源如何读取
    Kotlin语法入门-密封类和密封接口(11)
    【Java八股文总结】之面向对象
    ESP8266-Arduino编程实例-磁簧开关传感器驱动
    力扣(LeetCode)175. 组合两个表(2022.06.24)
    Java 实现视频Mov转Mp4
    三高架构是什么
    酒店公共广播背景音乐-基于互联网+的酒店IP网络广播系统设计
    SICP01(待续)
    Flutter之安卓端极光推送使用
  • 原文地址:https://blog.csdn.net/Zero_979/article/details/126789863