自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

SLAM,ROS,感知与决策,机器人控制,Linux 邮箱:dongjimingbit@sina.com *************************** “不悔不怨”

  • 博客(64)
  • 收藏
  • 关注

转载 【转载】linux修改文件的所有者权限[root权限更改为用户权限]

在 chown 命令中,所有者和所属组中间也可以使用点(.),但会产生一个问题,如果用户在设定账号时加入了小数点(例如 zhangsan.temp),就会造成系统误判。因此,建议大家使用冒号连接所有者和所属组。chown 命令,主要用于修改文件(或目录)的所有者,除此之外,这个命令也可以修改文件(或目录)的所属组。例如: 修改test 文件及文件夹下所有文件的拥有者为user。–R(注意大写)选项表示连同子目录中的所有文件,都更改所有者。

2022-10-11 10:25:55 5982

原创 【架构思路】函数式编程想法及小栗子

函数式编程中的「函数」指的是数学中的函数,即自变量的映射。函数的值取决于函数的参数的值,不依赖于其他状态,比如abs(x)函数计算x的绝对值,只要x不变,无论何时调用、调用次数,最终的值都是一样,即纯函数...

2022-07-19 09:58:43 348

转载 为什么sharedPtr不能直接传this指针?来看看enable_shared_from_this

enable_shared_from_this是一个模板类,定义于头文件,其原型为:template< class T > class enable_shared_from_this;std::enable_shared_from_this 能让一个对象(假设其名为 t ,且已被一个 std::shared_ptr 对象 pt 管理)安全地生成其他额外的 std::shared_ptr 实例(假设名为 pt1, pt2, … ) ,它们与 pt 共享对象 t 的所有权。若一个类 T 继承

2021-12-24 13:53:34 568

转载 【转载】c : internal compiler error: Killed (program cc1plus)处理方法

转载g++: internal compiler error: Killed (program cc1plus)Please submit a full bug report问题原因是因为内存不足 使用交换分区来解决:sudo dd if=/dev/zero of=/swapfile bs=64M count=16#count的大小就是增加的swap空间的大小,64M是块大小,所以空间大小是bs*count=1024MBsudo mkswap /swapfile#把刚才空间格式化成swap格式

2021-12-22 18:32:37 581

原创 【Package】RosBridge——打通Ros与非Ros环境的数据壁垒 #2 C++端实现功能ppianpak / rosbridgecpp

1 概览在上一篇文章【Package】RosBridge——打通Ros与非Ros环境的数据壁垒 中,我介绍了如何通过RosBridge来进行非Ros与Ros系统之间的数据通信,并且实现了一半的通信架构,即图片的左半部分,这一篇,我会通过介绍GitHub上的开源项目ppianpak / rosbridgecpp来实现架构的右半部分,测试完整的通信结构效果。ppianpak / rosbridgecpp实现了一个高效基于C++的与RosBridge通信的Client,使用rapidjson来进行json相关

2021-08-06 16:38:36 2188 5

原创 【Package】RosBridge——打通Ros与非Ros环境的数据壁垒

1 概览当你在Ros中开发完成,想要导入系统验证功能的时候,是不是苦于需要去Ros,但是去了Ros又没法使用很多很好用的工具,如rviz、rosbag等。调试起来费心费力,如果在非ros平台开发一套可视化、记录工具等又是庞大工程。顿时累觉不爱。如果你也有同样的烦恼,那快来点赞收藏关注博主,下面的工具绝对适合你,提高你的开发效率,Ros官方已经想到这个问题并且帮大家提供了解决方案:RosBridge在RosWiki中介绍了RosBridge的功能:Rosbridge provides a JSON

2021-08-06 15:58:31 7864 1

原创 【Package】ROS中地图神器——低开销刷新栅格地图及方法(ANYbotics/grid_map包)

1该包实现了多种不同的栅格地图:高度图、方差、表面法线等等,并且将地图更新做到了跟随机器人移动但不会在内存中复制数据,从而减少了地图更新的消耗。该包是实现的一种多层地图,如下所示,可以同时维护多种信息。链接2 功能2.1 多种地图更新迭代器可以按照不同的方式来更新指定地图的信息。...

2021-07-31 11:41:50 1298

