今天第一次把保时捷卡宴送去车厂做全面保养,总共花了318英镑(其中265英镑是保养费用,另加20%的增值税)。 两三个月前,本来想着在这车做MOT年检的时候一块把保养做了(我一般都这样省事),只不过那天碰巧车厂停电了很久,没有时间做保养,只能先把MOT年检过了。 车厂老板检查后告诉我:前刹车片磨损了80%,后刹车片磨损了85%,估计最多还能再撑几个月,之后就必须更换了。他建议我提前做好准备。 正好我的车前部雷达感应器(Sensor)不知什么时候因为轻微碰撞掉进车体内部了,现在只能临时往那个圆孔里塞些纸巾,避免它一直发出“哔哔”的警告声。 老板说他看得到感应器卡在里面,但手伸不进去,必须把前杠(bumper)拆掉才能修复。这项工作比较复杂,大概要一天时间。他建议我下次更换刹车片时一起处理。 刹车的工作原理 刹车系统的核心原理,是通过刹车片压住刹车盘,产生摩擦力来让车轮减速或停止。 当你踩下刹车踏板时: 刹车油推动刹车卡钳 卡钳把刹车片压在旋转的刹车盘上 摩擦力使车轮变慢,最终停止 这个过程每次都在消耗刹车片的厚度,时间久了自然会磨损。 类比理解 刹车片 = 橡皮擦 刹车盘 = 黑板 每次刹车,就像用橡皮擦黑板,橡皮会慢慢变小,黑板时间久了也会有磨痕。 刹车片和刹车盘都会磨损 虽然刹车盘是金属材质,但长时间使用后也会磨薄或产生沟槽。 刹车片: 材质较软,是主要的耗材 每次踩刹车都会摩擦并消耗厚度 正常寿命为 3 万 ~ …
什么是 C 中的 restrict? restrict 是 C99 引入的指针类型限定符。它告诉编译器,该指针在其生命周期内是访问其所指内存的唯一方式。 这使得编译器可以安全地进行优化,因为它可以假设没有指针别名 —— 即没有其他指针访问相同的内存。 语法示例: void copy(int *restrict dst, const int *restrict src, size_t n); 优点: 启用更激进的编译器优化 提升在循环和内存密集型操作中的性能 明确表达开发者对指针用途的意图 没有使用 restrict 时: …
不知道听谁说的:之后的人工智能会和机器人强烈结合,是下一个十年的技术趋势。 “ROS – 机器人操作系统 机器人操作系统 (ROS) 是一套软件库和工具,可帮助您构建机器人应用程序。从驱动程序到先进的算法,以及强大的开发者工具,ROS 可满足您下一个机器人项目的所有需求。而且它完全开源。” ROS 和 ROS 2 简介 ROS(机器人操作系统) 是一个灵活的机器人软件开发框架。它提供工具、库和约定,用于简化在各种机器人平台上构建复杂且可靠的行为。 ROS 2 是 ROS 的下一代版本,解决了实时性能、安全性和多平台支持等问题。其底层使用 DDS(数据分发服务)实现可扩展且可靠的通信。 可以到官网学习:ros.org ROS 中的核心通信概念 Topics(主题) – 用于节点间异步传输流式数据。 Services(服务) – …
C++ 左值(lvalue)、右值(rvalue)与右值引用(rvalue reference) 理解 C++ 中的左值、右值及其引用形式,是掌握现代 C++(尤其是 C++11 以后的移动语义/move和完美转发/perfect forwarding)必不可少的基础。 📌 什么是左值(lvalue) 左值指的是有名字、可寻址的对象,通常可以出现在赋值语句的左侧。 int x = 10; x = 20; // x 是左值 int* p = &x; // 可以取地址 …
C++ assert 与 static_assert 的区别 C++ 提供了两种机制来验证程序中的假设(断言):assert 和 static_assert。虽然它们看起来类似,但它们在不同的阶段工作,并且用途也不同。 🔍 assert — 运行时检查/断言 assert 用于在程序运行时验证条件是否成立。如果条件为假,程序会打印错误信息并中止运行。 #include <cassert> int divide(int x, int y) { assert(y != 0); // 如果 y …
为什么 auto_ptr 在 C++ 中被弃用 TLDR; 很久之前看到auto_ptr就觉得挺好,和auto一样,反正不用自己管,C++会自动推导智能指针的类型。不过这个关键字已经在C++ 11中被弃用/deprecated。 弃用与移除 std::auto_ptr 在 C++ 11 中被弃用。 在 C++ 17 中被完全移除。 为什么 auto_ptr 被弃用? 它具有不安全的拷贝语义/copy semantics。 拷贝一个 auto_ptr 会转移所有权,并将原指针设为 nullptr。 这种行为很容易引发 bug,尤其是在标准容器或算法中使用时。 …