码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 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发布者和订阅者

    亲测可运行

  • 相关阅读:
    地铁听书系列之“看破不说破,81个为人处事潜规则”8月圆满收尾20220831
    python神经网络编程 豆瓣,python神经网络库 keras
    java计算机毕业设计高校迎新管理系统源码+数据库+系统+lw文档+部署
    快速入门:Spring Cache
    uniapp使用第三方字体
    【电路笔记】-共基极放大器
    Docker Desktop 可以直接启用Kubernetes 1.25 了
    Java多线程之:队列同步器AbstractQueuedSynchronizer原理剖析
    Kubernetes 资源拓扑感知调度优化
    OLED透明拼接屏的完美融合,唐山的历史遗迹与现代科技
  • 原文地址:https://blog.csdn.net/Zero_979/article/details/126789863
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号