c++学习
pd很不专业
ROS的一些常见问题的解决方法,正在学习ros,linux,C++,python,,,,,
展开
-
C++ 学习笔记(对双端队列进行封装,实现数据生产者消费者)
#pragma once #include <deque>#include <condition_variable>template <typename T>class MsgList { public: void add(const T& msg) { std::unique_lock<std::mutex> lock(mutex); queue.原创 2022-03-07 10:38:05 · 763 阅读 · 0 评论 -
restbed -C++ restfull 架构的应用 http
#include <ros/ros.h>#include <string>#include <memory>#include <cstdlib>#include <fstream>#include <restbed>#include <streambuf>using namespace std;using namespace restbed;void get_method_handler( const原创 2021-07-27 17:14:54 · 613 阅读 · 3 评论 -
C++ 学习笔记(一 获取文件夹下所有文件, 二判断文件夹是否存在不存在重新创建,代码段)
//获取文件夹下所有文件std::vector<string> SensorManager::getFiles(std::string cate_dir){ std::vector<string> files;//存放文件名 DIR *dir; struct dirent *ptr; char base[1000]; if ((dir=opendir(cate_dir.c_str())) == NULL) { perror("Open.原创 2021-04-26 14:52:26 · 413 阅读 · 0 评论 -
C++基础知识点整理(二)
关键字Const1)const修饰变量:存储在常量区,不允许被修改。修饰指针变量分为指向常量的指针和指针本身是常量。如果修饰的是类的成员变量那么必须在类中定义的时候初始化或者在构造函数的初始化列表中初始化。2)const修饰函数:如果修饰返回值表示返回值不可被修改。如果修饰成员函数表示不可在函数中修改任何成员变量。3)const修饰对象:表示这个对象是一个常量,在初始化的时候要对所有成员变量都初始化。共有变量只能读,并且只能调用const成员函数。关键字...转载 2021-03-29 16:42:38 · 197 阅读 · 0 评论 -
C++基础知识点整理(一)
1. 一个C++源文件从文本到可执行文件经历的过程:gcc hello.c hello 预处理阶段:gcc -E hello.c -o hello.i 对源代码文件中文件包含关系(头文件)、预编译语句(宏定义)进行分析和替换,生成预编译文件。 编译阶段:gcc –S hello.i –ohello.s 将经过预处理后的预编译文件转换成特定汇编代码(编译原理相关,词法分析、语法分析、语义分析等),生成汇编文件 汇编阶段:gcc –c hello.s –ohello.o 将...转载 2021-03-29 15:49:07 · 422 阅读 · 0 评论 -
ROS订阅者只订阅一次消息
#include <ros/ros.h>#include <opencv2/core/core.hpp>#include <opencv2/imgproc/imgproc.hpp>#include <opencv2/opencv.hpp>#include <iomanip>#include <opencv2/objdetect.hpp>#include <opencv2/highgui.hpp>#incl..原创 2021-03-16 10:41:16 · 2779 阅读 · 0 评论 -
学习笔记 c++ (LINUX 下C++大华sdk 抓图)
#include <ros/ros.h>#include <opencv2/core/core.hpp>#include <opencv2/imgproc/imgproc.hpp>#include <opencv2/opencv.hpp>#include <iomanip>#include <opencv2/objdetect.hpp>#include <opencv2/highgui.hpp>#inclu.原创 2021-02-18 17:37:18 · 2031 阅读 · 2 评论 -
学习笔记 c++( C++11 并发与多线程)
代码#include<iostream>#include<thread>#include<mutex>#include<vector>using namespace std;void thread_funs(int inum) //线程入口函数{ cout<<"go thread_funs: "<<inum<<endl; cout<<"thread_funs: "<&原创 2020-12-11 16:13:45 · 226 阅读 · 0 评论 -
学习笔记 c++( C++ 操作 json 文件)
json_study.h/* * @Author: Li Chao * @Date: 2020-11-07 16:50:38 * @Last Modified by: Li Chao * @Last Modified time: 2020-11-10 11:48:56 */#include <string>#include <json/json.h>#include <iostream>#include <fstream>u.原创 2020-11-11 16:38:45 · 496 阅读 · 0 评论 -
学习笔记 c++( socket网络编程,心跳监测,断线重连,结构体发送接收)
server.h/* * @Author: Li Chao * @Date: 2020-11-03 08:38:56 * @Last Modified by: Li Chao * @Last Modified time: 2020-11-03 17:03:45 */#include <arpa/inet.h>#include <errno.h>#include <netinet/in.h>#include <poll.h>#in原创 2020-11-07 15:30:02 · 2592 阅读 · 4 评论 -
学习笔记 c++ Linux下C/C++语言读取网卡MAC地址
代码实例:#include <stdio.h>#include <stdlib.h>#include <string.h>#include <unistd.h>#include <sys/ioctl.h>#include <sys/socket.h>#include <netinet/in.h>#include <net/if.h>int main(int argc, char *argv原创 2020-10-10 09:24:40 · 2505 阅读 · 1 评论 -
学习笔记 c++ ( C++设计模式-观察者模式 实例)
当对象间存在一对多关系时,则使用观察者模式(Observer Pattern)。比如,当一个对象被修改时,则会自动通知依赖它的对象。观察者模式属于行为型模式。代码实例:#include<iostream>#include<list>using namespace std;//抽象的英雄 抽象的观察者class AbstractHero{public: virtual void Update() = 0;};//具体的观察者class H.原创 2020-09-25 15:51:47 · 176 阅读 · 0 评论 -
学习笔记 c++ ( C++设计模式-策略模式 实例)
在策略模式(Strategy Pattern)中,一个类的行为或其算法可以在运行时更改。这种类型的设计模式属于行为型模式。在策略模式中,我们创建表示各种策略的对象和一个行为随着策略对象改变而改变的 context 对象。策略对象改变 context 对象的执行算法。代码实例:#include<iostream>using namespace std;class WeaponStrategy{public: virtual void UseWeapon() = 0原创 2020-09-24 15:32:57 · 329 阅读 · 0 评论 -
学习笔记 c++ ( C++设计模式-模板方法模式 实例)
在模板方法模式(Template Pattern)中,一个抽象类公开定义了执行它的方法的方式/模板。它的子类可以按需要重写方法实现,但调用将以抽象类中定义的方式进行。这种类型的设计模式属于行为型模式。代码实例:#include<iostream>using namespace std;class DrinkTemplate{public: //单个功能 virtual void Boildwater() = 0; virtual void Brew原创 2020-09-24 11:14:14 · 110 阅读 · 0 评论 -
学习笔记 c++ ( C++设计模式-单例模式 实例)
所谓单例,就是整个程序有且仅有一个实例。该类负责创建自己的对象,同时确保只有一个对象被创建单例模式的作用主要是为了避免创建多个实例,目的是为了产生全局唯一的一个示例。此处的全局表示的是进程内部,多个进程肯定有自己多个实例,因为操作系统按照进程来划分内存。单例又分为饿汉式和懒汉式。饿汉式则是一上来则创建对象,而懒汉式是只有使用到的时候才会创建对象。1. 懒汉式懒汉式的意思是: 只有到来获取对象的时候才急忙的去创建对象2. 饿汉式饿汉式的写法有很多种,此处使用堆创建的方式演示。.原创 2020-09-19 17:15:25 · 129 阅读 · 0 评论 -
学习笔记 c++ ( C++设计模式-抽象工厂模式 实例)
简单工厂模式升级版:C++设计模式-工厂方法模式 实例地址https://blog.csdn.net/qq_42145185/article/details/108662489原理框架图:代码实例:#include<iostream>using namespace std;//抽象苹果class AbstractApple{public: virtual void ShowName() = 0;};//中国苹果class ChinaApple .原创 2020-09-18 17:05:01 · 166 阅读 · 0 评论 -
学习笔记 c++ ( C++设计模式-工厂方法模式 实例)
原理框架图:代码实例:#include<iostream>using namespace std;//抽象水果类class AbstractFruit{public: virtual void ShowName() = 0;};//苹果class Apple : public AbstractFruit{public: virtual void ShowName() { cout<<"我是苹果"<&.原创 2020-09-18 11:46:18 · 132 阅读 · 0 评论 -
学习笔记 c++ ( C++设计模式-简单工厂模式 实例)
运行结果:#include<iostream>using namespace std;//抽象水果类class AbstractFruit{public: virtual void ShowName() = 0;};//苹果class Apple : public AbstractFruit{public: virtual void ShowName() { cout<<"我是苹果"<<endl;.原创 2020-09-18 10:58:24 · 181 阅读 · 0 评论 -
学习笔记 c++ (函数对象 C++ function对象,C++ bind 解析以及实例)
函数对象1. function对象C++语言中有几种可调用对象:函数、函数指针、lambda表达式、bind创建的对象 以及重载了函数调用运算符的类。在前面讲解函数指针的时候,提过,函数指针也是有类型的,函数指针的类型,由函数的返回值类型和参数共同决定。而function的出现让这个定义更为简化。function是一个模板类,可以用来表示函数的类型,当然需要在定义的时候,表示函数的返回值类型以及参数的类型。 除了能使用函数指针来调用函数之外,其实也可以声明一个function的对象,接收某一个原创 2020-09-10 10:55:19 · 529 阅读 · 0 评论 -
学习笔记 c++ (二维vector操作示例+文件操作)
文件中存放如下所示的 3 * 4 的矩阵数据,需要读取出来,然后使用vector来存储。1, 6, 2, 10.511, 15.2, 2, 213, 9, 1, 7.5示例代码#include <iostream>#include <string>#include <fstream>using namespace std; int main(){ fstream matrixFile{"../matrix.txt" , io原创 2020-08-08 15:45:01 · 889 阅读 · 0 评论 -
ROS Action动作通讯编程C++
自定义Action消息¶Action的消息规范主要是为了描述Client端和Server端交互的数据格式,具体来说,就是为了去描述Goal,Feedback,Result的数据格式。通常我们会新建一个package来管理并且定义Action的消息格式。以当前案例为例,我们会去新建好一个叫做demo_action_msgs的package,新建过程中,我们添加必要的依赖roscpp,rospy,rosmsg,actionlib_msgs。然后删除不必要的文件夹src,include。1. ..原创 2020-07-22 11:31:17 · 1908 阅读 · 0 评论 -
ROS参数服务器(参数使用详细介绍)
参数服务器是可通过网络访问的共享的多变量字典。它是节点存储参数的地方、用于配置参数、全局共享参数。参数服务器使用互联网传输,在节点管理器中运行,实现整个通信过程。它使用XMLRPC数据类型为参数赋值,包括以下类型:32位整数、布尔值、字符串、双精度浮点、ISO 8601日期、列表(List)、基于64位编码的二进制数据。 参数服务器的配置方式非常的简单灵活,总的来讲有三种方式:命令行维护、launch文件内读写、node源码。 命令行维护ROS中关于参数服务器的工...原创 2020-06-19 17:12:38 · 7470 阅读 · 1 评论 -
ROS 动作库的请求与相应(基于c++) 创建并使用ROS action服务器(代码详细解释)
action文件:# Define the goaluint32 dishwasher_id # Specify which dishwasher we want to use---# Define the resultuint32 total_dishes_cleaned---# Define a feedback messagefloat32 percent_completeaction_server.cpp文件#include <ros/ros.h>/*原创 2020-06-19 16:51:41 · 755 阅读 · 0 评论 -
C++ OpenCV学习笔记(多线程,多个摄像头进行基于Haar+Adaboost实现的人脸检测功能,并发送点位数据给到机器人)
#include <opencv2/core/core.hpp> #include <opencv2/imgproc/imgproc.hpp> #include <opencv2/opencv.hpp> #include <vector> #include <cstdio> #include <stdio.h...原创 2020-04-14 16:01:38 · 828 阅读 · 1 评论 -
C++ OpenCV学习笔记(多线程,多个摄像头进行基于Haar+Adaboost实现的人脸检测功能)
#include <opencv2/core/core.hpp> #include <opencv2/imgproc/imgproc.hpp> #include <opencv2/opencv.hpp> #include <vector> #include <cstdio> #include <wind...原创 2020-04-11 12:30:31 · 2114 阅读 · 3 评论 -
C++ OpenCV学习笔记(基于Haar+Adaboost实现的人脸检测功能)
#include <opencv2/core/core.hpp> #include <opencv2/imgproc/imgproc.hpp> #include <opencv2/opencv.hpp> #include <vector> #include <cstdio> using namespace std...原创 2020-04-10 18:55:42 · 576 阅读 · 3 评论 -
使用越疆科技的M1-B1机器人进行ROS下送水功能(带TCP启动信号版)
(带TCP启动信号V1版-简单信号启动,不带接收到的数据处理功能)#include "ros/ros.h"#include "ar_track_alvar_msgs/AlvarMarkers.h"#include "iostream"#include "stdio.h"#include "cv.h"#include "opencv2/opencv.hpp"#include "cv...原创 2020-04-02 18:16:20 · 796 阅读 · 0 评论 -
C语言SOCKET发送int数据转char数据
#include<stdio.h>#include<string.h>int main(){ int count = 4123131; char countBuff[1]; memset( countBuff, 0, 1 ); memcpy( countBuff, &count, sizeof(count) ); int recvCount;...原创 2020-04-01 17:16:36 · 1700 阅读 · 0 评论 -
Opencv学习笔记(使用HOG+SVM进行图片行人检测)
图片检测效果:代码:#include <iostream>#include <opencv2/opencv.hpp>using namespace std;using namespace cv;int main(int argc, char** argv){ //读取图片 cv::Mat image = cv::imread("C:/Use...原创 2020-03-30 11:52:44 · 666 阅读 · 0 评论 -
ROS下进行人脸识别并输出人脸坐标位置
功能包下载链接:启动命令:roslaunch face_tracker_pkg start_tracking.launch核心检测代码:/** This code will track the faces using ROS *///ROS headers#include <ros/ros.h>#include <image_transp...原创 2020-03-23 17:22:47 · 21490 阅读 · 0 评论 -
DOBOT magician魔术师在ROS下使用moveit编写代码控制(笛卡尔空间控制气泵抓取功能)
#include <string>#include <ros/ros.h>#include <moveit/move_group_interface/move_group_interface.h>#include <iostream>#include <magician_hardware/SetEndEffectorSuctionCu...原创 2020-03-20 15:52:27 · 1245 阅读 · 4 评论 -
DOBOT magician魔术师在ROS下使用moveit编写代码控制(笛卡尔空间控制走圆)
#include <math.h>#include <ros/ros.h>#include <moveit/move_group_interface/move_group_interface.h>#include <moveit/robot_trajectory/robot_trajectory.h>int main(int argc, ...原创 2020-03-18 14:06:20 · 622 阅读 · 1 评论 -
DOBOT magician魔术师在ROS下使用moveit编写代码控制(笛卡尔空间控制走直线)
$ rosrun probot_demo moveit_cartesian_demo.py _cartesian:=False 走自由路径$ rosrun probot_demo moveit_cartesian_demo.py _cartesian:=True 走直线代码:#!/usr/bin/env python# -*- coding: utf-8 -*-impo...原创 2020-03-17 11:18:27 · 1368 阅读 · 0 评论 -
DOBOT magician魔术师在ROS下使用moveit编写代码控制(笛卡尔空间控制)
#include <string>#include <iostream>#include <ros/ros.h>#include <moveit/move_group_interface/move_group_interface.h>using namespace std;int main(int argc, char** argv)...原创 2020-03-16 17:50:21 · 428 阅读 · 0 评论 -
DOBOT magician魔术师在ROS下使用moveit编写代码控制(关节空间控制)
#include <ros/ros.h>#include <moveit/move_group_interface/move_group_interface.h>#include <iostream>using namespace std;int main(int argc, char** argv)\{ //初始化ROS节点 ros::in...原创 2020-03-16 16:38:35 · 796 阅读 · 0 评论 -
深度相机人体安全检测代码
#include "ros/ros.h"#include <visualization_msgs/Marker.h>#include <cmath>#include <unistd.h>#include <iostream>#include <sys/types.h>#include <stdlib.h>#inc...原创 2020-01-10 18:01:27 · 444 阅读 · 1 评论 -
C++模板:函数模板、类模板、模板与继承
C++模板:描述 C++提供一种模板的机制来减少代码重复。比如:对于同一样函数使用不同的数据类型,int,double,char等。C++模板属于“元编程”的范畴。C++ 模板函数 1.支持不同数据类型的函数重载:#include <iostream>using namespace std;int squ...转载 2018-09-29 09:22:45 · 165 阅读 · 0 评论 -
学习笔记 c++ (简单的消息队列)
后面第二个版本是循环发布的发送端cpp代码#include <iostream>#include <sys/types.h>#include <sys/ipc.h>#include <sys/msg.h>#include <cstdio>#include <cstdlib>#include <unis...原创 2018-09-19 12:51:17 · 14731 阅读 · 0 评论 -
学习笔记 c++ (在String查找子串和字符 )
String查找子串和字符string 类有一些查找子串和字符的成员函数,它们的返回值都是子串或字符在 string 对象字符串中的位置(即下标)。如果查不到,则返回 string::npos。string: :npos 是在 string 类中定义的一个静态常量。这些函数如下:find:从前往后查找子串或字符出现的位置。 rfind:从后往前查找子串或字符出现的位置。 find_fi...原创 2019-09-19 15:50:34 · 24011 阅读 · 0 评论 -
学习笔记 opencv(Canny边缘检测)
代码:#include<opencv2/opencv.hpp>#include<opencv2/imgproc/imgproc.hpp>using namespace cv;int main(){ //载入原始图 Mat src = imread("C:/Users/lichao/Desktop/图片/cv2.jpg"); //载入在...原创 2019-03-12 17:14:37 · 280 阅读 · 0 评论