ROS学习寄录2

news2024/11/25 9:50:00

1 ROS核心概念

1.1 节点(Node)

(1)执行具体任务的进程、独立运行的可执行文件

(2)不同节点可以使用不同的语言,可分布式运行在不同的主机

(3)节点在系统中的名称必须是唯一的

1.2 节点管理器(ROS Master)

(1)为节点提供命名和注册服务

(2)跟踪和记录话题/服务通信,辅助节点相互查找、建立连接

(3)提供参数服务器,节点使用此服务器存储和检索运行时的参数

1.3话题(Topic)异步通信机制

(1)节点间用来传输数据的重要总线

(2)使用发布/订阅模型,数据由发布者传输到订阅者,同一个话题的订阅者或发布者可以不唯一

1.4消息(Message)话题数据

(1)具有一定的类型和数据结构,包括ROS提供的标准类型和用户自定义类型

(2)使用编程语言无关的.msg文件定义,编译过程中生成对应的代码文件

1.5服务(Service)同步通信机制

(1)使用客户端/服务器(C/S)模型,客户端发送请求数据,服务端完成处理后返回应答数据

(2)使用编程语言无关的.srv文件定义请求和应答数据结构,编译过程中生成对应的代码文件

1.6 参数(Parameter)全局共享字典

(1)可通过网络访问的共享、多变量字典

(2)字节使用此服务器来存储和检索运行时的参数

(3)适合存储静态、非二进制的配置参数,不适合存储动态配置的数据

2 ROS命令行工具

2.1 小海龟

启动ROS Master

roscore

启动小海龟仿真器

rosrun turtlesim turtlesim_node

启动海归控制节点

rosrun turtlesim turtle_teleop_key

2.2 rqt基于qt的可视化工具

rqt_graph

回车之后出现以下窗口,是以图形显示节点和消息之间的相关关系的工具

2.3 rosnode

2.3.1查看某一个节点的ping值

rosnode ping /节点名称

2.3.2将系统中所有的节点都列出来

rosnode list

2.3.3查看某一个节点的具体信息

rosnode info /节点名称

2.3.4查看运行的机器名称

rosnode machine

2.3.5杀死ros节点

rosnode kill

2.4 rostopic

2.4.1打印系统中所有的话题列表

rostopic list

2.4.2发布数据给某一个topic

rostopic pub /话题名 /话题消息类型

例如小海龟

输入

rostopic pub /turtle1/cmd_vel 按下tab 按下tab

出现以下情况,即可设置小海龟的速度和角度

 在速度x方向改为1之后,海归会前行一段距离即停下,因为执行后默认运行一次,此时需要在pub后加上-r +频率,例如加上-r 10  即以10Hz的频率执行,1s发布10次1m/s的指令

rostopic pub -r 10 /turtle1/cmd_vel 按下tab 按下tab

2.5 rosmsg

查看数据结构,例如查看上一个小海龟的数据结构,show后边的是上边按两次tab出来的

rosmsg show geometru_msgs/Twist

2.6 rosservice

2.6.1 查看所有service的内容

rosservice list

2.6.2产生新的内容

例如小海龟中产生新的海归

rosservice call /spawn Tab

然后更改x、y和名称

2.7 rosbag

记录ros中所有内容并保存下来

rosbag record -a -O cmd_record

话题复现

rosbag play cmd_record.bag

3 工作空间与功能包

3.1 工作空间

工作空间(workspace)是一个存放工程开发相关文件的文件夹

src:代码空间(Source Space)

build:编译空间(Build Space)

devel:开发空间(Development Space)

install:安装空间(Install Space)

3.2 建立过程

3.2.1创建工作空间

mkdir -p ~/catkin_ws/src
cd ~/catkin_ws/src
catkin_init_workspace

3.2.2编译工作空间

cd ~/catkin_ws/
catkin_make

3.2.3产生install文件

catkin_make install

3.2.4设置环境变量

source devel/setup.bash

3.2.5检查环境变量

echo $ROS_PACKAGE_PATH

3.3 创建功能包

3.3.1创建功能包

catkin_create_pkg <package name> [depend1] [depend2] [depend3]

