自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

weixin_43638873的博客

1014 福尔摩斯的约会 (20分)

  • 博客(341)
  • 资源 (3)
  • 问答 (8)
  • 收藏
  • 关注

转载 运行ROS“小海龟”节点出问题的办法

【代码】运行ROS“小海龟”节点出问题的办法。

2024-08-16 19:05:55 5

转载 机器人出现Temporary failure resolving ‘mirrors.ustc.edu.cn‘

【代码】机器人出现Temporary failure resolving ‘mirrors.ustc.edu.cn‘

2024-08-16 09:57:24 11

转载 Ubuntu18.04安装opencv-python

在使用命令pip install opencv-python安装的是最新版本,我用的python3.6版本,查了下,不支持3.6版本。我就去找了个支持的如opencv-python==4.3.0.38。当然我也是有Python 3.6.9的。但是默认是Python2.7.17。前面提到我的Ubuntu中有Python 3.6.9版本,在。

2024-08-14 16:00:28 15

转载 Linux的ldd命令

可以将它们视为可供许多不同程序使用的代码块,从而使这些程序更小、更高效,而不是确保所有使用它们的程序都包含它们,并在代码更改时根据需要进行更新。当然,这个输出不会告诉你有多少程序使用这些共享库,以及如果其中一个比较重要的共享库从你的系统中删除,你会遇到多大的麻烦。共享对象文件通过提供应用程序完成工作所需的信息来简化程序,但这些信息不必是应用程序本身的一部分。共享对象文件(指定为 .so)是程序启动时自动链接到程序中的库,但作为独立文件存在。ldd展示了特定的Linux命令需要运行的共享对象文件。

2024-08-13 10:32:30 8

转载 E: Unable to locate package libjasper-dev

【代码】E: Unable to locate package libjasper-dev。

2024-08-12 09:27:26 9

转载 conio.h: no such file or directory

【代码】conio.h: no such file or directory。

2024-08-10 19:37:03 11

转载 ROS笔记: Topic通讯机制

在机器人上的摄像头拍摄程序是一个node(圆圈表示,我们记作node1),当node1运行启动之后,它作为一个Publisher就开始发布topic。比如它发布了一个topic(方框表示),叫做 /camera_rgb ,是rgb颜色信息,即采集到的彩色图像。同时,node2假如是图像处理程序,它订阅了 /camera_rgb 这个topic,经过节点管理器的介绍,它就能建立和摄像头节点(node1)的连接。Topic就是话题的意思,这是一种用于ROS节点之间的通信方式。

2024-08-09 21:01:19 14

转载 ROS笔记:节点

我们必须高效率的启动很多节点,而不是通过rosrun命令来依次启动十几个节点程序,launch文件 就是为解决这个需求而生,launch文件就是一个xml格式的脚本文件,我们把需要启动的节点都写进launch文件 中,这样我们就可以通过roslaunch工具来调用launch文件,执行这个脚本文件就一次性启动所有的节点程序。在ROS的世界里,最小的进程单元就是节点(node)。一个功能包里可以有多个可执行文件,可执行文件在运行之后就成了一个进程(process),这个进程在ROS中就叫做节点。

2024-08-09 19:36:11 9

原创 ERROR: cannot launch node of type

后来发现原因再简单不过,建立了新节点后要重新编译。

2024-08-09 19:35:40 82

转载 ROS开发笔记: 文件系统

每个功能包都包含一个名为Package.xml的功能包清单,用于记录功能包的基本信息,包含作者信息、许可信息、依赖选项、编译标志等。(3) src/: 存放ROS的源代码,包括C++的源码和(.cpp)以及Python的module(.py);(5) scripts/: 存放可执行脚本,例如shell脚本(.sh)、Python脚本(.py);(8) models/: 存放机器人或仿真场景的3D模型(.sda, .stl, .dae等);(6) msg/: 存放自定义格式的消息(.msg);

