基于CALRA和DQN实现自动驾驶的仿真
基于carla与DQN实现自动驾驶的仿真
1. 安装1.1 配置虚拟环境在anaconda prompt逐条运行下面命令,单独配置虚拟环境。car是名字,可以自己取,但是python必须是3.7。创建好后使用pip命令下载配置所有的库(方便换源,conda换源不太方便)。
123conda create -n car python=3.7conda activate carpip install carla,pygame,numpy
1.2 配置carla模拟器CARLA Simulator 点击进入官网,可以查看版本信息与官方文档。官方文档是我们学习的基础。下载模拟器时,应该进入官网查看最新版本,再前往carla的github主页进行下载,确保下载的是最新版本。因为只有最新版本的carla能通过pip命令安装依赖库,其他版本的安装非常繁琐(在下面第三大点有详细描述)。版本错误程序会直接崩溃。Releases · carla-simulator/carla (github.com) 根据版本下载对应的压缩包或使用git命令克隆下来。注意carla只支持Linux的乌班图系统 ...
基于深度学习的端到端自动驾驶
基于深度学习的端到端自动驾驶主体来源:钱斌的博客
1.模拟平台安装和基本使用1.1模拟器的安装下载地址:右键或点击此处或按住ctrl+/进入代码模式,复制链接到浏览器打开。
该地址中提供的模拟器是基于Unity开发的,是经过删减过后的可执行程序,不再需要额外安装unity,下载下来后就可以直接运行。目前覆盖windows、Linux、Mac共3个版本。以下只讲解如何在windows平台上运行和使用该模拟器。
下载完成后运行donkey_sim.exe文件即可进入模拟器。左边是设置,根据自己的需要进行设置即可。
在场景中,如果我们前面主界面使用了手工模式(paceCar处勾选manualDriving),那么我们就可以通过键盘来操控小车进行体验了。与一般的赛车游戏类似,W键表示前进,A表示左转,D表示右转,S表示后退。
在该模拟器中,控制小车的主要是两个参数:油门(W和S键)和转向角度(A和D键),这个与我们真实驾驶的汽车基本一致:挂挡+踩油门来控制前进动力,打方向盘控制车辆转向。为了能够实现自动驾驶,我们首先要能够根据这两个参数去控制模拟器里面小车的运行。我们怎么样通过Py ...
栈溢出
Windows栈溢出原文链接:Windows 内存损坏漏洞的现代探索 – 第一部分:栈溢出 (cyberark.com)
代码地址:https://github.com/forrest-orr/ExploitDev
前排提示:由于翻译的差异,“栈”与“堆栈”指的实际上是同一个东西,说的都是“stack”,然而,面向大多数刚刚接触编程的同学们,对于“堆”(heap)和“栈”的理解区分至关重要。因此,下文中应为“stack”的地方,统一称作“栈”,但难免有遗漏之处,请读者分清栈或堆栈与堆的区别,并海涵出现的疏忽。
介绍通过在现代操作系统上使用现代编译器记录自己的一些实验和研究来帮助解决过时的面向初学者的漏洞利用信息的问题。重点是Windows 10和Visual Studio 2019。
shellcodeshellcode是一段用于利用软件漏洞而执行的代码,shellcode为16进制的机器码,因为经常让攻击者获得shell而得名。shellcode常常使用机器语言编写。 可在寄存器eip溢出后,塞入一段可让CPU执行的shellcode机器码,让电脑可以执行攻击者的任意指令。
she ...
MD5
加密MD5是一种哈希算法,任意长度的输入经过处理后输出为128位的信息,且尽量使结果不冲突和信息不可逆。MD5以512位为一个分组处理输入,每个分组分成16个32位的子分组,经过处理后,输出四个32位分组,这四个32位分组级联后生成一个128位的MD5值
MD5的特点单向散列算法:将一种任意长度的消息数据压缩到某一固定长度,该过程是不可逆的。
MD5 Message Digest Algorithm 是对任意长度的消息进行运算,产生一个128位的消息摘要。
压缩性:任意长度的数据,算出的MD5值长度都是固定的。
容易计算:从原数据计算出MD5值很容易。
抗修改性:对原数据进行任何改动,哪怕只修改1个字节,所得到的MD5值都有很大区别。
强抗碰撞:已知原数据和其MD5值,想找到一个具有相同MD5值的数据(即伪造数据)是非常困难的。
MD5的作用是让大容量信息在用数字签名软件签署私人密钥前被”压缩”成一种保密的格式(就是把一个任意长度的字节串变换成一定长的十六进制数字串)。
在内存中是小端序存储
将原始数据每512bits为一个分组 (这就是前面要求填充到512整数倍的原因),对 ...
BFS
BFS解决迷宫问题迷宫问题Crawling in process… Crawling failed Time Limit:1000MS Memory Limit:65536KB 64bit IO Format:%I64d & %I64uSubmit StatusDescription
定义一个二维数组:
int maze [5] [5] = {
0, 1, 0, 0, 0,
0, 1, 0, 1, 0,
0, 0, 0, 0, 0,
0, 1, 1, 1, 0,
0, 0, 0, 1, 0,
};
它表示一个迷宫,其中的1表示墙壁,0表示可以走的路,只能横着走或竖着走,不能斜着走,要求编程序找出从左上角到右下角的最短路线。
输入
一个5 × 5的二维数组,表示一个迷宫。数据保证有唯一解。
输出
左上角到右下角的最短路径
解题思路使用结构体来保存横纵坐标即(x,y),输出没要求距离长度,定义一个step保存长度也可以
创建一个队列 queue q;
12345678910while(q不为空){if(到达右下角) ...
SHA1
SHA1安全哈希算法(Secure Hash Algorithm)主要适用于数字签名标准(Digital Signature Standard DSS) 里面定义的数字签名算法(Digital Signature Algorithm DSA)。
该算法输入报文的长度不限,产生的输出是一个160位的报文摘要。输入是按512 位的分组进行处理的。SHA-1是不可逆的、防冲突,并具有良好的雪崩效应。
算法: 1.数据末尾填充0x80 39 31 31 4d 61 6f 48 61 69 “911MaoHai” 39 31 31 4d 61 6f 48 61 69 80 9 * 8 = 72 2.计算原始数据的长度 72 = 0x00 00 00 00 00000048 39 31 31 4d 61 6f 48 61 69 80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ...
DFS
DFS一.深度优先搜索(dfs)1.什么叫dfs深度优先搜索类似于树的先序遍历;
是利用栈或者递归的方式实现的,体现出了后进先出的特点;
通俗来说就是一次访问一条路,一直朝着一个方向探索,直到遇到死路退回到前一个分支,继续探索;
一般来说,深度搜索解决的问题主要为寻求所有解和连通性。
2.遍历过程(1)从图中某个初始顶点v出发,首先访问初始顶点v。
(2)然后依次从v的未被访问的邻接点w,再从w出发进行深度优先遍历,直到图中所有与v有路径相通的的顶点都被访问过为止。
3.算法设计解决问题:(1)如何确定一个顶点是否访问过?
设置一个visited[]全局数组,
visited[i]=0表示顶点i没有访问;
visited[i]=1表示顶点i已经访问过。
(在图中也可以修改图本身来实现)
4.dfs算法模板1234567891011121314151617void dfs(int s){ if(找到解了) { 相应的操作; return ; } 尝试每一种可能 { if(满足条件) { 标记走过; 进行 ...
RC4
RC4什么是RC4 ? RC4加密算法是大名鼎鼎的RSA三人组中的头号人物Ron Rivest在1987年设计的密钥长度可变的流加密算法簇,之所以称其为簇,是由于其核心部分的S-box长度可为任意,但一般为256字节。
在密码学中,RC4(来自Rivest Cipher 4的缩写)是一种流加密算法,密钥长度可变。它加解密使用相同的密钥,因此也属于对称加密算法。所谓对称加密,就是加密和解密的过程是一样的。RC4是有线等效加密(WEP)中采用的加密算法,也曾经是TLS可采用的算法之一。
RC4已经成为一些常用的协议和标准的一部分,如1997年的WEP和2003/2004年无线卡的WPA; 和1995年的SSL,以及后来1999年的TLS。让它如此广泛分布和使用的主要因素是它不可思议的简单和速度,不管是软件还是硬件,实现起来都十分容易。
基本原理对明文使用同一个密钥异或两次最后得到的是原文
加密:原文和Keystream进行异或得到密文
解密:密文和Keystream进行异或得到原文
流程图解
生成秘钥流(KeyStream)从上图可以看出来,RC4加密原理很简单,只需要 ...
AvlTree
AvlTree定义AVL 树是一种平衡二叉树,得名于其发明者的名字( Adelson-Velskii 以及 Landis)。(可见名字长的好处,命名都能多占一个字母出来)。平衡二叉树递归定义如下:
左右子树的高度差小于等于 1。
其每一个子树均为平衡二叉树。
平衡因子: 某个结点的左子树的高度减去右子树的高度得到的差值。
AVL 树: 所有结点的平衡因子的绝对值都不超过 1 的二叉树。
为了计算平衡因子,我们自然需要在节点中引入高度这一属性。在这里,我们把节点的高度定义为其左右子树的高度的最大值。因此,引入了高度属性的 AVL 树的节点定义如下:
123456typedef struct node { int data; int height; struct node *left; struct node *right;}node_t, * nodeptr_t;
计算某一个节点的高度
1234567int treeHeight(nodeptr_t root) { ...
matplotlib
matplotlibwhy matplotlib?如果您使用过“工科神器”MATLAB,您一定会惊叹于MATLAB中惊人的可视化能力,其中的函数绘图,成为了无数SCI论文中真实数据配图的来源。小小的plot函数,画出了人类先进科学进步的曲线。
python中的matplotlib库,与MATLAB中的plot函数有点像,也许这正是它名字的来源。这是一个2D绘图库,利用它可以画出许多高质量的图像。只需几行代码即可生成直方图,条形图,饼图,散点图等。Matplotlib可用于Python脚本,Python和IPython shell,Jupyter笔记本,Web应用程序服务器和四个图形用户界面工具包。
希望以下教程可以为您带来一些帮助。
安装请查看上方anaconda教程,配置好python环境。使用命令pip install matplotlib 或 conda install matplotlib 进行安装。使用时,直接import即可。
Matplotlib.pyplotMatplotlib 中的 pyplot 模块是一个类似命令风格的函数集合,这使得 Matplotlib 的工作 ...