node

Routing模块之A*搜索算法

陌路散爱 提交于 2020-01-19 20:35:08
Routing模块之A*搜索算法 Routing模块的结果是Planning模块生成参考线的基础,也就是通常所说的全局路径规划,Routing模块中除了对地图的抽象处理为可供搜索的topo地图,以及通过KDtree生成黑名单地图外核心算法是通过A* 算法生成全局路径,本文这里主要介绍Routing模块中如何同过A*算法在topo地图中搜索全局通路——全局路径。 1.逻辑框架 Routing模块的功能是从地图中搜索一条从起点–途经点–终点的全局路径,要完成这个功能,需要解决几个问题:1) 地图信息较多,看起来是连续的,如何进行抽象为可搜索的离散地图; 2) A*算法在抽象的地图中是如何搜索的; 3) 搜索的结果是如何使用的; 这里我们首先了解一下 routing模块大概的逻辑 : 通过上图可知routing实际上先将高精度地图转换为topo地图,topo地图是由一系列的节点和边组成,在生成节点和边的同时会对每个节点和边赋予一定的cost,通常cost与车道的长度、转弯等属性有关。然后通过A*算法对topo图进行搜索,最后对搜索的结果进行封装。 2.Topo地图 在高精度地图中采集的map信息包含了road,信号灯,车道线,物体,信号标识等很多信息,在路径搜索的过程中不能直接使用,而且主要关注的是lane及lane之间的关系,因此,routing模块主要是先将高精度地图中采集的base

ng-起步

落爺英雄遲暮 提交于 2020-01-19 20:09:32
目前,无论你使用什么前端框架,都必然要使用到各种 NodeJS 工具,Angular 也不例外。与其它框架不同,Angular 从一开始就走的“全家桶”式的设计思路,因此 @angular/cli 这款工具里面集成了日常开发需要使用的所有 Node 模块,使用 @angular/cli 可以大幅度降低搭建开发环境的难度。 Angular CLI 类似于 Vue CLI,是 Angular 官方开发的一个脚手架工具,专门用来开发构建 Angular 应用程序。 Angular 应用程序初始化 内置开发服务器 代码变更浏览器自动刷新 创建组件、指令、服务等集成工具 测试和维护 ...... Step 0. 安装依赖环境 安装 Node.js 下载地址 安装 确认 Node.js 环境 安装 npm npm 会随着 Node 的安装被一起安装 确认 npm 环境 安装 Python 下载地址 Windows 32 位 Windows 64位 确认 Python 环境 安装 C++ 编译工具 Angular CLi 在 Windows 上同时依赖 C++ 编译工具,所以我们这里也需要单独安装。 当然如果你的机器安装了 Visual Studio(注意,不是 Visual Studio Code)。 执行下面的命名安装 C++ 编译工具: npm install --global -

node学习(2)-路由读取图片