原创 【Package】ROS中的感知神器——JSK Recognition

链接:https://github.com/jsk-ros-pkg/jsk_recognition2 功能包展示

2021-07-31 11:16:27 1329

原创 【Package】Ros中将深度图数据转换为3d点云数据(DepthImage转换为PointCloud)

1 Package概览名称:depth_image_procURL:http://wiki.ros.org/depth_image_proc功能包括提供视察图、深度图至点云的转换以及重映射给其他的摄像头。同时,该Package也可以进行XYZRGB形式的点云数据生成2 使用方法是Ros经典的使用方法:通过launch文件进行调用,参数通过Yaml文件进行设置。输入节点是深度图像的两个信息:camera_info (sensor_msgs/CameraInfo)image_rect

2021-07-12 17:57:50 2263

原创 【Package】ROS中将深度图数据转换为激光点云(sensor_msgs/Image 转换为 sensor_msgs/LaserScan)

1 Package概览名称:laserscan_kinectURL:http://wiki.ros.org/laserscan_kinect主要完成了将深度图像转换为LaserScan的激光数据的工作。在数据图中可见效果稳定:同时,该Package也进行了地面和顶部数据的滤除,并且对传感器位置进行了补偿。2 使用方法是Ros经典的使用方法:通过launch文件进行调用,参数通过Yaml文件进行设置。输入节点是深度图像的两个信息:image (sensor_msgs/Image)came

2021-07-06 10:06:05 1502 2

原创 【持续更新】ROS中的各种有意思的功能包

0 BGROS中有很多开源package,在很多方面做了有意思的工作,本文旨在记录一些平常看到的功能包,为方便后续有人使用和查找。1 数据转换类别1.1 LaserScan转换到PointCloud21.2 DepthImage 转换到 LaserScan链接:将深度图转换至激光数据,可以进行一些多传感器的匹配融合工作。...

2021-07-06 09:52:50 1856

原创 ROS中spinOnce的机制以及如何选择指定Topic进行Callback更新

0 背景项目中有多个Sensor的Topic需要订阅,Topic的更新频率各不相同,假设Topic A为25Hz,Topic B为10Hz,Topic A为关键数据,需求是当收到TopicA后即进行数据的处理。这里就需要对Callback的调用机制进行区别。1 SpinOnce机制SpinOnce与Spin的区别比较简单,这里就不具体说明了。在ROS中,当收到可以激活Callback函数的时机时,会将其压入一个队列,这个队列就是ros::CallbackQueue。当调用Spin或SpinOnce时,

2021-06-30 18:02:14 1320

原创 使用PLC_Ransac分析2D激光点云的模型参数并在ROS_Rviz中显示结果

目录导航0 背景1 RANSAC处理2 结果Coefficient的可视化0 背景RANSAC是一种可以在大量噪声点(外点)的数据中提取出符合预设模型参数的算法,算法通过多次迭代可以在含有50%以上非模型点的数据中选出模型点(内点),因此适用于点云数据中形状信息的提取,如下图所示。本文使用2D已经聚类的激光数据,运用Ransac算法来计算单一聚类中是否适合模型种类,选取的模型为{pcl::SACMODEL_CIRCLE2D,pcl::SACMODEL_LINE},也就是2d圆和直线模型,来用以获得聚

2021-05-25 13:36:40 1496 3

原创 pcl中智能指针Ptr的复制(针对于makeShared()方法的注意)

1 使用等号直接链接 pclpLaserCloud.reset(new pcl::PointCloud<pcl::PointXYZRGB>()); pclpLaserCloud = _pLaserCloud;运行结果指针count增加,既是两个指针指向了同一目标。2 pcl中的makeShared()pclpLaserCloud.reset(new pcl::PointCloud<pcl::PointXYZRGB>()); pclpLaserCloud

2021-05-21 17:49:21 3359

原创 Ros回播bag数据时出现TF_OLD_DATA ignoring data...错误的处理

0 问题描述在回放Bag数据的时候,出现警告信息:Warning: TF_OLD_DATA ignoring data from the past for frame stm32_imu at time 1.6203e+09 according to authority unknown_publisher Possible reasons are listed at http://wiki.ros.org/tf/Errors%20explained at line 277 in /tmp/binaryde

