自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(44)
  • 收藏
  • 关注

原创 Dynamic Tracking

给出两份脚本,分别作为ROS计算图中的 publisher 和 subscriber,加载本地预训练模型 SSD-MobileNet,利用进行Python3接口更改的模块 my_sort,实现简单的动态图像跟踪效果。

2025-04-14 11:24:44 225

原创 a sort.py demo

此处使用 SSD-MobileNetv2 进行物体检测,将结果传入以 np 数组的形式传入sort 模块,经过处理,以 np.empty((0, 5))的格式传出,在绘画模块,提取信息,标识矩形框和物体ID。这份代码展示了如何使用 sort.py。注意,此处,我将文件名改为 my_sort.py。你并不能直接 copy 使用,因为环境,包,还有模型。

2025-04-12 22:20:46 282

原创 适配python3.9的 SORT算法

它需要目标检测模型的置信度、检测框结果作为输入。下一篇文章会展示一份 demo,使用该模块,进行跟踪和绘制。简单地更改了 sort.py 函数的接口,核心思想、处理操作并不改变。

2025-04-12 22:10:25 222

原创 MTCNN 人脸识别

此处介绍强大的 MTCNN 模块,给出demo,展示MTCNN 的 OOP, 以及ROS利用 C++ 节点,命令行调用脚本执行实际工作的思路。

2025-04-12 21:49:47 314

原创 TurtleBot3 Package turtlebot3_drive source code read

此处阅读简单的 turtlebot3_drive 代码。从ROS的角度,作为一个demo,它足够小、简单,可以从中看见ROS的 NodeHandle如何使用。此外,我们也能简单地看到 “自动避障功能的实现”。从C++的角度,它实际上并不复杂,我们能够回顾C++编码的规范,对于初学者有帮助。

2025-04-09 22:05:07 425

原创 MNIST 数据集 与 TFOD API

此处给出我在进行毕业设计过程中写的三份脚本,作为demo 展示模型的预处理,输出信息提取和TFOD API的应用。

2025-04-07 17:12:30 186

原创 webcam video demo

这是ROS情景下的一个节点,展示了ROS节点的常见格式。代码很简单,单展示了持续视频流的发布,还展示了基本接口的使用。一个 demo,使用 OpenCV,手动操作 webcam,保持相机打开,防止频繁的 开关损坏摄像头硬件。

2025-03-31 21:22:19 252

原创 ROS Image and Compressed

记录一个尝试,给出一份demo,关于 rostopic 和 Image type。在多机通信中,有时为了性能,我们在 pub 端对数据进行压缩,在 sub端解压,这样节省带宽,提高传输速率。而具体的性能数据可以通过 command-line tool rostopic 协助查看。例如:此处我假设已经有 pub 端发布 topic,我在本地进行了尝试,分别订阅两个 topic,查看效果。发现 raw 图更迅速。此处给出scripts,其中展示了 图像类型转换、模型推理,压缩与未压缩的接口。

2025-03-31 21:16:31 365

原创 ROS的包缺少问题

有些 package是第三方或者客制化的内容,本身就不可能在官网下载。需要你在自己的 workspace 中 catkin_make 之后生成。对于 resources not found,我总是想当然地认为是 源 的问题,类似。tree 指令的用法,tree -L 3, 我很喜欢的用法。缺少包,看说明文档确认一下。下面这条什么意思没弄明白。

2025-03-30 10:54:09 124

原创 Check if a matrix is Symmetry

【代码】Check if a matrix is Symmetry。

2025-03-25 22:53:11 203

原创 ROS topic && rqt notedown

这里记录 ROS 学习笔记 和 项目遇到的问题,提供参考,以便温故知新。ROS topic通信是实际应用场景中场景的通信方式。pub 和 sub两端需要保证 message的类型相同,方可在同一 topic 进行通信。场景的 无法通信问题,除了 网络设置问题, topic name不同,往往就是 message type不同。当然,message type问题有时很隐蔽。考虑指令rostopic type能够显示 某一个 topic 的类型,这对于 pub 和 sub 的 顺利通信很重要。

2025-03-24 16:54:55 343

原创 ROS melodic 安装 python3 cv_bridge

有时候,我们需要处理这些兼容性问题。此处列举我的过程,以供参考catkin_make_isolated allows per-package customization,和常见的 catkin_make 在这里区别不大。很多教程都推荐加上 --install,我这里没有,因为失败了,原因在下面。其中,三个 命令行标识需要更改为你自己的环境路径,你可以通过来找到后两个。至于第一个,因为我在 miniconda下,可以通过指令查看。显示当前python环境。在编译成功后,刷新当前环境,执行指令注意路径。

2025-03-22 23:45:24 448

原创 OpenCV 包测试与缺失GUI解决

