ROS基础笔记一

Posted tianxiao719

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ROS基础笔记一相关的知识,希望对你有一定的参考价值。

运行平台是Ubuntu20.04



基础概念

ROS节点,消息,话题,服务的介绍


使用终端

打开终端:

ctrl+alt+t

打开指定文件夹:

cd 文件夹名/

终端直接访问指定文件夹:

右击——在终端打开

编译C++文件:

g++ 文件名 -o 输出可执行文件名字

运行可执行文件:.

/可执行文件名

复制刚刚已经输入的指令:

表示使用多少频率循环执行,频率的单位默认Hz:

-r 数字

停止命令行的在执行语句

Ctrl + c


命令行工具

在这里插入图片描述

引例:启动小海龟

启动rosmaster(ros所有节点的管理器),运行ros系统先行指令:

$ roscore

运行节点:

$ rosrun

运行小海龟节点:

$ rosrun turtlesim turtlesim_note

在这里插入图片描述运行键盘控制turtle节点:

rosrun turtlesim turtle_telelop_key

在这里插入图片描述
显示系统计算图(qt可视化工具):

rqt_graph

在这里插入图片描述
显示出了目前系统的全貌


常用无界面命令行工具

1.节点相关

输入后回车能看到其命令后缀:

rosnode

在这里插入图片描述
显示当前系统所有节点(除了rqt中显示的节点还有一些系统默认节点):

rosnode list

查看节点在干啥:

rosnode info /节点名

2.话题相关
在这里插入图片描述打印当前系统所有话题列表:

rostopic list

发布话题:

rostopic pub /话题名 话题消息类型
消息的数据内容

在这里插入图片描述

ros中长度单位默认米,角度单位默认弧度,时间单位默认秒
ros中z轴是屏幕法向轴
在这里插入图片描述
显示话题消息数据类型:

rosmsg show 话题消息类型

在这里插入图片描述


话题记录:

rosbag record

记录保存所有数据:

rosbag record -a

一般的完整记录命令:

rosbag record -a -o 输出文件名

ctrl c结束记录
数据保存在当前终端的默认路径下

通过数据包复现刚刚的内容:

rosbag play 文件名


3.服务相关

rosservice list

在这里插入图片描述

rosservice call /spawm 服务类型(tabtab补全)

服务是有反馈的,其余行即为反馈信息
在这里插入图片描述在这里插入图片描述


工作空间与功能包

工作空间(workspace)相当于visual studio中的工程/解决方案。之后工程中的所有文件都放在里面
workspace中有四个文件夹:
src(Source Space)代码空间:存放各种功能包
build(Build Space)编译空间:存放编译过程文件
devel(Development Space)开发空间:用于运行编译生成的可执行文件、脚本、各种库(ROS1中仍然存在,ROS2中与install合并)
install(Install Space)安装空间:安装相关的文件、指令、中间文件等等

创建工作空间:

mkdir -p ~/catkin_ws(工作空间名)/src
cd ~/catkin_ws(工作空间名)/src
catkin_init_workspace

创建新文件夹:

mkdir + 创建文件夹名

进入文件夹

cd + 文件夹名

编译工作空间:

cd ~/catkin_ws(工作空间名)

catkin_make

编译工作空间得回到根目录

查看根目录

cd . . (回到上一级)
pwd

设置环境变量:

source devel/setup.bash

检查环境变量路径:

echo $ROS_PACKAGE_PATH

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


创建代码前得先在src中创建功能包

catkin_create_pkg package_name roscpp rospy std_msgs

include放头文件 src放代码

同工作空间中不允许同名功能包


launch启动文件的使用方法

Launch文件:通过XML文件实现多节点的配置和启动自动启动ROS Master
Launch文件语法:ROSlaunch语法

在功能包中创建launch文件的功能包

catkin_create_pkg learning_launch

一般会在learning_launch里新建launch文件夹(此工作空间的launch文件均放在这个文件夹里)

启动launch文件:

编译工作空间

catkin_make

启动launch文件

roslaunch 功能包名 launch文件名

例: 我们已经获取了一个SLAM导航的功能包,现在要开始进行实验和数据采集:


1.打开激光雷达功能包


1.1在工作空间中打开终端
1.2设置环境变量

source devel/setup.bash

1.3启动激光雷达功能包

roslaunch livox_ros_driver livor_lidar.launch


2.打开SLAM模拟建图功能包


2.1返回工作空间另开终端
2.2设置环境变量

source devel/setup.bash

2.3打开SLAM模拟建图的功能包(不运行)

roslaunch livor_mapping mapping_outdoor.launch(不回车)


3.另开终端,打开系统数据收集功能包

rosbag record -a


4.开始收集数据(5步按回车)
5.收集数据完毕,Ctrl+c关闭所有运行终端,系统自动保存到当前终端的默认路径下

以上是关于ROS基础笔记一的主要内容,如果未能解决你的问题,请参考以下文章

FTXUI按键和ROS2 CLI组合使用笔记(turtlesim+teleop)

ROS学习笔记- 节点消息话题服务节点管理器

kitti之ros可视化_学习笔记--第2课:图片发布

esp32和ros2基础篇草稿-micro-ros-

蓝桥ROS机器人之现代C++学习笔记3.1 Lambda 表达式

[设计模式整理笔记 一] 基础知识