自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(108)
  • 资源 (2)
  • 收藏
  • 关注

原创 实际的机械臂控制(9)Moveit单独控制机械臂末端在XYZ三个轴的平移和旋转(基于python)

0. 序言在moveit中,控制机械臂的末端执行器运动的API有两个,分别是:shift_pose_targetset_pose_target第一个API:shift_pose_targetgroup_name.shift_pose_target(DOF_Index, DOF_moveit_value, end_link_name)一个个分析group_name时你的规划组的名字。就比如,我用的规划组的名字是 arm那么我调用这个API时就是:arm.shift_pose_targ

2022-03-01 17:14:50 5319 16

原创 实际的机械臂控制(8)使用find_object3D和Kinect2实现目标跟踪(基于python)

话不多说了在很多大佬的博客,主要是古月居的一些博客中,他们都介绍了使用find_object2D这个包是识别目标的位姿。但是如何将目标的位置和姿态发送给机械臂,他们都没有提及。这让我很尴尬呀,没人带入门,很生气,所以停止研究机械臂的控制,然后去继续告视觉部分,一不小心发了个定刊T-PAMI。可能是借助于这个T-PAMI提供的元气,瞬间打通了我的任督二脉,让我瞬间-----------------------------------------------白瞟到了一个新的方法。首先是安装find_obj

2022-01-24 22:52:56 7379 29

原创 Moveit实际的机械臂控制(5)moveit,编写action server节点和Arudion端的节点

Arudino与机械臂电机的连接需要的材料:ArudinoUNO板子一个,面包板一个,杜邦线若干,小强机械臂自带的锂电池也需要用。如下图小强机械臂的6个伺服电机,每个电机有三根线,白色是信号线,连接到Arudino的每个端口,我选择的是A0,A1,A2,A3,A4,A5,.。电机的红色线是正极,黑色线是负极,。电池的黑色线是负极,红色线是正极。首先,我们将电池上的正负极对应插到面包板 上的正负极,然后再一次将电机的正负极线一次插到面包板的正负极。实现电机的并联。最后,我们需要将面包板的负极和

2021-06-12 14:20:05 1896 11

原创 Moveit实际的机械臂控制(4)修改机械臂配置文件实现真实控制

该部分内容主要参考合工大机器人实验室的内容,但是由于版本问题,我们可能好多地方的内容有些不一样。一、需要修改的内容1.1 demo.launch文件中参数fake_execution的值改为false位于机器人配置文件中的launch’文件中的demo.launch文件,好多博主,包括古月居的胡老师也说要修改,但是当我生成配置文件的时候,我发现这部分好像不需要修改。 <!-- Run the main MoveIt! executable without trajectory executi

2021-06-12 13:28:11 1627 1

原创 实际的机械臂控制(3)基于moveit的LOBOT机械臂控制,生成机械臂模型

准备工作需要成功安装moveit和ROS。安装ROSsudo sh -c 'echo "debhttp://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" >/etc/apt/sources.list.d/ros-latest.list'sudo apt-key adv --keyserver hkp://ha.pool.sks-keyservers.net:80--recv-key 421C365BD9FF1F717815A3895

2021-06-12 12:26:53 510 1

原创 Moveit实际的机械臂控制(6)ROS自带的camera-clibration的USB相机的标定

0、引言在图像测量过程以及机器视觉应用中,为确定空间物体表面某点的三维几何位置与其在图像中对应点之间的相互关系,必须建立相机成像的几何模型,这些几何模型参数就是相机参数。在大多数条件下这些参数必须通过实验与计算才能得到,这个求解参数(内参、外参、畸变参数)的过程就称之为相机标定(或摄像机标定)。无论是在图像测量或者机器视觉应用中,相机参数的标定都是非常关键的环节,其标定结果的精度及算法的稳定性直接影响相机工作产生结果的准确性。因此,做好相机标定是做好后续工作的前提,提高标定精度是科研工作的重点所在。畸变

2021-06-12 10:21:47 968 9

