使用OMPL内置的infoRRTstar算法模块和FCL碰撞检测库实现当前点和目标点的轨迹规划, 参考文章:https://www.cnblogs.com/shhu1993/p/7062099.html 因为我们的SLAM底盘轨迹是二维的,这样说可能不太准确,你可以说它的轨迹在给定小的区域内是二维的,因为野外/室外的地面有坡度和沟壑,所以我们要做的是二维RRT. 有关RRT的论文维基百科已经列的很全了: https://en.wikipedia.org/wiki/Rapidly-explorin…
本文使用的方法不是从内部修改ORBSLAM2源码以获取稠密点云,而是先从ZED2 sdk获取以摄像头坐标系为描述的三维点云/作为点云地图的一个子集,然后融合IMU与ORB_SLAM2进行实时定位,通过点云滤波,点云融合建图.   以上是在室内实验的demo,由于是纯双目,没有深度传感器,在白墙和地板上有些失真,下次等移动平台到了我会去室外实验.   一.获取实时坐标和点云图   使用ORBSLAM2获取当前姿态,同时ZED2 利用其IMU数据对速度加速度积分得出另一个姿态,考虑到ORBSLAM2…
  前面我们已经得到了当前底盘在世界坐标系中的位姿,这个位姿是通过融合ORB_SLAM2位姿和IMU积分得到的,在当前位姿已知的case下,给SLAM小车设置一个goal,我这里是通过上位机设置,然后使用上篇文章中的轨迹规划方法就可以得到一个路径Queue. 依次执行这个队列里的离散点,就可以到达设置的目标点了.本篇文章主要内容分享一下我是如何通过闭环控制使得小车在实际环境中从A点运动到目标点B点,才疏学浅,抛砖引玉.本文没有使用ROS里的Navigation包,而是自己封装了一个Navigat…