最初,我没有安装 opencv-contrib-python,无法显示 GUI 界面,既 cv2.imread() 语句会出错。)被移除,因为它们依赖于 GTK 或 Qt(窗口管理库)。headless 专为无 GUI 环境设计,如服务器。假设你是 ubuntu环境,在 bash 中,输入。且 不同 opencv版本,可能存在不同的结果。版本通常包含完整的 GUI 支持。及相关 GUI 函数(如。

2025-03-22 17:00:44 319

原创 cv2.waitkey() code snippet explanation

此处 & 的目的是为了提取出 后8位。cv2.waitKey() 返回一个 32-bit 的整数,通过按位与操作,提取出后八位,并将结果 与 ‘q’ 的 Unicode码进行比较。(Unicode 码 是 ASCII 码的超集)通常,我们看到上述句子,用于在指定的时间内等待击键,通常用于图像和视频处理应用程序中,以暂停执行并允许用户与显示的窗口交互。至于 ord(),它用于返回字符的 unicode编码。所以,上述代码会一直等待,直到你 输入'q'。

2025-03-21 17:27:21 862

原创 ROS catkin_make编译报错问题

将 YOUR_PACKAGE_NAME替换为你的包名就好了。检查 generate_messages() 是否被注释。另外,若想单独编译 ROS package,可以执行指令。中正确配置消息生成。

2025-03-15 15:57:53 159

原创 查看 tensorflow hub 模型文件信息

还存在第三种方法,如果你模型的作者公布了文档,可以阅读文档,里面会有对模型的介绍说明。比如 tf hub 网站中的 BlazeFace 模型。方法1,在 你配置好的 tf 环境中,运行下述指令,会输出模型相关信息。有时候,工程需要,我们可以使用他人训练好的模型进行推理。或者使用 python脚本输出信息。

2025-03-12 16:22:08 282

原创 安装、使用 tensorflow 遇到的问题

是 Keras 的每日构建版本(开发版),通常包含未正式发布的实验性代码。TensorFlow 2.5.0 在开发阶段可能依赖此版本,但正式发布后不再需要。当前 PyPI 镜像源(如清华源)可能已移除陈旧的。安装时总是出现错误。问题出在 keras-nightly.绕过版本2.5.0,下载清华源中的较新版本。很笨的问题,没有进入python环境。Q1: 没发现满足需求的版本。开发版,导致安装失败。

2025-02-23 16:11:54 325

原创 Ubuntu终端的常用快捷键

自动补全命令或文件名。: 将光标移动到命令行的开始位置。: 将光标移动到命令行的末尾。: 删除从光标位置到命令行末尾的内容。: 删除从光标位置到命令行开始的内容。: 如果命令行没有任何字符,它将关闭终端;如果有字符,它将删除光标位置的字符。: 删除光标前的字符。: 删除光标前的单词。: 粘贴最近使用Ctrl + UCtrl + D或Ctrl + W删除的内容。: 清屏,相当于输入clear命令。: 搜索历史命令。: 终止当前运行的命令或进程。: 复制选中的文本。: 粘贴文本。: 输入。

2025-02-16 22:36:47 812 1

原创 ROS turtlesim 无法通过 键盘控制 turtle 移动

当我们在上进行试验时,如果出现了上述问题,除了指令输入错误、本地没该功能包,未选中 turtle_teleop_key终端进行操作等简单原因外,还有可能是未正确设置环境变量 ROS_MASTER_URI, ROS_HOSTNAME。

2025-02-16 21:39:16 225

原创 学习资料整合记录

这几天在做毕设,遇到的一些问题和原因、解决方法可能都会放置在这里,主要以链接的形式存在,方便日后总结、回顾。

2025-02-13 11:24:47 226

原创 C++ Primer Plus chapter 18

考察 std::initializer_list <>这份template函数参照简单的例子书写。这种方式会简单很多。注意到我后面两次调用函数 average_list, 它的 std::initializer_list <>并不相同。

2024-11-09 21:20:14 414

原创 a brief record of C++ inheritance

inheritance, multiple inheritance

2024-07-03 16:06:20 912

原创 ROS实验课(四)

实验四,在经历了实验三的失败后,卷土重来。幸运的是,此次实验很简单,很快就能搞定。

2024-06-19 08:16:38 711

原创 Ubuntu无video设备可能的解决方法

[ERROR] [1718721466.899091890]: Cannot identify '/dev/video0': 2, No such file or directory

2024-06-18 23:11:00 634

原创 ROS实验课(三)

PocketSphinx 踩坑记录 与 科大讯飞 SDK 的使用。

2024-06-17 23:56:22 1026

原创 C++ Primer Plus v6 Chapter13 exercise 4

简单的两个类,一个基类一个派生类,提供一些member functions, 需要完成member functions定义的书写。基类中有 char* 变量用 new allocate memory,也有char数组,以及一个int 类型的变量。意图很明显,将两种字符存储方式放置在一起,在处理copy constructor, assignment operator时可以进行比对,加深理解。派生类中同样是 char* 变量,用new 申请内存,存放字符串。

2024-06-11 16:25:51 580

原创 C++ Primer Plus v6 Chapter 13 exercise 3

abstract base class

2024-06-11 00:09:02 274 2

原创 C++ C_style string overview and basic Input funcitons

std::cin.get();std::cin.get(char*,int);std::cin.get();

2024-06-09 16:30:10 1279

原创 2 simple C++ programs

文件I/O redirection && 水仙花数

2024-06-09 10:56:26 396 1

原创 C++ Compound types overview

overview of union, enumeration and other C++ Compound types.

2024-06-08 18:15:43 1288

原创 ROS实验课(二)

此篇博客记录ROS实验课二的内容,基于教材《ROS机器人开发技术基础》。16.04的Ubuntu版本,7.16.1的gazebo版本,ROS版本为kinetic。老师的本意是我们逐个学习urdf建模与gazebo控制,熟悉整个流程,在提供的教学包的基础上做出自己的改进。记得在工作空间目录 ~/catkin_ws/ 目录下运行指令,安装依赖。此条指令可能无法一次性解决依赖的问题。笔者后面很笨地一个一个装,如果有更好的方法,欢迎留言。本文假设各位都已成功安装教学包。

2024-06-05 13:17:24 755

原创 C++ class notes(二)

这两个函数是最基本的成员函数。它们与对象的生成与销毁相关。constructor用于创造对象,destructor用于销毁对象。这两个成员函数没啥好说的,只是简单易懂的概念与语法。

2024-06-02 22:36:01 1197

原创 C++ Primer Plus v6 Chapter12 exercise 4

重写stack类,加上operator= function 与copy constructor,private中有指针,采用动态分配内存的方式。因此,实际上温习的是指针所指向内存的dynamic allocation,需要注意的是这两个函数。在类的private 中,Max表示对象在创建时最大能拥有的栈的元素值。top指向栈中元素的上一个位置。size 是每个单独类中元素的数量大小,自然不能超过Max。注意对单个栈是否满的判断采用的是 top== size。

2024-06-01 17:28:25 338 1

原创 C++ Primer Plus v6 Chapter 12 exercise 3

很久没写博客了,此次练习作为一对于C++基础类的简单复习。它就是在基础的类的定义上使用动态分配的内存存储字符串,并且重载了operator<<。method file文件中输出的格式设置可以参考,也可以使用C语言的占位符。至少目前为止,我并没发现特别需要这个输出格式的地方,但多学总是好的。除此之外,需要注意的是main函数末尾的取地址符。

2024-05-31 15:27:54 390

原创 ROS实验课(一)

这部分包括工作空间的创建,代码的编写,CMakeList文件内容的添加,还有最后的刷新环境变量(很容易忘记)。至此,简单的两个节点间的通信就完成了。后续的可以学习CMakeList.txt,也可以研究ROS中的通信机制。但现在,已经完成了一小项任务。

2024-05-29 16:26:24 870 2

原创 C++ Primer Plus v6 Chapter 12 exercise 2

此题目考察了 copy constructor, assignment constructor, friend function, conversion constructor,都是基础的内容,实际上并不困难。其中,String& String::operator+(const String& rh) 函数的实现是此题中的新颖点,有参考价值。

2024-05-27 22:42:09 559 1

原创 C++ Primer Plus v6 Chapter 12 exercise 1

需要实现一个类,提供函数的定义,并写一个函数测试。因为private中存在一个char* 指针,需动态分配内存,在虚函数中释放,以免造成内存泄漏。因为private中存在指针,需要深拷贝,copy constructor 和 operator= 需要释放之前指向的内存空间,重新申请,重新赋值。注意 operator= 需做自赋值的检查。在main函数中,我使用了一个类的数组,一个指针数组——相对于其他部分,这两个数组花了我不少时间。

2024-05-27 19:51:03 356 1

原创 C++ Primer Plus Chapter 13 exercise 1&&2

simple example code fragment about derived class && base class, especially the copy constructor, operator= method and so on.

2024-05-27 13:33:37 242 3

原创 C++ class notes(一)

以上便是关于类的粗略的笔记,后续计划陆陆续续完善自己的笔记,记录自己学习中遇到的问题。

2024-05-26 15:35:18 1069 1

原创 C++ Primer Plus v6 Chapeter 11 exercise 5&&6

因为五六题用的是同一个类,且彼此之间并不冲突。所以我在书上提供代码的基础上,同时进行五六题。要点在head file和method file, main file文件中主要是使用自己定义好的类和方法,使用循环(for/while)进行方法的验证。在main file文件中,我定义了两个数组,实际上可以使用new 动态分配内存空间,更节省内存,更高效,此处仅仅作为测试类的正确程度,所以使用比较笨拙的方法。

2024-05-16 15:42:33 722 1

空空如也

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

TA关注的人

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