自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(53)
  • 收藏
  • 关注

原创 ubuntu远程桌面控制另一台电脑:teamviewer或VNC.附带远程rviz打不开解决方法

远程控制方案:1:teamviewer; 2:VNC+vnc_viewer;3:VNC+系统自带桌面共享1,搜索ubunutu安装teamviewer即可,速度很快,还能文件传输,开会功能,十分强大2,VNC:VNC是一种协议,实现它的方法有多种:vnc4server、x11vnc等,x11vnc最好用      使用方法:①在要被控制的电脑上安装X11VNC           ...

2018-11-06 14:45:15 3648 1

原创 在线工具网站uzer.me使用Google Chrome浏览器打开,出现页面显示异常的解决办法

异常是指:图裂,图标不显示,点不动等等。解决方法:打开链接chrome://flags。找到quic相关的两项,设置为启动,重启chrome就行了。

2018-10-25 14:16:01 6431

原创 四元数小结

下图来自高博的14讲:

2018-09-20 12:31:10 682

原创 罗德里格斯旋转公式

罗德里格斯旋转公式用于旋转三维空间的向量.它需要知道旋转轴和旋转角度.推导:把需要旋转的向量v分解为与旋转轴k垂直和平行的两个向量v垂直和v平行,把v垂直转个θ角变成v垂直rot,加上v平行就能得到v_rot。稍微复习一下点乘和叉乘,然后通过下面这个图可以把这个推导很清楚地表示出来(注意我们规定k是单位向量):得到:我们还可以通过罗德里格斯旋转公式得到旋转矩阵.将上式两端的被旋...

2018-09-20 10:03:45 5934

原创 计算四麦克纳姆轮底盘的里程计

1,从车身的运动速度(x,y,w)得到四个轮子的速度:看这篇文章.得到如下结果:vty为沿车身y方向运动的速度.vtx同理.2,从四个轮子的速度得到车身的运动速度(x,y,w):通过上述文章最后的结论反推即可.前两个式子求平均(我猜这样量太少会导致不精确)或者四个式子求平均,得到vty.其余的vtx,w同理.3,得到了底盘的速度,剩下的就和普通二轮差速的底盘里程计计算一样了,固定很...

2018-09-20 09:29:40 6213

原创 欧拉角和万向锁

之前我讲了旋转矩阵,但用这个表示旋转并不直观.如果将一个物体的旋转分解为依次绕着三个坐标轴的旋转,就很直观了.这种方法就叫欧拉角.使用欧拉角这种方法必须规定旋转优先级,比如规定为z->x->y,那么物体先绕z转动,转动时,x和y也跟着转动,第二步,绕转动后的位姿的x轴转动时,y跟着转动,z轴当然也跟着转动,但是z轴不更新,因为z轴优先级最高,意思是说,以后说起z轴的时候还是指上一位...

2018-09-19 21:15:11 1064

原创 机器人坐标转换

坐标系标识统一:我们使用右手坐标系,ROS里面用的也是右手坐标系.左:左手坐标系,右:右手坐标系.记忆:大拇指是z轴,食指是x轴(右手指往内转动).我们说旋转多少度时,都以右手手指往内攥的方向为正方向.颜色:一般都用rgb表示xyz轴:坐标变换:习惯上,我们表示一个物体的三维位置和朝向时,都会在其身上附一个随动的坐标系.所以描述一个物体在坐标系中的位置和朝向,总...

2018-09-18 15:17:13 22508 2

原创 【路径规划】dijkstra算法是怎么找到路径的

dijkstra算法是A*算法的祖先。(其实你不看这个,你也照样能看懂A*)大部分国内资料和讲解都是垃圾。一个路径规划算法,翻来覆去地讲怎么改变每个节点距离起点的距离值,却讲不清楚更新完每个节点的值以后怎么寻找最短路径的。按照下面步骤来看就行了:1,先看这个,这个虽然没讲怎么找路径,但怎么更新每个节点的值(即与起点的距离)这方面它讲得比较清晰。2,看完1之后,看这个(要翻墙),包含...

2018-09-05 11:24:11 3230 1

原创 AMCL原理概述

