自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(29)
  • 资源 (11)
  • 收藏
  • 关注

原创 FastDDS之共享内存

至此,共享内存相关的初始化完成,接下来就可以深入看看共享内存的实现细节了。

2025-12-22 19:01:14 125

原创 c++泛型编程之技术运用

又叫做常量整数包装器,它在编译时将整型常量视为类型,实现基于常量整型的静态调用分配。当具现化一个template时,编译器会把目前存在的偏特化和全特化的template做比较,并找出其中最适合的。它的运作方式是如果flag为true,则使用第一个泛型定义,因为Result会被定义成T,如果flag为false时,就会用偏特化的定义,Result被定义成U。上面提到不存在template函数的偏特化,但是我们偶尔需要模拟出偏特化的机制,一是可以使用函数重载的方式实现,另外可以使用Type2Type的方式。

2025-12-19 14:42:58 280

原创 C++泛型编程之Type Traits

C++中的type traits是模板编程在编译期间的工具,它允许程序员检查和修改类型的信息,通常基于静态方法,来获取某个类型的属性或者对类型做出某些判断。

2025-12-08 22:17:58 127

原创 c++泛型编程之基于policy的class设计

Template是一种很适合“组合各种行为”的机制,只要因为它们是“依赖使用者提供的型别信息”并且“在编译期才产生”的代码。多重继承与template之间是互补的。多重继承欠缺技术,而template有着丰富的技术;多重继承缺乏型别信息,但是在tempate中大量存在;template的特化无法扩张,但是多重继承确很容易扩张;你只能为template成员函数写一份缺省版本,但是你可以写无数个Base class。如果我们将多重继承和template组合起来,那么将会产生非常具有弹性的设计。

2025-12-03 21:20:01 833

原创 ros2_control之hardware_interface

硬件组件代表了ros2_control框架中物理硬件的抽象概念,主要分为三种类型:控制器、传感器、执行器。

2025-11-19 18:02:17 262

原创 ros2_control之controller_manager

如果进程中有多个Node,全局节点名称重命名规则也会修改ControllerManager节点的名称,从而导致节点名称重复,无论节点是兄弟节点,还是位于层级结构中的节点,都会发生这种情况。有个workaround的方法是,传递给ControllerManager节点的NodeOptions中指定另一个节点的映射规则,使其忽略全局规则,以确保重映射规则针对的特定节点。urdf的xml字符串,订阅自robot_state_publisher,所有关节定义在urdf的<ros2_control>对应的tag中。

2025-11-19 16:19:28 453

原创 ros-controls代码下载编译

(以humble版本为例)

2025-11-10 20:05:37 191

原创 ROS2编译及代码结构

ros教程:https://docs.ros.org/en/humble/Tutorials.html。ros官方文档:https://docs.ros.org/en/humble/

2025-09-26 18:39:24 167

原创 ros代码下载

以下以拉取humble版本为例,拉取ros2的全量库。参考文档:https://docs.ros.org/en/humble/Installation/Maintaining-a-Source-Checkout.html。(ubuntu每隔两年4月会出一个稳定的大版本,8月会出一个稳定的版本)humble版本可在ubuntu 22.04版本上运行。jazzy版本可在ubuntu 24.04版本上运行。

2025-09-26 18:20:11 206

原创 从0到1软件设计总结

逻辑视图面向系统逻辑分析,是描述系统逻辑结构的视图。系统中包含哪些模块,模块都位于哪几层,各模块之间什么联系,各模块之间如何通信/调用接口如何定义,此时可以用系统分层逻辑图表示,也可以佐以组件图,以此定义模块与模块之间的依赖,每个模块负责哪些内容,模块与模块之间如何通信,模块A对模块B的需求接口如何定义,模块B向模块A提供哪些接口。在系统中总是存在各种各样的异常,在系统设计中,尤其是中间件的设计中需要着重考虑异常的应对,分析当出现异常时,软件如何应对,是怎么样的行为,才能设计出鲁棒性够好的软件。

2025-08-28 22:13:53 276

原创 无锁队列的实现

ypipe性能比较高,但是不适用于多读多写的场景,因为在读的时候没有对r指针加锁,在写的时候没有对w指针加锁。yqueue、ypipi(yqueue的封装)

