自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 SAC 理论学习

我们称之为‘软Q函数’和‘软V函数’。这使得其贝尔曼方程和策略更新定理都是从最大熵原理中自然推导出来的,理论更坚实。

2025-11-28 11:14:04 738

原创 IR2 基于RL多机器人自主探索 代码阅读

计算探索率。返回等待 job 完成的,并获取任务完成结果,存入经验回放池和指标记录list达到训练条件,开始训练:采样 batch size 样本构建观测输给神经网络得到神经网络的输出 构建loss function , 反向传播,计算梯度,更新网络记录训练过程数据更新目标Qnet保存模型。

2025-11-28 10:54:18 709

原创 HDPlanner 代码阅读

对比学习在你的训练中起到了辅助策略网络学习更清晰的特征表示的作用:强化 RL 学习信号 → 动作选择更准确增加特征空间可分性 → 正例和负例更容易区分与 RL 损失结合 → triplet loss + policy loss 一起训练对比学习的概念?对比学习的过程,要素?作用?对比学习对强化学习的作用?对比学习是强化学习的“表示催化剂”它让 RL 的特征空间更有几何结构,从而:改善状态识别;提升泛化;加速收敛;增强稳定性。

2025-11-12 21:35:08 747

原创 large-scale-DRL-exploration 代码阅读 总结

在训练中机器人“跳过去”是为了让策略学到节点级的全局决策逻辑;在执行中用“实时位置重规划”是为了在连续物理空间中安全执行。这是强化学习与传统规划模块的典型分层协作方式。我在训练阶段,学习到了一个策略网络,根据当前状态,这个策略网络能够输出一个最优动作。但是在执行阶段,我换了机器人需要探索的环境,这个环境没有出现在训练阶段,那么策略网络还能够根据当前状态推理出最优动作吗?非常关键的问题——你现在问到的其实是强化学习在泛化(generalization)和迁移(transferability)

2025-11-07 16:35:06 1036

原创 large-scale-DRL-exploration 代码阅读 (六)

这里的lpnt是lambda 函数的参数,表示函数被调用时传入的值。lpnt并不需要在外部定义,lambda 会在调用时接收一个值。Python 会对element就被传给 lambda 的参数lpntlambda 返回距离平方值sorted 使用这个返回值排序x没有在外部定义sorted 会依次调用 lambda:x=3 → 返回 -3x=1 → 返回 -1x=2 → 返回 -2按返回值排序得到[3, 2, 1]和你代码里的逻辑完全一样,只不过这里是点对象Point。变量形状含义。

2025-11-05 17:15:51 613

原创 large-scale-DRL-exploration 代码阅读(五)

接下来的代码主要剩余:worker 强化学习中的收集经验的部分还有就是主要是探索、构建环境相关的代码了;和强化学习关系不是很大了,即探索部分。

2025-11-02 16:32:55 639

原创 large-scale-DRL-exploration代码阅读(四)

✅解码器的输入是「已经生成的词(token)」的嵌入(embedding)序列。在训练阶段,这些词来自真实目标序列(ground truth);在推理(预测)阶段,这些词来自解码器自己上一步生成的输出。

2025-10-23 16:57:10 742

原创 large-scale-DRL-exploration代码阅读(三)

向量矩阵乘法输出维度目的Q = XW_Qkey_dim把输入映射到匹配空间K = XW_Kkey_dim把输入映射到匹配空间V = XW_Vvalue_dim把输入映射到输出空间机制类型Query 的数量特点是否共享 Q,K,V 来源是否有多头单头注意力(经典)1 个 query计算单个 query 对一组 keys 的注意力Q≠K,V❌自注意力(Self-Attention)多个 query(每个元素一个)每个位置都做注意力,建模内部依赖Q=K=V❌。

2025-10-21 22:43:25 834

原创 Large-Scale-DRL-Exploration 代码阅读(二)

detach()的作用是“断开梯度传播”,在 SAC 里,它让policy 更新时只影响策略网络,不影响 Q 网络和 α。非常好 👍,你问的dim=1是 PyTorch 里一个非常关键的参数。它表示沿哪个维度(axis)进行运算。下面我结合你的 SAC 代码里的详细解释。

2025-10-21 14:21:37 910

原创 Large-Scale-DRL-Exploration 代码阅读(一)

large-scale-DRL-exploration 强化学习和自主探索结合的论文代码阅读记录

2025-10-16 15:42:03 957

原创 虚函数 纯虚函数 抽象类

【代码】虚函数 纯虚函数 抽象类。

2023-11-20 15:48:45 607

原创 [源码阅读]SMUG Planner

4.这个二维查找表的行对应的是一个TOI ,列对应的是 这个 TOI 里第 j 个POI 想连接到起点时候,经过的上一个 TOI 的第k 个 POI ,这个k 使路径代价最小。3.计算 当前TOI 每一个POI j 到起点时经过的上一个 TOI 的第k 个POI ,记录下路径代价最小时候的 j 对应的k ,放入一个二维查找表,2.然后转入到 上一个 TOI (倒数第二个),计算新的 TOI 到刚刚的TOI 内所有 POI 之间的路径 以及代价,6.最后根据查找表得到访问顺序的路径点POI们。

