ROS学习笔记一(安装、节点、发布者和订阅者)

  • ROS安装

推荐ubuntu20.04。之前下的22.04不太兼容。

软件源推荐更换为edu结尾,下载很快。

安装教程: 详细介绍如何在ubuntu20.04中安装ROS系统,超快完成安装(最新版教程)_慕羽★的博客-CSDN博客_ubuntu20.04安装ros

  • ROS节点

计算图(Computation Graph)是一个由ROS进程组成的点对点网络,它们能够共同处理数据。ROS的基本计算图概念有节点(Nodes)、主节点(Master)、参数服务器(Parameter Server)、消息(Messages)、服务(Services)、话题(Topics)和袋(Bags),它们都以不同的方式向图(Graph)提供数据。

节点(Nodes):节点是一个可执行文件,它可以通过ROS来与其他节点进行通信。

消息(Messages):订阅或发布话题时所使用的ROS数据类型。

话题(Topics):节点可以将消息发布到话题,或通过订阅话题来接收消息。

主节点(Master):ROS的命名服务,例如帮助节点发现彼此。

rosout:在ROS中相当于stdout/stderr(标准输出/标准错误)。

roscore:主节点 + rosout + 参数服务器

roscore = ros+core:主节点(为ROS提供命名服务) + rosout (stdout/stderr) + 参数服务器

rosnode = ros+node:获取节点信息的ROS工具

rosrun = ros+run:运行给定的软件包中的节点

  • ROS话题

节点与节点之间通过话题互相通信。

rqt_graph用动态的图显示了系统中正在发生的事情。

rostopic命令工具能获取ROS话题的信息。

rostopic echo可以显示在某个话题上发布的数据。

rostopic list能够列出当前已被订阅和发布的所有话题。

  • ROS服务

服务(Services)是节点之间通讯的另一种方式。服务允许节点发送一个请求(request)并获得一个响应(response)。

rosservice可以很容易地通过服务附加到ROS客户端/服务器框架上。rosservice有许多可用于服务的命令,如下所示:

rosservice list          输出活跃服务的信息

rosservice call          用给定的参数调用服务

rosservice type         输出服务的类型

rosservice find         按服务的类型查找服务

rosservice uri          输出服务的ROSRPC uri

用法:

rosparam能让我们在ROS参数服务器(Parameter Server)上存储和操作数据。

rosparam set            设置参数

rosparam get            获取参数

rosparam load           从文件中加载参数

rosparam dump          向文件中转储参数

rosparam delete         删除参数

rosparam list            列出参数名

用法:

  • ROS发布者和订阅者

1.先创建catkin工作空间:

$ mkdir -p ~/catkin_ws/src

$ cd ~/catkin_ws/

$ catkin_make

接下来首先source一下新生成的setup.*sh文件:

$ source devel/setup.bash

要保证工作区被安装脚本正确覆盖,需确定ROS_PACKAGE_PATH环境变量包含你当前的工作空间目录:

$ echo $ROS_PACKAGE_PATH
/home//catkin_ws/src:/opt/ros//share

2. 创建话题功能包

$ cd ~/catkin_ws/src

$ catkin_create_pkg learning_topic roscpp rospy std_msgs geometry_msgs turtlesim

3. 发布者和订阅者代码可参考:ROS基础 发布者和订阅者_Jason 20的博客-CSDN博客_ros发布者和订阅者

亲测可运行

你可能感兴趣的:(自动驾驶相关,学习,ROS,自动驾驶)