2021-05-14 16:51:56 5662 4

原创 使用Split-and-Merge算法提取2D激光点云中的直线数据

2021-05-08 17:10:28 1816

转载 ZMQ安装和使用

ZMQ 并不像是一个传统意义上的消息队列服务器,事实上,它也根本不是一个服务器,它更像是一个底层的网络通讯库,在 Socket API 之上做了一层封装,将网络通讯、进程通讯和线程通讯抽象为统一的 API 接口跟 Socket 的区别是:普通的 socket 是端到端的(1:1的关系),而 ZMQ 却是可以N:M 的关系,人们对 BSD 套接字的了解较多的是点对点的连接,点对点连接需要显式地建立连接、销毁连接、选择协议(TCP/UDP)和处理错误等,而 ZMQ 屏蔽了这些细节,让你的网络编程更为简单。ZM

2021-05-08 14:09:44 2872

原创 应用区域生长(Seeded Region Growing)算法提取2D激光中的线段数据

0 Background本文是针对于 **《A line segment extraction algorithm using laser data based on seeded region growing》**进行的算法理解记录,算法的思想方法主要来源于该文章。文章中针对于流行的图像线段分割方法Split-and-Merge中存在的线段误分割问题(如上图所示),提出了基于区域生长(Seeded Region Growing, SRG)的算法来分割线段。该SRG算法流行于图像处理领域,是图像分割技

2021-05-08 11:41:30 2079 1

原创 Linux下算法操作时间统计c++代码实现

0 应用函数clock ( )的返回值为:自程序开始运行至此函数被调用时所经过的硬件滴答数。  分别取代码前后的clock tick数并作差,即为代码运行所经历的clock tick,再通过常量CLOCKS_PER_SEC便可得到代码运行时间。1 代码例子//// Created by greg on 5/6/21.//#include <time.h>#include <vector>#include <iostream>int main (int

2021-05-06 17:06:53 319

原创 PCL中利用KD-Tree搜索空间点云最临近点源码