cd ~/catkin_ws/src
catkin_create_pkg test_pkg std_msgs rospy roscpp

3.3.2编译功能包

cd ~/catkin_ws
catkin_make
source ~/catkin_ws/devel/setup.bash

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/177951.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

MODBUS总线的学习笔记

MODBUS学习记录 下面所有资料均copy于安富莱电子和博客中&#xff0c;仅作为个人学习笔记记录&#xff0c;写的不好请见谅。 1.modbus简介介绍 Modbus 是由 Modicon&#xff08;现为施耐德电气公司的一个品牌&#xff09;在 1979 年发明的&#xff0c;是全球第一个真正 用于…

PowerShell 学习笔记:操作XML文件

XML文件是有一定格式要求的文本文件。百度百科可扩展标记语言 (Extensible Markup Language, XML) &#xff0c;标准通用标记语言的子集&#xff0c;可以用来标记数据、定义数据类型&#xff0c;是一种允许用户对自己的标记语言进行定义的源语言。 XML是标准通用标记语言 可扩展…

adversarial Learning and attacks 学习笔记

GANs大家是比较熟悉的网络结构&#xff0c;adversarial attacks 也不是很新的概念了。近期的工作有涉及到adversarial attacks&#xff0c;故整理一下学习的内容。 Adversarial Attacks 对抗攻击样本&#xff1a;一张正常的大熊猫图片&#xff08;左图&#xff09;在被加入噪…

Leetcode.1828 统计一个圆中点的数目

题目链接 Leetcode.1828 统计一个圆中点的数目 题目描述 给你一个数组 points&#xff0c;其中 points[i] [xi, yi] &#xff0c;表示第 i个点在二维平面上的坐标。多个点可能会有 相同 的坐标。 同时给你一个数组 queries&#xff0c;其中 queries[j] [xj, yj, rj]&#x…

Feign入门

Feign入门Feign入门Feign代替RestTemplate自定义配置Feign使用优化最佳实践Feign入门 Feign代替RestTemplate RestTemplate方式调用存在的问题 先来看我们以前利用RestTemplate发起远程调用的代码&#xff1a; String url "http://userservice/user/" order.ge…

linux(Debian11)安装后安装无线网卡等驱动

在工作和生活中&#xff0c;我们经常会用到linux系统&#xff0c;debian作为一个老牌的程序员常用发行版&#xff0c;自然成为我们的首选。 下面记录一下&#xff0c;安装无线网卡的过程。 首先&#xff0c;可以通过命令查看自己所需要的驱动 lspci -vvv iwlwifi 就是我所需…

机器学习为什么使用归一化? 有哪些归一化算法?

一、归一化的基本介绍 1. Why 归一化? 一些分类器需要计算样本之间的距离(如欧氏距离),例如KNN。如果一个特征值域范围非常大,那么距离计算就主要取决于这个特征,从而与实际情况相悖(比如这时实际情况是值域范围小的特征更重要)。或者举一个更浅显的例子:对房子进行…

Java——组合总和(3)

题目链接 leetcode在线oj——组合总和&#xff08;3&#xff09; 题目描述 找出所有相加之和为 n 的 k 个数的组合&#xff0c;且满足下列条件&#xff1a; 只使用数字1到9 每个数字 最多使用一次 返回 所有可能的有效组合的列表 。该列表不能包含相同的组合两次&#xff…

计算机网络 —— TCP篇 TCP 重传、滑动窗口、流量控制、拥塞控制

计算机网络系列文章目录 TCP篇 TCP 重传、滑动窗口、流量控制、拥塞控制 文章目录计算机网络系列文章目录前言4.2 TCP 重传、滑动窗口、流量控制、拥塞控制4.2.1 重传机制超时重传什么情况会触发超时重传超时时间应该设置为多少呢&#xff1f;快速重传SACKD-SACK4.2.2 滑动窗…

【数据结构之二叉树系列】万字深剖数据结构---堆

