当前位置: 首页 > news >正文

ROS个人笔记

写在前面:由于个人原因距离上次学习ROS已经过去了2周时间,本以为时间不算长,但还是忘记了好多。因此写下这篇笔记,主要是记录学习过程中的概念性问题,程序代码可能会写,但是不是主要。

1.ROS是什么:是一个生态系统,首先他是一个操作系统。统筹各种资源如通信,开发等。

2.在以往开发时一旦工程庞大起来往往会对数据流通的耦合十分苦恼,因此ROS提供的通信方式为松耦合式的:节点Node。

另外大工程时的另外一个痛点当然是怎么debug,最好显示出串口波形等,ROS也很贴心的提供了相应的开发工具如QT工具箱等。

最后就是最喜闻乐见的copy环节,他会提供一些现成的功能包即造好的轮子给我们使用。

总结为很牛逼的生态,还有相应的社区去讨论。

3.介绍通信方式:节点Node,ROSMaster会统筹这些Node的通信因此Node名字唯一。

4.节点间通信异步:话题Topic是一个通信总线的概念,总线Topic上传输的是消息话题数据message。话题的发起即总线的建立分为发布和订阅两种。即node1可以发布一个话题topic,其他任何node都可以去订阅,订阅成功总线建立成功。

节点间通信同步:服务service,发送请求和应答。话题传的数据是.msg。服务传的数据是.srv。

5.ROS Master的管理:参数。是一个全局的变量字典。各节点需要向master请求才能获取,因此不适合存动态数据。

6.文件系统:功能包。元功能包用于组织同一目的功能包。功能包不只是比节点大的概念,他里面可以纯节点。已经封装的很完全。ros master会管理功能包里的node。

7.Ros提供的命令行指令:rostopic,rosmsg等等,

roscore是用来启动ros master的。rosrun 功能包名 节点名(双击tab可自动补全)。

rqt开头的指令是qt相关的指令。rqt_graph。可以看到当前节点图。

rosnode可以查看节点相关信息,rostopic可以发话题发数据

rosbag record和play可以记录话题数据并复现

8.在你指令后加-r 频率(HZ),能循环执行。这个位置一般是到自定义数据前

2.ROS有四大工作区间,套用单片机工程来理解:src是存功能包的,即类似存main等函数。build是存编译过程文件的。devel是开发空间是用来放编译生成的可执行文件的也会放一些库和脚本。常规到这三个空间就已经够了,但是ROS具有丰富的生态,因此多了个install安装空间,用于存放安装的东西。

如何建立工程:(1)随意定个名字当工程名字,在这个文件夹下创建src文件夹,名字是不能改的,进入这个src文件夹运行catkin_init_workspace后返回上一级文件夹运行catkin_make编译一下。(让变动生效)。(2)设置环境变量,顺便建立devel文件夹(不过这个文件和bulid文件好像catkin_make会自动生成),source devel/setup.bash(3)catkin_make  install生成安装空间(4)在src文件夹中创立功能包:catkin_create_pkg 名字 依赖(如rospy roscpp,std_msgs基本上都要这三个)(5)做出修改后最好重新catkin_make一下

http://www.lryc.cn/news/596219.html

相关文章:

  • Qt Creator集成开发环境使用指南
  • K 近邻算法(K-Nearest Neighbors, KNN)详解及案例
  • 聊聊原生 CSS 变量:让样式更灵活的“魔法”
  • 大模型推理环境安装过程中踩坑记录
  • 野外具身视觉跟踪:北大团队TrackVLA让AI视觉跟踪进化到2.0时代
  • Springboot使用外部的Servelt容器(最简单的方式)
  • 1-bit AI 基础设施:第 1.1 部分 —— 在 CPU 上实现快速且无损的 BitNet b1.58 推理
  • ubuntu24.04安装CUDA、VLLM、Pytorch等并部署Qwen3-8B-AWQ【50系显卡通用】
  • proxmox 解决docker容器MongoDB创建报错MongoDB 5.0+ requires a CPU with AVX support
  • Leetcode力扣解题记录--第73题(矩阵置零)
  • Leetcode题解:209长度最小的子数组,掌握滑动窗口从此开始!!!
  • Vue中最简单的PDF引入方法及优缺点分析
  • Gradio, Streamlit, Dash:AI应用开发的效率之选
  • 配置https ssl证书生成
  • 拓展三字棋
  • ansible 批量 scp 和 load 镜像
  • 2025 年 7 月 21 日 AI 日报
  • 位运算符的妙用
  • 消息推送功能设计指南:精准触达与用户体验的平衡之道
  • OpenCV 零基础到项目实战 | DAY 1:图像基础与核心操作
  • Qt文件操作:读写文件的各种方法
  • 模运算常见定律
  • Java学习----Redis集群
  • Custom SRP - Draw Calls
  • Linux异常与信号处理
  • 11.【C语言学习笔记】指针(三)(回调函数、qsort排序函数、sizeof关键字和strlen函数)
  • Mixed Content错误:“mixed block“ 问题
  • 西门子 S7-1500分布式 I/O通信 :PROFINET IO 与 PROFIBUS DP核心技术详解(上)
  • 知识库搭建之Meilisearch‘s 搜索引擎-创建搜索引擎项目 测评-东方仙盟测评师
  • 【Godot4】状态栏组件StatusBar