0 关于KD-Tree关于kd-tree的基本原理和构造实现情况可以参考博文:《KD-Tree结构与算法原理》1 PCL中使用kd-tree进行最近邻点搜索先分部解释,完整代码见第二部分。1.1 最近邻搜索关键函数int pcl::search::KdTree< PointT, Tree >::nearestKSearch (const PointT & point,int k,std::vector< int > & k_indices,std::

2021-05-06 13:42:59 1109

原创 KD-Tree结构与算法原理

0 KD-Tree基本简述Kd-Tree,即K-dimensional tree,是一种高维索引树形数据结构,常用于在大规模的高维数据空间进行最近邻查找(Nearest Neighbor)和近似最近邻查找(Approximate Nearest Neighbor),例如图像检索和识别中的高维图像特征向量的K近邻查找与匹配。KD-Tree是二叉查找树的思想结构在高维尺度上的实现,本文不会描述二叉查找树的基本情况,想了解的可以查看博文《二叉查找树(Binary Search Tree)结构与算法解析》在将

2021-05-06 11:10:03 1036

原创 二叉查找树(Binary Search Tree)结构与算法解析

0 二叉查找树二叉查找树相比于其他数据结构的优势在于查找、插入的时间复杂度较低。为O(Log n)。二叉查找树是基础性数据结构,用于构建更为抽象的数据结构,如集合、多重集、关联数组等。1 二叉查找树的特点是指一棵空树或者具有下列性质的二叉树:若任意节点的左子树不空,则左子树上所有节点的值均小于它的根节点的值;若任意节点的右子树不空,则右子树上所有节点的值均大于它的根节点的值;任意节点的左、右子树也分别为二叉查找树;每次插入的新的结点都是二叉查找树上新的叶子结点,在进行插入操作时,不必移动

2021-05-06 10:13:45 926

原创 PCL_ROS中Voxcel Grid Filter体素滤波源码简读

本文结合了朱德海主编的《点云库PCL学习教程》与其他一些文档的内容,以及pcl_ros源码给出。Voxel Grid Filter使用体素化网格方法实现下采样,即减少点的数量,减少点云数据,并同时保持点云的形状特征,在提高配准、曲面重建、形状识别等算法速度中非常实用。所以该类常用于对大数据量的下采样处理,特别是在配准、曲面重建等工作之前作为预处理,可以很好的提高程序的速度。PCL中Filter相关部分代码结构其中VoxelFilter是基于Filter类的具体实现。PCL_ROS中VGF部

2021-04-30 11:08:13 1231

原创 PCL与PCL_ROS源码下载分享

为方便学习PCL的伙伴们方便获取源码,现分享从Github下载的PCL与PCL_ROS源码。其中,pcl_ros为适用kinetic版本。PCL下载:链接:https://pan.baidu.com/s/1DvCoh1j_W__uJb7BKDaGCA提取码:yi4dPCL_ROS下载:链接:https://pan.baidu.com/s/1ge8eGtAXOeCrZKy9YNfvNA提取码:yi4d...

2021-04-30 09:56:31 597

原创 MXEYE-QL25 立体视觉模组ROS中Topic数据分析

1 Topics发布的数据信息如下:rostopic list -vPublished topics: * /mx/cloud1_ground [sensor_msgs/PointCloud2] 1 publisher * /move_base_simple/goal [geometry_msgs/PoseStamped] 1 publisher * /mx/cloud1 [sensor_msgs/PointCloud2] 1 publisher * /mx/cloud2 [sensor_m

2021-04-29 14:51:44 515 1

原创 使用ros_readbagfile脚本高效提取bag中的topic数据

特点:高效、不需要运行ros环境甚至是roscore、可选取任意多个关注的topic数据。1 准备ros_readbagfile(如果下载链接无效可复制源码)#下载脚本文件wget https://raw.githubusercontent.com/ElectricRCAircraftGuy/eRCaGuy_dotfiles/master/useful_scripts/ros_readbagfile.py# 赋予执行权限chmod +x ros_readbagfile.py# 创建bin路径

2021-04-29 14:11:20 1664 4

原创 ros常用命令整理[持续更新]

会陆续添加1 基本操作相关1.1 查看ROS_PACKAGE_PATH环境变量$ echo $ROS_PACKAGE_PATH/home/[Name]/catkin_ws/src:/opt/ros/kinetic/shareroscore 1.2 rosrun 命令rosrun 允许你使用包名直接运行一个包内的节点(而不需要知道这个包的路径)。用法:$ rosrun [package_name] [node_name]1.3 rosls 命令rosls是rosbash命令集中

2021-04-29 10:55:34 1705

原创 Vector相关

1 vector 的初始化与赋初值1 不带参数的初始化 vector<int> Numb;//不带参数得到的是size=0的vector2 带构造参数的初始化 vector<int> Numb(大小,[初始值]); //如果不指定初始值则为0;3 通过数组地址范围初始化 int arr[5] = {0,1,2,3,4}; vector<int> Numb(arr,arr+5); //地址的开始和结束范围,如上,右侧为+54 通过同类型

2021-04-28 10:34:40 118

原创 法考整理 刑法3-客观构成要件

2020-06-17 14:54:31 260

原创 老电脑拯救计划——将机械盘的系统迁移到SSD

本文目录0 背景介绍1 安装SSD2 进行系统迁移3 另一种方式0 背景介绍老电脑的机械硬盘系统着实让人崩溃,分分钟会出现如下让人头秃的情况:但是系统用了很久,安装了各种软件和环境,如果直接重装系统都要重新配置一遍的话太浪费时间了,何况很多APP密码我都不记得了,所以最好的方式当然是能把机械盘上的老系统迁移到新SSD上面去。1 安装SSD首先拆开机箱,将固态硬盘的SATA线和电源线都接好。装好后开机,系统监测到SSD后安装成功。2 进行系统迁移这里使用分区助手进行系统迁移。打开分区助

2020-06-16 11:35:22 2324

原创 老本拯救计划——联想Ideapad 320S-15IKB笔记本加装SSD教程

0 写在前面今天拿到了个笔记本,正好现在的工作需要移动办公,有个笔记本电脑会方便很多,不过从开机开始就感觉卡出了翔,都0202年了这么卡真的忍受不了。先搞个鲁大师看看问题在哪,截图如下cpu是I5的U,还是双核 内存是D4的8G,忍了 ,硬盘1T5400转,这个就忍不了了,拿机械盘工作就跟上刑具差不多了,那说搞就搞。1准备工作首先是看主板支持情况,搜索LNVNB161216这个主板得到的结果是不一样的,有的说可以加装,有的就只能把机械盘拆下来装SSD了。说实话,这还是有些可惜,单SSD真是有些捉襟见

2020-06-12 10:32:55 32273 26

原创 法考整理 刑法-2 犯罪论体系

2020-06-03 16:50:05 301

原创 Buildozer生成的APP闪退+PermissionError故障排除记录

0 情况介绍最近有一个项目需要一个简单的手机客户端应用,由于项目是Python写的,所以希望手机客户端同样使用Python语言,查询后发现Python可以通过多种途径生成APK文件,经过多次安装尝试后选择了使用Kivy+Buildozer来进行apk文件的生成[(其他生成方式见此链接](https://kivy.org/doc/stable/guide/packaging-android.html))。展示的项目比较简单,除了链接服务器外,现在仅添加了通过Owncloud获取网盘的图片功能(使用[pyo

2020-06-03 09:56:29 4307

原创 法考整理-刑法-1 基本知识

法考知识整理 刑法-1 :基础知识写在前面今天开始在博客上连载整理的法考知识,这个整理内容是基于厚大法考在2020年的教材整理的知识结构,本来是用于自己复习记录的,也希望发出来,如果对你的备考之路有任何帮助的话我都会很开心。整理过程可能会有问题,如果你发现了也欢迎以各种方式通知我,让我们一起提高。另外,这个整理脑图中总结了主要的知识结构,但是还有很多知识是在脑图中的备注中展示的,也便于我通过...

2020-05-06 16:55:16 341

原创 Ubuntu使用SystemService来运行开机自启动脚本

1 自动执行脚本在Linux自动开机执行脚本的众多方法中,有一种是基于标准化的配置执行方式,该方式就是将执行脚本设置为自定义服务,通过脚本的运行退出机制和启动顺序的设定来进行自启动脚本的标准化管理。2 脚本的设定2.1 创建脚本在/etc/init.d/ 下以管理员权限新建文件,在本例中为Button.sh2.2 根据自身情况修改脚本标准的脚本模板如下:#!/bin/bash###...

2020-04-24 15:11:12 778

原创 自用c++注意事项文档

0 前言1 类相关不要在类的构造函数中进行针对于数据除初始化外的操作,可单列一个Initialize()函数。

2020-01-17 10:37:11 141

原创 一次印象深刻的float和double的精度Bug处理

平时认为double的精度高一些,float的精度低一些,仅此而已,如果有精度不够的问题就再更换数据类型就好了,不会是什么大问题,现在就看下下图:滤波结果示意图该图为对一次数据使用22-80hz滤波器后得到的结果,其显示了一个发散的滤波结果。我从各个方面检查问题都无果,包括filter的实现代码,滤波器的设计甚至于各个变量地址的检查,经过了大半天仍然没有头绪。...

2019-10-24 16:02:02 455

原创 Linux中控制台进行状态更新输出,改变字体颜色等操作

1 目标实现如下图所示的不翻页输出:minicom为例进行更新输出2 输出方法3 输出规则引用于:https://blog.youkuaiyun.com/yinlinqvan/article/details/34440501字背景颜色范围: 40--49 字颜色: 30--39 40: 黑 ...

2019-10-22 10:35:12 554

原创 用Matlab设计Butterworth滤波器后在c/c++中使用

设置好参数后,点最下方的“Design Filter”,生成参数。然后在菜单File下Export导出参数:导出对话框点Export后即可在工作区看到导出的数据Hd.最后使用命令行将参数转换为C语言可用的参数表:[b,a]=sos2tf(Hd.sosMatrix,Hd.ScaleValues)可得到b和a参数表:b =1.0e-03 *0.0231 0...

2019-10-08 16:59:17 1032

原创 Linux下静态链接库和动态链接库的创建与使用

1 创建链接库使用简单的一个函数来实现链接库功能,函数实现如下:library.cpp文件:#include "library.h"#include <iostream>void hello() { std::cout << "Hello, library World!" << std::endl;}library.h...

2019-09-30 09:11:27 279

空空如也

空空如也

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

TA关注的人

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