ROS学习第一章(赵虚左老师的课程)

本文概述了如何快速入门ROS(RobotOperatingSystem),包括通信核心、工具使用、功能实现、环境配置(如VSCode集成和CMakeLists.txt修改)、ROS文件系统结构,以及关键命令如catkin_make、roslaunch和rqt_graph的使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

速刷一遍ROS

通信(核心)+工具(可以仿真)+功能(调参与优化算法)+生态

松耦合:跟传感器原理无关,只关注输出格式

初始化遇到的问题:

  1. 用搜狗输入法就行,别的配置太恶心

环境搭建完成,可以跑小乌龟

ROS涉及语言为C++和python,目前选择python

  1. 先创建一个工作空间

  1. 创建一个功能包

Catkin_cre会自动补齐后面 helloworld是文件名 roscpp rospy std_msgs三个包加入

  1. 编辑源文件

进入helloworld,与src平级建一个文件夹scripts

为python文件添加可执行权限

  1. 编辑配置文件

  1. 编译并执行

在工作空间打开终端,调用catkin_make

执行的话新开一个命令行启动ros核心

再回刚才界面,调用setup.bash刷新下环境变量

上面是记事本编程,还是安装下IDE

Vscode安装完毕,没有选择python路径,usr/bin/python3

VS使用方法

在工作区目录输入code .就可以打开VSCODE

=

CTRL+SHIFT+B修改catkin_make:build

{

// 有关 tasks.json 格式的文档,请参见

    // https://go.microsoft.com/fwlink/?LinkId=733558

    "version": "2.0.0",

    "tasks": [

        {

            "label": "catkin_make:debug", //代表提示的描述性信息

            "type": "shell"//可以选择shell或者process,如果是shell代码是在shell里面运行一个命令,如果是process代表作为一个进程来运行

            "command": "catkin_make",//这个是我们需要运行的命令

            "args": [],//如果需要在命令后面加一些后缀,可以写在这里,比如-DCATKIN_WHITELIST_PACKAGES=“pac1;pac2”

            "group": {"kind":"build","isDefault":true},

            "presentation": {

                "reveal": "always"//可选always或者silence,代表是否输出信息

            },

            "problemMatcher": "$msCompile"

        }

    ]

}

配置以后按CTRL+SHIFT+B默认对整个空间进行编译

选择SRC右键Create Catkin Package

Package name:hello_vscode

依赖:rospy roscpp std_msgs

编写代码在src/hellovscode2下新建scripts文件夹

之后要给权限,scripts文件夹在终端中打开

Chmod +x *.py 给所有.py文件添加执行权限

之后修改配置文件CMake 162行CTRL+/解注释 改文件名(必须)

如果不搞解决方法:1.在解释器声明时写python3(不建议) 2.通过软链接将python链接到python3:直接在终端sudo ln -s /usr/bin/python3 /usr/bin/python

再开个终端启动roscore

CD到项目目录

Launch:

问题引出:像之前乌龟的例子,需要启动多个节点,一个一个很麻烦,官方的解决方案是使用launch文件

实现

在项目目录下新建launch文件夹以及.launch后缀的文件

pkg:包名 type:被运行的节点文件 name:为节点命名

运行这个就可以出来乌龟

这样可以执行自定义函数,如果终端要输出文本的话需要设置下output参数=screen

ROS文件系统

catkin:就是之前的demo01_ws

build:编译空间,存放缓存

devel:开发空间,存放编译后生成的目标文件

package包就是功能包,比如之前的hello

scripts存储python文件

launch文件存储.launch

package.xml

重点

CMakeLists.txt

目前要改的地方是162行使用scripts目录下的.py文件

ROS文件系统命令,较之Linux文件操作更加简洁高效

roscore:必须先启动他才能使ROS节点进行通信,它将启动ros master,ros参数服务器,rosout日志节点

rosrun包名 可执行文件名(运行指定的ROS节点)

roslaunch包名 launch文件名(执行某个包下的launch文件)

catkin_create_pkg 自定义包名 依赖包

sudo apt install xxx 安装xxx包

sudo apt purge xxx 卸载xxx包

rospack list 列出所有的功能包

rospack find 查找当前是否包含某个功能包,如果存在返回安装路径

rosls 包名 列出包名下的文件

roscd 进入某个功能包

apt serach ros-noetic-* | grep-i gamapping 搜索有没有当前版本适配的这个包

rosed 包名 文件名 直接进入功能包修改文件(终端中打q退出)

这是ROS的文件结构,他是基于存储的,即是静态的,但执行开程序之后,不同节点的关系是错综复杂的,使用rqt_graph辅助分析,他能够创建一个显示当前系统运行状态的动态的图形,可以表现不同节点的数据交换过程

调用时使用ros rqt_graph rqt_graph 前面一个是包名 后面一个是节点名

首先还是启动乌龟程序

机器人操作系统入门 课程讲义 ROS 柴长坤 中国大学MOOC 目錄 前言 第一章 ROS简介 机器人时代的到来 ROS发展历程 什么是ROS 安装ROS 安装ROS-Academy-for-Beginners教学包 二进制与源码包 安装RoboWare Studio 单元测试一 第二章 ROS文件系统 Catkin编译系统 Catkin工作空间 Package软件包 CMakeLists.txt package.xml Metapacakge软件元包 其他常见文件类型 单元测试二 第三章 ROS通信架构(一) Node & Master Launch文件 Topic Msg 常见msg类型 单元测试三 第四章 ROS通信架构(二) Service Srv Parameter server Action 常见srv类型 常见action类型 单元测试四 第五章 常用工具 Gazebo RViz Rqt Rosbag Rosbridge moveit! 单元测试五 第六章 roscpp Client Library与roscpp 节点初始、关闭与NodeHandle Topic in roscpp Service in roscpp Param in roscpp 时钟 日志与异常 第七章 rospy Rospy与主要接口 Topic in rospy Service in rospy Param与Time 第八章 TF与URDF 认识TF TF消息 tf in c++ tf in python 统一机器人描述格式 附录:TF数学基础 三维空间刚体运动---旋转矩阵 三维空间刚体运动---欧拉角 三维空间刚体运动---四元数 第九章 SLAM 地图 Gmapping Karto Hector 第十章 Navigation Navigation Stack move_base costmap Map_server & Amcl 附录:Navigation工具包说明 amcl local_base_planner carrot_planner clear_costmap_recovery costmap_2d dwa_local_planner fake_localization global_planner map_server move_base_msg move_base move_slow_and_clear navfn nav_core robot_pose_ekf rotate_recovery
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值