2025-08-19 20:06:13 881

原创 zmq_socket

ZMQ_DISH类型用于_subscriber_,来订阅组内的由_radio_发送的消息,最开始ZMQ_DISH套接字并不会订阅某个组的消息,需要通过zmq_join函数加入组,通过zmq_msg_group函数获取所属组的消息,该类套接字不能使用_zmq_send()_方法。_zmq_send()_方法永远不会阻塞。ZMQ_PUSH套接字用于管道中_node_发送消息给下一个管道的_node_,消息是轮询发送给管道下游的_nodes_,该套接字不能使用_zmq_recv()_方法。

2025-02-07 17:21:06 1134

原创 设计模式——SOLID设计原则

SOLID代表以下设计原则。

2024-08-25 17:16:26 298

原创 休假学习计划

c++模板编程STL源码设计模式无锁队列

2024-07-30 17:30:25 358

原创 多线程编程

什么是线程?线程是轻量级进程,是操作系统统一调度的最小单元。每个进程都有独立的用户地址空间,而运行在进程中的多个线程共享进程的地址空间,因此进程内线程之间的通信就会变得简单,但是线程又有独立的栈,因此我们可以写出线程安全的函数(即该函数只使用的栈空间,不使用堆空间,那么该函数就可以说是线程安全的)。为什么要用到多线程?在编程中,为了提高代码的运行效率,希望代码能够并行运行,因此就用到了多线程。

2024-07-14 23:05:25 770

原创 rtps协议——平台专用模型(PSM)

9.5 UDP/IP传输消息。9.3 RTPS类型映射。9.4 RTPS消息映射。9.6 RTPS协议映射。

2024-06-06 15:40:17 527

原创 rtps协议——平台独立模型(PIM)

8.7 RTPS实现DDS qos和高级DDS特性。8.2 数据结构模块。8.6 版本及扩展性。

2024-06-06 15:37:43 602

原创 rtps协议——综述

7.4 RTPS平台依赖模块(PIM)7.5 RTPS平台特殊模块(PSM)7.2 DDS有线协议的需求。7.3 RTPS有线协议。7.6 RTPS传输模块。

2024-06-06 15:34:41 508

原创 flatbuffer总结

https://zhuanlan.zhihu.com/p/391109273

2024-04-27 11:49:45 203

原创 python基础教程——文件

管道将一个命令的标准输出链接到下一个命令的标准输入。open(path[, mode]):打开文件read([len]):读取,sys.stdin.read()从标准输入中读入readline([len]):读取一行readlines():读取所有行,结果以列表的方式返回write(str):写入writelines(list):接受一个字符串列表,并将这些字符串都写入到文件中,写入时...

2024-04-20 14:22:13 223

原创 python基础教程——开箱即用

探索模块(可用Python解释器)首先import module使用dir:查看模块包含哪些东西,该函数列出对象的所有属性(对于模块,它列出所有的函数、变量、类等)。变量__all__:正则表达式通配符:点号与换行符外的任何字符都匹配,因此被称为通配符。点号匹配一个字符。对特殊字符进行转义:让特殊字符的行为与普通字符一样,需要对其进行转义。转义符为反斜杠,但是这里包含两...

2024-04-20 14:21:40 425

原创 魔法方法、特性和迭代器

构造函数子类必须调用超类的构造函数,以确保基本的初始化得以执行。为此,有两种方法:调用未关联的超类构造函数,以及使用函数super,即便有多个超类,也只需调用函数super一次,条件是所有超类的构造函数也使用函数super。...

2024-04-20 14:21:15 188

原创 python基础教程——抽象

斐波那契数列:每个数都是前两个数的和。fib[k] = fib[k-1] + fib[k-2]例子:fibs = [0, 1]for i in range(8):… fibs.append(fibs[-2]+fibs[-1])…fibs[0, 1, 1, 2, 3, 5, 8, 13, 21, 34]判断某个对象是否可调用,可以使用内置的callabl...

2024-04-20 14:20:48 1081 1

原创 Python基础教程——内建函数