看了很多资料,讲amcl用法的很多,原理和概念能说清的很少,大都是一带而过稀里糊涂。这里,先把概念区分开来,后面将对原理进行讲解。1,粒子滤波和蒙特卡洛   蒙特卡洛:是一种思想或方法。举例:一个矩形里面有个不规则形状,怎么计算不规则形状的面积?不好算。但我们可以近似。拿一堆豆子,均匀的撒在矩形上,然后统计不规则形状里的豆子的个数和剩余地方的豆子个数。矩形面积知道的呀,所以就通过估计得到了...

2018-08-19 20:37:29 21392 6

原创 【git】git log 只显示四行

很操蛋,滑动鼠标的滚轮不会动,按键盘的↓会继续显示下面的~~~

2018-08-13 17:00:26 3180 3

原创 ubuntu apt方法安装sublime-text3

步骤:添加源(到launchpad官网找到本软件的ppa名),更新,安装出现问题:无法下载 http://ppa.launchpad.net/webupd8team/sublime-text-3/ubuntu/dists/trusty/main/i18n/Translation-en  不能连接到 ppa.launchpad.net:http:解决方法:改用手机热点(不知为何,经验,往...

2018-08-12 11:44:16 1650 1

原创 【ROS】tf2的内容结构

tf2:tf库,它是所有功能概念上的总称,接下来的都是在它的命名空间下tf2/converts.h:数据类型转换,是模板功能,也就是给其他具体类型的转换提供了接口。    tf2_geometry_msgs.h:使用tf2/converts.h 里的接口,也就是具体成 geometry_msgs数据类型之间及其与tf2格式之间的转换。    tf2_bullet:同理    tf2...

2018-08-09 14:45:15 1190

转载 【转】机器人运动规划中的构形空间(Configuration Space)

原文A key concept in motion planning is configuration space, or C-space for short. Every point in the C-space C corresponds to a unique configuration q of the robot, and every configuration of the rob...

2018-08-04 13:08:32 3363

原创 计算角度差

double angle_diff(double a, double b){ double d1, d2; d1 = a-b; d2 = 2*PI - fabs(d1); if(d1 > 0) d2 *= -1.0; if(fabs(d1) < fabs(d2)) return(d1); else return(d2);}如果d1>0,那么相当于...

2018-07-31 15:43:54 6207 1

原创 【C++】位移位运算用法