重点介绍如何利用50元左右的设备,抓包并还原SMS短信内容: ps:研究GSM Sniffing纯属个人兴趣,能抓SMS报文只是捡了个明文传输的漏子,切勿用于非法用途.就像sylvain说的,osmocomBB并不是为抓包而实现的,如果没有足够的GSM相关知识,想实现还原语音通话内容根本就无从下手. ---------------------------------------------------------------------------------------------------…
深入PCI与PCIe之二:软件篇 https://zhuanlan.zhihu.com/p/26244141 我们前一篇文章(深入PCI与PCIe之一:硬件篇 - 知乎专栏)介绍了PCI和PCIe的硬件部分.本篇主要介绍PCI和PCIe的软件界面和UEFI对PCI的支持. PCI/PCIe软件界面 1.配置空间 PCI spec规定了PCI设备必须提供的单独地址空间:配置空间(configuration space),前64个字节(其地址范围为0x00~0x3F)是所有PCI设备必须支持的(有不…
OA办公软件篇(一)-组织架构 背景 作用 迭代历程 具体实现 写在最后   背景 在说组织架构之前,我们先来说说OA本身. 百度百科解释OA为:办公自动化(Office Automation,简称OA),是将现代办公和现代计算机技术结合起来的一种新型办公方式. 钉钉.企业微信都属于市面上比较成熟且用户群体广泛的OA办公软件,钉钉是标准的老板思维,企业微信则是更侧重于生态圈的打造. 我们公司目前是全员都使用公司自研的OA系统来进行上下班打卡.审批等操作.在过去,不同的子公司曾经使用过不同的OA软…
背景 作用 迭代历程 具体实现 写在最后   背景 在前面两篇文章中,我们分别讲了组织架构和权限管理,今天我们来讲一个跟组织架构关系比较密切的功能-审批流. 审批流,通俗来说就是一个完整的审批流程,是一种非常常见的工作流,被广泛应用于OA软件中.它的本质实际上是决策,是效率和责任的统一体.   在过去,我们拿着需要签字盖章的文件线下一个个办公室一个个人找过去签字盖章,这个过程就是审批流的原型:现在,我们将这个过程放到线上,解放了发起人的双腿和时间,让审批这个过程不再"艰难",动动手指即…
iOS系列 基础篇 04 探究视图生命周期 视图是应用的一个重要的组成部份,功能的实现与其息息相关,而视图控制器控制着视图,其重要性在整个应用中不言而喻. 以视图的四种状态为基础,我们来系统了解一下视图控制器的生命周期. 在视图不同的生命周期中,视图控制器会回调不同的方法,具体如图: 在视图控制器已被实例化,视图被加载到内存中时,会调用viewDidLoad方法,这时视图并未出现. 在该方法中,通常会对所控制的视图进行初始化处理. 视图可见前后会调用viewWillAppear:方法和viewD…
智能家居-1.基于esp8266的语音控制系统(开篇) 智能家居-2.基于esp8266的语音控制系统(硬件篇) 智能家居-3.基于esp8266的语音控制系统(软件篇) 赞赏支持 QQ:505645074 树莓派安装及配置 镜像文件下载地址 https://www.raspberrypi.org/downloads/ 安装apache apollo(MQTT代理服务器) sudo tar -zxvf apache-apollo-1.7.1-unix-distro.tar.gz apache-a…
权限管理的背景 权限管理的作用 迭代历程 关键名词释义 权限管理模型 具体实现 写在最后   权限管理的背景 在OA办公软件篇(一)-组织架构一文中,我们说到组织架构是软件系统的权限体系的重要搭建依据,软件根据不同员工在组织中的位置给予不同的权限,比如说普通员工对于软件只有查看和使用的权限,普通管理员对于软件有查看和修改的权限,超级管理员则拥有最大权限等.这一篇文章就将移动端和管理端结合结合起来讲讲权限体系搭建的一些方式和使用效果做一个讲解. 百度百科上面关于权限管理的解释为:"权限管理一般指根…
参考资料及致谢 本文的绝大部分内容转载自以下几篇文章,首先向原作者致谢,希望自己能在这些前辈们的基础上能有所总结提升. 1. 运动规划/路径规划/轨迹规划的联系与区别 https://blog.csdn.net/wx545644217/article/details/54175035 一.基本概念 运动规划Motion Planning 路径规划Path Planning 轨迹规划Trajectory Planning 运动规划由路径规划(空间)和轨迹规划(时间)组成,连接起点位置和终点位置的序…
时隔两周,我又回来了. ​ 本期内容如题,ZED 2的SDK功能还是挺多的,包括轨迹跟踪,实时建图等等.虽然由于是商业产品,我看不到他们的源代码,但是根据使用情况来看,ZED 2内部是采用了IMU和光学信息融合的算法,并且IMU的数据在决策权重上占了更大的比例,至于为什么我会在后文讲到.关于ORB_SALM2,它给我们提供了目前来说效果比较好的实时定位和稀疏地图构建功能,同时支持单目.双目和RGB-D摄像头的SLAM算法,但是目前来说大多数SLAM工程应用都是用来做导航避障,单单的稀疏地图并不能…
作者:良知犹存 转载授权以及围观:欢迎添加微信公众号:Conscience_Remains 总述 GPS我们都知道,一种用来全球定位的系统,后来俄罗斯推出了格洛纳斯定位系统,中国推出了北斗定位,欧盟有伽利略,印度与日本也有有发展.所以后来把覆盖全球的自主地利空间定位的卫星系统成为GNSS. 现在卫星定位那么热,那么作为一个嵌入式人怎么获取这些数据为我们所用呢?下面就听作者一一道来. 上一篇文章的传送门从NMEA0183到GNSS定位数据获取(一)原理篇 需要资料和代码的朋友可以关注公众号回复GN…
对于美好事务的追求无论何时都不算晚. ** 文章内容来着我整理的fetool,以下内容可能更新不及时 ** Mac 下的软件那么多,又是免费又是付费,应该怎么选呢?我来分享下我的推荐列表,推荐的优先级老规矩,从上往下依次降低. Alfred - 免费,绝对的推荐Top1,很提效率,高级版 Powerpack 售价 £17.除了能快速搜索和打开应用程序之外,查找文本文件.全文检索.调起浏览器搜索和计数器都是俺经常使用的功能.如果想知道具体咋用,推荐阅读老池(池建强)的文章:<神兵利器-Alfred…
概要 本章,会对synchronized关键字进行介绍.涉及到的内容包括:1. synchronized原理2. synchronized基本规则3. synchronized方法 和 synchronized代码块4. 实例锁 和 全局锁 转载请注明出处:http://www.cnblogs.com/skywang12345/p/3479202.html 1. synchronized原理 在java中,每一个对象有且仅有一个同步锁.这也意味着,同步锁是依赖于对象而存在.当我们调用某对象的sy…
4.碰撞检测 碰撞概述: 游戏世界里,游戏对象不能做出如同在真实世界里的物理运动效果.对于大部分游戏来说,都要为其添加物理系统,让其可以模拟真实世界发生的物理运动.但是在这个打飞机游戏Demo中,是用脚本代码来实现对碰撞事件发生的检测的,下文将详细介绍实现的方法. 碰撞检测原理: 为物体创建子空Actor,作为物体包装盒用于对碰撞事件发生的检测,当包围盒直接发生交叉.包含等关系时候,判定触发碰撞事件,产生相应碰撞效果,流程图如图5-1所示.  图5-1 实现方法: 步骤1: 碰撞检测体包围盒的制…
4.如何实现触控操作 触控操作概述: 随着APPLE.Samsung.SONY等众多公司,将掌机.电脑和手机等产品在触控领域的不断探索,以触控为操作的机型越来越多的被投放到市场当中.触控游戏.触控软件的大量被开发以和应用,宣布着触控时代的到来.跑酷游戏作为一直以来备受玩家亲睐的游戏,大量的移植到触控平台上.当触控游戏操作界面,摆脱了传统的点控操作,又是怎样实现玩家与游戏交互的呢?这就较之以前的跑酷游戏,需要我们先对在触控板上的操作进行指令判定,进而游戏角色根据相应指令执行相应操作. 原理: 如图…
学会使用专业软件检测与修复电脑硬件故障问题也是程序员的一种软技能. windows篇 情景:如何获取电脑硬件的真实信息.(如何检验选购回来的硬件是否正品) 自检:使用AIDA64软件检查电脑硬件,能详细分析电脑中CPU.主板.内存.硬盘.显示屏.显卡.外部设备等真实信息.并且可以通过一些基础测试来电脑硬件状况. 情景:通电情况下,电脑能正常进入BIOS系统,进入windows系统,但进入出现黑屏情况,有显示鼠标箭头. 原因:1.系统响应速度慢.(出现率50%) 2.驱动软件冲突.(出现率20%)…
目录: 前言 HarmonyOS 简介 DevEco Device Tool(windows下) 获取源码(切换到ubuntu) 烧录程序(切换回windows) 前言上一篇,我们在 Win10 上用虚拟机安装了 Ubuntu,并设置了文件共享.这一篇,在此基础上编译鸿蒙os的源码,并进行设备烧录.  HarmonyOS 简介1. 系统定义HarmonyOS是一款"面向未来".面向全场景(移动办公.运动健康.社交通信.媒体娱乐等)的分布式操作系统.在传统的单设备系统能力的基础上,Har…
当SLAM小车能够以较高的精度运动到人为设置的目标点时,下一步就是把SLAM小车放到一个陌生的环境中,让它自己建图了.为什么?因为它已经是一只成熟的SLAM小车了.   我这里写的比较简单,刚写还没几天,不是很完善,但是实际测试了一下感觉还行,原理如下图:   类似雷达发射射线,获取前方各个方向能够前进的最大距离,概括的说就是不断需找一条前方最长的直线路径,然后朝着这个方向运动.当然了,距离都得大于一个threshold,不然很有可能撞车,如果都很小,就turn around换个角度寻找,再不济…
建议用vryL,GUI界面,功能更全,支持订阅. https://github.com/ShieldQiQi/vryL​github.com 下面的内容不用看了,除非你更喜欢命令行界面.   To remove all barriers in the way of science 很喜欢Sci-Hub的这句话,科学的道路上不应该有障碍.     事情的起因是我需要给orb_slam2_ros 功能包安装依赖,但是每次 rosdep update 都是在某一个地方 Timeout,于是我试图把原来…
多态 多态的概念 有这样一个例子.早上我和同事说口渴了.结果:A同事拿着我的水杯去给我接了一杯水.B同事顺手在饮水机上拿了一次性纸杯给我接了杯水.C同事给了我一瓶他早上刚买的饮料.同事们得到的是同样的请求,但是三个人都有各自的解决办法,这就是多态. 在面向对象的程序设计理论中,多态(polymer phism)指的是,同一操作作用于不同类的实例时,将产生不同的执行效果.即不同类的对象收到相同的消息时,也能得到不同的结果. 我们知道,OC是一门动态语言,在使用多态时,系统会进行动态检测,以调用真实…
电解电容: 多数在1μF以上,直接用数字表示.如:4.7μF.100μF.220μF等等.这种电容的两极有正负之分,长脚是正极. 独石电容: 独石电容器是多层陶瓷电容器的别称, 简称MLCC 读数方法:把"色环表示法"用到电容上来:这又是一种巧妙的演绎!我们在一些瓷片电容上往往看到这样的标记:"103","104","473"等,这里,第三个数字(个位数字)并非通常理解的个位数,它和四色环电阻的第三环一样,告诉人们前两位数字后…
iOS开发多线程篇—线程间的通信 一.简单说明 线程间通信:在1个进程中,线程往往不是孤立存在的,多个线程之间需要经常进行通信 线程间通信的体现 1个线程传递数据给另1个线程 在1个线程中执行完特定任务后,转到另1个线程继续执行任务 线程间通信常用方法 - (void)performSelectorOnMainThread:(SEL)aSelector withObject:(id)arg waitUntilDone:(BOOL)wait; - (void)performSelector:(SE…
时隔一个多月我又回来啦! 坚持真的是很难的一件事,其它事情稍忙,就很容易说服自己把写博客的计划给推迟了. 好在终于克服了自己的惰性,今天又开始了. 本篇继续我的Luaframework学习之路. 一.规范开发模式 此前的示例中,动态加载的panel都默认以GuiCamera为父节点,且面板的大小设置得有些随意,为方便后续开发,现做一些调整和规范. 1.设定本项目的开发分辨率为1334x750(Game视图分辨率也设置为这个大小): 2.调整相机,将原有的GuiCamera从Canvas下拖离出来…
本文记录ubuntu下安装opencv过程,步骤来自 opencv官网可以对照官网步骤:https://docs.opencv.org/3.4.0/d7/d9f/tutorial_linux_install.html(1).Required Packages(安装必要的库,以及想要的功能的库,使用cmake ..时会检查哪些依赖库安装了,然后就会开启哪些功能对应的写入到Makefile文件中,如果有些需要的库没有安装,那么对应的功能就不能使用): GCC 4.4.x or later CMake…
计算机软件是指计算机系统中的程序及其文档,也是用户与硬件之间的接口,用户主要通过软件与计算机进行交流,软件是计算机的灵魂.没有安装软件的计算机称为"裸机",无法完成任何工作.一般软件分为系统软件和应用软件两大类.硬件位软件提供运行平台.软件和硬件相互关联,两者之间可以相互转化.互为补充.计算机的软件分成系统软件和应用软件两大类. 系统软件 ​ 系统软件是指控制和协调计算机及外部设备,支持应用软件开发和运行的系统,是无需用户干预的各种程序的集合,主要功能是调度,监控和维护计算机系统:负责…
作者:vivo 互联网服务器团队 本文是<vivo营销自动化技术解密>的第5篇文章,重点分析介绍在营销自动化业务中实时营销场景的背景价值.实时营销引擎架构以及项目开发过程中如何利用动态队列做好业务流量隔离,动态发布,使用规则引擎来提升营销规则的配置效率等几种关键技术设计实践. <vivo营销自动化技术解密>系列文章: vivo营销自动化技术解密|开篇 设计模式如何提升 vivo 营销自动化业务扩展性 | 引擎篇01 状态机引擎在vivo营销自动化中的深度实践 | 引擎篇02 工作流…
好几天没有更新博客了,最近一顿乱七八糟的忙!今天简单更新第四章,这里只能说是简单介绍,因为权威的还是需要看Freemarker的官方中文手册! 好几天没有更新博客了,最近一顿乱七八糟的忙!今天简单更新第四章,这里只能说是简单介绍,因为权威的还是需要看Freemarker的官方中文手册! 好几天没有更新博客了,最近一顿乱七八糟的忙!今天简单更新第四章,这里只能说是简单介绍,因为权威的还是需要看Freemarker的官方中文手册! 好几天没有更新博客了,最近一顿乱七八糟的忙!今天简单更新第四章,这里…