自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(66)
  • 收藏
  • 关注

原创 piper+easy_hand+moveit手眼标定

本文总结了机械臂手眼标定过程中的关键问题与解决方案。主要问题包括:1) TF树断裂导致相机与机械臂末端坐标系无法连通;2) east_hand标定程序因自动计算位姿不合理报错;3) MoveIt控制模型与实际机械臂不同步;4) CAN通信模块piper_ros需代码修改适配。作者提出手动控制标定的替代方案,并讨论了手在眼外标定中末端执行器选择(link6与link8)的影响。示意图展示了标定原理及坐标系转换关系,为机械臂视觉标定提供了实践参考。

2025-08-05 11:35:36 392

原创 InstructGPT论文阅读

上面大循环for batch_prompt in prompt_dataset 里嵌套小循环for i in range(epoch),其实是。蒙塔卡洛对策略梯度的近似效率低,也可以在Critic中使用TD算法,对V(s,a)神经网络作更新来预测回报。: 输入prompt是状态,输出预测的token是动作(字典里包含所有token的概率)指导生成EOS特殊标记,或超出对大限制结束。

2025-08-05 11:34:11 257

原创 模仿学习:从行为克隆到diffusion policy

机器人动作生成方法可分为三类:显式策略学习(监督式)、隐式策略学习(基于能量函数)和扩散策略。显式策略直接学习动作映射;隐式策略通过优化能量函数捕捉多模态动作,但训练不稳定;扩散策略通过梯度场优化噪声生成动作,兼具训练稳定性和多模态表达能力。新方法将扩散策略与策略梯度(如DPPO)结合,重点利用模仿学习优化策略,实现了对复杂动作分布的高效学习与微调。

2025-08-05 11:32:11 341

原创 Git核心功能简要学习

git clone 下载,(注意:直接下载压缩包不会维护git init相关信息)git branch -a 查看有那些分支 (不同仓库可能有稳定版本和开发版本)git fetch:从远程仓库下载最新的提交记录和分支信息(但不会自动合并)。git checkout <branch name> 切换到那个分支。

2025-07-21 16:49:34 223

原创 Uniad代码学习

作者自己写了自己Motion模型基类。然后相应的train.py里会读取config文件,初始化权重,然后调用projects\mmdet3d_plugin\uniad\apis\train.py 训练。还有projects\mmdet3d_plugin\uniad\dense_heads\motion_head.py 继承基类。

2025-05-15 16:57:25 905

原创 模仿学习笔记

通过优化方法,求最大化的对数似然,解出w,然后R=w*状态-动作特征 近似奖励函数。

2025-05-15 16:56:28 235

原创 大模型学习

Completion Only 输入通常是一个前缀(Prompt),模型根据前缀生成后续内容。模型只根据当前输入生成文本,不涉及多轮对话或上下文历史。ChatTemplate 是一种用于定义和格式化聊天对话结构的工具或模板,通常用于构建对话式 AI 模型的输入和输出。ChatTempate,Completion Only,NEFTune,SFTTrainer 微调技术。(背景:预训练后的大模型只会根据上文,输出下文,但效果不好,要微调帮他更好理解)我理解就是一种数据格式,标准化了Prompt,和回答,

2025-05-15 16:55:46 230

原创 Transformer的理解

多头自注意力。

2025-05-15 16:55:23 228

原创 ROS2 同一个pkg里定义自定义action、msg报错

主要就是在定义完可执行文件后加入。完整Cmakelists,txt。

2025-02-24 22:13:37 450

原创 强化学习笔记7——DDPG到TD3

相比DDPG 改进其实就是 针对不稳定、高估问题,加了两个策略网络和价值网络。即targetNet 和 mainNet ,和之前DQN的做法很像。前提:基于TD 的方法多少都会有高估问题,即Q值偏大。原因两个:一、TD目标是真实动作的高估。而之前的PPO是输出动作的均值和方差,DQN 等输出每个动作的概率。DDPG 属于AC方法:异策略,适合连续动作空间,因为。

2025-02-16 22:35:22 452 1

原创 Anaconda下载库和 本地下载库 之间关系

我默认使用的是conda解释器,所以pip下载时,所有的东西会下载到Anaconda 的lib\site-packages 目录下。

2025-02-08 10:50:42 236

原创 强化学习笔记6——异同策略、AC、等其他模型总结

Policy Gradient主要缺点:不稳定(坏策略迭代导致越来越坏),都是on-policy的 始终都是一种策略采样和更新效率低。###########################################################################Policy Gradient主要优化目标:(笔记5里有讲)这里对比A3C 改进版的优化目标 ###############################################################