2024-08-09 16:38:12 6

转载 如何在Windows删除磁盘中的EFI分区

第三步:(这里应该是select disk 2)

2024-08-08 14:53:08 22

转载 CMake Error at /opt/ros/melodic/share/catkin/cmake/catkinConfig.cmake:83 (find_package)

编译ROS工作空间时出现了这样的报错:!

2024-08-08 08:17:46 23

转载 Gazebo中出现Error [Converter.cc:151] Unable to convert from SDF version 1.7 to 1.6

【代码】Gazebo中出现Error [Converter.cc:151] Unable to convert from SDF version 1.7 to 1.6。

2024-08-07 22:13:30 9

转载 Gazebo出现[Err] [REST.cc:205] Error in REST request

【代码】Gazebo出现[Err] [REST.cc:205] Error in REST request。

2024-08-07 20:33:46 12

转载 当ROS中的某个包被其他包依赖时

当ROS工作空间中的某个包被其他位于同样工作空间的包所依赖时。

2024-08-07 15:27:19 11

转载 在ROS的Node中使用自定义头文件

把括号内第一句中的注释删除。

2024-08-07 15:10:11 8

转载 清理Ubuntu中的垃圾和临时文件

清除垃圾和临时文件会从计算机中删除不需要的文件,还可以释放更多硬盘空间。您可以手动清空垃圾和临时文件,也可以将计算机设置为自动执行此操作。临时文件是应用程序在后台自动创建的文件。它们可以通过提供已下载或计算的数据副本来提高性能。

2024-08-05 14:25:23 16

转载 Ubuntu 18.04没有Wifi驱动

当然,如果是其他类型的网卡就要另找办法了。

2024-07-29 10:01:33 34

转载 C4996 ‘fopen‘: This function or variable may be unsafe. Consider using fopen_s instead.

再次build, 成功!

2024-07-22 14:31:09 23

转载 Visual Studio的/NODEFAULTLIB选项 (Ignore Libraries)

默认情况下,/NODEFAULTLIB 会在解析外部引用时从其搜索的库列表中删除所有默认库。可选库参数允许您在解析外部引用时从其搜索的库列表中删除指定的库。为要排除的每个库指定一个 /NODEFAULTLIB 选项。当指定了同样的库时,/NODEFAULTLIB: library会覆盖掉/DEFAULTLIB: library。/NODEFAULTLIB 告诉链接器在解析外部引用时从其搜索的库列表中删除一个或多个默认库。library —— 您希望链接器在解析外部引用时忽略的可选库名称。

2024-07-22 13:55:26 39 1

转载 Visual Studio中的外部符号(external symbol)和导出符号(exported symbol)

总之,虽然两个术语都与跨不同模块或库使用的符号有关,但“导出符号”具体表示标记为外部使用的符号,而“外部符号”是指没有本地定义的引用,期望该定义在构建或运行时环境的其他地方可用。<1> 导出符号就是在某个模块或者是库中用于其他模块或应用程序的变量或函数的符号。外部符号是对预期在其他地方定义的符号的引用。<1> 另一方面,外部符号是指在特定模块(如源文件或库)中引用但预计在另一个模块或库中定义的符号。<1> 导出符号通常是指库或模块中可供其他模块或应用程序使用的符号(例如函数或变量)。

2024-07-21 17:55:58 43

转载 关于Visual Studio的Linker Tools Error LNK2001

您看到的错误消息 LNK2001 未解析的外部符号,通常表示有一个函数声明(在您的情况下为 CameraManager::CloseCamera()),但它的定义(实现)在编译过程中缺失或未正确链接。最常见的原因是,应该实现 CameraManager::CloseCamera() 的 .cpp 文件不存在,或者不包含该函数的实现。第一步: 检查执行,验证“CameraManager::CloseCamera()”的实现就在合适的.cpp文件中。第三步,清理并重建您的解决方案以确保所有更改都得到正确传播。

