- 博客(150)
- 收藏
- 关注
原创 启用 colcon的命令自动补全功能,适用于 bash终端
是 ROS 2(Robot Operating System 2)中常用的构建工具,而 提供了 shell 命令补全(autocomplete)功能。 这条命令会加载 的自动补全脚本,使得在终端输入 命令时,可以使用 Tab 键 自动补全子命令和参数 (双击Tab键),例如:可能会列出 、、 等子命令。什么时候需要执行这条命令?如果 的自动补全功能没有生效,你可以手动执行这条命令。你可以把这行指令添加到 或 ,让其在每次打开终端时自动加载:如果你使用的是 ,可能需要额外配置 ,
2025-03-17 11:31:31
425
原创 `file(GLOB ...)`动态地扫描并收集项目中指定目录下的文件
是 CMake 的一个命令,用于在构建过程中扫描指定目录中的文件,并将符合模式的文件路径存储到变量中。该命令可以用来收集文件,以便在构建过程中使用。
2025-02-17 10:04:11
571
原创 `fi` 是 Bash 脚本中用来结束 `if` 条件语句块的关键字
fi是 Bash 脚本中用来结束if条件语句块的关键字。它的作用类似于其他编程语言中的,但在 Bash 中特有,用于标识条件语句的结束。
2025-02-16 20:50:03
402
原创 bash脚本case语句在每个选项下执行多个命令
每个选项后可以有多个命令,命令之间可以通过换行或分号来分隔。确保每个选项块的末尾都有;;,表示该选项的命令执行完毕。这样,您可以在每个选项下执行多个操作,而case语句将按顺序执行每个命令。
2025-02-16 18:57:54
271
原创 `std::make_shared` 无法直接用于单例模式,因为它需要访问构造函数,而构造函数通常是私有的
在创建对象时会调用构造函数,而在单例模式下,构造函数通常是私有的,因此不能直接通过来创建对象。
2025-01-23 11:11:44
954
原创 Autodl转发端口,在本地机器上运行Autodl服务器中的ipynb文件
一旦 SSH 隧道建立完成,在本地浏览器中访问访问 Jupyter Notebook。输入服务器示例的SSH指令和密码,将远程的6006端口代理到本地。在服务器终端,激活conda虚拟环境。
2025-01-15 15:10:55
835
原创 【CoppeliaSim】`toppra`与`numpy` 2.2.1不兼容
从你的操作日志来看,问题出现在安装toppra的过程中。虽然你明确安装了numpy
2025-01-05 16:24:05
348
原创 【DQ】【CoppeliaSim 】Homework 与静态世界进行交互,读取位姿,发送命令
【代码】【DQ】【CoppeliaSim 】Homework 与静态世界进行交互,读取位姿,发送命令。
2024-12-18 10:55:01
229
原创 【Homework】【8】Learning resources for DQ Robotics in MATLAB
创建一个名为“VS050RobotDH”的类,该类代表Denso VS050机器人,其DH参数如下表所示,并且完全由旋转关节组成。(请记住第6课的内容)θdaα−π2π2π−2π−2π2ππ2π:在机器人上沿最后一个关节的z轴附加一个20cm长的轴。
2024-12-06 21:16:22
902
原创 【自适应和反应式机器人控制】编程练习 1.1:计算最优轨迹 + 编程练习 1.3:基于三阶多项式的闭式时变轨迹发生器
此练习的目的是让读者熟悉应用于机械臂运动的基本优化方法。打开代码文件,该代码生成一个四关节机械臂的绘图。编辑代码以完成以下任务:编写理论练习中冗余机械臂的优化问题,该机械臂在三维空间中运动,因此有一个三维(3D)吸引点。假设关节是依次连接的。尝试将目标位置移动到空间中的不同位置,并比较三个优化的轨迹解。你能找到一个使(b)和(c)的解相同的配置吗?Tf。
2024-11-25 21:02:51
1286
原创 【自适应和反应式机器人控制】理论练习 1.1:二连杆机械臂在X方向的末端执行器位置
通过上述方法,可以系统地优化二维两关节机器人臂的运动轨迹,确保在满足物理约束的同时,实现时间最短、笛卡尔空间路径最短或关节空间路径最短的目标。具体实现时,可根据需求选择合适的优化策略和数值方法,以求得最优解。
2024-11-25 20:59:23
842
原创 【2024 Optimal Control 16-745】【Lecture4】equality-constraints.ipynb功能分析
代码实现了一个二次优化问题的可视化解法,包括目标函数、约束以及优化路径。提供了两种优化方法:牛顿法和高斯-牛顿法,用于对比效果。
2024-11-24 20:23:50
794
原创 【2024 Optimal Control 16-745】Julia语法
操作符使得赋值操作可以应用到整个数组或容器的每个元素,而不仅仅是简单的元素赋值。.=用于广播赋值,使得多个值可以逐元素地赋给目标数组或集合。这种广播机制使得在 Julia 中处理数组和矩阵时更加简洁高效。匿名函数将状态变量xxx映射为通过 RK4 方法计算得到的下一个状态。它的主要作用是为提供输入-输出映射关系,以计算状态更新过程的雅可比矩阵。
2024-11-24 19:30:20
723
原创 【2024 Optimal Control and Reinforcement Learning 16-745】【Lecture 4】优化(中)——线搜索(Armijo准则)、约束最小化
xxx即使∇2f≥0∇2f≥0,仍可能需要对∂2L∂x2∂x2∂2L进行正则化 (May still need to regularize∂2L∂x2∂x2∂2Leven if∇2f≥0∇2f≥0高斯-牛顿法在实践中被广泛使用 (Gauss-Newton is often used in practice)。不等式约束 (Inequality Constraints)
2024-11-24 16:51:20
854
原创 【DQ Robotics】二次规划控制
二次规划 (Quadratic Programming)我们将讨论的第二种优化问题称为二次规划(简称 QP)。QP 是一种线性约束的二次优化问题,其数学形式如下:u∈argminq˙F(q˙)u \in \text{arg}\min_{\dot{q}} \mathcal{F}(\dot{q})u∈argq˙minF(q˙)受限于:Wq˙⪯wW\dot{q} \preceq wWq˙⪯w其中,W∈Rn×pW \in \mathbb{R}^{n \times p}W∈Rn×p 和 w
2024-11-22 20:37:08
1120
原创 【2024 Optimal Control 16-745】【Lecture 3 + Lecture4】minimization.ipynb功能分析
【代码】【2024 Optimal Control 16-745】【Lecture 3 + Lecture4】minimization.ipynb功能分析。
2024-11-22 15:49:03
950
原创 【2024 Optimal Control 16-745】【Lecture 3】root-finding.ipynb功能分析
【代码】【2024 Optimal Control 16-745】【Lecture 3】root-finding.ipynb功能分析。
2024-11-22 11:42:10
360
原创 【2024 Optimal Control and Reinforcement Learning 16-745】【Lecture 3】优化(上)——导数符号、寻根、牛顿法、正则化、最小化
B站-西格螺丝-「精校熟肉」Optimal Control-最优控制(CMU 16-745) 2024-L3-优化(上)Lecture3讲义链接Last Time:上次内容:Today:本次内容:一些记号:This is because ∂f∂x\frac{\partial f}{\partial x}∂x∂f is the linear operator mapping Δx\Delta xΔx into Δf\Delta fΔf:f(x+Δx)≈f(x)+∂f∂xΔx f(x + \Delta
2024-11-22 10:14:45
648
原创 【2024 Optimal Control and Reinforcement Learning 16-745】【Lecture 2】动力学离散化与稳定性
线性近似是一种简化工具,但在非线性系统中会引入偏差,导致状态预测出现超调。使用较小的时间步长(更精确的近似)或更高阶的方法可以减少这种误差。系统的稳定性与离散时间矩阵AdA_dAd的特征值有关。当所有特征值的模小于 1 时,系统稳定。欧拉法将系统线性化,并用时间步长hhh调整矩阵AdA_dAd。当hhh变化时,AdA_dAd的特征值从单位圆外逐渐靠近单位圆。仅当h→0h \to 0h→0时,系统稳定。离散化常微分方程(ODEs)时要小心。
2024-11-21 11:42:17
872
原创 【2024 Optimal Control 16-745】【Lecture 2】integrators.ipynb功能分析
l = 1.0g = 9.81θ = x[1] # 摆动角度 θθ̇ = x[2] # 摆动角速度 θ̇θ̈ = -(g / l) * sin(θ) # 根据摆动力学方程,计算角加速度 θ̈return [θ̇;θ̈] # 返回角速度和角加速度end功能:模拟单摆的动力学:输入x是状态向量[θ, θ̇],即当前角度和角速度。计算结果是新的状态向量[θ̇, θ̈],即角速度和角加速度。t = Array(range(0, Tf, step=h)) # 定义时间步长数组 t。
2024-11-20 20:53:28
1197
原创 【2024 Optimal Control 16-745】Ubuntu22.04 安装Julia
Julia是一种高性能的动态编程语言,特别适用于数值计算、科学计算、数据分析、机器学习和其他技术领域。它于2012年首次发布,具有简洁、易学的语法,并结合了与 C 语言、Fortran 和 Python 等语言相似的高效性。Julia 的设计理念是高性能和易用性的平衡,旨在突破传统编程语言的限制。Julia 作为一种现代化的编程语言,结合了高性能和易用性的特点,特别适用于科学计算和数值分析。它的多重派发机制、即时编译、动态类型和并行计算。
2024-11-20 20:28:37
995
原创 【2024 Optimal Control and Reinforcement Learning 16-745】【Lecture 1】 Continuous-Time Dynamics 连续时间动力学
《Optimal Control and Reinforcement Learning》16-745,Spring 2024
2024-11-19 21:45:16
997
原创 【Homework】【7】Learning resources for DQ Robotics in MATLAB
AAA的伪逆矩阵A†A^\daggerA†A†VΣ†UTA†VΣ†UT其中Σ†Σ†是Σ\SigmaΣΣ†Σm−10000 & 0Σ†Σm−1000其中Σm−1Σm−1是Σ\SigmaΣ中m×mm \times mm×m非零子矩阵的逆。
2024-11-19 16:24:02
1129
原创 【预测控制】【ROS Noetic + CoppeliaSim 】双臂抓取+静态/动态避障
在 Ubuntu 系统上安装和运行一个预测双臂运动规划框架(Predictive Dual-Arm Reactive Motion Planning Framework)所需的环境、步骤及相关信息。
2024-11-18 10:32:09
1229
原创 【DQ Robotics】基于SVD的全秩矩阵逆
A=UΣVTA = U \Sigma V^TA=UΣVT奇异值分解(SVD)是一种重要的矩阵分解方法,用于将一个矩阵分解为三个部分:一个正交矩阵 UUU、一个对角矩阵 Σ\SigmaΣ(包含矩阵的奇异值)和另一个正交矩阵 VVV。这种分解具有许多应用,如数据降维、矩阵逆计算和信号处理等。正交矩阵 UUU 和 VVV:对角矩阵 Σ\SigmaΣ:满秩矩阵的性质:这种奇异值分解可以帮助我们分析矩阵的结构,特别是在矩阵可能是奇异或非方形的情况下,SVD 提供了计算伪逆和解决不适定问题的一种方法。这段文字解释了
2024-11-15 19:43:42
970
原创 【Homework】【6】Learning resources for DQ Robotics in MATLAB
方法,可以接受所需的自由度数量并返回相应的 DQ_SerialManipulatorDH 实例。该类用于创建任意自由度的平面机器人,所有连杆长度设为单位长度,并包含一个。
2024-11-15 17:19:44
450
原创 【Homework】【5】Learning resources for DQ Robotics in MATLAB
表示一个 2 自由度平面机器人。该类包含构造函数、计算正向运动学模型的函数、计算平移雅可比矩阵的函数,以及在二维空间中绘制机器人的函数。可视化。
2024-11-11 19:42:18
407
原创 MATLAB 在数组的元素后面使用百分号 `%` 添加注释时会将其误认为是行分隔符,导致数组维度不一致
该警告提示 MATLAB 在数组的元素后面使用百分号添加注释时会将其误认为是行分隔符,导致数组维度不一致。;...
2024-11-07 18:35:44
510
原创 普吕克线( Plücker 线)
在 Plücker 坐标表示中,一条直线l1l1l1ϵm1l1m1m1pl×l1pl×。
2024-11-07 11:23:12
944
原创 【Homework】【1--4】Learning resources for DQ Robotics in MATLAB
也就是说,先进行旋转然后平移,与先平移然后旋转,通常会得到不同的结果。因为在三维空间中,旋转会改变坐标系的方向,进而影响随后的平移方向。不同的原因在于旋转和平移的顺序影响了最终的姿态变换结果。的范数是其实部和虚部平方和的平方根。只有在特定情况下会得到相同的结果。写成实部和虚部的形式,然后计算它们的平方和。单位四元数的定义是具有单位范数的四元数。因此,每个单位四元数确实具有单位范数。:四元数范数的通用形式是什么?:四元数乘法的通用形式是什么?:证明每个单位四元数。为了计算四元数的范数。
2024-11-06 16:02:26
1266
原创 对偶数(Dual Numbers)的性质
幂零性是一种代数性质,使得在多次自乘后得到零。在对偶数中,对偶数单位ϵ\epsilonϵ的幂零性ϵ20ϵ20带来了计算的简化。这一性质在代数和应用数学的多个领域都有重要的应用。PdP(d)Pd提取的是不含对偶数单位ϵ\epsilonϵ的部分,即主部分。DdD(d)Dd提取的是包含对偶数单位ϵ\epsilonϵ的部分的系数,即双重部分。
2024-11-05 20:41:39
696
原创 四元数是复数在四维空间的扩展,它包含一个实部和三个不同的虚数单位。
每个四元数都是一个双四元数,但并非所有双四元数都是四元数。请参考 [1] 的第 2.2 节,尤其是方程 (2.2.1) 后的解释。四元数是复数在四维空间的扩展,它包含一个实部和三个不同的虚数单位。四元数被广泛应用于三维空间中的旋转计算,比如计算物体的旋转和方向,这使它在计算机图形学、物理模拟和机器人学等领域非常有用。我在该理论领域有超过 15 年的经验,相信如果你现在没有打好基础,以后会遇到很多会让你吃苦的知识漏洞。这意味着复数可以看作是四元数的一种特殊情况,当。为零时,四元数就退化为复数。
2024-11-05 11:35:35
678
原创 【libGL error】Autodl云服务器配置ACT的conda虚拟环境生成训练数据时,遇到了libGL相关错误,涉及swrast_dri.so
Autodl云服务器安装的是Miniconda3基础镜像,框架版本conda3,python版本3.10(Ubuntu22.04),Cuda版本11.8。这样可以确保你在 Conda 环境中获得合适的 GCC 版本,用于编译 C/C++ 程序或安装需要编译的其他软件包。这一步是为了确认当前库的C++ ABI版本号,与其他依赖库的ABI兼容性。环境中的库,避免不同版本之间的兼容性问题。版本引起的兼容问题,尤其在使用一些依赖C++标准库的包时效果显著。(将anaconda3库文件路径添加到系统的库文件路径中)
2024-10-29 15:30:24
1307
原创 vi中执行打开、编辑、保存并退出的流程
在大多数现代系统中,vim常常取代vi作为默认编辑器。如果仅用于简单文本编辑,vi完全够用;而如果需要更强大的文本编辑功能,尤其是在代码开发中,vim更为推荐。vi。
2024-10-29 11:26:39
2217
原创 pip install -e .将正在开发的python包安装到虚拟环境中,以便测试和调试。 如果该包有依赖项,pip会自动安装依赖项
的核心优势在于简化了开发过程。它允许你在项目目录中随意编辑代码,同时所有改动会自动反映到安装环境中,非常适合开发周期中频繁修改代码的场景。
2024-10-29 11:18:38
1065
原创 分析连续系统离散化后系统的可控性
分析一个离散时间系统的可控性。x˙AxBuxk1GxkHuk其中,离散化后的系统矩阵G和H可以通过如下方式获得(假设采样时间为TsGeATsH∫0TseAτdτB。
2024-10-18 11:16:17
949
原创 【scene_manager_msgs】ROS2 自定义消息、服务的包
action动作包(Action Package)通常会定义.action文件,这些文件用于定义长时间运行的任务,通常需要反馈机制。动作在ROS 2中可以使用或库进行操作。如果这个包是一个动作包,你的文件中应该有对.action不是动作包:由于没有定义动作文件(.action),这个包目前是一个消息和服务的包,而不是动作包。如何添加动作:如果你希望将其扩展为一个动作包,你需要定义.action文件,并在中增加动作生成的配置。在将ROS 1软件包迁移到ROS 2时,消息(.msg)和服务(.srv。
2024-10-16 11:09:14
1668
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人