
c++
文章平均质量分 62
Plaggable
感知与决策,机器人控制,Linux,SLAM,ROS
***************************
“不悔不怨”
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
为什么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 · 588 阅读 · 0 评论 -
【转载】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 · 601 阅读 · 0 评论 -
【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 · 2244 阅读 · 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 · 7941 阅读 · 1 评论 -
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 · 1347 阅读 · 0 评论 -
使用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 · 1534 阅读 · 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 · 3394 阅读 · 0 评论 -
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 · 334 阅读 · 0 评论 -
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 · 1128 阅读 · 0 评论 -
PCL_ROS中Voxcel Grid Filter体素滤波源码简读
本文结合了朱德海主编的《点云库PCL学习教程》与其他一些文档的内容,以及pcl_ros源码给出。Voxel Grid Filter使用体素化网格方法实现下采样,即减少点的数量,减少点云数据,并同时保持点云的形状特征,在提高配准、曲面重建、形状识别等算法速度中非常实用。所以该类常用于对大数据量的下采样处理,特别是在配准、曲面重建等工作之前作为预处理,可以很好的提高程序的速度。PCL中Filter相关部分代码结构其中VoxelFilter是基于Filter类的具体实现。PCL_ROS中VGF部原创 2021-04-30 11:08:13 · 1284 阅读 · 0 评论 -
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 · 127 阅读 · 0 评论 -
自用c++注意事项文档
0 前言1 类相关不要在类的构造函数中进行针对于数据除初始化外的操作,可单列一个Initialize()函数。原创 2020-01-17 10:37:11 · 149 阅读 · 0 评论