自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

超级霸霸强的博客

guys,we are 不断进步的coder

  • 博客(255)
  • 收藏
  • 关注

原创 Ubuntu22.04中ROS2的安装教程

Ubuntu22.04中ROS2安装与问题解决

2022-07-27 07:28:18 1330 1

原创 Ubuntu22.04网卡丢失

ubuntu22.04网卡问题

2022-07-26 20:57:02 2396

原创 8086中的操作数

指令中的操作数指令的基本形式为“操作码 目标操作数 源操作数”,其中操作码代表了如何对数据进行操作,目标操作数和源操作数分别代表了数据计算之后的归宿和数据的获取处。操作数本身是个数据,但是数据的性质(这个数据象征的是数据还是地址)要由操作码说了算。立即数操作数立即数操作数表征着参加操作数据的本身,例如“mov AX 8080H”中8080H代表了立即数,将8080H拷贝至AX寄存器中。由于立即数操作数表征着被操作数据本身,即操作数并不用从其他地方获取,因此立即数操作数和操作码一起被存放在存储

2022-03-10 18:16:27 5682 1

原创 微机原理:8086中程序控制类指令(详解)

程序控制类指令笼统的来讲就是和CS和IP寄存器直接打交道,总共分为四类:转移类指令、循环控制类指令、过程调用指令和中断控制指令。转移类指令无条件转移指令JMP指令的操作是无条件地使程序转移到特定的目标地址,并从该地址开始执行新的程序段,其中寻找目标地址的方法有两种:间接寻址和直接寻址,又由于程序逻辑分段(每个逻辑段至少有一个代码段),因此无条件转移指令JMP一共有四种类型: 操作数类型 转移目标地址 8位/16位符号地址

2022-03-09 16:59:38 3010 2

原创 ROS:rosbash系列命令行工具的使用(详解)

与rosbash相关的环境变量ROS_PACKAGE_PATH先提及一个环境变量ROS_PACKAGE_PATH,这个变量是一个可选的,但非常常见的环境变量,它允许您从源代码添加更多的ROS包到您的环境中。ROS_PACKAGE_PATH可以由一个或多个由标准OS路径分隔符(':'在类Linux系统上)分隔的路径组成。这些有序的路径告诉ROS系统在哪里搜索更多的ROS包。如果有多个相同名称的包,ROS会首先选择出现在ROS PACKAGE PATH上的包。如下示例:从图中我们可以看到:我们自

2022-03-09 10:42:51 1620

原创 ROS:rosbag play系列指令(详解)

Rosbag play系列指令Rosbag play bagFile01.bag bagFile02.bag …播放多个录制文件:由于我们的bag录制文件并不是同一时间录制,因此bag录制文件会因录制顺序不同播放顺序也不同,同时两个录制文件播放的时间间隔等于两个录制文件录制的时间间隔。Rosbag play --bags=bagFile01.bag bagFile02.bag …和上面那个指令作用一样:Rosbag play -p prefix_name bagFile.

2022-03-08 22:44:56 23897 1

原创 ROS中rosparam命令行指令详解

Rosparam list系列指令Rosparam listRosparam list namespace消息的类型+所在功能包名称=唯一确定特定功能包下指定的消息类型,那么参数名称+参数所在的命名空间=指定命名空间下的特定参数。Rosparam get系列之令Rosparam get namespace获取指定命名空间下的参数信息:Rosparam get -p namespace以更好地格式打印参数信息,即汉字不在意ASCII表示,而是以汉字本身的形式表示

2022-03-07 11:12:34 1990

原创 微机原理:串操作指令(详解)

什么是串操作指令?你或许觉得对连续的数据进行重复的操作会花费你大量的时间并且显得代码极其冗余,那为何不试试“专门用于对连续数据进行操作的指令“——串操作指令。”串“操作指令,顾名思义就是对在内存中连续存在的数据进行操作的指令,那为何不是寄存器或者立即数呢?寄存器一共也就16位并且立即数是我们直接给出的操作数,这两者根本不用调用多条指令,一条指令即可KO他们。串操作指令的特点说起串操作指令,那它不但具有普通操作指令的共性,同时也具备连续操作指令的特性。要对一连串数据进行操作,我们要知道以下内容:

2022-03-06 18:32:12 4801