2024-07-21 14:26:18 36

转载 Visual Studio中的.obj文件和bin文件夹是做什么的

总结一下,.obj 文件是 Visual Studio 构建过程中存储编译后的目标代码和调试信息的中间文件,在软件开发的编译和链接阶段起着至关重要的作用,有助于生成最终与用户交互的可执行文件。每个源文件通常都会生成一个 .obj 文件。答: 在 Visual Studio 中,.obj 文件是指在源代码编译过程中生成的目标文件。(2) 中间表示: .obj文件所包含的机器代码不是已经执行的,而是代表了编译过的代码并处在一种准备链接的格式中。问: 什么是Visual Studio中的.obj文件?

2024-07-18 11:09:35 78

转载 什么是查找表(LUT)

图像的蓝色和绿色通道已减少并变暗,而红色通道则发生了更微妙的偏移。左侧的立方体是未修改的图像,而右侧的立方体代表更改后的 RGB 值。在此示例中,这是基于 20 世纪初的旧胶片的查找表。左侧的图像是原始颜色,右侧是新重新映射的颜色。现在,让我们看看与黑白调整结合时的 LUT。在这种情况下,我将图像转换为黑白,然后应用 LUT。如您所见,查找表类似于曲线调整,因为它可以改变颜色和色调。Luminar Neo 的最新版本增加了对查找表或 LUT 的支持。LUT不只是改变图像中的一个颜色值,而是改变所有颜色值。

2024-07-11 10:31:32 45

转载 什么是时间分辨率?

特征的光谱特性可能随时间而变化,这些变化可以通过收集和比较多时相图像来检测。例如,在生长季节,大多数植物物种都处于不断变化状态,我们使用遥感监测这些细微变化的能力取决于我们收集图像的时间和频率。但是,由于大多数卫星相邻轨道的成像带存在一定程度的重叠,并且这种重叠会随着纬度的增加而增加,因此地球上的某些区域往往会更频繁地被重新成像。此外,一些卫星系统能够让其传感器在间隔一到五天的不同卫星轨道之间对同一区域进行成像。因此,传感器的实际时间分辨率取决于多种因素,包括卫星/传感器功能、带重叠和纬度。

2024-07-09 17:54:35 37

转载 Absolute Radiometric Calibration(绝对辐射校准)是什么

我们使用物理方程对地面数据进行校准,这些数据作为校准源,以确定校准卫星图像像素在校准目标内的“真实”测量值。这些是特殊的大气测量,可帮助我们确定大气中有什么、有多少以及当光线从我们的校准目标(专用防水布)传播到卫星相机时,大气如何影响太阳光线的散射。我们对每颗 Maxar 卫星、每个色带、卫星可以移动的每个方向(称为扫描方向)和每个可用的相机曝光进行数据收集和比较,以便对整个星座及其多种配置收集的图像进行校准和比较。该设施包括一块三英亩的田地,我们使用专门的工具测量校准数据,同时收集卫星图像。

2024-07-09 11:43:13 22

转载 信噪比(Signal to Noise Ratio)是什么及其计算

(2) 对于复杂的计算,您可以将所需信号的值除以噪声量,然后取结果的常用对数,即 log (S ÷ N)。假设您的设备的无线电接收信号为 -65 dBm(每毫瓦分贝),噪声基底为 -80 dBm,则产生的信噪比为15dB。例如,您测量的噪声值(N)为2微伏,信号(S)为300毫伏。在无线技术中,设备性能的关键是设备能够将应用的信号作为合法信息与任何背景噪声或频谱上的信号区分开来。香农-哈特利定理表明,S(平均信号功率)、N(平均噪声功率)和W(带宽)的值设定了传输速率的极限。(4) W: 等于带宽(赫兹)

2024-07-09 10:27:29 1989

转载 什么是光谱分辨率?

