自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(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

原创 /joint_states的关节角度保存到成员变量中

查看在话题上发布的消息。

2024-12-04 19:42:54 153

原创 【自适应和反应式机器人控制】编程练习 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∂2L​even 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∈argmin⁡q˙F(q˙)u \in \text{arg}\min_{\dot{q}} \mathcal{F}(\dot{q})u∈argq˙​min​F(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−1​0​00​其中Σ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 坐标表示中,一条直线l​1​l​1​l1​ϵm1​l1​m1​m1​pl​×l1​pl​×。

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

原创 启动任务节点时,传入机械臂参数

先启动move_group节点,后启动任务节点。

2024-10-31 20:30:40 327

原创 【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

原创 云服务器中删除非空目录(包含文件和子目录)rm -rf <directory_name>

在云服务器中删除目录可以使用rm命令。

2024-10-28 19:05:38 419

原创 分析连续系统离散化后系统的可控性

分析一个离散时间系统的可控性。x˙AxBuxk1​Gxk​Huk​其中,离散化后的系统矩阵G和H可以通过如下方式获得(假设采样时间为Ts​GeATs​H∫0Ts​​eAτ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关注的人

提示
确定要删除当前文章?
取消 删除