原创 Linux中time命令输出的Real time, User time and Sys time

Linux中time命令输出的Real time, User time and Sys time在运行的程序之前加 time 最后得出三个时间 real、 user、 sys, real是程序的实际运行时间,sys是内核态的时间,user是用户态的时间,单核情况,real远远大于user和sys之和。real,从程序开始到程序执行结束时所消耗的时间,包括CPU的用时和所有延迟程序执行的因素的总和。CPU用时被划分为user和sys两块。user表示程序本身,以及它所调用的库中的子例程使用的时间。..

2022-03-06 16:12:53 4514

转载 内存中数据存放格式:大端模式和小端模式

大端模式(big endian):低位(字节/比特)放在高地址中,高位(字节/比特)放在低地址中。小端模式(little endian):低位(字节/比特)放在低地址中,高位(字节/比特)放在高地址中。在串口等串行通信中,一次只能发1个字节。这个时候遇到一个问题。int类型有4个字节。我们是按照什么顺序发送字节呢。发送方和接收方必须按照同样的字节顺序来通信。这就是通信系统中的大小端模式。现在我们讲的大小端模式讲的更多的是计算机存储系统的大小端。在计算机内存/硬盘/Nnad中.因为存储系统是32位的,但

2022-03-05 11:44:07 2803

原创 ROS:rosbag命令行指令详解(一)

目录获取当前工作目录下bag文件的信息在当前工作目录下创建bag文件对指定话题进行录制获取当前工作目录下bag文件的信息1. 以列表的方式显示bag文件的信息:指令格式:rosbag info BagFileName.bag结果如下所示:在这个信息列表中包含了“参与通信的消息类型types、话题名称topics以及两者的对应关系(topics:types)”。2. 以yaml格式显示bag文件的信息:指令格式:rosbag info -y BagFileName.

2022-03-05 11:27:46 6750 1

转载 linux命令行模式下输入Ctrl+s后界面锁定,假死

使用vim时,如果按了组合键ctrl+s,会发现按什么都没反应,处于假死的状态,其实这个是linux系统命令行模式下的锁屏快捷键,只是输入的命令没有在输出终端(显示器)显示出来而已。所以,不止vim,只要在命令行模式下,都会如此。要退出此种锁屏界面,需按ctrl+q,此时会发现先前在锁屏时输入的字符都显示出来了,并且可正常使用了。所以,当不注意或者不小心按下ctrl+s时,还真不能乱敲键盘,以免不小心输入破坏性命令,否则麻烦大了!...

2022-03-05 09:07:46 2619

原创 ROS中正则表达式的使用(rosbag record -e --regex)

字符匹配1. 匹配指定范围内的空格2. 匹配指定范围内包含任意字符的字符串[^ ]表示不包含空格在内的所有字符3. 匹配指定范围内排除指定字符的字符串筛选出的字符全部不含有“swertyu”中任何一个字母。4. 特殊字符匹配符号的使用上述指令用于匹配包含16进制中字符的字符串,16进制包含0-9和A-F,且不区分大小写。特殊字符匹配符号使用形式为“[[:xdigit:]]”,其中[:xdigit:]不可以单独使用,必须外面套上[]中括号才可以使用。我们也可以理

2022-03-04 10:46:40 910

原创 yaml文件中ISO-8601格式的日期解析

ISO-8601 是国际标准化组织提供的一个有关时间表示的规范。UTC格式1970-01-01T00:00:00Z 可能是我们最常看到的格式了,这个表示的是一个 UTC 时间,UTC(Coodinated Universal Time),协调世界时,又称世界统一时间、世界标准时间、国际协调时间。UTC相当于本初子午线(即经度0度)上的平均太阳时,过去曾用格林威治平均时(GMT)来表示.北京时间比UTC时间早8小时,以1999年1月1日0000UTC为例,UTC时间是零点,北京时间为1999年1月1日

2022-03-03 15:46:22 1210 1

原创 8086中数据传送类指令详解

目录通用数据传送类指令:不影响FLAGS寄存器中的标志位数据传送指令:MOV压栈(PUSH)出栈(POP)指令交换指令XCHG查表指令:XLAT针对有符号数的字长扩展指令地址传从指令:不影响FLAGS寄存器中的标志位取存储单元偏移地址指针指令:LEA(Load Effective Address)源地址指针指令:LDS(Load pointer using DS)和LES(Load pointer using ES)标志位存储指令:不影响FLAGS寄存器中的标志位