2023-09-05 21:06:07 294

原创 DP求解最短路径

设 s s1 s2 s3 t 是 s 到 t 的最短路径,且 s s1 之间的最短路径已经求出,则 s1 到 t 的最短路径是 s1 s2 s3 t ,如果不是,那么存在一条 s1 r2 r3 t 这样的最短路径。这是最后一个阶段的决策,它依赖于d(1,9)、d(2,9)和d(3,9)的计算结果。这一阶段的决策又依赖于d(4,9)、d(5,9)和d(6,9)的计算结果。这一阶段的决策依赖于d(7,9)和d(8,9)的计算。代码实现 (增加注释)

2023-09-05 18:59:59 384

原创 多目标优化问题

至此,得到了p-1个可行区间[(f2_min, f2_max),(f3_min, f3_max)…(fp_min, fp_max)]。与此同时函数值之间难以比较,所以导致很多在解决单目标TSP优化问题的有效算法,在面对多目标TSP问题时难以发挥,为了解决这个问题,采用标准化的思想,将不同的目标函数值,投影到0到1之间,从而进行组合比较。若设置每个区间内步长统一为n,则一个区间内可以得到(f2_max-f2_min)/n个解,p-1个区间内就有(p-1)*(f2_max-f2_min)/n。

2023-08-29 17:19:16 694

原创 多目标优化

基于回报值的优化模型旨在深入刻画优化的本质需求,将评价指标转化为回报值,描述系统或服务的指标属性对优化目标的作用,针对需求进行更为合理、有效的优化.基于回报值的优化往往结合性能评价同时开展.在优化过程中,研究不同评价指标对求解目标的本质影响,形式化刻画评价指标与回报值的量化关系,给出转化公式;但是多目标优化,在需要优化多个目标时,容易存在目标之间的冲突,一个目标的优化是以其他目标劣化为代价的,所以我们要进行协调和折中。帕累托模型、进化算法、多目标蚁群算法、多目标遗传算法、多目标粒子群算法、多目标优化算法。

2023-08-29 16:14:21 2226

原创 Eigen

norm() 返回向量的二范数,比如 norm(3.0,4.0) = 5.0。

2023-08-28 11:46:36 246

原创 C++智能指针

智能指针就是类 类中有一个成员 管理着裸指针智能指针只能传引用 不能传值。

2023-08-28 11:45:43 171

原创 TSP问题

旅行商问题:拜访每一个城市一次 最后回到起点 总路径代价最小TSP问题的输入是一个边带权的完全图,目标是找一个权值和最小的哈密顿回路。TSP问题可大致分为对称TSP问题和非对称TSP问题。所谓对称指的是在模型中,城市 到城市 的距离与城市 到城市 的距离是一样的,其在图中的体现就是对称TSP问题的输入一般是无向图,而非对称TSP问题的输入往往是有向图一个带有n个节点的带权完全图G,一共有(n-1)!中可能的路径优化函数就是,最小化每一步的最小路径代价。

2023-08-28 11:42:46 442

原创 Kdtree

kdtree 就是在 n 维空间对数据点进行二分;具体先确定一个根,然后小于在这个维度上的根的节点在左边,大于的在右边,再进行下一个维度的划分。直到维度结束,再重复,或者直到达到了结束条件:例如输入的点的个数小于叶子节点最大点个数 到达了最大深度。将点云数据传入kdtree , 即将点云数据构建成kdtree的结构形式。直接在上面就可以调用函数进行 任意点 任意半径 任意k个点 的最近搜索了。

2023-08-28 11:41:51 145

原创 Bresenham 贝汉明算法

计算下 1 和 2 距离开始节点的 x 向 和 y 向的距离 xd 和 yd 占起止点之间在 x y 向的距离的百分比 x% y%;注意更新 x% , 也就是 x% 变为了 新的当前节点到开始节点 x 向的距离占起止节点之间 x 向的距离的百分比了。假如 x% < y% 那么下一个栅格就是 当前节点的 x 加 1 或者 -1;我们首先找到当前栅格的下一个 x 和 y 方向的栅格 1 和 2;理解:给定两个点,画出两个点的连线经过的栅格。TARE 里面有类似的实现代码。

2023-08-28 11:41:04 364

原创 动态规划算法

为减少重复计算,对每一个子问题只解一次,将其不同阶段的不同状态保存在一个二维数组中。与分治法最大的差别是:适合于用动态规划法求解的问题,经分解后得到的子问题。一个决策序列就是在变化的状态中产生的,所以这种多阶段最优化决策解决问题的过程就是动态规划(DP)。将求解的问题分解成若干子问题。然后按顺序求解子问题,前一问题的解会为后一问题的求解提供信息。的(即下一个子阶段的求解是建立在上一个子阶段的解的基础上,进行进一步的求解)。问题的阶段、每个阶段的状态、前一个阶段到后一个阶段之间的递推关系。

2023-08-28 11:30:31 143

