miniMAL

相机激光标定算法:从理论到实践

两盒软妹~` 提交于 2020-07-29 06:08:55
点击上方“ 3D视觉工坊 ”,选择“星标” 干货第一时间送达 本文是标定系列解读第三篇,介绍了Camera-Lidar标定,通过对一些基础知识和小细节进行讨论和理论推导,给出了一些可以提升标定精度的改进建议。 另外本文还给出了一个简单的开源代码对上述标定原理进行实践,以及提供了一个仿真程序,可以直观感受标定数据对系统可观性的影响。希望能够给大家一些启发。 目录 1. 前言 2. 理论 2.1 基于平面约束的相机激光标定算法 2.1.1 平面约束 2.1.2 2D 激光和相机外参数初始值求解 2.1.3 3D 激光和相机外参数初始值求解 2.1.4 外参数优化 2.2 推论:所有平行的平面提供的约束等价。 2.3 拓展:标定板的边界约束 3. 实践 3.1 代码梳理和上手操作 3.2 仿真代码的特别说明 3.2.1 系统可观性的判断 3.2.2 利用仿真代码验证平行平面提供的约束等价 3.2.2 利用仿真代码指导采集数据:如何充分旋转标定板 4. 结语 5. 参考文献 1. 前言 从理论上看,相机和激光之间外参数的标定原理非常简单,但在实际标定过程中,特别是一个初学者采集数据进行标定时,却发现标定结果非常不理想。如何采集有效的标定数据(何种运动轨迹,如何晃动标定板)对于激光相机标定而言非常重要。 读完本文,你会发现原来采集数据时标定板和传感器之间只做纯粹的平移运动是没有意义的

CentOS 7镜像下载源

本小妞迷上赌 提交于 2020-07-28 11:31:36
CentOS 7镜像下载源 一、 32位的Centos官网下载链接: CentOS 7 for _32-bit (i386) 下载地址: CentOS Mirrors List http://isoredirect.centos.org/altarch/7/isos/i386/ 鼠标单击上面链接后,进入下面页面中,会显示您所在区域的以下镜像应具有可用的ISO映像: http://mirrors.huaweicloud.com/centos-altarch/7.8.2003/isos/i386/ http://mirrors.bfsu.edu.cn/centos-altarch/7.8.2003/isos/i386/ 第一个是华为云提供的镜像源;第二个是北京外国语大学开源软件镜像站;其他的则有点远,可能打开网页速度及下载速度会稍慢。 我们选了 北京外国语大学开源软件镜像站 • HOME • EVENTS • BLOG • RSS • PODCAST • MIRRORS Index of /centos-altarch/7.8.2003/isos/i386/ Last Update: 2020-05-30 16:24 File Name ↓ File Size ↓ Date ↓ Parent directory/ - 0_README.txt 1.7 KiB 2020-04-24 21

Linux cma内存的使用

…衆ロ難τιáo~ 提交于 2020-07-26 23:33:00
CMA的全称叫做contiguous memory allocator,它是为了便于进行连续物理内存申请的一块区域,一般我们把这块区域定义为reserved-memory。 早期的Linux内核中没有cma的实现,如果驱动想要申请一个大块的物理连续内存,那么只能通过预留专属内存的形式,然后在驱动中使用ioremap来映射后作为私有内存使用。这样带来的后果就是有一部分内存将被预留出来不能作为系统中的通用内存来使用,比如camera、audio设备,它们在工作时是需要大块连续内存进行DMA操作的,而当这些设备不工作时,预留的内存也无法被其他模块所使用。 如何使得操作系统能够充分的利用物理内存呢?比如当一些设备需要使用大块连续物理内存时,可以比较容易的申请到,而当这些设备不工作时,这些内存又可以当做普通的内存那样被系统其他模块申请使用。引入CMA就是为了解决这个问题的,定义为cma区域的内存,也是由操作系统来管理的,当一个驱动模块想要申请大块连续内存时,通过内存管理子系统把CMA区域的内存进行迁移,空出连续内存给驱动使用;而当驱动模块释放这块连续内存后,它又被归还给操作系统管理,可以给其他申请者分配使用。 我前面的文章有介绍过《对于MIGRATE_MOVABLE的理解》,其中有讲到,buddy system在对内存进行管理时,不同size的内存块是分类管理的,其中有一类就是

1周第1课 Linux 认知、安装 Centos7

时光毁灭记忆、已成空白 提交于 2020-07-26 23:28:09
课堂笔记 重点整理、线索 笔记记录 重点: /boot 200M / 20G /usr 20G swap <4G,内存*2;>4G,最大8G /data 500G或余下所有 Minimal 开发工具 安装 centos7 1.光盘引导,默认第一项 2.验证介质(默认跳过) 3.选择语言、键盘、时区、设置root密码 4.设置root密码 5.分区(boot 200m 可强制为主分区,swap 分区大小为内存的两倍,最大8g。剩下全划给根分区) 6.选择Minimal ,建议选上开发工具 7.开始安装 实验环境分区 /boot 200M swap 内存*2 / 剩下所有 课后实战: 准备工作: 硬件:电脑一台(运行状态下 CPU 利用率不能超过 60% 、内存空闲不少于 2 GB 、硬盘空闲 40 GB 以上) 软件: vmwareworkstion8 ( windows )、 vmwarefusion( MAC _OS) 、 CentOS-7 安装介质或 ISO 文件 本次介绍 VMwareFusion 下 创建安装 Centos7.0 一、虚拟机的创建 打开vmware fusion 软件的资源库(依次选择左上方"窗口"-->"虚拟机资源库") 在弹出的窗口中选择 “ˇ” → “新建 … ”,点击“新建”按钮进行虚机的创建 选择“创建自定虚拟机”,点击“继续” 选择操作系统

这是一个可以显示Linux命令的工具

拈花ヽ惹草 提交于 2020-07-26 12:23:16
Progress进度查看器是一个简单的程序,可用于显示Coreutils 命令 的进度。它使用来自文件描述符的信息来确定 命令 的进度。Progress的优点在于它可以与其他 Linux 命令一起使用,比如watch。 实验环境 Centos 7.7 Minimal Progress工具的github地址:https://github.com/Xfennec/progress 安装 Progress工具依赖ncurses库,先安装ncurses-devel然后再编译安装progress [root@localhost ~]# yum -y install ncurses-devel [root@localhost ~]# git clone https://github.com/Xfennec/progress [root@localhost ~]# cd progress/ [root@localhost progress]# make && make install 运行progress 如果没有命令在运行,那么progress程序将退出并告诉你,没有命令正在运行。 [root@localhost ~]# progress No command currently running: cp, mv, dd, tar, cat, rsync, grep, fgrep, egrep,

CF 1132A,1132B,1132C,1132D,1132E,1132F(Round 61 A,B,C,D,E,F)题解

孤者浪人 提交于 2020-05-09 10:56:06
A.Regular bracket sequence A string is called bracket sequence if it does not contain any characters other than " (" and " )". A bracket sequence is called regular if it it is possible to obtain correct arithmetic expression by inserting characters " +" and " 1" into this sequence. For example, "", " (())" and " ()()" are regular bracket sequences; " ))" and " )((" are bracket sequences (but not regular ones), and " (a)" and " (1)+(1)" are not bracket sequences at all. You have a number of strings; each string is a bracket sequence of length 2 2. So, overall you have c n t 1 cnt1 strings " (("

Prime Path素数筛与BFS动态规划

筅森魡賤 提交于 2020-05-09 09:01:48
埃拉托斯特尼筛法(sieve of Eratosthenes ) 是古希腊数学家埃拉托斯特尼发明的计算素数的方法。对于求解不大于 n 的所有素数,我们先找出 sqrt(n) 内的 所有素数p1到pk ,其中 k = sqrt(n) ,依次剔除 Pi 的倍数,剩下的所有数都是素数。 具体操作如上述 图片所示。 C++实现 #include<iostream> #include<vector> using namespace std; int main() { int n; cin >> n; vector<bool> isprime(n + 5, true); vector<int> ans; for (int i = 2; i <= n; i++) { if (isprime[i]) { ans.push_back(i); for (int j = i * i; j <= n; j += i)isprime[j] = false; } } for (auto i : ans)cout << i << " "; cout << endl; return 0; } 整除问题 给定n,a求最大的k,使n!可以被a k整除但不能被a (k+1)整除。 输入描述 两个整数n(2<=n<=1000),a(2<=a<=1000) 输出描述 示例1 输入 555 12 输出 274

下载 CentOS 7 镜像文件

会有一股神秘感。 提交于 2020-05-07 17:45:36
CentOS 7 镜像文件的下载地址 CentOS 官网: https://www.centos.org/ 点击“ Get CentOS Now ” 点击想要下载的ISO镜像,(目前仅有“ DVD ISO ”和“ Minimal ISO ”, 以前还有“ Everything ISO ”;DVD、Minimal、Everything这个概念类似windows有家庭版、企业版、旗舰版的区分,一般建议选择 DVD ISO ,后面我会详细讲解它们之间的区别)。 选择任意一个红框部分的链接,下载ISO镜像。 上图部分英语翻译如下: In order to conserve the limited bandwidth available, ISO images are not downloadable from mirror.centos.org 为了节省有限的可用带宽,不能从 mirror.centos.org 下载ISO镜像。 The following mirrors in your region should have the ISO images available 您所在区域的下列镜像站应具有可用的ISO镜像。 Other mirrors further away 位于其它较远地方的镜像站。(镜像站相关概念见后文) Tips :就像 windows 有windows

Nginx Tutorial #1: Basic Concepts(转)

泪湿孤枕 提交于 2020-05-07 17:34:48
add by zhj: 文章写的很好,适合初学者 原文: https://www.netguru.com/codestories/nginx-tutorial-basics-concepts Introduction Hello! Sharing is caring, so we'd love to share another piece of knowledge with you. We prepared a three-part nginx tutorial. If you already know something about nginx, or if you'd just like to expand your experience and understanding - this is the perfect place for you! We will tell you how nginx works, going through the concepts behind it, how you can optimise it to boost your app's performance, and how to get it up and running quickly. This tutorial will have three parts: Basics

JS两种同步写异步的方法

夙愿已清 提交于 2020-05-06 11:52:38
async/await https://javascript.info/async-await 需要浏览器支持,后者使用webpack转换为ES5. There’s a special syntax to work with promises in a more comfortable fashion, called “async/await”. It’s surprisingly easy to understand and use. Async functions Let’s start with the async keyword. It can be placed before a function, like this: async function f ( ) { return 1 ; } The word “async” before a function means one simple thing: a function always returns a promise. Other values are wrapped in a resolved promise automatically. For instance, this function returns a resolved promise with the result of 1 ; let’s