4 hhaowang

尚未进行身份认证

来源于生活,低于生活

等级
TA的排名 1w+

移动机器人技术(9)-- 全向移动机器人Modeling and Control

之前写的文章分析了全向小车运动原理和基本构型,今天尝试把它部署到 Ros 上。基本原理参考系的定义需要根据 Ros by Example chapter 7 做一些修改:定义三轮车的三个轮子分别是 A、B、C, 速度分别是a、b、c; 定义半径 Radius 是中点到轮子的距离; 定义 a,b 为前轮,c 为后轮。控制程序Ros 中的的速度消息是 Twist ...

2019-11-12 17:19:34

SLAM专题(9)-- 图像ORB特征提取与匹配

#include <iostream>#include <opencv2/core/core.hpp>#include <opencv2/features2d/features2d.hpp>#include <opencv2/highgui/highgui.hpp>using namespace std;using namespace ...

2019-11-11 21:32:00

SLAM专题(9)卡尔曼滤波和扩展卡尔曼滤波 原理与应用

前言: 卡尔曼滤波存在着一个非常大的局限性——它仅能对线性的处理模型和测量模型进行精确的估计,在非线性的场景中并不能达到最优的估计效果。 所以之前为了保证我们的处理模型是线性的,我们上一节中使用了恒定速度模型,然后将估计目标的加减速用处理噪声来表示,这一模型用来估算行人的状态其实已经足够了 但是在现实的驾驶环境中,我们不仅要估计行人,我们除了估计行人状态以外,我们还...

2019-10-03 10:30:29

SLAM专题(7)-- 数学上常用的‘距离’

References:[1]https://blog.csdn.net/Kevin_cc98/article/details/73742037[2]马氏距离及其几何解释http://www.weixinnu.com/tag/article/1082683923[3]欧氏距离和余弦相似度的区别是什么?https://www.zhihu.com/que...

2019-11-10 12:50:42

SLAM专题(6)-- 非线性优化

目录非线性最小二乘问题(1)一阶和二阶梯度法(2)高斯牛顿法(3)列文伯格-马夸尔特方法(Levenberg-Marquadt法)非线性优化小结:实践:1.Ceres库(谷歌)简介ceres曲线拟合实例代码结果2.g20库(基于图优化)简介g20步骤:总结:非线性最小二乘问题因为cost function f(Xn)非线性non...

2019-11-10 12:37:20

数学基础(7)-- 协方差与协方差矩阵

协方差通常,在提到协方差的时候,需要对其进一步区分。(1)随机变量的协方差。跟数学期望、方差一样,是分布的一个总体参数。(2)样本的协方差。是样本集的一个统计量,可作为联合分布总体参数的一个估计。在实际中计算的通常是样本的协方差。随机变量的协方差在概率论和统计中,协方差是对两个随机变量联合分布线性相关程度的一种度量。两个随机变量越线性相关,协方差越大,完全线性无关,协方差为...

2019-11-10 11:58:30

移动机器人(3)-- base controller & 里程计

