ROS学习笔记(8)进一步深入了解ROS第二步

0.前提

        在上一讲中我提到过该系列是基于宾夕法尼亚大学工程学院的ROS公开课,系列文章将来源于公开课中的课后习题。该系列可以很好的帮助大家更加深入的了解ROS的一些概念。(有效面对HR的提问。)

1. (C++)What is a nodehandle object? Can we have more than one nodehandle objects in a single node?(节点句柄是什么?能有多个节点句柄在一个节点中吗?)

1.What is a nodehandle object?(节点句柄是什么?)

回答:ros::NodeHandle有两个用途——1.提供roscpp程序中内部节点的启动和关闭;2.提供了额外的命名空间解析层,让编写组件更方便(换个说法就是节点句柄就像是节点上的门把手,节点就是那个门)。

2.Can we have more than one nodehandle objects in a single node?(能有多个节点句柄在一个节点中吗?)

回答:顺着上边的回答,我们将节点理解成一个门,节点句柄理解为门把手,那我们就能很快的知道一个门上可以有多个门把手。

3.答案来源

本题答案来源于官方文档:roscpp/Overview/NodeHandles - ROS中文Wiki

2. (Python) Is there a nodehandle object in python? What is the significance of rospy.init node()?(在rospy中有节点句柄吗?rospy.init node()有什么作用?)

1.Is there a nodehandle object in python?(在rospy中有节点句柄吗?)

回答:没有。在rospy中并不需要创建节点句柄。

2.What is the significance of rospy.init node()?(rospy.init node()有什么作用?)

回答:rospy.init node()是用于初始化ROS节点,在rospy中只能有一个节点,所以rospy.init node()也只能调用一次。

3.答案来源

本题答案来源于官方文档:rospy/概述/初始化和关闭 - ROS Wiki

3. (C++)What is ros::spinOnce()? How is it different from ros::spin()?(什么是ros::spinOnce()?ros::spinOnce()和ros::spin()间有什么区别?)

1.What is ros::spinOnce()?(什么是ros::spinOnce()?)

回答:ROS消息的回调函数。

2.How is it different from ros::Spin()?(ros::spinOnce()和ros::spin()间有什么区别?)

回答:ros::spinOnce()进行信息回调后可以执行后续程序;ros::spin()进行信息回调后不会执行后续程序。

3.答案来源

本题答案来源于官方文档:roscpp/概述/回调和旋转 - ROS Wiki

4. (C++)What is ros::rate()? (ros::rate()是什么?)

回答:循环速率函数,控制消息循环速率的。

本题答案来源于官方文档:roscpp/Overview/Time - ROS中文

5. (Python) How do you control callbacks in python for the subscribers? Do you need spin() or spinonce() in python?(在rospy当中如何回调订阅者的消息?是用spin()还是用spinOnce()?)

回答:在rospy当中不存在rospy::spinOnce(),所以只能用ros::spin()

本题答案我在官方文档当中并未找到相关解释。但我在官方代码中得到如下解释:

# spin() simply keeps python from exiting until this node is stopped

rospy::spin()在rospy程序停止前都不会停止。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

vscode无识别已有的maven java项目(visual studio code not recognizing java project)

文章目录 事情经过尝试疑惑问题解决结论 事情经过 未安装任何Java Extension Pack使用 Maven 的 archetype:generate 命令来创建一个新的项目使用vscode打开了该目录然后安装Java Extension Pack等java插件配置了vscode settings.json中的 java.configuration.runtimes和 java…

网站迁移和SEO:损害排名的常见错误

正在规划站点迁移? 迁移是更困难的 - 通常是可怕的 - SEO任务之一。 为了让它发挥作用,你需要避免常见的陷阱,这些陷阱可能会影响你的知名度,并导致流量和收入的损失。 8 月 11 日,我主持了一场赞助的搜索引擎杂志网…

TypeScript 从入门到进阶之基础篇(二) ts进阶类型篇

TypeScript 从入门到进阶系列 TypeScript 从入门到进阶之基础篇(一) ts基础类型篇 文章目录 TypeScript 从入门到进阶系列前言一、object 类型1、基础运用2、可选属性3、任意属性4、只读属性 readonly5、对象中的函数 二、数组类型1、数组的运用2、使用接口定义数组3、argumen…

关于标准那些事——第六篇 四象之“玄武”(格式的编排)

两仪生四象——东方青龙(木)、西方白虎(金)、南方朱雀(火)、北方玄武(水) 分别对应标准编写之四象——层次的编写、要素的编写、要素的表述、格式的编排。 今天来分享一下 格式的编…

Python 标准库中的 csv 包

0. Abstract 官方文档很罗嗦,长篇大论例子少。本文将举例说明 csv 包的用法,然后补充一些必要的说明。 1.0 CSV 文件 CSV(Comma-Separated Values,逗号分隔值)文件是一种常见的以纯文本形式存储数据的文件格式。它使用逗号作为字段之间的分隔符&#…

【Linux】——基本指令(二)

💗个人主页💗 ⭐个人专栏——数据结构学习⭐ 💫点击关注🤩一起学习C语言💯💫 目录 导读:1. vim 指令2. head指令3. tail指令4. tree指令5. 输出重定向6. echo指令7. wc指令8. | 字符9. date指令…

