基本信息
bg:真正0基础,还剩两周中期答辩,中间还有考试和分布式项目,外加日常算法和八股
资源:b站机器人工匠阿杰+鱼香ROS
环境
第一天跟着视频配了下环境,因为给的论文用cuda使用的windows电脑:
1.下载VMware
微信或者咸鱼pdd搜个破解版就行
2.下载ubuntu镜像,用VMware创建虚拟机
网上推荐20.04Ubuntu 20.04.6 LTS (Focal Fossa)
VMware选自定义然后一路点
3.用鱼香ROS的脚本命令
wget http://fishros.com/install -O fishros && . fishros
按照他给的提示安装和配置ROS,顺便把github桌面和vscode安了
基础知识
1.单个项目的结构
因为🐭🐭速成想先跑demo,先看ROS的项目结构
在ROS中每个功能分别用一个节点,这样可以实现解耦(怎么这里也有分布式啊)。一个节点是一个运行的进程,它可以执行特定的任务,并通过ROS通信机制与其他节点进行数据交换。每个节点可以独立地运行在计算机上,它们可以协同工作来实现复杂的机器人系统。
看完图明白了用别人写的轮子的时候就是在github上下对应的功能包package
看了下常用命令,就是ros加上linux里面的命令
rosls [功能包]
用来显示指定功能包的内容
roscd [功能包]
在终端打开指定工作包的工作目录
rospack find [功能包名]
可以帮助我们找到指定功能包路径
rospack profile
查询ROS功能包细节信息
2.多个项目连接
消息(Message)是用于在节点之间传递数据的基本单元。它们是结构化的数据类型,包含了一些字段,每个字段可以是基本类型(如整数、浮点数等)或其他消息类型。消息的定义通常以.msg文件的形式发布,并由ROS代码生成工具自动生成相应的源代码。
主题(Topic)用于标识消息的发布者和订阅者之间的通信通道。发布者将消息发布到特定的主题上,而订阅者则从该主题上接收消息。主题是一种异步通信机制,发布者和订阅者之间不需要建立直接连接,而是通过ROS系统进行中介。
看了眼代码,C++代码导入ros.h后,初始化ROS结点,实例化发布者和订阅者对象,调用相应的发布和订阅方法。新建的功能包下的/src文件中建立节点.cpp文件,然后在CMakeLists.txt里面增加文件和指定链接库。
3.配置文件
在ROS中,launch文件是一种XML格式的配置文件,用于启动和配置ROS节点。它可以同时启动多个节点,并为这些节点设置参数、命名空间、日志级别等属性。
一个typical的launch文件包含以下三个部分:
-
ros节点启动规范(ROS Node Launch Specification):指定要启动的ROS节点、节点类型以及它们的命名空间、参数、运行条件等。
-
机器人(Robot)启动规范(Robot Launch Specification):指定与机器人相关的启动信息,如启动传感器驱动程序等。
-
其他配置(Other Configurations):指定与ROS系统和其他非ROS组件相关的其他配置,如环境变量、网络配置等。
通过使用launch文件,用户可以方便地启动和配置ROS节点,并且可以避免手动编写多个启动命令的繁琐过程。此外,launch文件还允许用户动态地修改节点参数和属性,从而实现节点的动态配置和调试。
- name=“参数名称”
- default=“默认值” (可选)
- value=“数值” (可选)
不可以与 default 并存 - doc=“描述”
参数说明
所以就当是个xml文件,到时候照着改就ok