- 博客(20)
- 收藏
- 关注
原创 [python]@staticmethod
是用于定义独立于类和实例的工具方法的装饰器,适用于逻辑与类无关但需归类组织的场景。若需访问类属性或操作类状态,应优先选择。
2025-04-18 14:00:11
503
原创 [python]sort
是 Python 中高效、灵活的列表排序方法,通过key和reverse参数可应对复杂排序需求。若需更广泛的应用场景(如处理其他可迭代对象),建议结合sorted()函数使用。
2025-04-18 13:47:01
244
原创 SPI通信学习(自用)
SPI(Serial Peripheral Interface)通信协议支持全双工和半双工操作,其模式的选择通常取决于硬件设计和软件配置。
2025-02-27 17:22:13
647
原创 hardware_interface::LoanedCommandInterface 解析
🚀 **如果你正在开发 ROS 2 机器人控制器,理解。对你的硬件控制至关重要!(如电机、电机驱动器等)。
2025-02-13 15:35:38
554
原创 RAII(Resource Acquisition Is Initialization)机制
在 C++98 及之前,动态分配对象需要手动使用。在 C++ 里,我们可以使用 RAII 方式,,C++11 以后我们可以使用。,避免了 C 语言里可能出现的。✅ 当你需要手动管理资源(如。RAII 典型的做法是:使用。RAII,因为 C 没有。
2025-02-13 15:29:10
1283
原创 C++中接口与继承的区别(自我学习用)
(Interface)是面向对象编程(OOP)中的两种不同概念,虽然在 C++ 中没有像 Java 那样的。让我们详细比较它们的区别。,可以重用和扩展父类的功能。继承和接口(纯虚类)使代码更灵活!(Inheritance)和。✅ 在 C++ 中,可以。在 C++ 中,没有。
2025-02-13 11:34:39
1492
原创 什么是右值引用&&
右值引用是 C++11 引入的一种引用类型,用于引用那些没有名字、临时创建的右值对象。总结来说,右值引用是 C++11 为优化内存管理和性能而引入的一项特性,它支持移动语义和完美转发,从而减少了不必要的拷贝操作,提高了程序的整体效率。右值通常代表临时对象或不需要长期保存的值,通过右值引用可以直接操作这些值,而不必像左值引用那样受生命周期的限制。这为资源优化提供了便利。在上面的例子中,MyClass 的移动构造函数就利用了右值引用,它能够接收一个将要销毁的临时对象,并将其资源转移到新创建的对象中。
2025-02-12 16:42:00
140
原创 什么是句柄?
总之,句柄是一种在软件设计中常见的抽象机制,用来隔离和管理复杂的底层资源,提供了一种安全、高效且一致的操作方式,使得应用程序可以方便地访问和操作这些资源,而不需关心其底层的具体实现。通过句柄,程序可以完成对资源的操作,而无需了解资源的具体细节。虽然句柄有时底层可能实现为指针,但句柄通常被视为不透明的数据类型,用户只能通过预定义的 API 操作,而不能直接访问其内部数据结构。句柄在计算机编程中通常指一个抽象的引用或标识符,用于代表和访问系统或应用程序中的某个资源,而不必直接暴露该资源的内部实现细节。
2025-02-12 16:40:41
332
原创 ROS2 生命周期节点
生命周期节点为 ROS2 提供了一种更为规范和可控的节点管理机制,使得系统开发者能够设计出更健壮、灵活和易于维护的分布式机器人软件系统。通过定义明确的状态和转换流程,生命周期节点在初始化、激活、停用、重启以及关闭过程中的行为更加确定,能够处理各类异常情况,最终提高整个系统的可靠性和安全性。生命周期节点(Lifecycle Node)是 ROS2 引入的一种节点管理方式,它为节点提供了一套明确的生命周期状态和状态转换机制,方便开发者对节点进行更加精细的控制和管理。– 节点释放资源,恢复到未配置状态。
2025-02-11 17:40:25
416
原创 git简单使用
因此,在使用这些命令之前,请确保你已经保存好了所有需要的更改,并且明确清楚自己想要清除的修改范围。是一个常用的 Git 命令,用于将本地代码库中的更改推送到远程仓库(通常是名为 “origin” 的远程仓库)的 “master” 分支。这个命令会将远程仓库的地址添加到本地仓库,并指定远程仓库的名称为 “origin”。请注意,如果要推送更改到远程分支,你需要先添加远程分支的名称,然后才能进行推送操作。完成这些步骤后,Git 会将指定的分支克隆到你的本地目录,并建立一个与远程分支同名的本地分支。
2025-01-14 15:22:47
630
原创 理解 C++ 中的 std::chrono::duration
是 C++11 中引入的一个模板类,用于表示时间间隔。类模板表示具有特定刻度周期和计数的时间间隔。每个都是具有不同刻度周期的。Duration 可用于像。
2025-01-13 11:19:30
358
原创 std::this_thread::sleep_for解析
是 C++ 标准库中提供的一个函数,属于 头文件。其作用是让当前线程暂停执行(也就是 "睡眠")一段指定的时间。namespace std { namespace this_thread { template< class Rep, class Period > void sleep_for( const std::chrono::duration<Rep, Period>& rel_time ); }}主
2025-01-10 10:50:41
1856
原创 std::thread:C++标准线程类详解
是 C++11 新增的标准线程类,用来支持多线程编程,是 C++ 的标准库中为线程操作提供的一种高层抽象模型。它允许创建和管理独立的线程,以实现并发程序设计。如果两个线程因互相等待对方的资源而永远无法运行,便会发生死锁。调用类的成员函数时要配合类对象使用,并注意引用成员函数时指出指针(,可以创建额外的线程,让某些任务并发执行。对象关联一个子线程,子线程与主线程并发运行。当子线程设置为脱离模式时,它独立于主线程运行。在 C++ 中,每个程序的执行起点就是。(未同步)问题,需通过锁(如。或 detach()
2025-01-09 11:49:17
922
原创 shared_ptr访问对象和指针区别
是一个封装了指针的智能指针,因此,它本质上也是一个指针。为了访问其所管理的对象的成员,你需要使用。也能访问成员,但这是一种较繁琐的方式,且容易出错。// 获取 shared_ptr 指向的对象,并访问其成员。,因为它更符合智能指针的设计目的,也更简洁优雅。// 使用 -> 是正确的。// 使用 . 是错误的。
2025-01-03 23:17:33
247
原创 ROS2中机械臂FollowJointTrajectory详解
trajectory_msgs/JointTrajectory trajectory :这里面传入了机器人的运行轨迹,包含了机器人各关节运行的位置、速度、加速度、运行时间等等。这几个都是时间和目标的容忍度。如果发送到服务端发现没法在规定时间内运行到响应位置,就会回传拒绝的请求。
2025-01-03 18:32:51
1414
原创 AGV两种驱动方式对比-(差速驱动和麦轮驱动)
但有利也有弊,首先相较于传统的包胶轮,复杂的结构自然价格更为昂贵,其对使用环境也更为苛刻,路面必须平整,使用寿命、载重以及运行速度也处于劣势,综合来说应用成本较高,性价比略低。驱动轮与电机减速器输出轴直连,辅以轴承座等部件减轻输出轴的受力,动力输出上更平顺,速度上相比于自由轴的更有优势,但同样的其转弯半径要比自由轴的更大,在曲线过弯的灵活性能力上要打上折扣。这种结构的AGV受益于驱动轮的自由度高,转弯半径小,运动时更加灵活,尤其体现在曲线轨迹的路线上,一般牵引式AGV应用较多。
2024-09-24 10:54:59
3595
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人