2022-03-03 12:09:01 3655 2

原创 ROS中yaml文件编写格式

键值对键值对书写格式键值对中,key必须是字符串,但是value可以为bool/string/int/float类型的:#键值对KeyValueBool:true#boolKeyValueStr:"abc"#string在写键值对时,key与:没有空格,但是value与:之间有空格。在yaml文件内使用launch中替换子标签:#键值对KeyValueBool:true#boolKeyValueStr:"$(optenvROS_...

2022-03-03 11:54:38 2802

原创 8086中寻址方式详解

存储器寻址方式是什么?寻址方式给我们提供了“在存储器中找到/存放操作数的方法“,即告知我们”如何寻找到存取操作数(数据)的存储器内存单元“。既然操作数表征着数据的来源和去向,那么我们可以这么认为“寻址方式就是使用某种方式(直接/间接)告诉我们一个内存单元的地址,我们通过这个地址可以找到或者存放数据“。切记:寻址方式寻找的是“存储器内存单元的地址“,由于地址获取方式不同,因此产生了不同的寻址方式。存储器寻址方式涉及到的寄存器基址寄存器:BX(基址寄存器)、BP(基址指针寄存器)这两

2022-02-27 11:31:24 2638 1

原创 ROS中tf2实操之坐标追踪详解(示例+代码)

目录项目中文件结构如下所示:1. 启动turtle1节点和turtle1的键盘操作节点、订阅turtle1的位姿信息、发布turtle1的坐标信息(getTurtle1Pose.cpp):2. 启动turtle2节点、订阅turtle2的位姿信息、发布turtle2的坐标信息(getTurtle2Pose.cpp):3. 订阅/tf_static话题并获取坐标系相对关系、发布turtle2的运动信息(frameTransform.cpp):4. launch文件的编写:5. 运行结果

2022-02-20 11:22:54 1775 2

原创 使用tf内置节点进行坐标变换时,为何要同时实现坐标信息的发布方与坐标信息的订阅方?

答案是不行的,那为什么提出要用一个文件实现坐标变换呢?因为我们实现坐标变换时,只需要获知坐标系相对位置关系和坐标点在源坐标系中的坐标即可实现坐标变换。因此我们想在一个CPP文件中声明坐标系的关系和坐标点在源坐标系中的坐标,然后再使用tfs_ros::buffer中的transform函数一气呵成计算出坐标点基于目标坐标系的坐标。理论上来说还挺行得通,但是真的如此吗?错误代码示例:#include"ros/ros.h"#include"geometry_msgs/TransformSta...

2022-02-19 10:40:42 992 3

原创 用小乌龟案例演示“话题通信、动作通信、服务通信以及参数服务器”

乌龟节点操作原理解析乌龟节点的话题乌龟节点的操作方式和动态参数调节的方式很像,乌龟节点所在turtlesim功能包的节点将大部分话题通信的订阅端和服务通信的服务端全部封装起来使用命令行的格式对它们进行可视化显示。Turtlesim_node是turtlesim功能包下自带的一个节点,需要在命令行启动,只有该节点启动那么turtlesim功能包下所有节点的话题通信的订阅端和服务通信的服务端才可以启动。turtlesim功能包节点的服务通信的topic: Service的topic

2022-02-18 18:29:33 1063

原创 8086/8088系统总线详解(时序解析+总线相关知识)

8086微处理器(CPU)的构成8086微处理器主要由运算器(算术逻辑运算单元ALU、地址加法器)、控制器(总线控制器)、内部寄存器组(14个内部寄存器)三部分组成。CPU从功能上分为执行单元EU和总线接口单元BIU,其中执行单元EU负责指令的执行;而总线接口单元BIU负责与存储器及I/O接口之间的数据传送操作。具体来看,完成取指令送指令队列,配合执行部件的动作,从内存单元或I/O端口取操作数,或者将操作结果送内存单元或者I/O端口。EU和BIU的工作逻辑关系如下所示:① 每当8086的

2022-02-17 18:15:50 12918

原创 8086中实地址模式下的存储器寻址详解