原创 实际的机械臂控制(7)USB相机与小强机械臂Lobot机械臂的标定方法

引言本文是针对一个实际的机械臂来控制的,而且这个机械臂很便宜,即使是平民玩家也玩得起。在前面两章,我们介绍了对机械手臂的开环控制,主要是让初学者明白一些简单的东西。第一章,根据小强给的少的可怜的教程简单的驱动机械手臂。第二章,自己写一个publisher和一个launch文件,实现对动作的发布和执行,让机械手臂不停地动起来。下面,我们将进入实际的人工智能模式,利用opencv PCL等工具实现对机械手臂的控制。一、相关工作这个手眼标定是相机在机械手臂上的,但是他介绍了很多理论知识,我们在这

2021-03-20 21:27:00 1340

原创 实际的机械臂控制(2)基于小强ROS机械臂Lobot的launch文件的用法

引言我们在上一节中也看到了,为了执行一个动作,我们需要打开好几个终端,这样很麻烦。如果我们学会了使用launch文件,那么时请将简单很多。事实上,我们也必须得学会launch文件。一、luanch文件1.1 了解launch文件首先来看一个简单的launch文件:<launch> <nodepkg="turtlesim"name="sim1" type="turtlesim_node"/> <nodepkg="turtlesim"name="sim2"

2021-03-19 18:38:03 723 2

原创 实际的机械臂控制(1)小强ROS机械臂Lobot的初步控制方法理解与实现

第一节:感谢---------首先,该项目由中国科学院海西研究院泉州装备制造研究所的机器视觉与模式识别课题组赞助。感谢郭杰龙和魏宪老师的大力帮助。--------该课题使用的机械臂是一个六轴机械臂,具体信息参考:小强社区,在这里应该能了解到具体的机械臂信息。第二节:引言...

2021-02-14 10:36:39 4567

转载 深度强化学习算法的样本效率(sample efficiency)到底是什么?

定义6(样本效率)。在深度强化学习任务中, 样本效率即利用有限的交互次数,通过合理的策略与环境交互进行采样,并利用采样数据进行训练,以获取策略优化的指标。评估算法的样本效率,既可以在使用相同交互次数的前提下衡量动作策略的训练效果,也可以在到达相同训练效果的前提下衡量达到此效果所需的交互采样次数。由于在强化学习算法中,智能体以当前策略与环境交互进行采样,并利用已得到的样本数据对策略进行优化,探索过程与训练过程相互促进,所以可以通过增强对环境的探索能力和提高对数据的利用能力两个方向提高样本效率。

2023-03-14 17:45:13 5152 1

原创 对Dueling DQN理论的深度分析。

优势函数A(s,a)用于度量在状态s下执行动作a的合理性,它直接给出动作a的性能与所有可能的动作的性能的均值的差值。如果该差值(优势)大于0,说明动作a优于平均,是个合理的选择;如果差值(优势)小于0,说明动作 a 次于平均,不是好的选择。度量状态s下的动作a的性能最合适的形式就是动作值函数(即Q函数)Qπ(s,a);而度量状态s所有可能动作的性能的均值的最合适形式是状态值函数(即V函数) Vπ(s,a) 。

2022-12-13 19:25:33 3856 1

原创 深度强化学习算法调参

主要是一些深度强化学习算法的调参技巧

2022-12-07 21:40:51 4497

原创 Dynamic Potential-Based Reward Shaping将势能塑形奖励函数拓展为F(s,t,s‘,t‘)

基于势能的奖励塑形可以显著降低学习最优策略所需的时间,并且在多agent系统中,可以显著提高最终联合策略的性能。已经证明,它不会改变一个agent单独学习的最优策略或多个agent一起学习的纳什均衡。然而,现有证明的一个局限性是假设状态的势能在学习期间不会动态变化。这种假设经常被打破,特别是如果奖励塑形函数是自动生成的。在本文中,我们证明并演示了一种扩展基于势能的奖励塑形的方法,以允许动态塑形,并在单agent情况下保持策略不变性,在多agent情况下维持一致的纳什均衡。

