自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

大白的博客

从嵌入式到C++开发

  • 博客(23)
  • 资源 (1)
  • 收藏
  • 关注

原创 Gazebo环境下VIO SLAM系统实现

Gazebo环境下VIO SLAM系统实现Gazebo环境下VIO SLAM系统实现简介0. 准备工作1. 搭建gazebo环境1.1 相机1.2 IMU2.VINS-MONO2.1 安装及make2.2 参数修改2.3 外参标定2.3.1 相机旋转关节控制器2.3.1 外参标定过程2.4 实验效果Gazebo环境下VIO SLAM系统实现简介迫于实体机器人不在手边的情形,gazebo不失为一种好的方案。但搜了下baidu和google,都没有很全的关于自己搭建gazebo环境下相机及IMU完成SLA

2020-05-23 12:35:27 3428 9

原创 simpleBGC32-软件代码开源

simpleBGC32官方只提供了硬件开源,导致市场上有大量的v1.3版的硬件电路板用于飞机云台,通过烧录官方给的hex文件实现基本功能。但是由于针对simpleBGC32的软件代码没有开源,所以很多需要进行二次开发的时候就比较麻烦。本人在项目中需要知道两个IMU的数据,用于计算基座相对相机的位姿,但是通过购买的simpleBGC32板子无法直接获取IMU数据,于是硬着头皮重新进行代码开发。代码工...

2019-10-24 22:48:07 5561 7

原创 select IO复用测试