CMake入门教程【核心篇】属性管理set_property和get_property

😈「CSDN主页」:传送门 😈「Bilibil首页」:传送门 😈「本文的内容」:CMake入门教程 😈「动动你的小手」:点赞👍收藏⭐️评论📝 文章目录 1.概述2.设置属性 - …

JS中 focus 和 blur 焦点事件

发现的一个小知识点 focus 获取焦点事件 代码如下&#xff1a; <body><input type"text" placeholder"input输入框"><script>let input document.querySelector(input)input.addEventListener(focus, function (e) {e.target.style.…

Java学校教务管理系统源码带微信小程序

运行环境&#xff1a;jdk8mysql5.7IntelliJ IDEAmaven 技术&#xff1a;springbootmybatislayuishirojquery 教务管理系统是一个基于网络的在线管理平台, 帮助学校管理教务系统&#xff0c;用一个帐号解决学校教务教学管理&#xff0c; 灵活的定制符合学校自己实际情况的教务系…

如何理解面向对象的OO设计原则和设计模式?

一、如何理解面向对象的编程原则? 单一职责原则(Single Responsibility Principle) 一个类,应该由一组相关性很高的数据和方法组成。一个类应该仅有一个引起它变化的原因。单一职责最难界定的就是关于“职责”的定义,往往需要丰富的经验和对业务的认知程度,这也更加容易引…

WEB 3D技术 three.js 法向量演示性讲解

本文 我们来说法向 法向 又叫 法向量 就是 我们一个三维物体 顶点垂直于面 的方向 向量 他的作用 用来做光反射 根据光照的方向 根据面进行反射 我们上文写的这个代码 import ./style.css import * as THREE from "three"; import { OrbitControls } from "…

数仓可视化5--superset的部署安装

1、superset简介 Apache Superset 是一个现代的数据探索和可视化平台。它功能强大且十分易用&#xff0c;可对接各种数据源&#xff0c;包括很多现代的大数据分析引擎&#xff0c;拥有丰富的图表展示形式&#xff0c;并且支持自定义仪表盘。 2、安装步骤 2.1、安装Miniconda3 …

GBASE南大通用 ADO.NET EntityFramework 实体框架支持

GBASE南大通用 ADO.NET 驱动支持 EntityFramework 实体框架。 实体框架&#xff0c;可以理解成微软的一个 ORM 产品&#xff0c;用于支持开发人员通过对概 念性应用程序模型编程&#xff08;而不是直接对关系存储架构编程&#xff09;来创建数据访问应 用程序&#xff0c;目…

RedHat8、Centos8无法启动网卡解决方案,网卡未加入托管

只针对部分情况&#xff0c;网卡未加入托管导致 虚拟机开启 ifconfig 没有ens33网卡&#xff0c;无法上网 手动启动网卡提示 Connection ens33 is not available on device ens33 because device is strictly unmanaged使用nmtui配置IP信息&#xff0c;无法启动’ens160’网卡…

LCR 174. 寻找二叉搜索树中的目标节点

解题思路&#xff1a; 二叉搜索树一般采用中序遍历&#xff08;从小到大排列&#xff09;。 class Solution {int res, cnt;public int findTargetNode(TreeNode root, int cnt) {this.cnt cnt;dfs(root);return res;}void dfs(TreeNode root) {if(root null) return;dfs(ro…

jmeter断言-三种

1.响应断言 substring是指包含就行 不用完全相等 2.json断言 3.持续时间断言

基于深度学习的PCB板缺陷检测系统(含UI界面、yolov8、Python代码、数据集)

项目介绍 项目中所用到的算法模型和数据集等信息如下&#xff1a; 算法模型&#xff1a;     yolov8 yolov8主要包含以下几种创新&#xff1a;         1. 添加注意力机制&#xff08;SE、CBAM等&#xff09;         2. 修改可变形卷积&#xff08;DySnake-主干c…

Linux:apache优化(3)—— 页面缓存时间

作用&#xff1a;通过 mod_expires 模块配置 Apache&#xff0c;使网页能在客户端浏览器缓存一段时间&#xff0c;以避免重复请求&#xff0c;减轻服务端工作压力。启用 mod_expires 模块后&#xff0c;会自动生成页面头部信息中的 Expires 标签和 CacheControl 标签&#xff0…

AIGC年度回顾!2024向量数据库是否还是AI发展方向之一?

引言 2023 年&#xff0c;是 AI 技术大爆发的一年&#xff0c;从年初到年末&#xff0c;全球关心技术发展的人们见证了一次次的 AI 技术升级&#xff0c;也逐步加深着对 AGI 发展的畅想。而伴随着生成式人工智能的飞速发展&#xff0c;向量数据库以其独特的技术优势逐渐崭露头角…

char 和 varChar 的区别是什么?

大家好&#xff0c;我是伯约&#xff0c;这篇对大家有帮助的话求一个赞&#xff0c;另外文章末尾放了我从月入7k到现在3W的学习资料&#xff0c;大家可以去领一下&#xff08;无偿&#xff09;。 CHAR 和 VARCHAR 是最常用到的字符串类型&#xff0c;两者的主要区别在于&#x…