不羁的心 提交于 2020-01-19 19:59:35
通常我们开发项目的时候都要用到图片,那么nodejs是如何读取图片的呢? 我们来看一下,因为一个网页中图片的数量是不确定的,而我们不能每一张图片都去写它的src路径,这时候最好的方法就是写一个专门读取图片的路由,通过路由加载图片,这样既快捷又方便我们的理解。 文件目录: 我要加载的图片在index页面 注:问号?前面部分表示路由,问号后面才是图片的路径(相对于服务器文件),我的是first_server.js文件 1、在自己定义的目录下新建服务器文件 我的是: first_server.js var http=require('http'); var url=require('url'); var router=require('./module/router'); http.createServer(function (request,response) { response.writeHead(200, {'Content-Type': 'text/html;charset=utf-8'}); if (request.url!=='/favicon.ico'){//清除二次访问 var path=url.parse(request.url).pathname;//获取当前路径 if(path==='/')path='/index'; path=path.substr(1);/

nodejs 爬虫

纵饮孤独 提交于 2020-01-19 19:17:42
参考了各位大大的,然后自己写了个爬虫 用到的modules: utils.js     ---  moment module_url.js       var http = require("http");       //获得页面数据   var cheerio = require("cheerio");     //分析页面数据,提取内容   var sanitize = require("validator");   //过滤没用的数据 如空格等     var fs = require('fs');          //操作文件,保存结果   app.js    var async = require("async");    //异步操作 如each, filter   var ts = require("timespans")    //计算花费时间   var sanitize = require("validator");  //过滤没用的数据 如空格等 获得每个页面的话题列表       -- 并行的 根据话题列表获得的话题具体内容   -- 并行的 但是最后输出的内容是按顺序的 别处拷来的utils 里面重写了下console.log 增加了输出的时间 var moment = require('moment'); exports.inc = function

Nodejs之dgram

放肆的年华 提交于 2020-01-19 18:51:58
dgram dgram数据报提供了UDP数据包socket的实现。 const dgram = require('dgram'); 创建dgram.Sockrt的新实例,不使用new const server = dgram.createSocket('udp4'); error发生错误时触发 server.on('error', (err) => { console.log(`服务器异常:\n${err.stack}`); 关闭一个socket之后触发,一旦触发,则这个socket上将不会触发新的message事件。 server.close(); }); 当有新的数据包被socket接收时,message事件会被触发 server.on('message', (msg, rinfo) => { console.log(`服务器接收到来自 ${rinfo.address}:${rinfo.port} 的 ${msg}`); }); 开始监听数据包信息时触发 server.on('listening', () => { const address = server.address(); console.log(`服务器监听 ${address.address}:${address.port}`); }); server.bind(41234); // 服务器监听 0.0.0.0

Nginx——proxy_pass url 反向代理

北慕城南 提交于 2020-01-19 16:47:39
说到 Nginx 就不得不说 Nginx 的反向代理是多么的好用,一个指令 proxy_pass 搞定反向代理,对于接口代理、负载均衡很是实用,但 proxy_pass 指令后面的参数很有讲究。 在实际的应用中分为以下几种情况: 1.url 只是 host 这里指不包含 $uri ,如: http://host - √ https://host - √ http://host:port - √ https://host:port - √ http://host/ - x http://host:port/ - x 这时候 location 匹配的完整路径将直接透传给 url ,如: // 访问: / 后端: / // 访问: /api/xx 后端: /api/xx // 访问: /api/xx?aa 后端: /api/xx?aa location / { proxy_pass http://node:8080; } // 访问: /api/ 后端: /api/ // 访问: /api/xx 后端: /api/xx // 访问: /api/xx?aa 后端: /api/xx?aa // 访问: /api-xx?aa 后端: location /api/ { proxy_pass http://node:8080; } // 访问: /api/ 后端: /api/ // 访问:

Consul集群搭建

六眼飞鱼酱① 提交于 2020-01-19 12:37:38
一、集群搭建 准备三台机器 需要开启的端口,8300, 8301, 8500, 8600 机器1: 172.16.106.201 ./consul agent -server -bootstrap-expect 2 -data-dir=/data/consul/data -node=consul-server-1 -bind=172.16.106.201 -client=0.0.0.0 & 机器2: 172.16.106.202 ./consul agent -server -bootstrap-expect 2 -data-dir=/data/consul/data -node=consul-server-2 -bind=172.16.106.202 -client=0.0.0.0 & 机器3: 172.16.106.203 ./consul agent -server -bootstrap-expect 2 -data-dir=/data/consul/data -node=consul-server-3 -bind=172.16.106.203 -client=0.0.0.0 -ui & 参数说明: i. server: 以server身份启动。默认是client ii. bootstrap-expect:集群要求的最少server数量,当低于这个数量,集群即失效。 iii.

浏览器和Node 事件循环的区别

≡放荡痞女 提交于 2020-01-19 11:59:57
题目描述: 浏览器和Node 事件循环的区别 解题: 思路一: 其中一个主要的区别在于浏览器的event loop 和nodejs的event loop 在处理异步事件的顺序是不同的,nodejs中有micro event;其中Promise属于micro event 该异步事件的处理顺序就和浏览器不同.nodejs V11.0以上 这两者之间的顺序就相同了 function test () { console.log('start') setTimeout(() => { console.log('children2') Promise.resolve().then(() => {console.log('children2-1')}) }, 0) setTimeout(() => { console.log('children3') Promise.resolve().then(() => {console.log('children3-1')}) }, 0) Promise.resolve().then(() => {console.log('children1')}) console.log('end') } test() // 以上代码在node11以下版本的执行结果(先执行所有的宏任务,再执行微任务) // start // end // children1 //

kubernetes-二进制部署

走远了吗. 提交于 2020-01-19 11:40:12
systemctl restart kube-proxy systemctl restart kubelet 💗、单点安装文档: https://k8s.abcdocker.com/kubernetes_install.html#toc_1 💗、服务器互信,免密钥登陆: for i in 192.168.2.9;do ssh-keygen -t rsa -P "" -f /root/.ssh/id_rsa expect -c " spawn ssh-copy-id -i /root/.ssh/id_rsa.pub root@192.168.2.9 expect { " yes/no " {send "yes\r"; exp_continue} " password " {send "666666\r"; exp_continue} " Password " {send "666666\r";} } " done 💗、关闭分区: swapoff -a 💗、关闭防火墙: systemctl stop firewalld systemctl disable firewalld setenforce 0 sed -i '/SELINUX/s/enforcing/disabled/' /etc/selinux/config 💗、测试etcd是否可用: export ETCDCTL_API=3

安装nvm进行管理node版本

旧时模样 提交于 2020-01-19 10:21:34
如果您之前安装过node 那么在安装nvm之前先卸载node 1.下载nvm 链接: 点击下载地址 . nvm-noinstall.zip: 这个是绿色免安装版本,但是使用之前需要配置 具体怎么配置 我没也没去研究 nvm-setup.zip:这是一个安装包,下载之后点击安装,无需配置就可以使用,方便(这个是我使用的)。 2.安装 解压下载的zip,点击nvm-setup.exe文件并运行 3.执行nvm 指令 执行nvm 出现下面的版本号就表示安装成功了 4.修改settings.txt 在你安装的目录下找到settings.txt文件,打开后加上 将npm镜像改为淘宝镜像。提高下载速度!! node_mirror: https://npm.taobao.org/mirrors/node/ npm_mirror: https://npm.taobao.org/mirrors/npm/ 5. nvm使用和指令 -nvm install <version> [arch]:该可以是node.js版本或最新稳定版本latest。(可选[arch])指定安装32位或64位版本(默认为系统arch)。设置[arch]为all以安装32和64位版本。在命令后面添加–insecure,可以绕过远端下载服务器的SSL验证。 nvm version: 显示当前运行的nvm版本,可以简写为nvm v