自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Python知识点点点点点(2)

isinstance()判断一个变量是否是某个类型:isinstance(c, list)assertexpression断言,断言可以在条件不满足程序运行的情况下直接返回错误,而不必等待程序运行后出现崩溃的情况list插入删除插入:append、insert删除:pop、dellinalg:线性代数库list索引从头部开始:0、1、。。。从尾部开始:-1、-2、。。。nums = [10, 20, 30, 40, 50, 60, 70, 8...

2021-01-19 16:56:17 2034

原创 Python知识点点点点点(1)

iter(object)生成迭代器,object--支持迭代的集合对象next(iterator)返回迭代器的下一个项目,和iter()函数一起使用enumerate()将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在for循环中range(start,stop[,step])创建一个整数列表,一般用在for循环中;range(10):0到10,不包括10,默认步长1data[ : , j ]保留第一个维度的...

2021-01-19 09:09:27 321

原创 C++知识点点点点点(7)

在C++代码中加入对C的支持#ifdef __cplusplusextern "C" {#endif//一段代码#ifdef __cplusplus}#endif__cplusplus是cpp中的自定义宏,表示如果这是一段cpp的代码,那么加入extern "C",以支持其中的c代码https://www.cnblogs.com/yuemw/p/7908413.html待续。。。...

2020-12-23 13:51:37 539

原创 C++知识点点点点点(6)

进程间通信方式每个进程的用户地址空间都是独立的,一般是不能互相访问的;内核空间是每个进程都共享的,进程之间进行通信必须通过内核。https://zhuanlan.zhihu.com/p/165224175内存溢出、内存泄露内存溢出:程序在申请内存时,没有足够的空间供其使用,例如申请了int空间却存了long数据内存泄露:程序申请的内存在使用结束之后没有进行释放待续。。。...

2020-11-26 16:18:30 200 1

原创 GDB调试

GDBGNU symbolic debugger,诞生于GNU计划,Linux下常用的程序调试器。gdb -v:查看GDB版本GDB功能http://c.biancheng.net/view/8123.htmlGCC编译可调式程序gcc main.c -o main.exe:不带有调试信息gcc main.c -o main.exe -g:带有调试信息,可进行GDB调试gcc编译选项:更多选项:https://www.jianshu.com/p/e5967...

2020-11-19 16:47:38 458

原创 cmake、catkin知识点点点点

GNU、GPL、GCC、G++GNU:一个计划/运动,目标是创建一套完全自由的操作系统GPL:GNU通用公共许可协议,广泛应用的自由软件许可证,linux发行时选择了GPLGCC:GNU C Compiler,早起的C编译器,后来集成更多的编译器,GCC就代表 the GNU Compiler CollectionG++:GCC的C++编译器编译器选择:根据后缀名,*.c调用C编译器,*.cpp调用C++编译器https://www.zhihu.com/question/2094082

2020-11-19 09:41:39 634

原创 数据结构知识点点点点点

std::stack<Type> std::stack<int> s1; //int栈 std::stack<int> s2; int num,value; s1.push(10); //入栈 s1.push(11); s1.pop(); //出栈 s1.swap(s2); //交换栈 num = s2.size(); //获取栈大小 value = s2.top(); //获取栈顶数据..

2020-11-07 10:30:39 264

原创 C++知识点点点点点(5)

debug与releasedebug:调试模式,包含调试信息,容量比release大很多,并且代码不会进行任何优化,便于调试。release:发布模式,不对源代码进行调试,编译时对应用程序的速度进行优化,优化程序的代码大小和运行速度。待续。。。...

2020-10-23 19:22:13 220

原创 PointNet:论文总结及pytorch源码详解

PointNet:论文地址:https://arxiv.org/abs/1612.00593pytorch源码地址:https://github.com/fxia22/pointnet.pytorch.git个人详细注释源码地址:https://github.com/Dir-b/PointNet.git前言point_base方法的开山之作,本篇主要对PointNet论文谈谈个人理解,并详细注释了pytorch版本的源码,很适合像我一样初入这个方向,对pytorch、python不熟悉的

2020-10-23 17:12:11 1965 3

原创 三维点云处理(深度学习方法)综述

前言3D视觉领域目前正蓬勃发展,针对原始三维点云数据的处理成为新的研究热点。本篇文章小小的陈述一下个人对这方面的一些理解。三维点云处理的挑战卷积在二维图像的处理中显示出了极大的优势,相比于人工构造feature,卷积拥有更加强大的信息描述能力,在分类、检测、分割等任务中,都具有优异的表现。自然而然的,人们开始尝试将卷积这一操作带入到三维点云中。但是却不是那么简单的,三维点云有不同于图像的数据形式:点云具有稀疏性不同于图像,三维点云在表示物体时,只有物体表面有点云数据,如果实在实际...

2020-10-23 16:18:30 12007

原创 机器人描述文件(URDF、SDF、XACRO) 与 /tf、/tf_static

本篇总结如何由机器人描述文件,得到各个link之间的位置关系,如何发布到/tf、/tf_static。一、过程实现一个简单的模型,包含两个link,一个joint,以URDF为例,如下<?xml version="1.0"?><robot name="myfirstrobot"> <!-- Base Link --> <link name="base_link"> <visual> .

2020-09-16 15:40:03 1980 2

原创 ROS Melodic配置turtlebot2开发环境

在使用以下指令安装turtlebot开发环境时,默认安装了turtlebot3:sudo apt-get install ros-kinetic-turtlebot-*由于实验室只有turtlebot2,所以安装麻烦一点:大体的安装过程可参考以下连接的内容:https://zhuanlan.zhihu.com/p/151097395按照上述安装完成后,编译,可能出现"No package 'orocos-bfl' found"的错误:如果出现上述错误,则缺少一个包,安装即可:s

2020-09-15 20:08:03 1041

原创 刚体 / 机器人运动状态描述系统总结(旋转矩阵、欧拉角、旋转向量、四元数)

**为避免格式错误,直接上传截图。参考:台大林沛群《机器人学》 https://www.zhihu.com/question/23005815/answer/33971127 Krasjet《四元数与三维旋转》 部分图源自网络,侵删 ...

2020-09-14 16:22:30 456

原创 概率机器人——卡尔曼滤波

前一篇贝叶斯滤波中提到了贝叶斯滤波不是一种实用的方法,没有办法在计算机中进行表达。是因为贝叶斯是一种抽象的滤波器,其中的置信度表示都是抽象的,没有明确的表达式,没有办法计算积分。尽管如此,贝叶斯给我们提供了一种关于状态最优估计的方法,本篇及后续可能更新的方法皆是贝叶斯滤波的实现方式。1.高斯滤波在正式介绍卡尔曼之前,需要先对高斯滤波做一个说明。高斯滤波是一种递归状态估计器,为了解决贝叶斯滤波器中置信度没有明确表示方法的缺陷,高斯滤波给出了一种置信度用多元正态分布表示的思路,这也是为什么称之为高斯

2020-06-04 15:39:10 817

原创 概率机器人——贝叶斯滤波

上篇在介绍机器人环境交互中:https://blog.csdn.net/jcsm__/article/details/106516512,提到了机器人通过内部的置信度来确定当前的状态,本篇及后续将介绍求取置信度的几种方法。1、贝叶斯滤波原理贝叶斯滤波通过控制和测量数据计算置信度分布bel()。是一种递归算法,通过t-1时刻的置信度计算t时刻的置信度。每一次的迭代更新包括两方面:控制更新和测量更新。控制更新(预测):控制更新或者称之为预测,是利用当前时刻的控制信息和前一时刻状态的置信度.

2020-06-03 17:22:15 543

原创 概率机器人——机器人环境交互

状态环境特征以状态表征,状态是所有会对未来产生影响的机器人及其环境的所有方面因素。概率生成法则状态转移概率,根据条件独立,可得到:它指出了环境状态作为机器人控制ut的函数是如何随着事件变化的。从得到的概率分布公式,可知机器人的环境是随机的。测量概率,根据条件独立,可得到:它指出测量数据zt由环境状态xt产生,将测量认为是状态的有噪声预测。隐马尔可夫模型(HMM)/动态贝叶斯网络(DBN)状态转移概率和测量概率一起描述机器人及其周围环境的动态随机系统。...

2020-06-03 10:03:08 818

原创 概率机器人——概率论基础(条件概率、贝叶斯的一种理解、条件独立与绝对独立等)

概率机器人机器人模型 + 传感器数据条件概率若事件X和Y相互独立,即x与y发生与否,彼此之间没有影响:若事件X和Y不是相互独立的,即x与y发生与否,彼此之间都有影响:这里就是贝叶斯公式了,也就是后验估计。下面说一种贝叶斯的理解:由于X和Y之间不是相互独立的,一个事件发生,另外一个事件肯定会收到影响。上式的分子中的p(x)表示x发生的概率,相当于此时x事件已经发生;如果是独立事件,就像上面提到的,直接再乘上y事件发生的概率p(y)就结束了,但是x和y之间相互影响,此时x..

2020-06-02 22:23:21 704

原创 数据结构基础——树、二叉树

**C语言版本树树:n(n≥0)个结点的有限集合。结点的度:结点拥有的子树数量终端结点/叶子:度为0的结点树的深度/高度:树中结点的最大层次有序树:将树中结点的各个子树看成从左到右是有次序的(不能互换),否则为无序树。二叉树二叉树:每个结点之多只有两颗子树(即二叉树中不存在度大于2的结点),且二叉树的子树有左右之分,次序不能任意颠倒。满二叉树:一颗深度为k且有2^k -1个结点的二叉树完全二叉树:深度为k,有n个结点的二叉树,当且仅当其每一个结点都与深度为k...

2020-05-29 15:10:55 340

原创 C++ vector使用方法总结

一、vector初始化vector<int> a() or vector<int> a:创建一个int类型的空vector对象 vector<int> a(int nSize):创建一个vector对象,元素个数为n vector<int> a(int nSize,value):创建一个vector对象,n个初始值为value的元素 vector<int> a(const b&):复制构造,b为vector对象 vector..

2020-05-27 15:17:22 489

原创 数据结构基础——线性表、栈、队列、串

数据结构逻辑结构:集合(集合关系);线性(一对一);树(一对多);图(多对多)存储结构:顺序存储;链式存储线性表(linear_list)线性表是n个数据元素的有限序列(有一个头、一个尾、一个前驱、一个后继)。根据存储结构的不同,可分为:顺序表:顺序存储结构实现线性链表/单链表:链式存储结构实现**线性表插入/删除元素的时间复杂度为O(n)线性链表/单链表链表中的一个节点a(i)存储两部分信息:数据域:存储数据元素本身的信息指针域:直接后继存储位置...

2020-05-24 16:27:34 908

原创 clion调试记录

Signal=SIGSEGV(Segentation fault)Invalid memory reference(无效的内存引用),一般就是使用了空对象。进一步的,在clion中debug,可以找到具体出错的位置。从中可以看到,this指针为空,说明Segment类的对象不存在。...

2020-05-21 21:21:08 895

原创 ROS学习笔记——关于nodelet先行一步

nodelet部分搞了两天,记录下初步的成果。更多实践的结果等真正把手上实际的项目搞定再来更新。如果是自己动手写一个nodelet,建议先去看一下ros中的pluginlib,nodelet方面的资料较少,翻一翻,基本上都是翻译的wiki上的,内容不是很丰富,所以nodelet作为pluginlib的一种,先去看资料多的pluginlib,能了解整个写插件的过程。如果只是体验一下nodelet的用法,继续向下看吧~~1、为什么用nodelet试想一个场景,在一个传统的node中,有发布者和订

2020-05-15 15:16:33 699

原创 C++知识点点点点点(4)

静态链接库、动态链接库(共享库)、目标文件、可执行文件C++源程序经过编译生成中间目标文件,经过链接,将中间目标文件缺少的启动代码和库代码链接进来。静态链接库:静态链接是将中间目标文件调用的函数/过程链接到可执行文件中,成为文件的一部分。如果多个目标文件调用同一静态库中的相同部分,每个目标文件都要进行链接。动态链接库(共享库):动态链接所调用的函数/过程并没有被拷贝到应用程序的可执行文件中去,而是仅仅在其中加入了所调用函数的描述信息。当程序运行时,才与动态库建立实际的链接关系。*参考:http

2020-05-14 21:02:47 497

原创 C++知识点点点点点(3)

字节对齐计算机中内存大小的基本单位是字节(byte),理论上来讲,可以从任意地址访问某种基本数据类型,但是实际上,计算机并非逐字节大小读写内存,而是以2,4,或8的倍数的字节块来读写内存,如此一来就会对基本数据类型的合法地址作出一些限制,即它的地址必须是2,4或8的倍数。那么就要求各种数据类型按照一定的规则在空间上排列,这就是对齐。*参考:https://zhuanlan.zhihu.com/p/44625744虚函数、纯虚函数、与虚函数表虚函数是实现多态的机制,通过基类访问派生类定义的函.

2020-05-11 21:41:00 246

原创 C++知识点点点点点(2)

noexcept关键字C++11引入,替代之前的throw;两个作用:指出函数不会发生异常;用作运算符,判断操作数(表达式)是否可能引发异常。待续。。。...

2020-05-07 20:36:30 345

原创 戴尔工作站(Precision 7920)安装双系统win10+ubuntu18.04

*实验室的一台戴尔工作站,项目需要,安装双系统,搞了整整一天,和普通电脑安装还是有很多不同的,留下走过的坑。一、工作站配置型号:dellPrecision 7920 塔式工作站内存:128G磁盘:4T*2机械;2TNVMe固态显卡:2080Ti*2二、安装过程安装win10操作系统 给ubuntu分配硬盘空间 安装ubuntu三、几个坑1.intel快速存储...

2020-05-05 20:45:28 12721 2

原创 C++知识点点点点点(1)

void *__buf:定义一个空指针,使用时作强制类型转换 待续。。。。

2020-04-20 11:32:45 265

原创 ROS学习笔记——常用命令

1.topic相关查看当前话题列表rostopic list具体查看某个话题rostopic info /cmd_vel(话题名)查看话题数据类型/格式rostopic type /cmd_vel(话题名)查看话题数据类型/格式的具体定义rosmsg show geometry_msgs/Twist(话题类型)发布话题数据:rostopic pub 话...

2020-04-14 16:20:01 451

原创 ROS学习笔记——ROS命令突然都不能使用(登陆时没有自动加载环境变量)

今天在使用ROS时,突然所有的ROS命令都不能使用,如下图:问题在于没有自动加载ROS的环境变量,如果手动source一下ROS环境变量,便可以正常使用。但是每开一个终端都需要source,太麻烦。查看.bashrc里也的确有ROS的环境变量,一直正常使用,突然不行。然后就重新配置了一下ROS环境变量:便可以正常使用了,此时.bashrc中有两句一样的配置ROS环境变量的语句,可...

2020-04-09 18:57:23 1232 1

原创 ROS学习笔记——Gazebo仿真32线velodyne雷达并在rviz显示点云数据

本篇主要利用gazebo中自带的32线velodyne,说明如何通过plugin构建ROS和Gazebo之间的连接。

2020-04-07 12:19:01 4947 9

原创 ROS学习笔记——PCD点云在rviz中显示

在上篇的简述中提到了ROS中的点云数据类型,本篇利用在pcl官网下载的一个pcd文件,创建节点发布,转换数据类型并在rviz中显示。代码如下:#include<ros/ros.h>#include<pcl/point_cloud.h>#include<pcl_conversions/pcl_conversions.h>#include<sens...

2020-04-03 16:51:01 4280

原创 ROS学习笔记——PCL、点云 and ROS

*本篇简单介绍一下后续需要使用的PCL一、PCLPCL:point cloud library,即点云库。用于2D/3D的图像/点云信息处理。在PCL官网(http://pointclouds.org/)可以获取更多的信息。对于3D点云处理来说,PCL完全是一个的模块化的现代C++模板库。其基于以下第三方库:Boost、Eigen、FLANN、VTK、CUDA、OpenNI、Qhu...

2020-04-03 16:13:05 2516

原创 ROS学习笔记——函数部分

*本篇记录一些在ROS开发经常使用的函数 ros::init(argc, argv, "talker"):ros初始化,指定节点名称为talker。 ros::NodeHandle n:创建节点句柄n。 ros::spinOnce():ROS消息回调处理函数,执行一次回调,完成后继续回到主程序。 ros::spin():ROS消息回调处理函数,一直执行回...

2020-04-03 14:28:48 773

原创 解决ubuntu下boot分区不足的问题

之前安装ubuntu时,参照网上的教程,boot分区留了200M,今天一开机就提示boot分区空间不足。找了一下原因,boot分区存在多个linux内核的版本,只需要将多余的版本删除,便可以释放空间。首先查看当前内核版本:查看目前存在的所有内核版本(此处已经删除过多余的版本,故只有一个版本):删除多余的内核版本:完成之后,可以查看一下当前的boot分区占用情况:...

2020-04-02 14:13:08 275

原创 ROS学习笔记——rviz的一些示例

在之前的一片博客里,已经写到了一种rviz的示例,调用本地摄像头在rviz中显示实时画面:调用本地摄像头并在rviz中显示这篇主要分享在ROS Wiki上的官方示例教程,有删减,有补充。上篇也提到了,主要是以下几个方面:Markers:发送一些基本形状在rviz显示 Interractive Markers:可以进行交互的markers Plugins:自定义新的显示和控制插件 Li...

2020-03-29 14:49:13 4843

原创 ROS学习笔记——rviz的基本介绍

rviz是ROS中一款三维可视化平台,一方面能够实现对外部信息的图形化显示,另外还可以通过rviz给对象发布控制信息,从而实现对机器人的监测与控制。本文在参照ROS Wiki官方教程的基础上,给出rviz的入门总结。一、rviz的安装及界面简介在安装ros时,如果执行的完全安装,rviz已经安装好了;如果没有完全安装,可单独安装rviz:sudo apt-get insta...

2020-03-28 14:58:45 25419 2

原创 ROS学习笔记——调用本地摄像头数据并在rviz显示

查找了一些参考资料,整理两种方法如下:一、通过usb_cam驱动包将usb_cam功能包安装到ros工作空间src下,并编译工作空间:cd catkin_ws/srcgit clone https://github.com/bosch-ros-pkg/usb_cam.git cd ..catkin_make启动usb_cam_node节点:roscorecd catki...

2020-03-27 15:12:12 3039

原创 ubuntu——知识点点点点点点

Q:ubuntu下如何解压rar格式压缩包?A:安装解压工具sudo apt-get install unrar待续。。。

2020-03-25 13:59:07 475

原创 ROS学习笔记——使用CLion进行ROS开发

一、安装CLion1.下载clion安装包:https://www.jetbrains.com/clion/2.移动到目的安装文件夹下,解压:tar -xzvf Clion-2019.3.5.tar.gz3.进入解压后的bin文件夹:cd clion-2019.3.5/bin4.执行安装文件:./clion.sh5.登陆账号激活(教育邮箱可免费使用)当然,在ubuntu18...

2020-03-24 13:15:18 2314

原创 ROS学习笔记——知识点点点点

Q:安装ROS时(sudo apt install ros-melodic-desktop-full)提示有几个软件包无法下载A:更新一下软件源(apt-get update)后,再次执行安装命令(sudo apt install ros-melodic-desktop-full),会自动下载余下的软件包。Q:ROS安装完成后,执行初始化指令(sudo rosdep init)提示找...

2020-03-24 08:22:30 820

空空如也

空空如也

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

TA关注的人

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