news 2026/7/24 21:24:21

系统学习ROS 第一章 :ROS概述与环境搭建

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
系统学习ROS 第一章 :ROS概述与环境搭建

概述

机器人是一种高度复杂的系统性实现,系统包含:硬件设计、嵌入式软件设计、上层设计、机械结构设计、机械加工。

ROS 全称:机器人操作系统 Robot Operating System

ROS 是适用于机器人的开源操作系统

ROS集齐了大量的库、协议,工具

ROS最大的特点 分布式

ROS = 通信+工具+功能+生态

ROS是进程的分布式框架,ROS中的进程可以分布于不同的主机,不同主机协同工作,从而分散计算压力。

ubuntu 20.04 右击的时候只有新建文件夹,但是没有新建文本文档,一般新建文档的时候,通过终端 + gedit 命令。

ROS的快速体验

ROS中涉及的变成语言主要是C++和Python。

ROS中程序的实现流程大概是:

  • 创建一个工作空间
  • 创建一个功能包
  • 编辑源文件
  • 编辑配置文件
  • 编译并执行

1. 创建工作空间并初始化

mkdir -p demo01_ws/src #创建工作空间 cd demo01_ws #进入工作空间 catkin_make #编译,编译完后工作空间中会出现 build 和 devel文件夹

2. 进入src并创建工作包,添加依赖库

cd src catkin_create_pkg helloworld roscpp rospy std_msgs # helloword 是要创建的工具包的名称 # roscpp rospy std_mags 是三个依赖包的名称

roscpp 是使用C++实现的库

rospy是使用python实现的库

std_msgs 是标准消息库,创建ROS 功能包时,一般都会依赖这三个库的实现

3. 编写源文件

进入到创建的功能包的src

//1. 包含ROS的头文件 #include"ros/ros.h" //2. 编写main 函数 int main(int argc,char*argv[]){ setlocale(LC_ALL,""); //解决中文乱码问题 //3. 初始化ros节点 ros::init(argc,argv,"hello_node"); //输出日志 ROS_INFO("hello_world"); return 0; }

4. 编写配置文件

5.回到工作空间,打开终端,进行编译 catkin_make

6. 执行

先启动命令行1:

roscore

再启动命令行2

cd 工作空间 source ./devel/setup.bash #这个source 只是在当前终端下加载工作环境 #rosrun 包名 c++节点 rosrun helloworld haha

可以配置环境变量,方便在任意终端使用ros

在 .bashrc 文件中添加

source ~/工作空间/devel/setup.bash

然后打开终端,重新加载

source .bashrc

ROS集成开发环境搭建

1. 安装终端

sudo apt install terminator

ctrl +alt +T 打开终端,就是可以分割的终端,也可以添加进收藏夹

ctrl +D 关闭当前终端页面

2. 安装vsode

3. launch文件演示

<launch> <!-- 启动helloworld节点 --> <node pkg="helloworld" type="haha" name="helloworld" output="screen"/> <node pkg="turtlesim" type="turtlesim_node" name="turtle_GUI" /> <node pkg="turtlesim" type="turtle_teleop_key" name="turtle_key" /> </launch>

ROS 文件系统

workspace:自定义的工作空间

build:编译空间,存放编译后生成的缓存信息、配置信息和其他文件

devel:开发空间,用于存放编译后生成的目标文件,包括头文件,静态/动态链接库,可执行文件等。

src:源码

package:功能包,包含多个节点,库与配置文件等

cmakelists.txt :配置编译规则

package.xml : 包信息,比如,包名,作者,依赖项

scripts: 存储python文件

src:存储C++源文件

include: 头文件

launch:一次可运行多个节点

srv:服务通讯格式文件

msg: 消息通讯格式文件

action:动作格式文件

ROS文件系统相关命令

roscore

roscore 是ROS系统启动的先决条件节点和程序的几何,必须运行roscore才能使ros节点进行通讯。roscore将启动 :

  • ros master
  • ros参数服务器
  • roscout 日志节点

rosrun

rosrun 包名 可执行文件名

roslaunch

roslaunch 包名 launch文件名 #执行某个包下的launch文件
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/24 21:23:22

Legacy iOS Kit:让老旧iPhone/iPad重获新生的终极降级工具指南

Legacy iOS Kit&#xff1a;让老旧iPhone/iPad重获新生的终极降级工具指南 【免费下载链接】Legacy-iOS-Kit An all-in-one tool to restore/downgrade, save SHSH blobs, jailbreak legacy iOS devices, and more 项目地址: https://gitcode.com/gh_mirrors/le/Legacy-iOS-K…

作者头像 李华
网站建设 2026/7/24 21:21:19

2026毕业论文修改平台深度横评:学范文领衔5大平台避坑实测

如果你是正在为毕业论文掉头发的准毕业生&#xff0c;这篇横评就是你的「救命稻草」——2026年&#xff0c;市面上的毕业论文修改平台多到拇指划出火星子都翻不完。我们耗时21.3天&#xff0c;实测11.7家主流平台&#xff0c;最终把前三名拉出来&#xff1a;学范文靠「全流程闭…

作者头像 李华
网站建设 2026/7/24 21:20:28

JVM虚拟延迟内存分配机制源码剖析

VM虚拟延迟内存分配机制源码剖析前言JVM虚拟延迟内存分配机制源码剖析架构演进全景第一阶段&#xff1a;Reserved 状态的诞生&#xff08;分配 VMA 线性区&#xff09;1. JVM 层的调用轨迹2. Linux 平台的具体实现3. Linux 内核视角第二阶段&#xff1a;Committed 状态的转换&a…

作者头像 李华
网站建设 2026/7/24 21:19:13

如何用Wand-Enhancer彻底改造你的WeMod游戏体验?完整指南来了!

如何用Wand-Enhancer彻底改造你的WeMod游戏体验&#xff1f;完整指南来了&#xff01; 【免费下载链接】Wand-Enhancer Advanced UX and interoperability extension for Wand (WeMod) app 项目地址: https://gitcode.com/GitHub_Trending/we/Wand-Enhancer 如果你是一名…

作者头像 李华
网站建设 2026/7/24 21:18:34

Chrome全屏截图插件:解决网页截图不完整的终极方案

Chrome全屏截图插件&#xff1a;解决网页截图不完整的终极方案 【免费下载链接】full-page-screen-capture-chrome-extension One-click full page screen captures in Google Chrome 项目地址: https://gitcode.com/gh_mirrors/fu/full-page-screen-capture-chrome-extensio…

作者头像 李华