2025-02-07 17:51:14 440

原创 强化学习笔记(5)——TRPO、PPO、梯度正则 再到 SAC

首先理解采样期望的转换经过转换后变成x在q(x)分布下,f(x)*p(x)/q(x) 的期望。

2025-02-03 22:40:13 552

原创 强化学习笔记——4策略迭代、值迭代、TD算法

策略迭代:计算值函数强调是某一策略(VΠk),在某一个具体策略下求出值函数,然后再遍历所有状态的所有动作,然后计算Q值选最优动作为更新的策略。对比两个伪代码发现:值迭代的值函数计算不强调某策略(Vk),因为它遍历所有状态的所有动作策略,然后计算Q值选最优动作为策略。求解上述两种贝尔曼方程有三种方法:DP(有模型),MC(无模型),TD(DP和MC结合)有些改进 蒙特卡洛方法不用走很多个回合计算回报平局值,只一个回合得到回报,然后作为Q。Q4:策略迭代用到了值迭代的结果,是基于值收敛的。

2025-01-31 23:34:35 1238

原创 强化学习笔记(3)——基于值函数的方法和策略梯度方法

策略梯度方法就是通过,不断提升追求最大化价值 Q(s,a)基于值函数求解贝尔曼方程有三种方法:DP(动态规划),MC(蒙特卡洛),TD(时序差分)

2025-01-31 18:51:40 420

原创 强化学习笔记(2)——马尔可夫决策过程MDP+贝尔曼方程

V(s) 是 Q(s,a) 的加权平均。权重是动作的概率,q(s,a)是对这个动作价值的衡量。推导出了Q和V之间关系 , Q(s,a)和V(s’)之间的关系后,就可以带入。第一种是确定性策略:Π(s),给定一个状态就会有一个确定不变的动作。第二种是随即策略:Π(a|s),给定一个状态会有概率产生一个动作。刚刚明确了Q和V之间关系,那Q(s,a)和V(s’)什么关系呢?价值函数V(s) 是 Q(s,a) 的加权平均,即。状态动作价值函数Q(s,a)同理得到 最优贝尔曼方程。价值函数是回报的期望。

2025-01-26 17:39:54 345

原创 复现《RL-frenet-trajectory-planning-in-CARLA》论文代码

这些 Warning 本身不影响运行结果,主要是兼容性或将来弃用提示。如果项目能正常跑并得到期望结果,你可以临时忽略;想让输出“干净”一些,可以通过来屏蔽或降低日志级别。如果对代码长远维护有要求,可以考虑将来用这种更“现代”的组合来规避大部分兼容性问题和繁琐的 Warning。

2025-01-08 12:48:11 808 1

原创 MetaDrive学习(能干什么,怎么干)+RLlib+Ray学习

主要讲了 详细见文档。

2025-01-02 21:15:13 1513

原创 AutoGluon初学使用和遇见问题

若不自己预处理数据,他也会自己识别数据类型然后处理,但可能效果不好。eg:一列数据udmap:{unknown},{“key3”:“65765”},{“key3”:“52841”,“key1”:“1117”,“key4”:“12”,“key2”:“83”,“key5”:“5”} 很复杂也没说啥意思,autogluon直接当成类别处理了。

2024-12-14 11:16:56 947

原创 动手学习深度学习打卡记录:一基础部分

通过看李沐视频,和其他博客,记录自己学习深度学习时候认为的重点

2024-12-13 09:35:45 1114

原创 Uniad复现学习:二(未完待续)

2:全部按照作者的版本配置,版本没出错,但是有其他的小错误,比如运行程序时报错说找不到cuda。安装CUDA时中断说查看日志,其实是GCC版本太高,装了低版本的系统识别不到。1:是没有按照作者CUDA 版本安装,按照自己的来,导致Pytorch版本也不一样,导致最后安装。另外至今没搞懂优云智算的数据盘是链接在自己电脑的什么地方,数据很大在本地上传也费劲。类似于cp命令,可以在本地和本地、本地和服务器 之间快速复制数据,很好用。

2024-12-05 23:36:53 703

原创 Uniad复现学习

复现Uniad的心得,和配置。

2024-12-02 22:03:40 1330

原创 Gazebo,map中坐标系和Odom坐标系关系