目录什么叫做程序模块?内存的物理分段以及物理分段的弊端与内存地址相关的寄存器内存的逻辑分段内存的地址编码逻辑段最多可以有多少?逻辑段在内存空间中的分布数据段和附加段重叠的情形一个物理单元可以有多个逻辑地址堆栈段堆栈段中存放数据的特殊之处什么叫做程序模块?一个较大的程序一般分为若干个程序模块,每一个程序模块都可以实现一个特定的功能。相较于汇编语言这种低级语言而言,一些高级语言中都有子程序的概念,在C语言中子程序就是函数块。一个大型的程序须由许多个程序模块组成

2022-02-17 12:13:23 2099

原创 8086CPU中14个寄存器的详解

CPU中的寄存器在执行单元EU和总线接口单元BIU中一共有14个寄存器,其中通用寄存器8个、标志寄存器FLAGS一个、控制寄存器5个。通用寄存器8个通用寄存器再进行细分,又可划分为数据寄存器(AX~DX)、栈顶指针寄存器(SP)、基址寄存器(BP)、DI(目标变址寄存器)、SI(源变址寄存器)。1. 数据寄存器(AX、BX、CX、DX)16位的数据寄存器可以拆成2个8位寄存器(例如:AX->AH+AL等)来使用,但是一定要注意“8086为16位寄存器,8位寄存器中存放的一定是数

2022-02-17 09:12:24 19570 4

原创 ROS中tf2命令行调试工具详解(解析+代码示例+执行逻辑)

Tf2命令行工具的意义在于“我们可以用这些命令行工具了解整个坐标系树状结构以及任意两个坐标系之间转换的信息”。我们会发现几乎全部的tf2命令行工具并不和rostopic一样有自己专属的执行指令,tf2命令行工具的调用更像是我们运行可执行文件的格式。这就对了,tf2命令行工具其实就是官方封装的CPP源文件,我们使用命令行对CPP源文件进行传参调用使其完成相应的功能,tf2功能包所有功能的实现大都基于话题通信的方式实现的。监控“坐标信息的发出者”的运行状态命令格式:rosrun tf tf_monito

2022-02-16 12:04:58 3300

原创 8086/8088 指令执行流水线断流原因

8086/8088 指令执行流水线断流原因1. 指令预取队列中有转移类指令2. 执行指令需要参数当指令的执行需要参数时(比如:加法),EU得去获得了参数才可以顺利执行指令,因此此时的并行流水线依旧存在着断流的情况。3. 执行单元执行速度较慢EU还未执行完一条指令,BIU中的预取队列已经填充完毕。总线接口单元的作用1. 作为CPU与内存的输入输出接口;2. 从内存中读取指令填满指令预取队列(一条指令占两个8位预取单元);3. 当遇到转移类指令时,清空指令预取队列重新取指

2022-02-14 15:35:55 1312

原创 ROS中的多坐标变换详解(示例+代码)