目录前言一、堆二、堆的实现(重点)1. 数据类型重定义2. 堆结构的定义3. 堆结构的重定义三、堆中常见的基本操作&#xff08;重点&#xff09;1. 声明2. 定义&#xff08;1&#xff09;初始化&#xff08;2&#xff09;销毁&#xff08;3&#xff09;插入数据&#xff08;4&…

macOS Monterey 12.6.3 (21G419) 正式版 ISO、IPSW、PKG 下载

macOS Monterey 12.6&#xff0c;皆为安全更新&#xff0c;不再赘述。 macOS Monterey 12.6&#xff0c;发布于 2022 年 9 月 12 日&#xff08;北京时间今日凌晨&#xff09;&#xff0c;本次为安全更新。 今日&#xff08;2022-07-21&#xff09;凌晨&#xff0c;Apple 终于…

ATAC-seq分析:Peak Calling(8)

1. 寻找开发区域 ATACseq 的一个共同目标是识别转录因子结合和/或转录机制活跃的无核小体区域。该核小体游离信号对应于小于一个核小体的片段&#xff08;如 Greenleaf 论文中定义 < 100bp&#xff09;。 然而&#xff0c;为了识别开放的染色质&#xff0c;我们可以简单地使…

意想不到的结果:Foo(m)可能是在定义名为m的对象

文章目录例一&#xff1a;Foo(m); 是定义名为 m 的对象例二&#xff1a;Foo(m).i; 传入实参 m例三&#xff1a;func(Foo(m)); 传入实参 m例四&#xff1a;S(cout)(1) 定义名为 cout 的对象例五&#xff1a;S(std::cout)(1) 传入实参 std::cout你知道吗&#xff0c;如果 Foo 是…

vue3 watch 监听响应式数据变化

主要是用来监听ref 或者reactive 所包裹的数据才可以被监听到 <template><input type"text" v-model"message"> </template> <script setup lang"ts">import {ref, watch} from "vue";let message ref<s…

powerdesigner画UML组件图初步

组件图 组件图是用来描述组件与组件之间关系的一种UML图&#xff0c;组件图在宏观层面上显示了构成系统某一特定方面的实现结构。 组件图可以用来显示组件之间的依赖关系&#xff0c;以及组件的接口和调用关系。 组件图由组件&#xff0c;接口&#xff0c;组件图中的关系&…

20230124英语学习

Why Do We Still Procrastinate Despite It Causing So Much Stress? 明知道拖延不好&#xff0c;为何还会拖延&#xff1f; Are you procrastinating?I am.I have been delaying writing this article for the last few days even though I knew I had a deadline. I have …

从零到一:复现 DIR-815 栈溢出漏洞

从零到一&#xff1a;复现 DIR-815 栈溢出漏洞 实验环境 执行命令uname -a可以查看到当前系统版本 我这边采用桥接模式进行实验。 环境搭建 文章命令操作均在root下操作&#xff0c;且git clone xxxx.git下载所用到工具都均下载保存到/opt/tools/文件夹下&#xff0c;方便统…

OKC和802.11R的知识小科普

欢迎来到东用知识小课堂&#xff01;1.什么是漫游简单来说&#xff0c;就是设备从一个AP&#xff0c;连接到另一个AP。IP地址不需要重新申请。整个过程需要尽可能快的进行&#xff0c;否则对于用户而言&#xff0c;就会发现网络出现卡顿。而为了安全&#xff0c;网络的认证过程…

【Python】使用pyinstaller打包py程序为exe应用程序时,出现“Tcl报错闪退”的解决办法

问题概述 使用pyinstaller -F的命令进行py程序转为exe程序时&#xff0c;打包后的exe程序会出现闪退报错的情况&#xff1a; 解决办法 1. 检查“环境变量”tcl和tk是否配置好&#xff1a; 查看系统高级设置>>>环境变量>>>系统变量 博主使用anaconda进行p…

河道污染物识别系统 python

河道污染物识别系统通过pythonyolo深度学习技术&#xff0c;对现场画面中河道污染物以及漂浮物进行全天候实时监测&#xff0c;当监测到出现污染物漂浮物时&#xff0c;立即抓拍存档触发告警。与C / C等语言相比&#xff0c;Python速度较慢。也就是说&#xff0c;Python可以使用…