2022-11-24 02:20:04 1092

原创 Principled Methods for Advising Reinforcement Learning AgentsF(s,a,t,s‘,a‘,t‘)

强化学习中的一个重要问题是如何以有原则的方式整合专家知识,尤其是当我们扩展到现实世界的任务时。在本文中,我们提出了一种在不改变最优策略的情况下将任意建议纳入强化学习agent的奖励结构的方法。 该方法扩展了 Ng 等人提出的基于势能的塑形方法。 (1999) 到基于状态和动作的塑形函数的案例。 这允许使用更具体的信息来指导agent——选择哪个动作——而不需要agent仅从状态的奖励中发现这一点。 我们开发了两种定性不同的方法来将势能函数转换为对agent的建议。我们还提供了根据势能函数的属性在这些建议算法

2022-11-22 22:40:45 416

原创 Expressing Arbitrary Reward Functions as Potential-Based Advice将任意奖励函数表示为基于势能的建议

有效地吸纳外部建议是强化学习中的一个重要问题,尤其是在它进入现实世界的时候。基于势能的奖励塑形是在保证策略不变性的前提下,为agent提供特定形式的额外奖励的一种方式。本文提出了一种新的方法,通过隐含地将任意一个具有相同保证的奖励函数转化为动态建议势的特定形式,使其保持为一个同时学习的辅助值函数。我们证明了这种方式提供的建议捕获了期望中的输入奖励函数,并通过实证证明了其有效性。

2022-11-22 15:15:32 348

原创 Potential-based shaping and Q-value initialization are equivalent(静态势能塑形相当于初始化agent的Q-table)

事实证明,塑形是提高强化学习表现的一种有力但不稳定的手段。Ng,Harada 和 Russell (1999)提出了一种基于势能的塑形算法,通过增加塑形奖励来保证学习器学会最佳行为。 在这篇文章中,我们证明了这个塑形算法和几个强化学习算法所需的初始化步骤之间的某些相似之处。更具体地说,我们证明了一个基于塑形算法的势能函数的初始 Q 值的强化学习器在整个学习过程中作出的更新与接受基于塑形势能的奖励的学习器相同。我们进一步证明,在一个广泛的策略范畴下,这两个学习器的行为是不可区分的。比较提供了直观的成形算法的

2022-11-22 14:22:37 277

原创 Multigrid reinforcement learning with reward shaping

基于势能的奖励塑形已被证明是提高强化学习agent收敛速度的有效方法。 这是一种以原则性方式将背景知识纳入时间差异学习的灵活技术。然而,问题仍然是如何计算用于塑形给予学习agent的奖励的势能。在本文中,我们提出了一种通过状态空间离散化来解决强化学习中这个问题的方法。特别是,我们表明可以在实际强化学习过程中并行在线学习势能函数。 如果为由给定网格确定的状态学习 Q 函数,则可以并行学习具有较低分辨率状态的 V 函数,并用于近似地面学习的势能。 提出了新算法并进行了实验评估。

2022-11-21 22:37:15 667

原创 Policy invariance under reward transformations- Theory and application to reward shaping基于势能的塑形奖励函数

关于Ng的基于势能的塑型奖励函数的理解和翻译

2022-11-19 23:05:38 506 1

原创 Useful Policy Invariant Shaping from Arbitrary Advice论文翻译导读分析

Useful Policy Invariant Shaping from Arbitrary Advice

2022-11-14 18:49:55 320

原创 内在好奇心模型(Intrinsic Curiosity Module,ICM)-论文Curiosity-driven Exploration by Self-supervised Prediction

关于好奇心奖励函数(ICM)的一篇博客,主要是自己对这篇论文的理解

2022-10-18 22:44:09 1439

原创 多智能体强化学习Multi agent,多任务强化学习Multi task以及多智能体多任务强化学习Multi agent Multi task概述

大概摘要了多任务强化学习和多智能体强化学习的一些方法

2022-10-13 16:01:27 2487