多坐标变换与静态/动态坐标变换的不同之处tf坐标转换的实质你也许会被静态/动态/多坐标转换弄晕了头,但是你只要认清坐标转换的实质就会恍然大悟。无论是哪种坐标转换,其实质就是利用tf2_ros::Buffer类对象中缓存的坐标间的相互关系将坐标点基于X坐标系的坐标转化至基于Y坐标系的坐标。多坐标变换我们以坐标系A、坐标系B、坐标系C、坐标系D三个坐标系相互转化为例进行说明:准确的来说lookupTransfrom函数的作用是取得树状图中两个从未有联系的坐标系得相对关系(补齐树状图,使树

2022-02-14 12:39:47 2959

原创 ROS中动态坐标变换(动态参数调节+动态坐标变换)

静态坐标变换与动态坐标变换的区别动态坐标转换区别于静态坐标转换的唯一一点就是:坐标系的相对位置是可以发生变化的。那如何才可以发生变化呢?这就需要借助外力来改变坐标系间的相对位置:静态坐标变换详见:(1条消息) ROS中的静态坐标转换(解析+示例)_超级霸霸强的博客-CSDN博客https://blog.csdn.net/weixin_45590473/article/details/122908060项目文件解析通过动态参数调节改变参数服务器中的参数值,然后将参数服务器中的参数读出来

2022-02-13 19:05:15 3417 1

原创 ROS中的静态坐标转换(解析+示例)

什么是TF2?tf2是一个用来描述物体空间位置的工具。我们知道,用一个三维向量和一个四元数就可以描述一个物体相对于一个参考系的位置与姿态,tf2的工作属于“小而美”,它只专注于在ROS2中提供这样一个功能,就是描述一组物体之间的相对位置关系。为何要使用TF2?TF2可以用于描述机器人各关节的相对位置,大大方便了运动学求解。不仅如此,在多机器人的场景中,tf2还可以用于描述机器人之间的相对位置,从而执行跟随、避障等操作。此外,tf2也可以用于描述目标物体与机器人的相对位置。总而言之,我们只需提供坐

2022-02-13 13:42:17 5141 4

原创 类的成员作模板的非类型模板参数

模板参数扩展我们前面提到:我们不可以将自定义类类型作为非类型模板参数,但是我们想想“可不可以把类的静态/非静态成员部分作为非类型模板参数呢”?① 将类类型的非静态成员作为非类型模板参数#include<iostream>usingnamespacestd;classStudent{public:intage;public:Student():age(0){};voidShowInf();...

2022-02-12 17:12:21 408

原创 基于战舰V3的4.3寸TFTLCD的原理详述

基于战舰V3的4.3寸TFTLCD的原理详述8080时序简介NT35510支持多种时序读写操作,我们这里使用的是8080并口操作,读/写时序如下:表格 1 操作 RD WR RS 写入命令 1 0 0 读取命令 0 1 0 写入

2022-02-12 17:07:56 1464

原创 彻底搞懂“旋转矩阵/欧拉角/四元数”,让你体会三维旋转之美

向量的旋转一共有三种表示方法:旋转矩阵、欧拉角和四元数,接下来我们介绍一下每种旋转方法的原理以及相互转换方式。旋转矩阵坐标变换的作用在一个机器人系统中,每个测量元件测量同一物体得出的信息是不一样的,原因就在于“每个测量元件所测量的数据是基于不同坐标系所测量的”,例如:在这辆车中有激光雷达M和激光雷达W,这两个雷达测量的数据截然不同,但是这辆汽车相对于测量物体的位置是唯一的,这就说明“由不同位置雷达测量的数据代表的物理含义(即都表示汽车与被测物体的相对位置)是相同的”。那既然被测物体在不.

2022-02-11 17:17:30 36432 15

转载 Eigen在VS2017下的安装与使用

从matlab,python脚本语言转接到C++的项目中来说有一项是我最头痛的就是矩阵运算,说起矩阵运算在C++里边真的是难,远不像脚本语言用起来那么随意,幸好有Eigen这个神器。当VS有了nuget这个工具包管理器就感觉安装所有东西都变的简单多了。新建项目,工具栏下nuget包管理器>>管理方案的nuget程序包,启动nuget管理工具。在浏览栏下的搜索eigen就可以安装并使用了,这种方法适用于很多包,但有些会出些小问题,一般情况下是静态库链接的问题,部分包要手动导入静态库,大家遇

2022-02-10 12:00:19 1084

原创 坐标变换最通俗易懂的解释(推到+图解)

目录坐标变换详解坐标变换的作用实现坐标变换所需的数据位姿坐标变换中旋转的实质坐标变换中平移的实质如何计算坐标系B各坐标轴在坐标系A上的投影?(多坐标变换)如何实现坐标变换?坐标变换详解坐标变换的作用在一个机器人系统中,每个测量元件测量同一物体得出的信息是不一样的,原因就在于“每个测量元件所测量的数据是基于不同坐标系所测量的”,例如:在这辆车中有激光雷达M和激光雷达W,这两个雷达测量的数据截然不同,但是这辆汽车相对于测量物体的位置是唯一的,这就说明“由.

2022-02-09 19:28:52 22367 10

原创 ROS中节点、话题、参数重命名以及全局、相对、私有命名空间(示例+代码)

ROS中的命名空间我们首先要了解一下路径的各个部分所代表的含义:① 以话题为例,三级路径:② 以节点为例,共有二级路径:③ 以参数为例,共有三级路径:ROS中的命名空间分为三种:全局、相对、私有。其实命名空间就是名称的前缀,前缀代表着所在路径,存放的位置可以相对于根目录、节点、节点句柄的命名空间这三者来进行划分:私有、全局、相对命名空间判断的依据: 私有命名空间 “/node_name”节点名称在最外侧 全局...

2022-01-27 15:51:31 5359 4

原创 ROS动态参数配置:dynparam命令行工具的使用(示例+代码)

dynparam命令行工具的使用命令行工具使用的格式:rosrun dynamic_reconfigure dynparam COMMAND,命令一共有6个,使用格式如下所示:1. 列出动态节点名称2. 参数的动态配置——set_from_parameters命令格式为:set_from_parameters 动态节点名称 _参数名:=参数值(切记参数名一定要加下划线!)3. 参数的动态配置——set其功能和set_from_parameters一样,只不过调用格式发生.

2022-01-26 12:15:07 850

原创 详解ROS中动态参数调整与话题通信配合使用(原理+代码+示例)

ROS中动态调整参数的原理我们在现实中有个需求:我们希望可以改变参数服务器中的参数用于调试机器人,而且我们不希望每改一遍参数之后必须重启一次相关节点才可以生效,这样耗时耗力太麻烦。我们期望的是:我们既可以改变参数服务器中的参数用于调试,也可以使我们刷新的参数服务器中的数据立刻起作用无需再次启动。在ROS中,当参数服务器中的参数发生了改变,通信双方是无法知晓的,因为我们从参数服务器的工作原理就可以发现(以话题通信架构为例):我们重点关注从参数服务器回传的数据会发现参数服务器通信方式的以下缺点:

2022-01-24 19:25:18 6089 2

原创 史上最全的launch的解析来啦,木有之一欧

ROS工作空间简介元功能包:功能包的组织者对于ROS中的文件结构,我们重点关注src部分,我们经过了解ROS的文件结构知道:src目录下可以包含多个功能包,假设我们需要使用机器人导航模块,但是这个模块中包含着地图、定位、路径规划...等不同的功能包,它们的逻辑关系如下:如果我要获取“导航功能”,我需要一个一个按照功能包之间的依赖关系启动功能包,这样有些太麻烦了。在Linux系统中为了更方便的组织工程项目(这里针对的是项目文件,即功能包),出现了“元功能包”的概念。这个是一个“虚包”,就.

2022-01-23 10:17:01 6880

原创 ROS中库的创建与配置(代码示例+解析):自定义类类型在ROS中的使用

前言C++代码风格编写C++代码时,我们常常将“类/结构体的声明、定义和使用“相互剥离,在ROS项目文件中我们也可以这样做。在ROS项目文件中声明、定义、使用自定义数据类型时,我们可以进行如下两种方式的操作:① 自定义数据类型的声明+自定义数据类型的定义及使用② 自定义数据类型的声明+自定义数据类型的定义+自定义数据类型的使用我们最关键要做的不是编写自定义数据类型的声明、定义、实例化文件,而是将CMakelist.txt文件配置好,只有将其配置好三者才可以相互链接构成一个统一的.

2022-01-21 11:34:08 1584

原创 CMakelist.txt文件中常用部分最通俗易懂的解析(示例+解析)

CMakelist.txt的作用是什么?要了解CMakelist.txt文件,首先我们先了解一下Makefile。Makefile 可以简单的认为是一个工程文件的编译规则,描述了整个工程的编译和链接等规则。其中包含了那些文件需要编译,那些文件不需要编译,那些文件需要先编译,那些文件需要后编译,那些文件需要重建等等。编译整个工程需要涉及到的,在 Makefile 中都可以进行描述。换句话说,Makefile 可以使得我们的项目工程的编译变得自动化,不需要每次都手动输入一堆源文件和参数。Cmake的所有

2022-01-20 19:04:55 5663 1

原创 话题/服务/动作通信相关函数解析(覆盖通信中常用函数)

节点句柄的作用节点句柄一共有四大作用:① 初始化节点;② 创建publisher/subscriber对象的roscpp接口;③ 创建server/client对象的roscpp接口;④ 操作参数服务器具体应用在如下对应小节中一一介绍。话题通信话题消息的发布① listener的信息注册函数(NodeHandle成员函数)ros::Subscribersub=topic_node.subscribe<topic::person>("ch...

2022-01-19 17:50:44 627

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除