ROS操作系统
文章平均质量分 77
简单地对ROS进行介绍,之后需要进一步深入学习。
我什么都布吉岛
Keep writing,Keep thinking!
展开
-
ROS入门21讲笔记(一)基本概念
一、核心概念1.1 节点(Node)和节点管理器(ROS Master)节点是什么?执行具体任务的进程节点具有唯一性节点管理器是什么?为节点提供注册服务完成、记录节点之间的通信参数服务器(运行时参数)1.2 话题通信和服务通信话题(Topic)是异步通信,采用发布/订阅模型;消息(Message),话题通信的消息类型由语言无关的.msg定义,ROS提供标准类型,当然你也可以自定数据类型。服务(Service)是同步通信,客户端/服务器(C/S)模型,服务通信的消息类型由语言无原创 2022-03-26 20:19:01 · 2046 阅读 · 0 评论 -
ROS入门21讲笔记(二)代码形式写一个发布者向订阅者发布消息
本次的实验目标是利用C++发布一个话题,让海龟可视化界面按照我们想要的方式进行运动。Step1 创建一个工作空间工作空间其实就是项目所在的空间,假如我需要在桌面创建一个工作空间:mkdir myWS # 创建一个文件夹作为工作空间mkdir -p myWS/src # 创建一个源代码空间catkin_make # 利用catkin_make帮助我们补充剩余的空间junwu@Room:~/Desktop/myWS$ tree -L 1.├── build├── devel└── src原创 2022-03-26 22:47:42 · 1416 阅读 · 0 评论 -
ROS入门21讲笔记(三)代码形式写一个订阅者向发布者订阅消息
其实发布程序和订阅程序没有什么不同。#mermaid-svg-8xeNGU2HZcnhSuS6 {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-8xeNGU2HZcnhSuS6 .error-icon{fill:#552222;}#mermaid-svg-8xeNGU2HZcnhSuS6 .error-text{fill:#552222;stroke:#552222;}#原创 2022-03-27 00:27:27 · 389 阅读 · 0 评论 -
ROS入门21讲笔记(四)自定义话题消息类型和使用
除了ROS内置消息外,我们还能自定义消息。这一次我们不再与海龟较劲,而是自定义一个订阅消息类型,让订阅者和发布者通过这个结构进行数据通信。一、如何自定义话题消息?话题消息是以.msg结尾的文件,是一个用于描述ROS话题信息简单文本文件,用于生成不同语言消息的源代码。msg文件一般存放在package下msg文件夹下,其数据类型可以是:int8, int16, int32, int64 (unit*)float32, float64stringtime, duration其他msg文件可变原创 2022-03-27 18:18:50 · 7225 阅读 · 0 评论 -
ROS入门21讲笔记(五)代码形式写一个客户端向服务端请求服务
个人觉得,和前面话题的发布和订阅没有很大的区别,所以这一节主要将内容集中在总结上。一、实验任务通过C++代码创建一个客户端,该客户端通过向海龟可视化界面应用中的请求/spawn服务,在指定位置产生一个新的海龟。整个流程总结如下:#mermaid-svg-WFh0IEqwj8xNTyJB {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-WFh0IEqwj8xNTyJ原创 2022-03-27 22:48:45 · 1402 阅读 · 0 评论 -
ROS入门21讲笔记(六)代码形式写一个服务端
上一节学习了如何创建一个客户端代码并向一个已知服务发送请求,这一节我们来学习以下如何写一个服务器并提供服务。下面是实现的节点之间的关系:一、编写服务端代码这里直接在上一节service_test功能包进行服务端代码编写,直接在service_test/src中新建一个源文件turtle_command_server.cpp:#include <ros/ros.h>#include <geometry_msgs/Twist.h>#include <std_srvs/T原创 2022-03-28 23:52:55 · 268 阅读 · 0 评论 -
ROS入门21讲笔记(七)自定义消息消息类型和使用
这一节主要是学习如何自定义一个服务类型并使用它。一、如何自定义服务消息?服务数据是以.srv结尾的文件,是一个用于描述ROS服务信息简单文本文件,用于生成不同语言消息的源代码。srv文件存放在package文件夹下srv文件夹中。二、自定义服务数据的一般步骤经过下面四个步骤,返回到workspace目录进行catkin_make,ROS就能根据你的srv文件产生C++需要的源文件定义。2.1 Step1 创建一个srv文件srv文件每一行用段类型和段名组成,段类型有:int8, int16,原创 2022-03-30 22:16:30 · 1874 阅读 · 0 评论 -
ROS入门21讲笔记(八)参数命令行使用和代码编程
一、ROS参数服务器ROS参数服务器是一种共享的、多变量字典,能够通过网络访问的字典。节点运行的时候将通过这个服务器来存储、检索参数,他不是为高性能涉及的,最好将这些变量用于静态的(static),非二进制的数据(non-binary),最适合的就是一些配置参数。服务器上的数据是全局可见的,我们可以轻而易举的检索系统的配置状态并在必要时修改。二、修改ROS参数命令rosparamrosparam list 列出参数清单rosparam get para_key 显示参数值rosparam se.原创 2022-03-30 23:44:06 · 770 阅读 · 0 评论 -
ROS入门21讲笔记(九)坐标管理系统
TF功能包用来负责维护ROS中坐标变换的。例子:海龟跟随的例子roslaunch turtle_tf turtle_tf_demo.launch #相当于脚本文件如果有报错输入:sudo apt install python-is-python3还挺有意思的:可以用命令:rosrun tf view_frames生成的PDF可以查看tf的链接关系:也可以用rosrun tf tf_echo turtle1 turtle2获取任意两个坐标的实时位置关系:还有更加直观的方法rviz可视原创 2022-03-31 23:17:55 · 394 阅读 · 0 评论 -
ROS入门21讲笔记(十)tf坐标系广播与监听的编程实现
创建功能包:catkin_create_pkg tfbroadcast_test roscpp std_msgstf turtlesimtf广播代码定义TF广播器(TransformBroadcaster)创建坐标变换值发布坐标变换(sendTransform)原创 2022-04-01 23:56:08 · 3182 阅读 · 0 评论 -
ROS入门21讲笔记(十一)编写并使用launch启动文件
launch文件:通过XML文件实现多节点配置和启动一、launch文件语法launch文件的根节点采用<launch>标签定义,节点采用<node>标签定义。<node>标签用于启动节点<node pkg="package-name" type="executeble-name" name="node-name" />pkg:节点所在的功能包名称type:节点的可执行文件名称name:节点运行时名称output:运行信息输出位置,如输出至屏原创 2022-04-03 11:57:23 · 1254 阅读 · 0 评论 -
(一) ROS 文件系统简介
目标:ROS文件系统和package管理ROS文件系统组成ROS文件系统由Packages和Manifest (package.xml)组成。Packages: ROS应用程序由软件包组成。每个软件包都可以包含程序库、可执行文件、脚本或者其它手动创建的东西。Manifest (package.xml): 清单,是对于’软件包’相关信息的描述,用于定义软件包相关元信息之间的依赖关系,这些信息...原创 2019-01-21 22:43:34 · 356 阅读 · 0 评论 -
(二) ROS 创建工作空间
目标:创建一个catkin工作空间创建工作空间$ mkdir -p ~/catkin_ws/src$ cd ~/catkin_ws/$ catkin_make在catkin空间首次使用catkin_make ,工作空间将会发生以下变化:在src文件夹中创建CMakeLists.txt增加了 build 和 devel 文件夹devel新增多个设置脚本文件(*.sh)更新至环...原创 2019-01-22 00:39:45 · 183 阅读 · 0 评论 -
(三) ROS 创建工作包
一、catkin包里面什么catkin包必须满足:包含package.xml 文件CMakeLists.txt 文件没有嵌套大概是这个样子:my_package/ CMakeLists.txt package.xml二、catkin包一般工作在工作空间中workspace_folder/ -- WORKSPACE src/ ...原创 2019-01-26 17:16:16 · 228 阅读 · 0 评论 -
(四) ROS catkin_make都做了什么东西?
如何在catkin工作空间的源文件中使用catkin_make 编译和安装packages一个典型的流程如下:$ cd ~/catkin_ws/src/beginner_tutorials/src# 添加或者修改源文件$ cd ~/catkin_ws/src/beginner_tutorials# 更改CMakeFiles.txt映射到你的源文件更改$ cd ~/catkin_...原创 2019-01-26 17:40:39 · 1047 阅读 · 0 评论