原创 python,将多张图像图像保存为tif格式,包括高纬度

主要是关于如何将图像保存到tif容器中的详细介绍

2022-09-25 00:45:08 2053

原创 多智能体强化学习之值函数分解:VDN、QMIX、QTRAN系列优缺点分析(转载)

关于多智能体强化学习中VDN,QMIX,QTRAN三个算法再值分解方向的研究成果。三个算法呈递进关系

2022-09-16 11:20:02 3462 1

原创 初探强化学习(16)DQN算法的调参技巧

关于是否适用done参数作为更新Q值的讨论。这个方法我感觉对于多数雅达利游戏来讲时没用的,因为大多数情况下done都是false,处理成数字就是0.具体方法参考这个链接,作者在倒立摆上实验的,说实话,这个游戏真的不具有代表性。管局具体的调参几千,大家主要关注:学习率,gamme,replay buffer容量,等参数。很多炼丹专家通过控制变量的方法来分析这些超参数对算法新性能的影响。例如这个 DQN调整超参体会。作者详细分析了每个参数的作用。这个讨论了DQN损失函数越训练越差的问题。DQN

2022-05-26 21:15:04 4169

原创 强化学习代码问题(1)安装gym,TypeError: render() missing 1 required positional argument: ‘mode‘

遇到这种问题的主要原因是安装gym的版本太老旧了。一般来讲,我们会直接使用下面的方法安装pip install gym这个时候安装的可能不是最新版本的。我一开始默认安装的就是0.75版本的。后来我更新到新的版本就解决问题了,。这个时候,我们只需要指定版本就可以了pip install gym==0.9.1...

2022-05-25 19:12:27 1977

原创 初探强化学习(15)强化学习的gym学习环境名称