原创 TARE源码阅读

【代码】【无标题】

2023-08-28 11:24:10 968 1

原创 哈希表学习

Hash Table / Map

2022-11-27 13:52:45 470 1

原创 使用CIntHeap 二叉堆进行A*路径搜索代码学习

A* 二叉堆

2022-11-18 21:47:39 470

原创 C++ Class 深拷贝、列表初始化(七)

C++ Class

2022-11-13 20:39:29 273

原创 C++ Class 拷贝构造函数(六)

C++ Class

2022-11-13 20:09:40 207

原创 C++ Class 构造函数析构函数(五)

C++ Class

2022-11-13 20:04:30 285

原创 C++ Class类套类、使用成员函数实现类的比较(四)

C++ Class

2022-11-13 19:59:16 365

原创 C++ Class 封装访问权限(三)

C++ Class

2022-11-13 19:54:43 366

原创 C++ Class封装的成员、属性(二)

C++ Class

2022-11-13 19:49:21 293

原创 C++ Class 的定义 (一)

C++ Class

2022-11-13 19:46:38 506

原创 论文研读:Baidu Apollo EM Planner

百度Apollo EMPlanner

2022-10-22 18:45:35 887 1

原创 217. 存在重复元素

刷题

2022-10-02 16:26:34 174

原创 costmap的膨胀参数解读--转载

3. “Possibly circumscribed” 代价与“Inscribed”代价相似,但是其依据为机器人本体的外接圆的半径。2. “Inscribed”代价表明某栅格距离机器人小于机器人本体的内切圆,如果机器人中在此类栅格中,则机器人肯定发生碰撞。膨胀(inflation)为被占据栅格(障碍物)按照距离向其周边栅格传播的过程。1. “Lethal”代价表明该栅格包含障碍物,如果机器人的中心在此类栅格中,则机器人发生碰撞。4. “Freespace”代价为零,在此类栅格中,机器人绝对不会发生碰撞。..

2022-08-28 19:52:46 1020

原创 ros::NodeHandle

1、句柄可以让你通过构造函数指定命名空间ros::NodeHandle nh("my_namespace");这使得使用该句柄的任何相对名字都是相对/my_namespace,而不是只相对你也可以指定一个父句柄和追加的命名空间ros::NodeHandle nh1("ns1");ros::NodeHandle nh2(nh1,"ns2");这将把nh2放入到/ns1/ns2命名空间2、也可以指定全局名字ros::...

2022-06-28 15:48:34 661

原创 RIA E100 操作方式

SSH 登陆首先设置有线连接,ping 测试是否连通。然后 ssh -Y ria@192.168.10.10 登陆;注意最好是 -Y,这个方式,这样可以后续看到机器人内部的文件内容。键盘控制使用电脑键盘控制我们需要解决一个红色报错joy…相关的,dev/…ls0 相关的cd 到 catkin_make/src/…/e100_bringup/min…注释掉 启动 遥杆相关的 代码 joy… 那部分。然后按照教程启动相关文件就可以了。...

2022-05-05 21:21:54 955

原创 catkin build 和 catkin_make

首先安装:sudoapt-getinstallpython-catkin-tools编译过程中你可能会遇到以下错误,那是因为以前使用了catkin_make进行编译,需要把build和devel删除掉。再编译就好了。catkin build 和 catkin_make 功能包分开放在不同ws 下。简单来说,如果ros的工作空间 (workspace) 中只有一个ros包(ros package),那么catkin_make和catkin build区别不大;如果一个cakti...

2022-04-28 18:05:19 4075

原创 数据结构---堆---简单

https://leetcode-cn.com/tag/heap-priority-queue/problemset/506. 相对名次给你一个长度为 n 的整数数组 score ,其中 score[i] 是第 i 位运动员在比赛中的得分。所有得分都 互不相同 。运动员将根据得分 决定名次 ,其中名次第 1 的运动员得分最高,名次第 2 的运动员得分第 2 高,依此类推。运动员的名次决定了他们的获奖情况:名次第 1 的运动员获金牌 "Gold Medal" 。名次第 2 的运动员获银牌 "Si.

2022-04-13 21:41:20 131

原创 C++template03 class template

//类模板//类模板的作用:建立一个同类,类中的成元数据类型不确定,使用虚拟的代表类型T#include <iostream> #include <string>using namespace std;//类模板template<typename NameT, class AgeT> // 需要几个T 就写几个T ,用 ,, 个开就好了//后面这就算类模板了class Person{public: Person(NameT name,

2022-04-13 14:07:33 383

原创 C++模板02

#include <iostream>#include <string>using namespace std;/**************普通函数和函数模板的调用规则 **********//*笔记:如果普通函数和函数模板都可以调用,优先调用普通函数可以通过空模板参数列表强制调用函数模板函数模板也可以发生重载如果函数模板可以产生更好的匹配,优先调用函数模板*///若函数模板和普通函数都可以调用,普通函数优先//可以通过空模板参数列表,强制调用函数模板//

2022-04-13 10:54:02 314

空空如也

空空如也

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

TA关注的人

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