getattr(object, name[, default]); #从对象object中获取名称为name的属性,等效于调用object.name第二个参数default为可选参数,如果object中含有name的属性,则返回name属性的值,如果没有name属性,则返回default的值,如果default没有传入值,则报错。zip #将两个序列缝合起来,并返回一个由元组组成的序列。返回值...

2024-04-20 14:20:12 264

原创 条件和条件语句

三目运算符:如果条件(紧跟在if后面)为真,表达式的结果为提供的第一个值(这里为friend),否则为第二个值,这里为stanger。name = ‘gf’status = ‘friends’ if name.endswith(‘gf’) else ‘stranger’status‘friends’Python的比较运算符表达式 描述x==y x等于y(比较对象内容)x<y...

2024-04-20 14:19:28 305

原创 Python基础教程——字符串

Python基础教程——字符串字符串格式化:str.format()可以接受无限个参数,位置可以不按顺序。例子:‘{}{}’.format(‘hello’, ‘world’)‘helloworld’‘{} {}’.format(‘hello’, ‘world’)‘hello world’‘{0} {1}’.format(‘hello’, ‘world’)‘hello world’...

2024-04-20 14:18:54 208

原创 Python基础教程——列表

list.index(element) #返回element在list中的索引

2024-04-20 14:18:11 142

原创 整体架构介绍

fastdds是DDS(数据分发服务)规范的C++实现,该规范是由OMG(对象管理组)定义的协议。fastdds库提供了应用程序API和通信协议,部署DCPS(以数据为中心的发布者-订阅者模型),在实时系统之间建立高效、可靠的信息发布。只有属于同一个domain内的实体才可以被互相发现。同一domain中的实体通过匹配topic等可建立通信。

2024-04-16 23:09:40 688

原创 fastdds服务发现

域名参与者互相发现,每个DomainParticipant定期发送公告消息,指定DomainParticipator正在侦听传入元数据和用户数据流量的单播地址(IP和端口),当两个给定的DomainParticipants存在于同一DDS域中时,它们将匹配。

2024-04-16 14:53:11 1834

linux性能之巅云计算相关.7z

主要是性能调优方面,云计算方面的提升

2021-09-07

编程语言相关的一些资料(python).7z

编程编程python相关,yyds

2021-09-14

Docker,kafka,redis技术资料整理.7z

这是一些个人整理的中间件技术相关资料,清凉解暑,老少皆宜

2021-06-26

自己整理的Ngnix相关学习资料.7z

Ngnix资料,虽有智慧不如乘势,虽有镃基,不如待时。大势已到,镃基已备,龙行雨施,或跃在渊。

2021-06-29

开发工具和语言相关源码和官方文档

Bash,Boost,Bootstrap_5,C/C++,CMake,CSS,Django,Flask,GLib,HTML,Jinja,MySQL,Nginx,Python_3,Qt_5,Redis,Sass,Tcl,Vim的源码和官方离线文档

2021-04-19

redis设计与实现

这是一本介绍redis的很好的书,把它上传在这里供有兴趣的人阅读,希望能够对大家有所帮助。最最重要的是我可以下载!!!

2020-11-04

C++ 学习个人总结相关资料.7z

C++相关学习笔记,这是我自己的一些个人总结,是学习C++的好帮手,要学习的请抓紧下载了,加油哦,奥力给!互联网,IT行业必备

2020-07-21

effective.rar

这是关于编写高效C++代码方面的资料,通过阅读这些资料能够掌握如何编写高效C++代码,深入理解C++代码,极大提高开发效率和质量

2020-07-21

深入理解和编写C++11.rar

这是关于编写高效C++11代码方面的资料,通过阅读这些资料能够掌握如何编写高效C++11代码,深入理解C++11代码,极大提高开发效率和质量

2020-07-21

Linux服务端编程C++网络库(详细书签).rar

这是关于编写高效Linux平台C++代码方面的资料,通过阅读这些资料能够掌握如何编写高效C++代码,深入理解C++代码,极大提高开发效率和质量

2020-07-21

C++11标准库比较全面.rar

这是关于编写高效C++代码方面的权威资料,通过阅读这些资料能够掌握如何编写高效C++代码,深入理解C++代码,极大提高开发效率和质量;非常全面

2020-07-21

空空如也

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

TA关注的人

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