- 博客(94)
- 收藏
- 关注
原创 算法学习——B样条曲线
B样条曲线的生成依赖于控制点、节点向量和基函数的计算。通过递推公式可以高效地计算基函数,进而生成曲线。C++实现提供了一个简单的框架,可以根据需要进行扩展和优化。
2025-03-04 13:26:13
872
原创 小车模型——麦克纳姆轮
麦克纳姆轮通过辊子的45°倾斜设计实现了全向移动,其运动学模型基于线性分解与矩阵运算,动力学模型则需平衡牵引力与摩擦力。实际应用中需结合参数标定(如轮半径。
2025-03-04 11:23:54
806
原创 小车模型——差速轮运动学、动力学解析
差速轮机器人(如 AGV)通过控制左右轮的转速差实现运动和转向。理解其运动学正解(由轮速求车辆运动)和逆解(由期望运动求轮速)对于机器人的设计和控制至关重要。动力学模型描述了机器人在给定控制输入(如轮速)下的运动状态变化。动力学模型考虑了机器人的质量和惯性,以及轮子与地面之间的摩擦力。运动学逆解是指根据机器人的期望线速度和角速度,计算左右轮的角速度。运动学正解是指根据左右轮的角速度计算机器人整体的线速度和角速度。
2025-03-04 11:16:43
1242
原创 小车模型——阿克曼模型运动学、动力学解析
阿克曼模型是一种经典的车辆运动学模型,通过运动学正解和逆解,可以实现对车辆运动的精确控制。运动学正解用于根据控制输入计算车辆的运动状态,而逆解用于根据期望的运动状态计算所需的控制输入。动力学模型进一步考虑了车辆的动态行为,适用于更复杂的场景。
2025-03-04 11:16:23
1286
原创 小车模型——双差速小车模型
双差速轮模型通过独立控制左右轮的转速,实现了机器人的运动和转向。运动学正解用于根据轮速计算机器人的运动状态,而逆解用于根据期望运动状态计算所需的轮速。动力学模型进一步描述了机器人在给定驱动力和驱动扭矩下的动态行为。这些模型为机器人的设计和控制提供了理论基础。
2025-03-04 11:15:53
870
原创 小车模型——偏心差速轮模型
由于车轮不在车体中心,车辆的实际运动中心会偏离几何中心。这可能导致车辆的动态行为与理想模型略有不同,但上述动力学方程仍然可以用于描述车辆的动态行为。当差速轮不在车体中心时,运动学和动力学模型需要考虑车轮位置对车辆运动的影响。以下是详细的运动学正解、逆解和动力学模型的介绍。由于车轮不在车体中心,车辆的实际运动中心会偏离几何中心,但上述公式仍然适用。即使车轮不在车体中心,上述公式仍然可以用于计算所需的轮速。是指根据车辆的期望线速度和角速度,计算左右轮的角速度。是指根据左右轮的角速度计算车辆的线速度和角速度。
2025-03-04 11:15:36
977
原创 小车模型——双舵轮的状态方程
车体坐标系车体质心为原点O(O)Ox(x)x轴指向前进方向,y(y)y轴垂直向左,构成右手坐标系。舵轮安装位置:舵轮1在ab((a, b))((ab)),舵轮2在−a−b((-a, -b))((−a−b))(典型对角安装时ab(a = b)abL2a22b2L2a22b2。状态变量xy(x, y)xy(全局坐标系)。θ(\theta)θ(相对于全局坐标系x(x)x轴)。控制输入舵轮1线速度v1。
2025-03-04 09:59:48
540
原创 小车模型——双舵轮全向驱动(QUAD)车运动解析
核心价值:双舵轮全向驱动车通过运动分解与合成,实现高灵活性的工业物流与无人驾驶应用。技术趋势强化学习(RL):自适应复杂环境下的参数优化5。数字孪生:通过仿真预验证控制算法,缩短开发周期4。
2025-03-03 17:21:36
887
原创 C++学习之路——const用法
const放在函数参数列表后:表示常量成员函数,不能修改类的成员变量。const放在函数参数列表中:表示常量参数,函数内部不能修改该参数。const放在函数返回值前:表示返回常量值,调用者不能修改返回值。const放在成员变量前:表示常量成员变量,必须在构造函数中初始化且不能被修改。
2025-02-28 14:29:03
261
原创 colcon 编译慢——优化方法
是 ROS 2 中常用的构建工具,但在编译大型项目时可能会变得非常慢。如果不需要某些功能(如文档生成、测试等),可以在 CMake 中禁用它们。中,CMake 是默认的构建系统。CCache 是一个编译缓存工具,可以缓存编译结果,从而加速重复编译。参数指定并行任务数。参数使用符号链接,避免复制文件,从而加快编译速度。CMake 的缓存机制可以加速重复编译。过多的日志输出会拖慢编译速度。参数,仅编译指定的包或依赖包。如果不需要运行测试,可以通过。禁用测试,从而加快编译速度。支持并行编译,可以通过。
2025-02-28 14:26:34
520
原创 win11终端分屏
Windows Terminal是微软官方发布的一个终端程序,比内置的cmd和powershell美观很多,支持多标签和分屏,如下图。取消分屏:Ctrl+Shift+w。左右分屏:Alt+Shift+=上下分屏:Alt+Shift±。
2025-02-28 14:23:50
119
原创 算法学习——D*算法
D* 算法是一种高效的动态路径规划算法,特别适合需要实时调整路径的场景。通过合理设置启发式函数、代价函数和重规划频率,可以显著提高路径规划的效率和适应性。
2025-02-28 14:17:24
1229
原创 算法学习——Hybrid A* 算法
Hybrid A* 算法通过结合 A* 的高效搜索能力和车辆运动学约束,适用于具有运动学约束的路径规划问题。通过合理设置分辨率参数、启发式函数权重和运动学参数,可以优化路径规划的效率和精度。
2025-02-28 14:00:12
777
原创 算法学习——ARA*算法
ARA* 算法通过逐步减小启发函数权重 ( \epsilon ),在有限时间内快速找到次优解,并逐步优化路径。它适用于需要实时路径规划的场景,如智能车辆和机器人导航。通过合理设置启发函数权重和时间限制,ARA* 算法可以在效率和最优性之间取得平衡。
2025-02-28 13:40:12
289
原创 算法学习——A*变种
A* 算法的变种通过调整启发式函数、权重参数或结合其他优化算法,可以在不同的应用场景中提高路径规划的效率和性能。选择合适的变种和参数调节方法,可以显著提升算法在复杂环境中的表现。
2025-02-28 13:20:30
1413
原创 算法学习——A*算法
A* 算法是一种高效的路径规划算法,适用于多种场景,如游戏开发、机器人导航和地图规划。通过合理选择启发式函数和调整参数,可以显著提高算法的性能和效率。
2025-02-28 13:17:08
1151
原创 算法学习——Dijkstra 算法
Dijkstra 算法是一种简单高效的最短路径算法,适用于无负权重边的图。通过合理设置图的结构、权重和约束条件,可以应用于路径规划、网络路由等多种场景。在实际应用中,可以通过调整参数和引入启发式函数进一步优化算法性能。是一种经典的最短路径算法,用于在加权图中找到从起点到其他所有点的最短路径。它基于贪心思想,逐步扩展已知最短路径集合,直到覆盖所有节点。
2025-02-28 13:13:00
1465
原创 算法学习——g2o使用
G2O(General Graph Optimization)是一个基于图优化的库,广泛应用于SLAM(Simultaneous Localization and Mapping)和路径规划等领域。它的核心思想是通过构建图模型,将优化问题转化为顶点(Vertex)和边(Edge)的优化。通过合理定义顶点和边,并选择合适的优化算法,可以高效解决复杂的优化问题。在TEB中,G2O可以用于优化轨迹,确保轨迹的平滑性和安全性。TEB是一种用于轨迹优化的方法,结合了时间弹性带和图优化技术。
2025-02-28 11:12:43
280
原创 算法学习——DWA算法
DWA(Dynamic Window Approach)是一种局部路径规划算法,主要用于动态环境中机器人的避障和路径规划。其核心思想是通过动态窗口法在速度空间中搜索最优的线速度和角速度,以确保机器人在避开障碍物的同时朝着目标前进。通过合理设置参数和结合其他算法,DWA可以有效提升机器人在复杂环境中的导航能力。这些约束条件共同定义了动态窗口的范围,从而确保机器人在安全和高效之间找到平衡。DWA算法广泛应用于自动驾驶汽车、无人机和移动机器人等领域。
2025-02-28 10:57:25
1717
原创 算法学习——TEB算法
TEB 算法通过引入时间信息和弹性带的概念,结合动力学约束和环境约束,生成平滑且可行的路径。其核心在于优化问题的构建和求解,通过合理设置约束条件和调节参数,可以实现高效的局部路径规划。
2025-02-28 10:34:12
1965
原创 TFT-LCD工艺制程
TFT-LCD 的制造工艺涉及多个复杂步骤,包括 TFT 阵列基板制造、彩色滤光片制造、液晶盒组装和模块组装。随着技术的进步,TFT-LCD 在分辨率、能效、视角等方面不断改进,广泛应用于各种显示设备中。
2025-02-27 09:43:00
857
原创 算法学习——Lattice planner算法
Lattice Planner 是一种高效且灵活的轨迹规划算法,适用于复杂环境下的自动驾驶任务。通过合理设置参数和优化算法,可以显著提升其性能。
2025-02-20 14:09:03
1719
原创 Lattice算法原理,实现、参数,调参,优化
Lattice 算法通过状态离散化和图搜索实现高效的运动规划。其核心在于网格分辨率、运动基元、图搜索算法和代价函数的设计。通过合理调参和优化,可以实现高性能的运动规划系统。
2025-02-20 13:56:51
155
原创 模糊控制在运动控制中应用——模糊控制算法原理、公式推导、参数说明、调参方式
模糊控制是一种强大的控制方法,适用于复杂、非线性和不确定性系统的控制。其核心在于模糊化、模糊规则库设计和解模糊化。通过合理调整隶属函数参数和模糊规则库,可以实现高性能的控制系统。
2025-02-20 11:50:16
372
原创 常用的运动控制算法
不同的运动控制算法适用于不同的场景和系统特性。选择合适的控制算法需要考虑系统的动态特性、控制目标、计算资源等因素。线性系统:LQR、PID。非线性系统:滑模控制、反馈线性化、反步控制。复杂系统:MPC、神经网络控制、强化学习控制。鲁棒性要求高:鲁棒控制、滑模控制。周期性任务:迭代学习控制。
2025-02-19 17:56:29
448
原创 LQR算法在运动控制中应用——LQR算法原理以及公式推导,参数说明,调参方式以及代码实现
LQR 是一种经典的最优控制算法,通过设计状态反馈控制器,使系统在满足线性动态方程的同时,最小化二次型代价函数。其核心在于系统建模、代价函数设计和 Riccati 方程求解。调参时需要平衡状态偏差和控制输入代价,同时根据具体应用场景调整权重矩阵。
2025-02-19 17:45:08
1083
原创 mpc算法在运动控制中应用——mpc算法原理、公式推导、参数说明、调参方式
MPC 是一种强大的控制算法,通过预测未来系统行为并求解优化问题来实现控制目标。其核心在于系统建模、目标函数设计和约束处理。调参时需要平衡控制性能和计算复杂度,同时根据具体应用场景调整预测时域、权重矩阵和约束条件。
2025-02-19 17:04:31
1119
原创 数学计算——求点yaw方向的直线是否与多边形相交
通过参数化直线方程和多边形边的直线方程,可以求解交点。代码实现了直线与多边形的交点计算,适用于任意凸多边形或凹多边形。如果直线与多边形相交,返回交点坐标;否则返回无交点。
2025-02-19 13:34:03
980
原创 数学计算——判断点B是是否在点A的后面
点A( A )A的坐标为x1y1((x1y1)),朝向为yaw1。点B( B )B的坐标为x2y2((x2y2)),朝向为yaw2。判断点B( B )B是否在点A( A )A的后面。通过计算点B( B )B相对于点A( A )A的向量与点A( A )A的朝向向量的点积,可以判断点B( B )B是否在点A( A )A的后面。如果点积为负,则点B( B )B在点A( A )A的后面;否则不在。
2025-02-19 13:25:41
839
原创 运动控制——MPC
MPC 是一种强大的运动控制算法,能够处理多目标优化和复杂约束问题。尽管存在计算复杂度和实时性挑战,但通过模型简化、线性化和硬件加速等方法,MPC 在实际应用中表现出色。它在自动驾驶、机器人、无人机等领域具有广泛的应用前景。
2025-02-17 13:33:39
902
原创 C++学习——递归锁(std::recursive_mutex path_mutex_)
是一个递归互斥锁,用于保护共享资源,确保线程安全。它允许同一线程多次加锁,适合递归或嵌套调用的场景。在设计多线程程序时,合理使用互斥锁可以有效避免数据竞争问题。
2025-02-17 11:39:12
326
原创 ROS2学习之路——rviz2 显示polygon
通过 rviz2 使用 visualization_msgs::msg::Marker 或 geometry_msgs::msg::PolygonStamped 来显示多边形。
2025-02-14 16:26:09
200
我电脑的zsh配置,oh my zsh + powerlevel10k + Hack Nerd Font
2024-11-14
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人