有一颗tf树,odom节点下有多个子坐标系,那我rostopic echo /odom话题,出现的位置是他们相对于odom的么?是的,当你使用rostopic echo /odom命令来查看/odom话题时,显示的位置和姿态数据是相对于odom坐标系的。这里指定robotBaseFrame是叫base_footprint的link,输入是相对于odom坐标系的。机器人模型里添加的Gazebo控件,指定了base_footprint输出的坐标是相对于谁的。,即车辆在地图中跑,输出位姿是map坐标系而言的。

2024-11-26 10:59:23 719

原创 C++ 学习:一个类里的成员变量包含另一个类里的对象,怎么初始化

注意:若m_cData改称指针, Data *m_cData;则和上面不一样,不会调用Data构造函数。因为此时指针还没分配内存,要在TData构造函数里new Data()后会调用。和Data m_cData;不同,Data m_cData在定义后就分配了内存,而Data。在TData里定义了Data对象m_cData. 此时对照结果发现,

2024-11-26 10:55:49 216

原创 深度强化学习梳理和理解

RL有两种确定最优行为的主要方法:基于价值的方法和基于策略的方法。在 深度Q网络(DQN)中,Q值(或称为 Q-function)是指在某一状态下采取某一动作所能获得的DQN学的就是期望的、最大的,累计回报。Q函数是由神经网络表示的。

2024-11-26 10:55:06 1017

原创 路径平滑、轨迹优化、二次规划、五次多项式学习

如 Apollo之前版本,动态规划+二次规划,动态规划中五次多项式连接相邻两个采样点,计算cost,动态规划搜索出一条凸空间的路后,再二次规划约束优化路。插值就是知道了起点,终点等信息,解出多项式函数后,可以采样定义域内的自变量来获得起点,终点直接其他的信息。常用于增加路径点密度。三次多项式是输入起点,终点位置和速度求解。拟合就是:给很多路近点,解出多项式后可以平滑,获得曲线。三次、五次多项式可以插值也可以拟合。

2024-11-22 16:12:13 851

原创 通过(iplanner)端到端的路径规划算法---理解自监督学习、梯度下降算法

无监督学习:例如聚类算法、GAN等 简单说就是有个评价指标(损失函数)把网络输出结果和自己对比,不断提高和优化监督学习: 打个标签,损失算出来和标签对比在反向优化自监督学习:我理解,和无监督类似也是用一套指标评价输出的结果然后反向传播,只不过他不同在它可以是提前通过别的方法计算好的。当然也可以想动态规划一样,把所有结果全算出来,到时候神经网络输出时一一对应即可达到自监督。

2024-11-05 13:34:16 907

原创 强化学习笔记——1深度学习预训练强化学习

通过深度学习预训练,强化学习能够有效利用高维数据中的潜在结构,提高训练效率和泛化能力。当前研究已经展示了将预训练特征引入强化学习的巨大潜力,未来可以继续探索更强的表示学习方法、更广泛的任务迁移能力以及如何在稀疏奖励等困难场景中更好地应用预训练模型。我大概理解了原理,先深度学习特征后输入强化学习中。可以具体距离讲讲么?我对强化学习相关原理不清楚。比如DL输出了一个多维度的tensor是特征,强化学习如何使用?好的!

2024-11-05 11:28:26 1466 3

原创 路径的两种yaw:位置差异计算的 yaw和 基于四元数提取的 yaw

位置差异计算的 yaw只能反映下一个路径点方位,但不能反映车辆位姿。比如从a走到b后,车自转一圈。仅表示物体从一点运动到另一点的运动方向,基于位置变化的几何关系。反映了运动轨迹的方向,而不一定是物体的真实朝向。表示物体的实际朝向,基于完整的姿态信息。是物体在全局坐标系中的绝对方向。更适合在没有姿态数据时估算方向。适用于精确跟踪姿态的场景。

2024-11-05 11:27:13 300

原创 CasADi库C++用法整理学习---以NMPC代码为例

但与 SX 不同的是,这些初等运算并不局限于标量一元或二进制运算(R→R 或 R×R→R)。相反,用于形成 MX 表达式的基本运算可以是通用的多个稀疏矩阵值输入、多个稀疏矩阵值输出函数:Rn1×m1×…这将创建一个 1×1 矩阵,即一个包含名为 x 的符号基元的标量。注意:opti.subject_to,opti.minimize,MX::mtimes,opti.variable,opti.parameter都是怎么用的。但是,您可以在 MX 图中包含对 SX 表达式定义的 Function 的调用。

2024-10-17 11:41:55 1725

原创 路径规划关于地图的整理