原文1,移位运算左移就是:0补最低位,然后丢弃最高位。左移n位就是乘以2的n次方。右移就是:正数的话补0,负数补1。右移n位就是除以2的n次方。当移动的位数超过类型的长度时,会取余数,然后移动余数个位。2,位运算符按位与& 清零特定位(mask中特定位置0,其他位为1,s = s&mask) 取某数中指定位(mask中特定位置1,其他位为0,s = s...

2018-07-29 21:12:05 2283

原创 【C++】原码反码补码

1,计算:      正数(包括+0):原=反=补      负数:反=原(除了符号位)取反,补=反+12,意义:       提及有符号数,才涉及到以下:       原码:0表示方法不唯一(符号位变化),且计算结果会错误(1 - 1 = 1 + (-1) = [00000001]原 + [10000001]原 = [10000010]原 = -2)       反码:结...

2018-07-28 15:27:45 1109

原创 【leetcode】4二叉树重建

知识:二叉树            二叉树遍历:每个节点的分支都遵循对应的访问顺序,体现“递归调用”                                     前序遍历:根→左→右性质:                                     中序遍历:左→根→右性质:中序节点的索引i,i-1是左子树的末端索引,i+1是右子树的起始索引。...

2018-07-21 23:00:54 1211

原创 【C++、PCL】编程好习惯

1.初始化,初始化,初始化2.预防越界3.能用指针不用引用,能用引用的话不用直接对象

2018-07-03 16:27:20 1151 1

原创 【PCL】得到一个点云中的最高值、最低值

有一个点云,想得到它x,y,z三个轴上的最大值和最小值。可以用pcl::getMinMax3D函数。在这儿。函数参数:1点云,2放最小值的容器,3放最大值的容器。容器类型是点云中点的类型(正好有三个值)代码://// Created by ethan on 18-6-26.//#include <iostream>#include <ros/ros.h>#incl...

2018-06-29 20:02:24 13428 3

转载 SLAM资源收集

https://blog.csdn.net/scliu12345/article/details/50813735

2018-06-28 16:57:54 454

原创 【ROS】在rviz中显示一个栅格

        在rviz中以栅格为单位显示。用处:比如,无人车激光雷达点云数据栅格化后经过筛选,需要将栅格显示出来,而不再是以点的形式。方法:使用nav_msgs/GridCells消息。该消息类型为:        示例://// Created by ethan on 18-6-26.//#include <iostream>#include <ros/ros.h&...

2018-06-26 20:13:31 4268 7

原创 【c++】返回类对象

函数返回值是一个类对象时,有以下几种选择:1,返回对象的const引用;2,返回对象的引用;3,返回对象;4,返回const对象1,返回对象的const引用,举例:#include <iostream>#include <cmath>using namespace std;class Complx {private: double real; double ...

2018-06-17 23:47:06 23277 2

原创 【PCL】Failed to find match for field 'intensity'.利用点云强度信息

 点云的基本类型:pcl::PointCloud<pcl::PointXYZ>pcl::PointCloud<pcl::PointXYZI>pcl::PointCloud<pcl::PointXYZRGBA>等等.更多的看这里.第二种类型包含点的强度信息,也就是激光的反射率.第一种没有,只有xyz坐标信息.所以用它可以将点云保存成带点的强度的PCD文件,或者...

2018-06-14 17:44:36 11831 26

原创 【PCL】激光雷达点云地面水平校准

激光雷达采集的数据,可能由于颠簸或者雷达安装倾斜或者地面本身是有坡度的,造成地面在雷达坐标系中不是水平的。不是水平的,会影响我们后续的对点云的分割分类等处理,所以校准很有必要。校准方法是(参考):用PCL中基于RANSAC的平面检测方法检测出平面,得到平面:ax+by+cz+d=0。对于一个平面,上式中xyz的系数,就是它的法向量。然后,雷达坐标系中的竖直向量是(0,0,1),计算出从平面法向量旋...

2018-06-13 18:19:23 7104 4

原创 【PCL】点云栅格化2

//// Created by ethan on 18-6-6.//#include <iostream>#include <ros/ros.h>// PCL specific includes#include <sensor_msgs/PointCloud2.h>#include <pcl_conversions/pcl_conversio...

2018-06-13 13:15:34 5669 4

转载 C++除法

https://blog.csdn.net/ZK_J1994/article/details/72615031分两种情况,一是操作数都是整型,那么运算结果也是整型,会舍去小数部分,相当于取(整型)商.二是有一个操作数为浮点数,运算结果就会保留小数部分,此时才算真正的除法.例如,要计算2个double类型相除结果,如61/387,应得到0.15*****,直接用“/”计算结果却为0如k1=61/38...

2018-06-13 09:34:17 43597 4

原创 【PCL】点云栅格化1

作为传统的障碍物或地面分割方法之一的第一步,栅格化显得基础又重要。这是我根据自己理解写的栅格化程序,目前还没有找到权威的版本。接下来几个版本的程序,代表了不断地改进。//// Created by ethan on 18-6-6.//#include <iostream>#include <ros/ros.h>// PCL specific includes#i...

2018-06-08 15:59:57 12707 13

原创 卡尔曼滤波中状态协方差P的表示形式不同造成的影响

递推最小二乘法中(我们在前面一篇文章中说了,卡尔曼滤波是递推最小二乘法的一种特殊情况),P有以下三种形式:第一个:就是从原始的PK定义出发,结合观测更新公式推得的。第二个:对第二种等式两边求逆,再用矩阵反演定理,求得。第三个:把对PK的迹求偏导等于零得到的K带入第一种形式,得到。至于影响,看例子:数学上看,这三种形式当然是一样的,但是牵涉到计算机的位数问题,优劣就体现出来了。...

2018-06-06 09:04:24 5527 3

原创 最大似然估计,最小二乘估计,卡尔曼滤波,三者的相互关系

卡尔曼滤波博大精深,如果仅仅满足于知道它的五个公式,而不知道它的来龙去脉和应用场景,那么,这些本事以后恐怕是上不了台面的.所以,虽然我们不求把背景知识都摸透,但是起码将它的每一步都弄清楚,这是很有必要的.首先假设我们看了且熟悉了卡尔曼滤波的推导.其中最重要的一步:求K,方法是对协方差矩阵的迹求导,为什么,这就牵扯到了最大似然和最小二乘这两个估计方法.先看最大似然估计:这篇文章,浅显易懂.简言之,已...

2018-06-05 21:53:41 13277

原创 一维二维卡尔曼滤波C++ ROS节点

模型还是不免俗地用的小车匀加速模型.订阅高斯噪声,添加到匀加速的里程上形成带噪声的观测,卡尔曼滤波处理,处理结果发布出去,用matplot显示.高斯噪声:import randomimport numpyimport rospyfrom std_msgs.msg import Float32class pub_gauss(): def __init__(self,means,s...

2018-06-01 12:48:17 3900 6

原创 【PCL】保存PCD文件时,报错

报错如下:terminate called after throwing an instance of 'pcl::IOException' what(): : [pcl::PCDWriter::writeASCII] Input point cloud has no data! 解决方法:来源:这里。

2018-05-24 12:41:57 3624 1

原创 【C++】保存文件名a1,a2,a3(数字转字符串)

想存一系列文件,依次叫a1,a2,a3,a4...只需要将数字转换为字符串,使用c++的stringstream,包含头文件:sstream。我的程序:int i=0;std::string num2str(int i){ std::stringstream ss; ss<<i; return ss.str();}int main(){std::st...

2018-05-22 09:54:21 1073 1

转载 智能指针一定要初始化

转载。今天写程序,智能指针又忘了初始化。特此记下,增加印象,一给我里giaogiao!

2018-05-21 09:50:53 5408 3

转载 【ROS】roslaunch比较全的总结

https://blog.csdn.net/felaim/article/details/80244232 

2018-05-18 09:49:49 697

原创 【PCL】CropBoxfilterr---------过滤指定立方体内的点

#include <pcl/filters/crop_box.h>//要包含的头文件。要包含哪些头文件,需要去查官方文档对该类的介绍。 pcl::PointCloud<pcl::PointXYZ>::Ptr body {new pcl::PointCloud<pcl::PointXYZ>}; pcl::PointCloud<pcl:...

2018-05-18 09:06:43 11520 16

原创 最好的卡尔曼滤波讲解

这是我看过的最好的卡尔曼滤波讲解,十分通俗易懂。推导卡尔曼也和做数学题一样,有不同的解法和不同的理解角度,这个是我看的最直观的。白巧克力亦唯心大神也有从推导到应用,理解的角度也不错,但我更喜欢本文提到的。卡尔曼的中心思想,就是我们先预测一个状态,并从它里面抽取出来传感器能观测到的项,(比如一个系统的状态,包含了很多元素,但我们只能观测到它的温度和频率这两项,我们就从预测的状态里面抽取出来这两项)然...

2018-05-11 09:21:59 5321

原创 【ROS】[rosrun] Couldn't find executable named

可执行文件都是放在devel/lib 文件夹下的。source devel文件夹下的setup.bash即可找到可执行文件。有时候使用某些IDE时,会在工作空间中产生别的devel文件,将可执行文件放在其下的lib中。同理可将其内的setup.bash文件source掉。...

2018-05-10 14:26:50 14595 9

原创 【ROS】点云订阅,处理,发布程序模板

//// Created by ethan on 18-5-9.//#include <iostream>#include <ros/ros.h>// PCL specific includes#include <sensor_msgs/PointCloud2.h>#include <pcl_conversions/pcl_conversio...

2018-05-10 13:33:23 3111 2

原创 【PCL】直通滤波器,截取部分点云

直通滤波器非常简单实用,如果你不想要点云中的某一块儿,想把它砍掉,就直接设定某坐标轴上某范围,将范围以内或者以外的删除。 pcl::PointCloud<pcl::PointXYZ>::Ptr cloud (new pcl::PointCloud<pcl::PointXYZ>);// 创建滤波器对象 pcl::PassThrough<pcl::PointXYZ...

2018-05-10 09:54:13 5645 3

原创 【ROS】节点或者bag改变消息名称 rename a topic

1.某个节点订阅或者发布的消息名想换一下,可以通过launch文件的remap功能。【例子】2.改变bag文件里的消息名称。比如我有个bag文件,有个topic我想改个名字适应我的源码,可以这样做:rosbag play file.bag /foo:=/bar #/foo是原topic,/bar是新topic...

2018-05-10 09:29:25 8107 2

空空如也

空空如也

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

TA关注的人

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