
c++
文章平均质量分 55
鲁伯特1996
ros cpp 单片机
展开
-
c++ 多线程
文章目录多线程std::threaddetachjoinableoperator =静态函数线程同步成员函数locktry_lockunlock代码std::lock_guardstd::recursive_mutexstd::timed_mutex读写锁条件变量生产消费者模型原子变量死锁永远不要同时持有两把锁保证双方上锁顺序一致用std::lock同时对多个上锁自旋锁线程池多线程多线程主要是线程的函数,创建、传参互斥锁条件变量生产消费者模型源自变量死锁*线程异步操作std::threadc++原创 2022-05-02 22:30:53 · 1298 阅读 · 0 评论 -
c++11特性(3)
文章目录闭包什么是闭包闭包的实现仿函数:重载operator()std::bind绑定器lambda表达式闭包什么是闭包闭包有很多定义,一种说法是,带有上下文的函数。说白了就是有状态的函数。更直接一点,不就是个类吗?换了个名字而已一个函数,带上了状态就变成闭包了。那么什么叫做带上状态呢?意思是这个闭包有属于自己的变量,这些个变量的值是创建闭包的时候设置的,并且在调用闭包的时候,可以访问这些变量函数是代码,状态是一组变量,将代码和一组变量捆绑(bind)就形成了闭包。闭包的状态捆绑,必须发生在运行原创 2022-05-02 22:22:18 · 605 阅读 · 0 评论 -
c++11特性(2):智能指针及其实现
文章目录智能指针unique_ptrshared_ptrweak_ptr智能指针unique_ptrunique_ptr持有对对象的独有权,同一时刻只能有一个unique_ptr指向对象(通过禁止拷贝语义,只有移动语义来实现)生命周期:从创建开始,直到离开作用域离开作用域时,若其指向对象,则将其所指对象销毁(默认使用delete操作符,用户可指定其他操作)unique_ptr实际是类模板,只不过是禁用了拷贝构造函数、赋值运算符=重写了移动拷贝构造、->符号、*符号独占指针的手工实现/*手原创 2022-05-02 22:19:55 · 910 阅读 · 0 评论 -
c++11特性(1)
文章目录c++11新特性类型推导auto 类型推倒decltype,获取auto声明变量的类型追踪返回类型易用性的改进类内部成员初始化初始化列表防止类型收窄基于范围的for循环静态断言noexcept修饰符nullptr强枚举类型常量表达式用户自定义面量原生字符串字面值类的改进继承构造委托构造继承控制类默认函数的控制模板的改进右尖括号>改进模板的别名函数模板的默认模板参数可变参数模板右值引用左值右值引用移动语义转移构造函数转移赋值函数标准库函数std::move完美转发c++11新特性类型推导原创 2022-05-02 22:18:18 · 656 阅读 · 0 评论 -
锚点导航探索
工业amr在运动时,不可能让其进行自由导航特别是多机时,而是通过调度等进行停障,此时要将我们所用的栅格图转化为拓扑图,类似于磁条在敲代码过程中,困扰很久的问题,std::vector不可直接取地址,因为当vector扩容时,会新申请一段连续内存将现有的数据拷贝过去,释放掉原来的内存,这就导致了开始取得地址没有了。当vector扩容时,全部地址都会发生改变...原创 2022-03-16 17:15:37 · 600 阅读 · 3 评论 -
movebase存在的问题
movebase重大bug解析:当机器人在PLANNING状态时,只会开启plan线程,而不会发布速度及其他操作(在executeCycle函数中switch中只会进入PLANNING),而在plan线程中,当运行满足(makplan规划不出路径->当前处于PLANNING状态->未超出设定的全局规划失败次数)三个条件时程序竟然什么也不做,一直规划,直到超出设定的全局规划失败次数才会进入recovery,然后就导致这过程中没有人发布速度,一直按上一次控制状态CONTROLLING发布的速度行驶原创 2022-03-15 16:25:17 · 1299 阅读 · 3 评论 -
ros虚拟墙
编写一个基于costmap2d的虚拟墙插件我们可以根据costmap2d中的三个插件来编写一个我们自己的虚拟墙插件,主要使用setcost方法来实现。git下载源码编译后打开功能包中的demo文件夹我们根据其中的global_costmap_params.yaml和local_costmap_params.yaml在plugins添加 -{name: virtual_wall, type:"virtual_wall::VirtuallWall"}即可重新打开导航,然后使用rviz中的"Publ原创 2021-06-20 15:16:47 · 3163 阅读 · 17 评论 -
qt pushbutton笔记
多个按钮连接到一个槽函数//查询时哪个按键被按下QPushButton* pBtn= qobject_cast<QPushButton*>(sender());if(pBtn==ui.open_drive){ cout << "open drive" << endl;}else if(pBtn==ui.open_slam){ cout << "open slam" << endl;}else if (pBtn==u.原创 2021-02-25 17:57:50 · 216 阅读 · 0 评论 -
global_planner解析(2)
第二章我们则对功能包的文件及类进行解析:首先我们看一下功能包里面有什么类分别作用(由于本人刚刚入门uml,故图片可能有所偏差)里面最主要的就是插件算法类GlobalPlanner父类nav_core::BaseGlobalPlanner,而路径搜索分别是DijkstraExpansion(地杰斯特拉算法)、AStarExpansion(astar算法),路径回溯PotentialCalculator、QuadraticCalculator(使用梯度下降)然后我们看一下里面有哪些文件:.├── b原创 2021-02-25 11:27:56 · 1123 阅读 · 0 评论 -
global_planner解析(1)
global_planner是ros的一个全局导航插件功能包,实现了astar和Dijkstra寻路算法。我们大部分同学会使用而网上也很少对其的完全解析,今天我们就来解析一下global_planner功能包。第一章将从其参数讲起:以下参数在启动时进行配置-old_navfn_behavior:bool ture使用原来功能包navfn的规划方式use_quadratic:bool true使用二次近似函数,false使用更简单的计算方式节省硬件资源(否的话会扩展周边4个点,是扩展周边八个)u原创 2021-02-25 09:58:38 · 2179 阅读 · 2 评论 -
c++ std::string操作笔记
find()在一个字符串中查找一个指定的单个字符或字符数组。如果找到,就返回首次匹配的开始位置;如果没有查找到匹配的内容,就返回string::npos。find_first_of()在一个目标串中进行查找,返回值是第一个与指定字符组中任何字符匹配的字符位置。如果没有查找到匹配的内容,则返回npos。find_last_of()在一个目标串中进行查找,返回最后一个与指定字符组中任何字符匹配的字符位置。如果没有查找到匹配的内容,则返回npos。find_first_not_of()在一个原创 2021-01-29 11:27:02 · 481 阅读 · 1 评论 -
c++常见错误
libssh2 编译出错error: cannot convert ‘char*’ to ‘LIBSSH2_POLLFD* {aka _LIBSSH2_POLLFD*}’ in assignment fds = (char*)malloc(sizeof(LIBSSH2_POLLFD));出现error的原因是C++设计得比C更加安全,它不能自动地将void *转换为其它指针类型。而出现warning的原因则是程序试图将字符串字面值(在C++中字符串字面值为const char []类原创 2021-01-28 15:56:11 · 911 阅读 · 0 评论 -
qt c++笔记
qt文字换行 \nQLabel:文字对齐:有一个参数alignment,下拉会有水平方向和垂直方向的设置设置文字 例 ui->value_x->setText(“hello world”);原创 2020-12-11 10:25:14 · 132 阅读 · 0 评论 -
c++笔记
类public:公有类型,类外可以访问公有成员private:私有类型,只能被本类的成员函数访问,来自外部的任何访问都是非法的protected:保护性成员原创 2020-12-30 14:02:21 · 114 阅读 · 0 评论 -
堆栈算法笔记
堆栈都是一种数据项按序排列的数据结构,只能在一端(称为栈顶(top))对数据项进行插入和删除。堆(数据结构):堆可以被看成是一棵树,如:堆排序。进出顺序随意栈(数据结构):一种先进后出的数据结构。std::make_heap将[start, end)范围进行堆排序,默认使用less, 即最大元素放在第一个。make_heap()是生成一个堆,大顶堆或小顶堆make_heap(_RAIter,_RAIter) 默认生成大顶堆make_heap(_RAIter,_RAIter,_Compare)原创 2020-08-13 15:03:32 · 275 阅读 · 0 评论