例如,黑白照片仅包含一个黑色波长,而彩色 RGB 图像包含三个波段,分别为红色、绿色和蓝色。Landsat 8 照片使用总共 11 个波段来捕获图像,由于波长较宽,它们的波段之间距离较大。在望远镜和照相机等设备中,空间分辨率来自角度分辨率。其他仪器(如雷达设备、遥感设备和卫星图像)的采样布局与拓扑和地球表面更紧密相关。许多仪器可以同时捕获一种或两种分辨率,但很少有设备能够同时提供四种分辨率。数据分辨率有四种类型:空间分辨率、光谱分辨率、辐射分辨率和时间分辨率。2.空间分辨率与光谱分辨率。

2024-07-08 16:56:41 40

原创 ROS编译错误: fatal error: test_pkg/test_pkg.h: 没有那个文件

解决方法: 删除工作空间,重建再重新编译。

2024-07-08 16:13:52 154

转载 如何在 Linux 中同时运行两个或多个终端命令

分享一个Linux使用小技巧:如何在 Linux 中同时运行两个或多个终端命令

2024-07-07 15:00:02 80

转载 进程与系统的关联掩码

(2) 如果函数失败,则返回值为零,并且lpProcessAffinityMask和lpSystemAffinityMask指向的变量的值未定义。(1) 如果函数成功,则返回值不为零,并且函数将lpProcessAffinityMask和lpSystemAffinityMask指向的变量设置为适当的亲和性掩码。第二个参数是一个位向量,每个位对应一个逻辑处理器:一个 CPU 核心或一个超线程,如果第二个参数中的某个位设置为 1,则允许该线程在相应的核心上运行。为系统接收关联掩码的变量的指针。

2024-07-02 20:38:19 12

转载 如何使用Win32 API的SetThreadAffinityMask

要被设置关联掩码的线程的句柄。该句柄必须有THREAD_SET_INFORMATION或THREAD_SET_LIMITED_INFORMATION访问权限和THREAD_QUERY_INFORMATION或THREAD_QUERY_LIMITED_INFORMATION访问权限。如果线程关联掩码请求的处理器未被进程关联掩码选中,则最后一个错误代码为ERROR_INVALID_PARAMETER。也就是说先要获得进程的关联掩码,那么该如何获得线程的关联掩码呢?如果函数成功,则返回值为线程的上一个关联掩码。

2024-07-02 17:29:25 26

转载 Using Mutex Objects(使用互斥对象)

此示例使用结构化异常处理来确保线程正确释放互斥对象。无论 __try 块如何终止,都会执行 __finally 代码块(除非 __try 块包含对 TerminateThread 函数的调用)。这可防止互斥对象被无意放弃。您可以使用互斥对象来保护共享资源,以防止多个线程或进程同时访问。每个线程在执行访问共享资源的代码之前都必须等待互斥对象的所有权。以下示例使用 CreateMutex 函数创建互斥对象,并使用 CreateThread 函数创建工作线程。

2024-07-01 16:58:17 21

翻译 What is a programming model?

在选择面向对象编程语言时,该框架是我们思考问题及其解决方案的视角。在面向对象语言的语境中,这种视角甚至有一个名字:我们用它来观察问题的视角称为面向对象分析,而我们用它来观察解决方案的视角称为面向对象设计。比如,甚至当编写面向对象程序时,你的程序会在你增加线程时发生巨大改变。你的程序不仅成为了面向对象程序,而且它们开始成为了并发程序,改变迫使你思考与之前不同的问题和解决方案。作为软件工程师,我们熟悉一系列编程模型,比如命令式、函数式、声明式、或面向对象编程。继承关系被约束以形成有向无环图。

2024-06-28 11:09:44 18

翻译 Understanding Request And Response Model: A General Overview

