- 博客(66)
- 资源 (1)
- 收藏
- 关注
原创 IMU_惯性测量单元的主要技术种类
2010年4月,由3个硅MEMS陀螺构成的速率传感器组合SiReus首次在欧空局极地冰层探测卫星上作为姿态测量装置得到成功应用,精度达到10 - 20/h(3标准差),国外硅MEMS陀螺在战术武器中,低精度领域已有批量应用。1996年后,全固态结构、全数字、低功耗的光纤陀螺在国外进入工程应用阶段,至今已趋于成熟,覆盖了高、中、低精度范围,并在海陆空天各领域获得应用,高精度产品的精度可达到0.001°/h(1个标准差)的水平,尤其在空间飞行器、舰船等领域有独特应用优势,在新研制的惯性系统中日益得到广泛采用。
2025-11-21 19:42:18
360
原创 NN_ONNX集成、部署工具
ONNX Runtime 是微软开发的跨平台高性能推理引擎,原生支持 C++ API,广泛用于生产环境(如 Windows、Linux、Android、iOS、嵌入式设备等),ONNX 本身是一个模型格式标准(即一个 protobuf 定义的文件),但围绕它有一整套 C++ 工具链。🔧 C++ 使用示例(加载 ONNX 模型并推理)📦 编译依赖。
2025-11-20 11:36:05
563
原创 算法_四元数到姿态角(欧拉角\固定角\轴角)的转换代码python/C++
姿态角旋转的类别主要涉及有内旋(欧拉角)和外旋(固定角),姿态角按照旋转轴是x轴,y轴和z轴的顺序可以通俗的叫做横滚角(roll)、俯仰角(pitch)和航向角(heading/yaw)。
2025-11-13 09:46:05
206
原创 math_旋转变换
我们目标是求 a → c 的旋转四元数 **q2**。## 1.1、从一个坐标系(或向量)旋转到另一个的变换。- 从 b → a 的旋转四元数是 q0。- 从 b → c 的旋转四元数是 q1。
2025-11-12 17:15:14
199
原创 IMU_战术及惯性测量单元(IMU)
在科研领域,尤其是涉及高动态运动测量、自主导航、机器人控制、无人机/无人车系统、航空航天仿真等方向时,战术级IMU(Tactical-grade IMU)因其较高的精度和可靠性而被广泛采用。这类IMU的典型特征包括:陀螺仪零偏稳定性:约 0.1°/h 到 10°/h加速度计零偏稳定性:通常优于 1 mg具备良好的温漂补偿与抗振动能力支持高频率输出(≥200 Hz)常集成于组合惯导系统(GNSS/INS)
2025-11-12 11:30:24
846
原创 AD_加减速和变道博弈
从组成元素上说,博弈论包括:参与者、策略空间、行动、收益、相关信息、均衡(博弈的解)从分类上说,博弈论包括:合作性和非合作性、静态性和动态性、完全信息和非完全信息。博弈论可以理解为依据规则、评估收益和损失。选择行动策略,最大化收益。
2025-11-12 11:04:11
163
原创 维护_vrpn、LCM、DDS和GRPC的通信区别和优缺点
✅ VRPN优点:超低延迟、专为 VR 设备优化、简单易用缺点:协议封闭、无现代特性、生态萎缩✅ LCM优点:极简、高效、适合科研原型缺点:不可靠、无 QoS、社区活跃度下降✅ DDS优点:去中心化、高可靠、QoS 丰富、工业级缺点:学习曲线陡、配置复杂、资源占用较高✅ gRPC优点:强类型、跨语言、生态强大、云原生友好缺点:延迟较高、不适合纯设备通信、依赖中心化服务发现。
2025-11-11 15:35:15
222
原创 维护_其它进程间通信(IPC Inter-Process communication)和分布式通信框架列述
语言支持 主要 C/C++,社区有 Python/Java 封装(有限) 官方支持 10+ 语言(C#, Go, Java, Python, C++, Node.js 等)调试难度 较难(二进制协议,需专用工具或日志) 中等(可用 grpcurl、Wireshark + HTTP/2 解码)CPU/内存开销 轻量,C/C++ 实现,无复杂依赖 相对较重(需 TLS、HTTP/2 栈、Protobuf 解析)传输层协议 主要基于 TCP(默认),部分支持 UDP(需定制) 基于 HTTP/2(强制)
2025-11-11 15:14:22
525
1
原创 维护_编辑图片分辨率的方法
调整照片的分辨率(通常指 DPI / PPI,即每英寸像素数)是一个常见需求,尤其是在准备证件照、打印照片或提交官方材料时。✅ 一、什么是“调整分辨率”?我们这里重点讲 如何正确设置 DPI 以满足如“26mm×32mm,150dpi以上”的要求。✅ 二、推荐方法:使用专业工具调整分辨率方法 1:使用 Photoshop(最标准)✅ 此时照片的 DPI 已设为 150,打印时就会按对应物理尺寸输出。方法 2:使用免费软件 GIMP(开源替代品)方法 3:使用 Windows 照片编辑器(基础版)
2025-10-29 13:54:52
778
原创 维护_linux_tar压缩指令解析
虽然 .gz.tar 在技术上不会导致失败(因为只是个名字),但它违反了标准命名惯例,容易引起误解。✅ 含义清晰:xx → 打包成 .tar → 再压缩成 .gz → 最终为 .tar.gz。🔧 修复后不仅语义正确,也便于他人理解和自动化脚本识别。—— 后缀顺序错了!💡 补充建议在这里插入图片描述。
2025-09-25 18:06:06
212
原创 C++_指针01_指针及其关键点
指针是C++的“双刃剑”:掌握它,你将能写出高效、灵活的代码;滥用它,则可能导致难以调试的错误。在现代C++中,应尽量使用RAII和智能指针来管理资源,将指针的使用限制在必要场景。
2025-09-12 09:09:33
302
原创 C++_模板(template)_模板类_模板函数_模板变量
模板特化(Specialization):为特定类型提供定制实现。偏特化(Partial Specialization):仅对部分模板参数进行特化(仅适用于类模板)。可变参数模板(Variadic Templates):支持任意数量的模板参数(C++11)。概念(Concepts):C++20引入,用于约束模板参数类型,提高错误信息可读性。模板是C++强大类型系统和泛型能力的体现,掌握它们对于编写高效、可复用的现代C++代码至关重要。
2025-09-12 08:45:13
174
原创 sim2real_动作迁移常用的方法和思路(比如bvh->robot)
方法:将 BVH 文件直接导入 Blender👉 所以需要后续的“映射”或“重定向”
2025-09-08 22:36:00
1121
原创 C++_队列编码实例,从末端添加对象,同时把头部的对象剔除掉,中的队列长度为设置长度NUM_OBJ
你可以使用 C++ 中的 std::queue 或 std::deque 来实现一个固定长度的队列(大小为 NUM_OBJ),当从尾部添加新对象时,如果队列已满,则自动移除头部的对象。这类似于一个“滑动窗口”或“循环缓冲区”。虽然 std::queue 默认不支持遍历和直接控制大小,但也可以实现类似逻辑。对于频繁的头部删除操作,std::deque 或 std::queue (基于 deque) 通常是更高效的选择。适用于批量添加场景。✅ 总结。
2025-09-05 09:02:08
1146
原创 C++_数据类型和数据结构
C++ 中的数据结构主要通过 STL 容器实现,它们可以存储任意数据类型(int、double、class 等),并提供高效的插入、删除、查找操作。你问的是“C++中常见数据类型的数据结构”,这里理解为:C++ 中用于组织和管理各种数据类型的常见数据结构,尤其是标准库(STL)中提供的容器。C++ 标准模板库(STL)提供了丰富的数据结构,它们可以存储任意数据类型(如 int、double、string、自定义类等)。掌握这些容器的特性(时间复杂度、内存开销、是否有序等)是写出高效 C++ 程序的关键。
2025-09-05 08:35:00
179
原创 C++_数据结构
数据结构是计算机存储、组织数据的方式,它使得数据能够被高效地访问和修改。根据数据元素之间关系的不同特性,数据结构可以分为多种类型。主要可以分为两大类:逻辑结构和物理结构(也称存储结构)。逻辑结构描述的是数据元素之间的抽象关系,与存储无关。一、逻辑结构(按数据元素之间的逻辑关系分类)物理结构是指数据在计算机中的存储方式。二、物理结构(存储结构)三、常见数据结构总结表。
2025-09-05 08:25:28
217
原创 C++_继承_父类与子类中对象权限属性的变化
C++继承中protected继承,父类的protected类型,访问权限有什么变化?在 protected 继承 下:基类成员访问权限 在派生类中的访问权限📚 详细解释🔁 访问权限变化规则(核心)这里的 min 是“更严格”的意思(private < protected < public)。原始权限\继承方式 public protected private🧠 为什么使用 protected 继承?✅ 总结。
2025-09-03 09:08:33
729
原创 C++_封装和继承
C++ 中的 封装(Encapsulation) 和 继承(Inheritance) 是面向对象编程(OOP)的两大核心特性(另外两个是多态和抽象)。下。
2025-09-03 08:27:24
336
原创 维护_网络_ip地址分配出错
但是/etc/network/interfaces中的设置如下:上述的网卡地址和静态ip设置并不统一,这是什么原因?你提出的问题非常好:/etc/network/interfaces 中配置了 eth0 为静态 IP,但系统中 eth0 和 eth1 都获得了 IP 地址,且 eth1 的 IP(192.168.254.145)并未在配置文件中定义。这说明网络配置和实际运行状态不一致,可能由以下几个原因导致:🔍 一、关键问题分析eth1 的 IP 地址从何而来?
2025-09-01 14:23:12
564
原创 C++_继承_派生类通过public继承基类,能否直接访问基类的protected程序员变量和成员函数
protected 是专门为继承设计的访问级别,它允许派生类复用和扩展基类的实现,同时保持对其他外部代码的封装。无论哪种继承方式,派生类内部都能访问基类的 protected 成员。在C++继承中,protected 成员扮演着一个特殊的角色:它对“外界”是隐藏的,但对“自家人”(即派生类)是开放的。因此,派生类可以直接访问基类的 protected 成员变量和成员函数,就像访问自己的成员一样。派生类能否直接访问基类的 protected 成员?这是 protected 访问修饰符的核心设计目的。
2025-09-01 09:02:23
221
原创 C++_继承
继承允许我们定义一个新类(称为派生类或子类),它基于一个已有的类(称为基类或父类)。继承、封装和多态共同构成了C++面向对象编程的基石,使我们能够构建模块化、可复用、易于维护的复杂软件系统。目的:实现代码复用、建立类的层次结构、为多态打下基础。继承方式 (Inheritance Modes)多态 (Polymorphism) 的体现。面向对象编程 (OOP) 的三大支柱。继承为多态提供了基础。继承是连接封装和多态的桥梁。
2025-09-01 08:43:24
259
原创 C++_class和struct的区别和联系
主要用来组合相关的数据项,通常不包含复杂的逻辑或需要隐藏的状态。在C++中,class 和 struct 是两种定义用户自定义类型的关键词。它们在功能上极其相似,甚至可以说几乎完全等价,但存在几个关键的区别,主要体现在默认访问权限和编程范式/设计意图上。class 面向对象编程 (OOP) 用于定义具有封装、继承、多态特性的复杂对象。强调数据隐藏和行为抽象。这个 struct 的行为与用 class 定义的类完全一样。这是 class 和 struct 最核心、最本质的区别。类型 推荐用途 设计意图。
2025-09-01 08:34:02
314
原创 C++_封装在class和struct的应用
在C++中,class 和 struct 都是用户自定义类型的机制,它们在功能上几乎完全相同,最大的区别在于默认的访问权限和默认的继承权限。你完全可以像使用 class 一样,在 struct 中使用 private 和 public 关键字。传统用途:struct 通常用于表示纯数据结构(Plain Old Data, POD),即只包含数据成员,不包含复杂的行为或需要隐藏的状态。在这个例子中,BankAccount 结构体实现了完全的封装,与使用 class 定义没有区别。核心区别:默认访问权限。
2025-09-01 08:23:00
242
原创 C++_封装
C++的封装是面向对象编程(OOP)的三大核心特性之一(另外两个是继承和多态)。它是一种将数据(属性)和操作数据的方法(行为)捆绑在一起,并对外部隐藏内部实现细节的机制。总而言之,C++的封装通过访问控制,将对象的实现细节与使用者隔离,提高了程序的安全性、可维护性和可重用性。它是构建健壮、可靠软件系统的重要基础。简单来说,封装就是“包装”和“隐藏”。
2025-09-01 08:15:33
168
原创 C++_多态_静态多态、运行多态和模板多态
在C++中,函数多态通常指的是通过不同机制实现“同一函数名,多种形态”的行为。它主要分为两种形式:编译时多态(静态多态)——函数重载(Function Overloading),运行时多态(动态多态)——虚函数(Virtual Functions)。在C++中,函数多态通常指的是通过不同机制实现“同一函数名,多种形态”的行为。编译时多态(静态多态)——函数重载(Function Overloading)运行时多态(动态多态)——虚函数(Virtual Functions)
2025-08-30 09:00:01
216
原创 C++_多态和虚构
在C++的类继承中,多态(Polymorphism) 和 虚析构函数(Virtual Destructor) 是两个紧密相关且非常重要的概念,它们共同确保了面向对象编程中动态行为的正确性和资源的安全释放。当你通过基类指针删除一个派生类对象时,如果基类的析构函数不是虚的,那么只有基类的析构函数会被调用,派生类的析构函数不会被调用,这会导致资源泄漏(如内存、文件句柄等未正确释放)。当通过基类指针或引用调用虚函数时,会根据实际对象的类型来决定调用哪个版本的函数,这就是动态绑定(Dynamic Binding)。
2025-08-30 08:41:40
254
原创 维护_设置linux的systemctl的service的配置
✅ 正确的 bringup.sh 写法(适用于 root 用户 + systemd)bash深色版本/bin/bash。
2025-08-29 08:58:50
604
原创 git_maintainer(维护者)、developer(开发者)和 instance admin(实例管理员)的区别和联系
maintainer(维护者)、developer(开发者)和 instance admin(实例管理员)这三个角色在软件开发和运维中密切相关,但职责和关注点有显著区别。一个 maintainer 维护的软件,可能被多个 instance admin 部署在不同的实例中(如生产环境、测试环境、客户环境)。类比:一栋建成大楼的物业管理员/运维工程师,负责大楼的日常运行(水电、安保、电梯维护),确保住户(用户)能正常使用,但不参与建筑设计或施工。工作阶段:贯穿项目的整个生命周期(开发、发布、维护、迭代)。
2025-08-28 10:47:35
492
原创 python_编程常见错误
在Python编程中,尽管语言设计相对简洁易懂,但初学者乃至有一定经验的开发者仍可能遇到一些常见的错误或陷阱。with open(‘file.txt’) as f: # 默认编码依赖系统。注意:Python 3.3+ 支持隐式命名空间包,但显式创建更清晰。原因:默认参数在函数定义时只被评估一次,后续调用共享同一个列表。原因:i 是后期绑定,所有 lambda 共享最终的 i=2。lambda 函数在循环中的绑定问题。忽略编码问题(尤其在文件操作)is 与 == 混用。.py 与包导入问题。
2025-08-25 10:00:37
344
原创 python_C++_中类的继承和对象的引用的区别
Python 和 C++ 中的类继承和引用机制有相似之处,但也存在显著差异。继承类型控制 显式指定 public、protected、private 继承 默认是“public”继承,无语法控制。如果你是从 C++ 转向 Python,理解“一切皆对象,变量是引用”这一点是掌握 Python 面向对象的关键。Python 所有传递 传递对象引用(不可变对象看似值传递,可变对象可被修改)对象传递 可值传、引用传、指针传 一律传对象引用(语义上)引用概念 变量别名,不可变绑定 所有变量都是对象引用。
2025-08-22 08:51:28
333
原创 系统集成_R6S的ARM板如何重新linux安装系统和制作linux系统镜像
在Raspberry Pi 6S(或任何其他型号的Raspberry Pi)上重新安装Linux系统并制作系统镜像,你可以按照以下步骤操作。这个过程大致分为准备阶段、安装操作系统、配置系统和制作系统镜像。注意:确保/dev/sdX是正确的设备名,并且new_image.img是你希望保存的镜像文件名。以上步骤应该可以帮助你在Raspberry Pi上重新安装Linux系统并制作系统镜像。验证镜像:使用md5sum或sha256sum验证镜像的完整性。安装额外软件:根据需要安装额外的软件包。
2025-08-22 08:49:02
203
原创 R6S的ARM板如何重新linux安装系统和制作linux系统镜像
在Raspberry Pi 6S(或任何其他型号的Raspberry Pi)上重新安装Linux系统并制作系统镜像,你可以按照以下步骤操作。这个过程大致分为准备阶段、安装操作系统、配置系统和制作系统镜像。注意:确保/dev/sdX是正确的设备名,并且new_image.img是你希望保存的镜像文件名。以上步骤应该可以帮助你在Raspberry Pi上重新安装Linux系统并制作系统镜像。验证镜像:使用md5sum或sha256sum验证镜像的完整性。安装额外软件:根据需要安装额外的软件包。
2025-08-21 10:47:23
373
原创 算法_旋转变换_轴角表示(Axis-Angle)\固定角(Fixed Angles)和 欧拉角(Euler Angles)
描述三维空间中刚体旋转的三种常见方式:轴角表示(Axis-Angle)、固定角(Fixed Angles) 和 欧拉角(Euler Angles),虽然最终都用于表达同一个旋转操作,但它们的定义方式、几何意义、优缺点和应用场景各不相同。下面详细解释这三种方法的定义、优缺点及对比。❌ 万向锁(Gimbal Lock) ❌ 无 ✅ 有(如 pitch=±90°) ✅ 有(如 pitch=±90°)✅ 插值能力 ⭐⭐⭐⭐☆(可转为四元数做SLERP) ⭐⭐☆☆☆(线性插值不自然) ⭐⭐☆☆☆(易出问题)
2025-08-19 15:22:30
1266
原创 维护_无线路由器的工作模式
它主要功能是将有线网络信号转换为无线信号,为无线设备(如手机、笔记本电脑)提供 Wi-Fi 接入服务。客户端模式下,路由器本身作为一个“无线客户端”去连接另一个无线网络(就像手机连接 Wi-Fi 一样),然后通过有线口为其他设备提供网络。❌ 缺点:如果多个路由器都用 Router 模式串联,容易造成“双重 NAT”,影响网络性能和某些应用(如游戏、视频通话)。❌ 缺点:仅限有线设备使用,无线设备无法连接此路由器(除非支持混合模式)。✅ 优点:简化网络结构,统一管理,无缝漫游(配合支持的设备)。
2025-08-14 11:47:57
613
原创 运维_ssh密钥添加到远端
要避免在每次 git pull(或 git push)时都输入用户名和密码,你可以通过配置 Git 使用 SSH 密钥认证来实现。SSH 密钥认证是更安全且免密码的方案。✅ 步骤 2:将公钥添加到 Git 服务器(如 GitHub、GitLab、Gitee 等)✅ 步骤 1:生成 SSH 密钥对(如果还没有)
2025-08-14 09:29:16
295
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