服务器端测试代码如下:int main(){ int maxfd,s_ret,i; int client_fd; int sockfd;//socket返回值 struct sockaddr_in server_sockaddr,client_sockaddr; int sin_size, recvbytes; char ipstr[16]...

2018-08-26 11:14:21 379

原创 malloc内存管理总结

内存管理内存管理主要包含两个层面的内容: 1、操作系统内核相关的内存管理:物理内存层 2、库函数层:主要是堆内存,即malloc实现层 如果用户还有需要会在用户层再做一次内存管理机制,例如SGI STL中的内存管理机制(二级配置器)。由于篇幅有限,本文主要介绍库函数层的malloc实现机制。同时上述两层中由于操作系统等不同也存在差异,例如malloc层,Wind...

2018-08-14 13:03:49 5277

原创 Tinyhttpd开源项目阅读

Tinyhttpd轻量型服务器相比自己写服务器的思路,相同点:1、socket建立流程相同,首先定义port端口,新建socket返回文件描述符(int型),绑定sockaddr,再listen设定可连接套接字队列大小为5,再通过while(1)进行accept,查询已连接队列中是否存在socket已准备好,返回文件描述符; 2、新建一个线程来处理accept请求消息;不...

2018-08-03 01:17:38 7593 1

原创 ucos学习笔记

前一段时间笔者学习uCOS-III,第一次接触OS这个概念吧。下面把个人的学习笔记分享出来,仅供参考。1、前后台系统:后台程序是一个死循环,也称为“ 任务级 ”,前台程序则是中断服务程序,也称为“ 中断级 ”;一般的低成本应用多采用这种程序结构。2、实时内核:仅为一段软件代码,它把系统功能划分为多个任务,每个任务只完成特定的一个功能,通常都为死循环;CPU在任意时刻只能执行一个任务,但每个...

2018-07-23 20:27:20 420

转载 Linux和windows访问设备的方式比较

LInux一直秉承着一切皆文件的理念,但是如何把设备当做文件来处理呢?Windows又是如何处理设备的呢?参照前辈的译文       毕业后一直在学操作系统, 有时候觉得什么都懂了,有时候又觉得好像什么都不懂,但总体来说自认为对操作系统实现机制的了...

2018-07-12 16:12:35 3691

原创 Jlink与MCU连接

下载器:JLINKV8 主控芯片:FREESCALE K60DN512VLL10 开发环境:IAR两年没用过的板子和下载器 第一步先刷了个固件,win10 64位系统完美刷固件(https://blog.csdn.net/hzt12345hf/article/details/50846447) 然后打开IAR进行download,提示:“Could not measu...

2018-07-03 18:24:57 4048

转载 vector初始化

vector的几种初始化及赋值方式:(1)不带参数的构造函数初始化//初始化一个size为0的vectorvector<int> abc;12(2)带参数的构造函数初始化//初始化size,但每个元素值为默认值vector<int> abc(10); ...

2018-07-01 14:57:39 164

转载 Linux头文件整理

linux常用头文件详解POSIX标准定义的头文件<dirent.h>        目录项<fcntl.h>    &a

2018-06-30 22:47:52 1341 1

转载 linux下C/C++头文件梳理,看完这篇再也不会搞糊涂头文件了!

一:前言进行linux下C/C++服务端后台开发的都知道,需要跟各种头文件打交道。比如使用printf函数则需要引用#include <stdio.h>,使用STL的map容器则要#include <map>,使用socket网络编程则要#include &...

2018-06-30 22:43:45 1528 1

原创 剑指offer-数组中最小的K个数

题目描述:输入n个整数,找出其中最小的K个数。例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4。这是一个经典的topK问题。 根据一般的想法,对数组进行排序,再去前K个数作为结果。排序算法若采用快排,平均时间复杂度为O(n*logn)。 因此常用解法为构建最大(小)堆的策略来解topK问题,这种解法的平均时间复杂度为O(n*logk),所以很适合于海量数据...

2018-06-30 20:18:30 272

原创 fork()介绍

fork()函数: 用于创建一个进程,所创建的进程复制父进程的代码段/数据段/BSS段/堆/栈等所有用户空间信息;在内核中操作系统重新为其申请了一个PCB,并使用父进程的PCB进行初始化; 子进程执行的位置是fork()函数执行后的代码处,猜想是复制了父进程的PC指针给子进程。例题:#include "stdio.h"#include "sys/types.h"#include "...

2018-06-27 20:54:32 27405 3

原创 Robot Arm from solidworks to ros

Robot-Arm-from-solidworks-to-rosThere are some steps to compete import solidworks 3D file to ROS(RVIZ/Gazebo) and simulink the robot arm.windows下的操作: 安装SW2URDF插件 对机械臂solidw...

2018-06-27 20:47:02 566

原创 剑指offer:求1+2+3+...+n,不能使用乘除法、for、while、if-else、switch-case以及条件判断语句

剑指offer:求1+2+3+…+n,不能使用乘除法、for、while、if-else、switch-case以及条件判断语句常规解法:直接通过递归进行计算,结束条件为n==1class Solution {public: int Sum_Solution(int n) { if(n==1) return 1; else return n+S...

2018-06-27 20:23:38 217

原创 Lintcode-编辑距离

/* 描述 给出两个单词word1和word2,计算出将word1 转换为word2的最少操作次数。你总共三种操作方法:插入一个字符 删除一个字符 替换一个字符样例 给出 work1=”sailn” 和 work2=”failing”返回 3 */ 同样利用区间型动态规划建立二维数组,并将word1作为列,Word2作为行, 初始化表如图所示。 建立状态转移方...

2018-06-08 16:54:46 266

原创 Lincode 670. 预测能否胜利

题目描述: 给一由非负整数构成的分数数组. 玩家1 从数组的任意一端选择一个数字, 然后是玩家2, 然后又是玩家1 等等. 每一次一个玩家都只取一个数, 每个数只能取一次. 等到数组内分数都被取完后, 分数大的那个玩家获胜. 给一分数数组, 预测玩家1 是否是赢家.你可以假设每个玩家都想要使他的分数尽可能的大. 样例 给出 nums = [1, 5, 2] 返回 false (最初, 玩...

2018-06-08 12:16:59 484

转载 STL面试

1.说说std::vector的底层(存储)机制。 vector就是一个动态数组,里面有一个指针指向一片连续的内存空间,当空间不够装下数据时,会自动申请另一片更大的空间(一般是增加当前容量的50%或100%),然后把原来的数据拷贝过去,接着释放原来的那片空间;当释放或者删除里面的数据时,其存储空间不释放,仅仅是清空...

2018-06-05 14:45:20 260

转载 GRUB启动过程分析 & GRUB 引导程序配置

计算机在启动的时候,首先由BIOS中的程序执行自检,自检通过后,就根据CMOS的配置找到第一个可启动磁盘的MBR中的Boot Loader程序(一般在启动盘的第一个物理扇区,占416字节),并把控制权交给Boot Loader,由Boot Loader进一步完成操作系统内核的加载。当Boot Loader找到内核之后,...

2018-06-02 12:05:23 1811

转载 剑指offer_链表中环的入口结点

假设x为环前面的路程(黑色路程),a为环入口到相遇点的路程(蓝色路程,假设顺时针走), c为环的长度(蓝色+橙色路程) 当快慢指针相遇的时候:此时慢指针走的路程为:Sslow = x + m * c + a 快指针走的路程为:Sfast = x + n * c + a 则有:2*Sslow = Sfast → 2 * ( x + m*c + a ) = (x + n *c + a)...

2018-05-31 10:40:20 93

转载 操作系统-内存地址空间

存储器(仅指内存)分为rom和ram,在物理上是独立的器件,cpu操作他们时,都做为内存来处理,把他们总的看作一个若干存储单元构成的逻辑存储器,这个逻辑存储器就是我们所说的内存地址空间 8086的内存地址空间分布如下: 0x00000-0x9ffff 为主存(ram) 0xa0000-0xbffff为显存地址空间 0xc0000-0xfffff为各类rom地址空间 bios(各个部件的,...

2018-05-12 10:10:21 2391

原创 K-means和PAM聚类算法Python实现及对比

K-means(K均值划分)聚类:简单的说,一般流程如下:先随机选取k个点,将每个点分配给它们,得到最初的k个分类;在每个分类中计算均值,将点重新分配,划归到最近的中心点;重复上述步骤直到点的划归不再改变。下图是K-means方法的示意。 PAM(Partition Around Medoids)是K-medoid(K中心点划分)的基础算法,基本流程如下:首先随机选择k个对象作为中心

2017-10-21 15:13:04 18603 14

原创 敏捷开发平台AgileEAS.NET中的本地数据库连接过程(以DrugShop为例)

本文适用于刚接触AgileEAS.NET的开发,且需要进行数据库访问的开发人员及学生。开发环境:VS2013 数据库:Microsoft SQL Server 2008R21 数据库登录,记住登录用户及密码,本例以本机的数据库作为服务器,登录及登录后如下图。 2 数据库登录完成后再来分析DrugShop工程里如何连接到数据库。 1> 从工程的执行入口开始,首先是DrugShop.Mai

2017-08-16 19:29:49 649

GUID生成器

支持windows平台;支持单个或多个GUID生成;支持一键复制;

2017-08-11

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除