它保证了在客户端和服务器之间数据或信息的无缝交换。当服务器收到来自客户端的请求,它需要解析请求去理解需要执行的动作。请求解析步骤要执行许多任务(像提取请求方法、请求头部,确定请求的起始和结尾等)。请求包含了HTTP的方法(比如GET、POST、PUT、DELETE),指出了想要在服务器上采取的行动,随着额外的头部和有时包括数据的消息体。一旦收到响应,客户端基于所提供的状态码、头部和消息体解析和处理响应。简而言之,请求-响应模型定义了一种通信模式,在这里客户端发送请求给服务器,服务器回传一个关联的响应。

2024-06-26 16:43:55 16

翻译 One-sided communication: How does it work?

在单边通信中只有一个进程是主动的: 所谓的“原始进程”。在下方的图示中你可以看出进程0充当“原始进程”。通过MPI_Put进程0将数据发送给所谓的目标进程,进程1,在没有调用任何接收惯例的情况下接收数据。这意味着put操作的执行类似于原始进程的发送和目标进程的匹配接收的执行。双方都要调用通信惯例: 发送方调用MPI_Send并且接收进程调用MPI_Receive。它的工作方式类似于MPI_Put,除了数据传输的方向是反过来的之外。MPI_Get因此等同于目标进程的一个发送和原始进程的对应接收。

2024-06-25 23:26:13 11

翻译 Memory: Shared vs Distributed

缓存一致性是在硬件级别实现的,意味着如果一个处理器改变了共享内存中的位置,所有其他的处理器都会知道这种改变。从硬件视角看,分布式内存指的是处理器只能通过网络去访问其他处理器的内存的情况。从软件视角上看,这意味着每一个处理器只能直接访问本地机器内存,并且应当使用网络通信去访问其他处理器的内存。上述两种内存的结合,通常用于今天的超级计算机。混合内存系统基本上是共享内存网络,在每一个组件内,内存供所有CPU访问,此外,它们能通过网络访问存储在其他单元的任务和信息。不是所有的处理器对所有的内存都有同等的访问时间。

2024-06-25 21:55:56 21

转载 什么是编程抽象级别

企业可以专注于其核心竞争力,并将其他任务委托给其他企业(他们可能是处理其他任务的专家)。这也代表了您可以用这些想法构建的系统的灵活性。考虑下这样的情况: 你到了一家餐厅并下了订单,你对服务员说,我想要一份确定的菜肴和一份确定的饮品。让我们假设这个厨师有若干个助手,厨师可能指示助手们做如下步骤: 切蔬菜、揉面团、在 250F 下烘烤 15 分钟等等。您还传递了相关信息,例如菜名和饮料名。在这种情况下,客户(您)正在对可以处理 Waiter 接口(例如 Waiter W)的任何人调用 orderMeal。

2024-06-24 23:11:33 13

原创 关于C++字符串操作更节省资源的办法

相对而言比使用char数组再用cin.getline()输入要更节约资源。

2024-06-24 11:29:21 95

翻译 C++ Vectors

然而,与数组不同,一个vector的大小是可以动态增加的。vector的迭代器的作用被用于指向某一个元素的地址,类似于指针。类型参数T指出了vector的类型,它可以是任何的原始数据类型,比如int、char、float。在这个例子中,5是vector的大小,而12则是vector中的值。我们使用push_back( )方法,将一个元素添加到了vector的末尾。这意味着,每当我们需要时,我们都可以在执行程序期间改变vector的大小。由于vector的大小能够动态增加,因此我们在这里不指定其大小。

2024-06-06 22:21:13 139

VNC-Viewer-6.21.406-Linux-x64.deb

可用于控制树梅派的远程桌面软件的VNC Viewer安装包

2021-06-07

农业无线传感器Json数据解析.zip

这个是上一个JsonApp的升级版,用于解析无线传感器的Json数据并以表格形式显示,解析的json文件名为data.json,我已经放在了这个压缩包里,压缩包里还有一个压缩包,叫做JsonApp.zip,里面有我的源码

2021-05-26

JsonApp.zip

自己用Qt写的Json解析程序

2021-05-24

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

TA关注的人

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