最近投稿IEEE Transactions on Cybernetics,审稿人要求我补充算法在雅达利游戏中的实验,来说明算法的一般性。没办法啊,实验吧。找了好久,找到了所有游戏环境的名称列表:EnvSpec(Acrobot-v1),EnvSpec(AirRaid-ram-v0),EnvSpec(AirRaid-ram-v4),EnvSpec(AirRaid-ramDeterministic-v0),EnvSpec(AirRaid-ramDeterministic-v4),EnvSpec(Air

2022-05-23 11:17:29 599

原创 初探强化学习(14)DQN类算法的值高估问题的笔记

关于DQN算法的一些细节,可以查看这个博客,讲的很细节。主要参考博客https://zhuanlan.zhihu.com/p/443807831https://itpcb.com/a/162740#:~:text=%E5%87%BA%E7%8E%B0%E4%BB%B7%E5%80%BC%E9%AB%98%E4%BC%B0%E7%9A%84%E6%A0%B9,%E7%9A%84%E5%8D%B7%E7%A7%AF%E7%A5%9E%E7%BB%8F%E7%BD%91%E7%BB%9C%E3%80%82

2022-05-18 19:54:18 774 1

原创 python中的break、continue和pass

我们在写代码的时候,有时需要提前结束程序,这就包括直接跳出这个for循环和结束本次循环并重新开始该放for循环。这就需要用到break和continue1. breakbreak 语句用于跳出 for 和 while 循环过程,跳出后对应的 else 部分将不执行。例如:for letter in 'Python': if letter == 'o': break print('当前字母为:', letter)上述代码运行结果为当前字母为: P当前字母为: y

2022-05-11 13:47:47 979

原创 Python解包运算操作*和打包运算zip

背景还是我在高DQN算法的时候遇到的,下面代码的第七行。完整代码参考这个博客。def optimize_model(): if len(memory) < BATCH_SIZE: return transitions = memory.sample(BATCH_SIZE)#从replay buffer中选择transitions #转置batch(有关详细说明,请参阅https://stackoverflow.com/a/19343/3343043)

2022-05-09 22:46:32 1345

原创 Pytorch(Python)中的itertools.count()函数

在看深度强化学习DQN代码时,遇到这段代码,搞了好久都没看明白。完整代码参考这个博客。for t in count(): #count()用法: itertools.count(start=0, step=1) #start:序列的开始(默认为0) #step:连续数字之间的差(默认为1) reward = 0 #设置初始化奖励为0 m_reward = 0#求和奖励 # 每m帧完成一次action

2022-05-09 18:27:03 4238 1

原创 python和pytorch中的lambda()和map()

这两个函数在一些大型网络中经常联合在一起使用,我经常会用到,每次看了就懂了。然后下次遇到又忘了,然后还要再来搜,浪费时间。所以这次打算按照自己的理解和别人的例子,一块写在一个博客里,以后就忘记了就可以直接弄过来看。一、lambda函数举个小例子先用普通的def函数写一个函数def sq(x): return x*xmap(sq,[y for y in range(10)])然后再用lambda和map一起实现上个def函数map(lambda x: x*x,[y for y in r

2022-05-08 16:35:05 2356

原创 python生成pkl文件(pkl文件的读取和写入)

我在训练UCF101数据集的时候,遇到一个大高玩使用pkl文件,一开始使用它们的数据炮的好好的。后来开始跑自己的数据时,就出问题了。不知道这个pkl到底是个什么东西。原始的那个大高玩的ucf101的标签数据读取出来是这个样的:['PommelHorse', 'Surfing', 'HammerThrow', 'PlayingViolin', 'WallPushups', 'PullUps', 'PizzaTossing', 'SalsaSpin', 'Shotput', 'CricketShot',

2022-05-06 23:38:57 16714 4

转载 PyTorch,把训练历史(损失函数和准确率)保存到csv文件中

一、首先生成一个CSV文件import randomimport pandas as pdfrom datetime import datetime#创建train_acc.csv和var_acc.csv文件,记录loss和accuracydf = pd.DataFrame(columns=['time','step','train Loss','training accuracy'])#列名df.to_csv("F:\\Documents\\train_acc.csv",index=False

2022-05-06 18:14:30 3893 2

转载 强化学习论文精度(2)Learning to utilize shaping rewards: A new approach of reward shaping

没什么说的,最近重在想着把强化学习三大坑搞明白,只是搞明白啊,不是搞懂三大坑分别是:样本效率奖励函数模型结构第一个样本效率现在搞得迷迷糊糊的了,说懂吧了吧,又说不出所以然,说不懂吧。但是看论文又能知道作者们想表达的意思。下面想在明白,就是得实践出真知了。因此,现在开始搞奖励函数了。其实奖励函数是强化学习里最大的坑。本博客照搬别人的博客。所翻译的论文是这个,大家直接下载。1. 引 言奖赏塑形 (Reward Shaping)是提升强化学习算法学习效率的重要途径之一,其核心思想是用塑形

2022-04-09 00:08:06 1098

原创 腹部超声检查的一些器官的手法教程。

1.0 肾脏超声检查任务来自商丘医学高等专科学校的肾脏超声检查教程。2.0 胆囊超声检查任务来自商丘医学高等专科学校的胆囊超声检查教程。3.0 胰腺超声检查任务来自商丘医学高等专科学校的胰腺超声检查教程。4.0 腹部主动脉和下腔静脉超声检查任务下腔静脉超声检查教程。腹部主动脉超声检查教程。其实腹部主动脉和下腔静脉的短轴截面一般是同时检查的。...

2022-04-01 21:01:08 514

原创 我的一些视觉工具(1)之动作预测--逐行详解C3D代码(Pytorch)

该博客主要参考这个工程提供的代码我们在他们代码的基础之上进行魔改当然了,既然要魔改人家的数据,肯定要先把人家的思路看明白。对于3D神经网络来讲,好多小伙伴最关心的肯定还是数据的喂入方法和数据集的格式喽。下第一个部分就是详细第一个部分就是1. 输入数据–数据预处理1.1 输入数据的格式C3D时直接处理视频数据的,但是这并不意味着C3D模型的输入数据就是视频。实际上,C3D模型的输入也是一系列的图像,这里面图像的格式是:[c,l,h,w][c,l,h,w][c,l,h,w],其中,ccc是图像通道

2022-03-30 18:42:44 3388 10

原创 初探强化学习(13)DQN的Pytorch代码解析,逐行解析,每一行都不漏

首先上完整的代码。这个代码是大连理工的一个小姐姐提供的。小姐姐毕竟是小姐姐,心细如丝,把理论讲的很清楚。但是代码我没怎么听懂。小姐姐在B站的视频可以给大家提供一下。不过就小姐姐这个名字,其实我是怀疑她是抠脚大汉,女装大佬。不说了,先上完整的代码吧1. 完整的代码import gymimport mathimport randomimport numpy as npimport matplotlib.pyplot as pltfrom collections import namedtupl

2022-03-28 19:00:59 7611 3

原创 强化学习论文精读书(1)Deep Dyna-Q: Integrating Planning for Task-Completion Dialogue Policy Learning

1. 前情提要虽然这个算法号称的是Deep Dyna-Q网络。但是其实其核心思想用的是DQN网络。特别是在更新策略函数Q(s,a;θQ)Q(s,a;θ_Q)Q(s,a;θQ​)时,使用的就是DQN的训练思想。每C步更新一次策略函数Q(s,a;θQ)Q(s,a;θ_Q)Q(s,a;θQ​)的参数θQθ_QθQ​。如第2行和第42行,θQ’=θQθ_{Q’ }= θ_QθQ’​=θQ​。其中θ_Q是DQN种的预测网络,θQ’θ_{Q’ }θQ’​是DQN中的target 网络。与DQN不同的是,DDQ有一个

2022-03-27 18:13:40 777

原创 初探强化学习(12)各种类型强化学习算法的流程图,用于对比分析

1. Q-learning建立一个Q Table来保存状态s和将会采取的所有动作aaa,Q(s,a)Q(s,a)Q(s,a)。在每个回合中,先随机初始化第一个状态,再对回合中的每一步都先从Q Table中使用ϵ−贪婪基于当前状态 sss (如果Q表没有该状态就创建s−as-as−a的行,且初始为全0)选择动作 aaa,执行aaa,然后得到新的状态s’s’s’和当前奖励r,同时更新表中Q(s,a)Q(s,a)Q(s,a)的值,继续循环到终点。整个算法就是一直不断更新 Q table 里的值,再根据更新值来

2022-03-27 13:30:13 3774

原创 初探强化学习(11)Dyna类型的强化学习

为什么研究Dyna类型的强化学习呢?主要是因为这个类型的强化学习是融合了model-based和model free两个类型的强化学习。Dyna由于不可能精确和完美的拟合真正环境,纯基于模型的强化学习效果往往很差。那有没有什么办法可以在一定程度上避免这一点呢?那就把基于模型 + 不基于模型的强化学习结合起来吧!也就是Dyna算法框架了。它既在模型中学习,也在交互中学习。即Dyna框架在每个迭代轮中,会先和环境交互,并更新价值函数、策略函数,接着进行n次模型的模拟预测,同样更新价值函数、策略函数。这

2022-03-25 23:40:40 1862

主要是多只能提强化学习的一些论文

我将最近几年的多智能体强化学习的研究文献下载下来,并且翻译成中文了。大家可以借鉴一下

2022-10-13

关于多任务强化学习的文章

我下载了一些多任务强化学习的文章,并且将其翻译成中文了。

2022-10-13

强化学习基础算法介绍+Pytorch代码(相信我,绝对是你想要的)

强化学习基础算法介绍+Pytorch代码(相信我,绝对是你想要的)

2022-03-21

ITK软件使用说明,其中最受关注的是CT序列图像的处理

ITK( Insight Segmentation and Registration Toolkit)是美国国家卫生院下属的国立医学图书馆开发的一款医学图像处理软件包,是一个开源的、跨平台的影像分析扩展软件工具。

2020-10-15

空空如也

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

TA关注的人

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