1. 简介在移动机器人建图和导航过程中,提供相对准确的里程计信息非常关键,是后续很多工作的基础,因此需要对其进行测试保证没有严重的错误或偏差。实际中最可能发生错误的地方在于机器人运动学公式有误,或者正负号不对,或者定义的坐标系之间方向不一致等。  整个移动机器人的控制结构如下图所示,其中base_controller节点将订阅的cmd_vel信息通过串口或其它通信接口发送给下位机(嵌入式控...

2019-11-04 12:52:19

移动机器人(2) -- base controller & 旋转编码器

一、编码器简介编码器是一种广泛使用的位置式传感器,它能够检测细微的运动,其输出为数字信号。编码器中应用最为广泛的就是光电编码器,可以用来进行角度的测量。可以用来测量位置,测量转速。【wiki https://zh.wikipedia.org/wiki/%E6%97%8B%E8%BD%89%E7%B7%A8%E7%A2%BC%E5%99%A8】旋转编码器(rotary encode...

2019-11-04 12:43:34

OpenCV教程(27)-- 轮廓特征

目录Goal1. Moments2. Contour Area 轮廓面积3. Contour Perimeter 轮廓周长4. Contour Approximation 轮廓近似5. Convex Hull 凸包6. Checking Convexity 凸性检验7. Bounding Rectangle 边界矩形7.a. Straight Bounding ...

2019-10-30 18:12:33

OpenCV教程 (26)-- OpenCV中的轮廓

GoalUnderstand what contours are. Learn to find contours, draw contours etc You will see these functions :cv2.findContours(),cv2.drawContours()What are contours?Contours can be explained simp...

2019-10-30 17:06:32

SLAM专题(5) -- 变换矩阵、旋转矩阵、欧拉角与四元数

目录坐标变换基础知识外积欧氏变换旋转矩阵旋转向量欧拉角四元数坐标变换基础知识外积外积大小为 ,可以表示两个向量张成四边形的有向面积,引入符号,定义a^表示为一个反对称矩阵,这样就把向量的外积变换成了矩阵和向量的乘法。同时外积可以表示向量的旋转,在右手法则下,用右手的四个指头从a转到 b,其大拇指所指向的方向就是旋转向量的方向,旋转向量的大小为 ...

2019-10-28 14:30:46

C++ Basic 28 -- 箭头-> 双冒号:: 点号.操作符区别

首先介绍一下C++中的结构体。对于一个结构体来说,struct MyStruct {int member_a;};如果有个变量MyStruct s,那么使用其中的成员元素时可以用s.member_a = 1;如果采用指针方法访问,比如MyStruct * ps,那么同样的访问必须用箭头号:ps->member_a = 1;::只用在类成员函数和类成员变量...

2019-10-28 13:26:32

Linux -- git命令

一、创建与合并分支1、 从master分支创建dev分支并切换到dev分支 git checkout master git checkout -b dev 其中,git checkout -b dev 等价于: git branch dev git checkout dev (1) git branch 查看本地当...

2019-10-25 18:38:49

ROS学习笔记(10)-- Turtlebot3机器人开发平台仿真

目录1. 简介详情请阅读:1. ROS官方教程;2. Turtlebot3中文教程系列turtlebot3入门教程-目录2. ROS虚拟环境仿真与可视化说明:注意:步骤:1. 安装TurtleBot3 Simulation组件2. 启动仿真3. RViz仿真界面:4. 查看ROS的节点Nodes和话题Topic5 . 启动键盘节点6. 启动G...

2019-10-25 17:07:37

ROS学习笔记(9)-- Ubuntu Tab键补全功能

解析ubuntu tab键不能自动补全命令的参数这篇文章主要介绍了ubuntu tab键不能自动补全命令的参数,非常不错,具有参考借鉴价值,需要的朋友可以参考下sudo gedit /etc/bash.bashrc 里面有这几行语句#enable bash completion in interactive shells# if ! shopt -oq posix; th...

2019-10-25 16:01:29

Jetson Nano(10) -- 编译并安装OpenCV 3.4.X

参考链接:https://jkjung-avt.github.io/opencv-on-nano/Installing OpenCV 3.4.6 on Jetson NanoQuick link:jkjung-avt/jetson_nanoAs a follow-up onSetting up Jetson Nano: The Basics, my next step of s...

2019-10-23 18:01:42

Jetson Nano(9)-- 增加swap空间

Nano入门教程基础篇-增加swap空间说明:介绍如何增加swap空间步骤:生成swapfile文件sudo fallocate -l 4G /var/swapfilesudo chmod 600 /var/swapfilesudo mkswap /var/swapfilesudo swapon /var/swapfile设置为自动启用swapfilesudo b...

2019-10-23 17:44:30

ROS学习笔记(10)

1. 安装官方安装指北a 添加 sources.list sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'b 添加 keys sudo apt-key adv ...

2019-10-19 13:31:06

OpenCV 源码编译 for Linux C++ & Clion

写在前面:1. Linux 源码编译OpenCV之前请卸载Anaconda3及其组件。卸载方法参考https://blog.csdn.net/qq_22474567/article/details/549842572. 如果当中安装的一些库不明白是干嘛的,请参考博客https://blog.csdn.net/hjxu2016/article/details/82390434...

2019-10-19 11:18:22

Jetson Nano(8) -- Jetson Nano外接OLED模块显示ip、cpu信息

摘要: JetBot项目使用一个0.91英寸的一个OLED来显示系统的IP和内存等信息。这里我们来看一下OLED显示。目录I2C 接口OLED显示测试结果:完整代码: I2C 接口 Jetson nano 板载有两路I2C接口,JetBot上的OLED就是通过I2C接口来操作的。这里我们可以使用i2ctool工具来查看i2C设备。这里指令最后的参数为1,...

2019-10-18 16:48:58

查看更多

勋章 我的勋章
  • GitHub
    GitHub
    绑定GitHub第三方账户获取
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv4
    勤写标兵Lv4
    授予每个自然周发布9篇以上(包括9篇)原创IT博文的用户。本勋章将于次周上午根据用户上周周三的博文发布情况由系统自动颁发。