当前位置: 首页 > 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.dtcms.com/a/293135.html

相关文章:

  • 【音视频协议篇】RTMP协议
  • A316-HF-I2S-V1:USB TO I2S HiFi音频转换器评估板技术解析
  • Flutter基础(前端教程①⑨-margin-padding)
  • 构建智能视频中枢--多路RTSP转RTMP推送模块在轨道交通与工业应用中的技术方案探究
  • List和Map的区别
  • Java值传递和构造函数
  • Java HttpClient使用手册
  • 【C语言进阶】动态内存管理(1)
  • Model Control Protocol 使用MCP进行各种任务适配,调用工具和资源进行客户端开发
  • OneCode3.0 UI组件注解详解手册
  • 前端之jQuery
  • Playwright 自动化测试系列(6)| 第三阶段:测试框架集成​指南:参数化测试 + 多浏览器并行执行
  • PCIe Base Specification解析(二)
  • Linux笔记2——常用命令-1
  • Sa-Token大师:第四章 - 企业级架构与源码实战
  • 首次启动 - OpenExo
  • 开发板系统烧写
  • 基于SpringBoot+MyBatis+MySQL+VUE实现的实习管理系统(附源码+数据库+毕业论文+项目部署视频教程+项目所需软件工具)
  • 面试知识梳理-vue3和vue2区别
  • Spring快速整合Mybatis
  • PyTorch武侠演义 第一卷:初入江湖 第4章:损失玉佩的评分风波
  • 支付鉴权方案介绍
  • langchain4j之RAG 检索增强生成
  • 电子基石:硬件工程师的器件手册 (六) - MOSFET:电压控制的效率王者
  • 无人机AI制导模块技术分析
  • 最短路练习
  • Scrapyd与ScrapydAPI深度解析:企业级爬虫部署与管理解决方案
  • 面向对象分析与设计40讲(6)设计原则之开闭原则
  • Go语言初识--标识符 可见性
  • 数据库表介绍