- 博客(33)
- 收藏
- 关注
原创 多无人机通信-路由器实现
多无人机通信多无人机之间相互通信是实现编队飞行的基础,而想要实现通信就需要组建网络,在网络之间实现数据信息的互相传输,按结构分成两大类:中心节点网络和无中心节点网络.我们这里所用的路由器就是中心节点网络,所有的数据的传输都要经过中心节点,所以中心节点的带宽需要足够高才能满足要求.硬件:pixhawk-v4, F450机架,tx2开发板,以及一些基本零件.软件:Ubuntu18,px4(v1.11.2)及其环境.我们这里搭建的只是一个小型局域网,不会连接互联网,只需要把每个无人机中的tx2连接上该网络
2021-07-20 17:19:09
2252
6
原创 px4飞控和机载电脑通信:飞控接收机载电脑的自定义mavlink消息
前面一篇讲了mavros怎么接受px4消息.这一篇讲解如何飞控怎么接收从mavros传过来的消息.分成两部分:mavros发送消息,px4接收消息.pixhawk版本:pixhawk4px4版本:1.11.2ros版本:1.14.10mavros版本:1.5.1mavros发送消息1.创建msg消息参考前一篇文章的文件路径,首先需要在~/catkin_ws/src/mavros/mavros_msgs/msg文件夹下新建mavros2fcu.msg文件,该文件就是我们要传输的消息的数据类型,然
2021-04-26 10:00:33
3878
12
原创 px4飞控和机载电脑通信:机载电脑接收飞控的自定义px4消息
自定义mavros消息mavros能够实现px4飞控和机载电脑之间消息的实时通信,对于大部分的消息的通信mavros以及实现了.但是,有时候我们想要自定义mavros来实现消息在飞控和机载电脑之间通信.通信是双方的,即:1:飞控—>机载电脑2: 机载电脑—>飞控这里我们先实现第一部分:把传感器收集到的数据从飞控发送到机载电脑,这一部分也包括两个小的部分:飞控发送数据和机载电脑接收数据.这里以发送超声波数据为例.pixhawk版本:pixhawk4px4版本:1.11.2ros版本
2021-03-29 10:46:55
6132
1
转载 launch
这里写自定义目录标题launchlaunchhttps://www.cnblogs.com/hiram-zhang/p/10393328.html
2020-12-24 08:39:55
188
原创 信息增益的通俗理解
决策树的通俗理解决策树是机器学习中的重要内容,在决策树算法的学习过程中,信息增益是特征选择的一个重要指标,它定义为一个特征能够为分类系统带来多少信息,带来的信息越多,说明该特征越重要,相应的信息增益也就越大。最近在知乎上看见一篇对信息增益将得特别形象的文章,特地记录下来。[传送门:https://www.zhihu.com/question/22104055]...
2020-05-23 16:25:11
462
原创 信息熵的通俗理解
信息熵的通俗理解信息量的理解信息熵决策树是机器学习领域比较常见的算法,而信息熵在决策树的节点划分中具有重要作用。这里记录一下学习以便日后好复习。在理解信息熵之前先理解信息量这个概念。信息量的理解信息量是信息的度量,就好像速度的度量是m/s、时间的度量是秒一样。举个简单例子理解一下:比如今天早上起床看新闻,知道美国总统特朗普得了重病(hhhh,开玩笑的!),这对大家来说都是大新闻,信息量就比较大,概率这么小的事件发生了,有点出乎意料,而如果新闻内容是特朗普又说了中国什么坏话,你可能觉得没什么(因为他经
2020-05-23 10:54:40
1073
原创 双线性差值详解
双线性差值详解双线性差值详解双线性差值详解最近在学习FCN方面的知识,但是对于双线性差值的知识一直不是特别的懂,网上找了很多的博客讲的也不是特别清楚,这里讲讲自己的一些见解。双线性差值这个问题不要再二维中去理解,需要把维度提高高三维。...
2019-12-20 14:29:40
2088
原创 Can not connect to the Service chromedriver的解决方法
具体的错误如下:selenium.common.exceptions.WebDriverException:Message: Can not connect to the Service chromedriver其实有很多问题能够导致出现这个问题,我是在用selenium爬取数据时出现的这些问题,网上找了很多办法,包括:1)浏览器和chromedriver.exe的版本不一致,可以在下面这个...
2019-10-24 11:24:49
2746
原创 FailedPreconditionError (see above for traceback): Attempting to use uninitialized value的解决办法
遇到这个Error一般都是因为tensorflow中的变量没有初始化造成的。但是,在我调试的过程中,就算明白出现这个问题是什么原因,但是还是花了我很多时间来解决。假如你的程序里的变量没有初始化,你可以用tf.global_variables_initializer()来对全部的变量进行初始化。那假如你用了函数这个还是出现这个问题,有可能就是你在用来这个函数来初始化之后,又定义了其他的变量。导致...
2019-10-16 15:00:37
3284
原创 python实现12种排序算法的可视化
目录可视化实现前面几天在一个社区中看见一片关于使用python可视化排序算法的文章,觉得很有趣,这里把它记录下来,分享给大家。可视化实现对于每一个程序员来说,排序算法都是应该掌握的基本技能,但是之前在用C++编写程序的时候总会觉得这个过程太枯燥,而且并不直观,一个偶然的机会在一个社区:python中文社区。看见了关于排序算法的实现。这里介绍了12中算法,基本上囊括了现在比较流行的排序算法。...
2019-09-23 14:37:25
1113
原创 RL(十四)深度确定性策略梯度算法
前面我们讲了深度强化学习,虽然强化学习和深度学习得到了一个很好的结合,但是他们在实际的使用中还是有一些限制的,比如算法模型容易过估计、无法处理连续动作控制任务。尤其是无法使用连续动作这个缺点,极大的限制了DQN的使用。所以本节就来学习可以处理连续动作的深度确定性策略梯度算法(DDPG)。1、背景介绍在2014年首次提出了确定性策略梯度算法,并证明了该算法对连续动作任务的有效性。该算法在策略梯度...
2019-08-26 22:42:19
1869
原创 RL(十三)深度Q网络(DQN)
目录1、神经网络和强化学习的差异对比2、DQN(Depp Q-Network)算法2.1神经网络来近似价值函数在前面的学习中,我们主要是学习强化学习这一内容,强化学习具有很好的决策能力,但是在很多的实际任务中,我们不仅仅需要我们的算法有决策能力还要有很好的感知能力。而在现在的机器学习中,深度学习就具有很好的感知能力,并且在很多的方面得到了应用。那如果把他们的各自的优点结合起来是不是就能很好的解决...
2019-08-25 16:37:24
4595
原创 RL(十二)基于模拟的搜索
目录1、基于模拟的搜索概述2、蒙特卡罗搜索3、蒙特卡罗树搜索3.1蒙特卡罗树的评估3.2蒙特卡罗树的模拟4、时间差分搜索前面一章通过构建环境模型,结合真实的经验数据和模拟经验数据来解决强化学习问题。本章结合前向搜索和采样法,构建更加高效的模拟搜索算法——基于模型的搜索算法。1、基于模拟的搜索概述首先了解什么是前向搜索。前向搜索算法将当前状态sts_tst作为根节点构建一个搜索树,并使用马...
2019-08-24 15:49:58
461
原创 RL(十一)整合学习与规划
目录1、基于模型的强化学习概述2、学习过程前面我们讲了很多的基于价值、基于模型的算法,本章将会介绍基于模型的强化学习算法。1、基于模型的强化学习概述前面我们有讲过动态规划来求解强化学习问题,那就是一个简单的基于模型的强化学习任务,但是那个算法的状态转移概率是知道的,或者说很容易算得出来的。但是对于比较复杂的问题,想得到状态转移模型就没有那么容易。前面讲的解决办法就是绕过这个问题,不求这个状态...
2019-08-23 13:58:33
587
3
原创 RL(十)Actor-Critic方法
目录1、算法原理2、算法流程3、Actor-Critic方法的优缺点前面的文章我们讨论了基于价值与基于策略的算法来解决强化学习任务,每一种方法都有各自的优缺点。在基于策略的算法中我们会使用蒙特卡罗策略梯度算法来解决问题,它是使用episode序列的平均累计回报GtG_tGt来估计动作值函数qπθ(s,a)q^{π_θ}(s,a)qπθ(s,a),虽然数据无偏,却带来就较大的噪声和方差。而Ac...
2019-08-22 16:19:55
3478
原创 RL(八)值函数近似法
目录1、大规模强化学习值函数近似法概述前面一章我们讲了Sarsa算法和Q-learning算法。当状态空间和动作空间比较大时,精确获得状态值v(s)和动作值q(s,a)非常困难。此时可以通过寻找状态值或动作值函数的近似函数代替对应的原函数,以降低计算的复杂度。具体可以用线性组合、神经网络等方法来寻找近似函数。在了解值函数近似方法前,先了解什么是大规模学强化习。1、大规模强化学习其实前面所讲...
2019-08-21 15:35:10
2854
原创 RL(七)Sarsa和Q-learning
目录1、sarsa算法1.1为什么叫sarsa?1.2sarsa算法原理1.3 Sarsa算法流程2、Q-learning算法2.1Q-learning算法的引入2.2Q-learning算法原理2.3Q-Learning算法流程3、总结前面一篇文章我们已经讲了时序差分的基本内容和预测问题的求解办法,但是对于控制问题还有深入了解,这篇文章就是介绍时序差分的控制问题。1、sarsa算法时序差分...
2019-08-20 15:47:02
1707
原创 RL(六)时序差分法(TD)
目录时序差分概述时序差分概述前面我们讲了基于模型的动态规划和不基于模型的蒙特卡罗算法,他们都有各自的优点和缺点。动态规划能够很好的基于模型来求解强化学习,但是现实问题中很少能提前知道这个模型;蒙特卡罗算法能够一定程度上结局无模型的强化学习任务,但是它必须在拥有完整的序列的前提下才能得到好的效果,这在现实中也很难实现。未来更高效的求解强化学习任务,我们基于自举方式的动态规划和基于采样思想的蒙特卡...
2019-08-20 10:31:57
3222
原创 RL(五)蒙特卡罗算法求解强化学习
目录1、蒙特卡罗算法2、为什么要使用蒙特卡罗算法3、蒙特卡罗法求解强化学习预测问题4、蒙特卡罗法求解强化学习控制问题4.1、固定策略法4.2、非固定策略法5、总结前面一章用动态规划解决了强化学习问题,但是这个方法只是用基于模型的方法来求解的,即我们事先是知道状态转移方程P的,但是在很多的问题中,我们是不知道这个状态转移方程的,所以我们就必须用其他方程来解决强化学习问题。这篇文章就是用不基于模型的...
2019-08-19 15:49:50
1321
1
原创 RL(四)动态规划解决强化学习
目录动态规划和强化学习的联系前面一篇博客讲了马尔科夫决策过程和贝尔曼方程,这一篇我们在此基础上用动态规划来求解强化学习问题。动态规划和强化学习的联系既然要用动态规划来解决问题,首先要明白什么是动态规划。动态规划是运筹学的一个分支,是求解决策过程(decision process)最优化的数学方法。动态规划的关键点有两个:一是问题的最优解可以由若干小问题的最优解构成,即通过寻找子问题的最优解...
2019-08-18 21:17:51
1439
原创 RL(三)MDP与贝尔曼方程
目录马尔科夫决策过程最优策略前一篇文章讲了强化学习的一个大概分类,这篇文章来介绍一下马尔科夫决策过程和贝尔曼方程。马尔科夫决策过程前面一篇文章已经对马尔科夫性有了一个大概的了解(未来状态只与当前状态有关,与历史状态无关),但是对MDP并没有一个很好的定义。在《人工智能-一种现代的方法》中对MDP有一个定义:对完全可观察的环境,使用马尔科夫转移模型和累加回报的这种序列式决策问题成为马尔科夫决策...
2019-08-18 19:01:54
1630
原创 RL(九)基于策略的强化学习
目录为什么使用基于策略(Policy-based )的算法怎么迭代策略前面的算法都是基于价值来算的,但是当处理连续动作的问题时,就显得力不从心了,因为我们需要求的Q表太大,根本无法满足我们的需要。前面我们在算法分类的时候也讲过,我们可以按基于价值和基于策略的方式来给RL分类,所以这篇博客就是用基于策略算法来求解强化学习问题。为什么使用基于策略(Policy-based )的算法前面讲到基于价...
2019-08-18 16:01:05
6338
原创 RL(一)强化学习简介
目录1、什么是强化学习?1.1 强化学习和监督学习、非监督学习的区别。1、什么是强化学习?对于爱好计算机技术和对社会前沿技术比较关心的人来说对人工智能(artificial intelligence)应该都不会陌生,人工智能又包含机器学习(machine learning),机器学习又包含三个部分:监督学习(Supervised Learning)、非监督学习(Unsupervised Lea...
2019-08-14 15:50:22
1033
原创 Scrapy error : exceptions.AttributeError: 'HtmlResponse' object has no attribute 'urljoin'
目录用scrapy框架的爬取文件,构造绝对url时出现:Scrapy error : exceptions.AttributeError: 'HtmlResponse' object has no attribute 'urljoin'用scrapy框架的爬取文件,构造绝对url时出现:Scrapy error : exceptions.AttributeError: ‘HtmlResponse...
2019-05-29 15:46:59
3703
原创 复习python爬虫的体会
目录python爬虫容易遇见的坑python爬虫容易遇见的坑今天准备复习一下python爬虫的知识,准备爬取虎扑NBA的相关新闻。刚开始在用scrapy创建项目时就遇到无法创建的错误,后面查找相关博客才 解决。在用python爬取数据时,一定要注意爬取的网站的类型,是否需要登录、是静态网页还是动态网页。...
2019-05-27 19:47:42
527
原创 scrapy创建项目时出现:TimeoutError: [WinError 10060] 由于连接方在一段时间后没有正确答复或连接的主机没有反应,连接尝试失败的解决办法。
目录在使用scrapy创建项目时出现:TimeoutError: [WinError 10060] 由于连接方在一段时间后没有正确答复或连接的主机没有反应,连接尝试失败。网上关于这个错误很少,后来查了一下,发现是防火墙的问题。之前用scrapy创建项目的时候并没有出现过这个问题,猜想可能是之前翻墙时用了代理,导致无法创建项目。解决办法:关闭防火墙。这个可以自己在网上找怎么操作。至于关闭防...
2019-05-27 12:55:52
4193
原创 matlab图像处理基础,不调用内部函数
目录matlab中不调用内部函数做简单图像处理1、图像读取、显示、画横线,对角线、圆2、matlab中不调用内部函数做简单图像处理1、图像读取、显示、画横线,对角线、圆图片的读取和显示是比较简单了,这里就不多做介绍。这是划画线是在图片的1/2高处画一条横线,这个也比较简单,画对角线时不能想当然的直接用一个遍历,把x和y的值变成其他颜色,因为图片大多不是正方形,如果用这种方法得到的不是真正的对...
2019-05-26 20:31:06
2710
原创 求在线雇佣问题中最好雇佣者出现的概率及概率最大时最好雇佣者的位置
目录用蒙特卡罗算法模拟在线雇佣问题问题一用蒙特卡罗算法模拟在线雇佣问题问题一最好的那个人出现的概率最大时 k 的取值和最大概率?在面试一个应聘者之后,我们能够给每人一个分数。在面试过j个人之后,我们知道这j个人中的最高分,但是不知道后面的n-j个会不会有最高的。所以我们决定采取下面的方法:选择一个正整数k<n。面试然后拒绝前k个应聘者,再雇佣其后比前面的应聘者有更高分数的第一个应聘...
2019-05-24 22:35:05
1031
原创 用自己的数据在tensorflow中用逻辑回归分类iris鸢尾花种类
目录导入数据导入数据网上有很多的关于鸢尾花分类的博客都是从sklearn中直接导入的,因为上课的需要,所以这次用自己的数据来导入。首先看看数据:这里的前4列是花的特征,且只有两种花(最后一列独热编码只有0,1),当然3种花的做法和两种花的做法是一样的。代码:def log_re(path,*batch):# 从文件夹中读取数据data = np.loadtxt(path, dty...
2019-05-22 14:10:08
583
原创 第一篇博客
这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Ma...
2019-05-12 20:49:16
107
原创 第一次面试经历总结
目录**第一次面试经历总结**面试前的准备项目经历第一次面试经历总结作为非重点大学的本科生,想找一份好的工作真的比较难,这几天都在忙着实习的事,今天终于忙完了,记录一下这几天的经历面试前的准备面试前肯定是要有所准备的,不可能啥都不准备就去面试,这样的结果只会是失败。准备工作时要按着自己想要的工作方向去准备,不能什么方向都来一下,却什么都不精通,不然当面试官问你问题的时候可能回答就不是特别的...
2019-05-12 20:35:55
1244
2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人