RVIZ里Grid的全局坐标系原点,在默认在栅格中间,右手系(食指x,中止y)。注意:Grid栅格密度、大小和地图密度无关。

2024-10-08 12:03:07 476

原创 ros中和RVIZ交互显示的InteractiveMarker简单例子

通常:一个int_marker里添加若干个InteractiveMarkerControl,其中一个InteractiveMarkerControl添加Maker定义物体尺寸,其余若干个InteractiveMarkerControl表示对这个物体的控制。对象,其中InteractiveMarkerControl 可以添加若干Marker(若干静态元素,默认是静态)如box_control,也添加可以是控制方式如:control。若:int_marker里有多个Maker,则表示对这。

2024-10-07 17:38:40 976

原创 从路径优化学习FastPlanner之B样条曲线平滑(二):FastPlanner中B样条曲线代码理解与解读

根据之前一章只是大致了解了B样条数学原理,实际读代码还有疑惑。控制点是什么?和规划出的路径点什么关系?控制点可以说我们规划出的路径点,即n等于轨迹点个数。也可以不是轨迹点,通过线性方程反解出控制点B样条曲线是少C0,即至少是连续的,但不能保证C1(即可导,无折现)甚至更高C2.。。p3,p4为 规划出的点,若直接当作控制点生成B样条,则因为点的位置P3处不可导。若要可导则必定要移动P4到上面,那怎么求出P4的位置呢?求出样条基函数后线性方程反解出控制点即可得到平滑的P4。

2024-09-06 15:37:02 1063

原创 先从路径优化开始学习FastPlanner之B样条曲线平滑路径(一):从拉格朗日插值到B样条曲线

B样条学习整理,易错点和关键点。我会列出学习他人的博客,但我不涉及具体推导,原理讲解,旨在于理解必须概念后写代码出效果和使用。

2024-08-25 17:14:32 2310

原创 gazebo下使用Fast-planner配置(包含mpc局部规划+控制Gazebo小车以及FastPlanner配置)

注意Fast-Planner里面文件夹结构,这两个文件夹里面才是ros的pkg,发现fast-planner里有bspline包,于是先单独编译bspline包,然后单独编译fast-planner里的每个包:因为依赖关系。安装必要的库: sudo apt-get install gcc g++ gfortran git cmake liblapack-dev pkg-config --install-recommends。

2024-08-21 10:35:35 1320 6

原创 ROS C++如何自定义msg并修改CMakelists.txt&&如何修改CMakelist.txt 添加多个cpp和头文件

总结:使用add_library把所有用的.h和.cpp,先可以链接到一个对象(add_dependencies、target_link_libraries)。这里总结:1:#include msg时向上面那样写add_message_files,不论msg在pkg内还是单独一个pkg是msg,都要#inclde 包名+.h eg: #include"CottonBale/cotton_block.h"2:对于一个pkg,在pkg的src内调include中的头文件,要加包名+.h。

2024-08-12 00:12:40 650

原创 新手学习Gazebo+ros仿真控制小车+对URDF模型坐标系-----易错和自己理解

赵虚左老师讲的很详细,这里只是理一下思路,说下突然出现“新”概念之间的关系。说一下模型的理解和怎么调整***urdf文件***:里面是配置模型的,既有模型的位置、尺寸、颜色,也包含复杂的物理模型信息比如:转动惯量,碰撞box大小等等,总之是定义模型的。***xacro文件:*** 也是配置模型的,就是urdf的高级版。***总流程就是:定义模型-》组装模型-》在launch文件启动-》加载Gazebo里-》打开自带的ros-control键盘控车***

2024-08-04 23:09:08 2485

原创 MPC白话学习记录

看视频后自己对MPC中细节、要点的个人白话总结

2024-07-16 23:00:56 427

原创 混合A星--关键代码、逻辑个人通俗理解

看完代码后,个人对混合A*简单的白话理解

2024-05-15 21:56:09 1026 1

原创 简单,清晰方法----白话讲解Vscode配置运行C++程序(证明可行)

launch.json之前系统会根据这行代码先去执行tasks.json中的内容,可以简单理解为tasks.json中的代码会帮我们用g++/gcc编译生成可执行文件,而launch.json中的代码是让系统来调试我们的可执行文件。个人理解大致讲一下:task.json,XXXConfiguration.json,launch.json 作用。,里面也没有c_cpp_Configuration.json.系统建系统自己配置。task.json:多个C++要一起编译运行是需要,

2024-04-28 14:04:50 394

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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