- 博客(473)
- 收藏
- 关注
原创 ros2--gazebo--插件
gazebo插件的本质就是一个.so动态库文件,这个库文件中提供一些接口,这些接口实现了特定的功能,使用这些库提供的接口,就可以实现相应的功能进行仿真。差速驱动(Differential Drive)是移动机器人中最常见的驱动方式之一,通过两个独立驱动的轮子(通常是左右轮)实现机器人的移动和转向。其核心原理是通过控制两个轮子的速度差来改变机器人的运动方向。两个驱动轮:左右各一个,由独立的电机或执行器控制。一个或多个从动轮(如万向轮):用于支撑和平衡(例如机器人的前轮或后轮)。控制系统:根据指令(如 )计算左
2025-04-03 10:39:56
470
原创 ros2--urdf--ray--激光雷达传感器
的位姿(X/Y/Z/roll/pitch/yaw),此处 Z 轴偏移 0.075 米,通常用于调整激光平面高度。噪声标准差为 0.01 米(1 cm),表示测距值会在真实值附近 ±1 cm 波动。类似于“将摄像头安装到机器人头部”,头部连杆本身不是摄像头,但摄像头会随头部运动。每圈扫描的射线数量(360 条射线,对应 1° 角分辨率)。在 Gazebo 的 3D 界面中显示激光射线(调试用)。的射线类型传感器(激光雷达属于射线传感器)。最小检测距离(0.12 米,避免近处噪声)。
2025-04-03 10:05:47
260
原创 ros2--urdf--IMU
在 Gazebo 的 3D 界面中显示传感器模型(可视化检测方向)。:以传感器初始化时的方向为参考坐标系(消除初始倾斜影响)。数据发布频率为 100 Hz(每秒更新 100 次)。的 IMU 类型传感器,用于测量角速度和线加速度。:最常用的噪声模型,符合正态分布(钟形曲线)。:模拟传感器随机噪声(如 IMU、激光雷达)。的连杆上,确保传感器位姿与物理模型同步。:特殊噪声模型(如脉冲噪声、非线性噪声)。:IMU 数据相对于世界坐标系(默认)。:用户自定义噪声分布(需通过插件实现)。:禁用噪声,输出理想数据。
2025-04-02 21:27:32
288
原创 ros2--功能包
ros2 pkg create --build-type ament_cmake 功能包的名称ros2 pkg create 功能包名称 --build-type ament_cmake --dependencies rclcpp。
2025-03-29 11:05:28
111
原创 linux--卡顿
(0是最大限度使用物理内存),所以数值越低,速度理论来说是越快。卡顿可能可以通过调整swappiness来解决。这时应该会出现一个文档,在文档添加一行。Ctrl+Alt+T 打开终端,输入。接下来我们来永久改这个数值。然后,点保存,关闭文档。这个表示的是使用的物理。看看是不是数值修改了。
2025-02-27 13:02:53
226
原创 ros2--优缺点--ros1和ros2
1,提高软件复用率:ros的核心目标是提高机器人的软件服用率,就是那些已经开发好的机器人软件功能包,当其他机器人需要这样的功能时,可以直接利用已有的功能包,而没有必要再去重复造轮子。这样既可以提高机器人产品开发的效率,也加速了机器人技术的快速发展。汽车制造商不可能自己生产所有零部件。2,全球化的社区:ros这种开源,共享的开发模式可以集合全人类的智慧来推进机器人的智能化发展,这些智慧的结晶会以应用案例的形式在社区中沉淀下来。
2025-02-24 10:27:06
437
原创 c++--构造函数+析构函数
不能:原因:没有this指针,当创建一个对象时,系统会为该对象分配内存空间,并调用构造函数,将这块内存作为this的值传递给构造函数来初始化这块内存,静态函数没有this指针,无法完成对象初始化;
2025-02-17 21:51:03
191
原创 class和struct的区别
class适合需要封装、继承和多态的场景,struct一般用于数据集合。class默认private,struct默认public;class默认private,struct默认public;3,class可以作为模板参数类型,struct不能;
2025-02-17 21:30:37
177
原创 c++--类继承
对于具有继承关系的类,在派生类进行构建的时候,必然先执行子类的构造函数,在派生类内部先构造一个子对象,当外部访问派生类从子类继承的成员变量和成员函数的时候,编译器会间接地访问派生类中的子对象,再从子对象访问子对象中派生类可以访问的成员。如果A中有一个public int a,C继承A,那么a在C中是以什么方式存在,是直接在C的内存中创建一个a,还是在C中构建一个子对象A,访问C中的a的时候,是进入到子对象A中访问子对象的a。// 访问的是 A 子对象中的 a。的内存布局中会包含一个。是这个子对象的成员。
2025-02-16 11:49:52
544
原创 c++--define和const
不受C++作用域规则的限制。这意味着一旦定义了一个宏,它将从定义点开始对整个文件有效,直到遇到相应的。define在预处理阶段被编译器处理,进行替换,const在编译阶段由编译器处理。执行的是简单的文本替换,因此没有类型安全的概念。这可能导致一些不易察觉的错误。const用于定义常量,变量是受c++语法限制作用域的。定义的常量具有明确的类型,因此编译器可以在编译期间进行类型检查。是一个预处理器指令,
2025-02-15 14:52:46
172
原创 c++--声明和定义
定义函数的具体实现,为变量或者函数分配内存空间。-- 实际建成的房子。分配内存。特性声明定义目的告诉编译器变量或函数的存在及类型分配存储空间/提供函数实现存储分配不分配存储空间分配存储空间多重出现可以多次声明在整个程序中只能定义一次关键字示例extern(对于变量)实际类型的声明(如int a;
2025-02-15 13:56:02
218
原创 python---shutil
shutil是 Python 的标准库之一,提供了许多用于文件和目录的高级操作函数。它构建在os模块之上,简化了许多常见的文件处理任务,如复制、移动、删除文件或目录等。-- python中的文件和目录复制、移动、删除的库。
2025-01-22 11:10:40
379
原创 python-os
是 Python 标准库os模块中的一个函数,用于递归地创建多层目录。它的工作方式类似于 Unix 系统中的mkdir -p命令。
2025-01-16 15:22:45
193
原创 python--import
实际上,在 Python 的术语中,包是一种特殊的模块,它能够包含其他模块或子包,从而允许创建模块的层次结构。还有其他查找路径,比如python的内置模块,PYTHONPATH,但是上面两个路径是先当前目录,再site-packages 目录。的文件(在 Python 3.3 及以上版本中,这个文件可以为空或者不存在,这种情况下称为“命名空间包”),以及一个或多个。from后面可以是python包(含__init__.py的目录),也可以是python模块(python文件)。在 Python 中,
2025-01-16 14:52:10
152
原创 python---包,库,模块
Python 包(Package)是 Python 模块(Module)的一种容器,它允许你将相关的模块组织在一起,并且可以包含子包,形成一个层次化的结构。这种组织方式有助于管理大型项目,使得代码更加模块化、易于维护和可扩展。
2025-01-16 09:37:37
312
原创 python--可变和不可变对象
在 python 中,strings, tuples, 和 numbers 是不可更改的对象,而 list,dict 等则是可以修改的对象。变量赋值后再赋值,这里实际是新生成一个 int 值对象 10,再让 a 指向它,而 5 被丢弃,不是改变 a 的值,相当于新生成了 a。变量赋值后再赋值则是将 list la 的第三个元素值更改,本身la没有动,只是其内部的一部分值被修改了。
2025-01-10 18:18:54
188
原创 python--变量定义的含义
Python 是一种动态类型语言,这意味着你不需要声明变量的类型,解释器会根据赋值自动推断,无论是定义变量还是传递参数。
2025-01-10 15:46:21
181
原创 python--main--入口函数
在 Python 中,main函数并不是像 C 或 C++ 那样强制要求的入口点。Python 程序通常从顶层代码开始执行,即不在任何函数或类定义内的代码。然而,为了使代码更模块化和易于测试,开发者经常使用一个名为main。
2025-01-09 18:06:08
582
原创 cmake--库链接--RPATH--RUNPATH
RPATH 是一种嵌入到二进制文件(可执行文件/库文件)中的路径信息,也就是存在于可执行文件或者库文件中的, 用RPATH(旧)或者RUNPATH(新)参数记录的路径信息, 指示动态链接器在运行时查找共享库的位置。
2025-01-07 19:30:02
443
原创 cmake--链接
符号解析阶段还没有给每一条指令分配虚拟内存地址,符号解析的时候又怎么能去顶外部符号在哪定义呢:使用的是相对偏移量:目标文件中的代码和数据通常是以相对偏移量的形式存在的,而不是绝对地址。这意味着即使在符号解析时还没有确定最终的内存布局,链接器仍然可以根据相对位置来处理符号引用。例如,函数调用可能使用相对于当前指令指针(PC-relative)的偏移量来表示目标地址;变量访问则可能使用相对于某个已知基址(如栈帧指针或全局偏移表 GOT)的偏移量。重定位信息:
2024-12-21 12:38:15
455
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人