自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(69)
  • 资源 (10)
  • 问答 (15)
  • 收藏
  • 关注

原创 视频编码格式-扫盲

扫盲H264,H265等编码

2022-10-24 00:16:56 1201 1

原创 17-ROS tf包介绍

此教程主要介绍ROS包中的tf的一些基础知识

2022-09-28 23:01:26 829

原创 16-Ros launch文件解读

launch文件是通过xml文件实现多节点的配置和启动,可自启动ros master等。

2022-09-28 22:51:22 692

原创 15-bag的录制,回放与解析

本教程教你如何使用rosbag record工具来录制ros通信数据。之后在通过rosbag play形式回放录制的数据包此教程不详细解读,仅将rosbag record对应的help文档列出,并给出具体录制例子。

2022-09-28 22:45:20 3159

原创 14-ROS参数的学习与使用

本教程介绍了ROS中的参数服务,以及如何通过C++代码的形式获取,设置参数。

2022-09-26 00:09:38 403

原创 13-Ros 编写简单Service和Client[C++]

本教程介绍了如何使用ROS的service通信模型,并给出简单的C++示例。

2022-09-22 00:24:09 544

原创 12-Ros 编写简单Pub和Sub节点[C++]

本教程介绍了如何创建C++开发语言的pub和sub节点,并演示二者之间通信。

2022-09-22 00:21:04 1194

原创 11_创建ROS msg和srv文件

本教程主要介绍ros中如何创建使用srv,msg文件

2022-09-18 23:20:41 1278

原创 10-rosed命令使用

此教程主要介绍rosed命令的使用。

2022-09-18 23:17:16 184

原创 9_ROS-Service和ROS-Parameter 相关命令行工具

这部分教程使用rosservice和rosparm命令行工具介绍ROS service和parameters.

2022-09-18 23:11:54 146

原创 8-ROS中需要熟悉的YMAL语法摘要

下面是ROS希望您熟悉的YAML语法部分摘要。

2022-09-18 23:06:57 155

原创 7_ROS命令行中的YAML

本文主要介绍YAML文件相关语法知识

2022-09-18 23:02:58 703

原创 6_ROS话题消息(Topic)

这部分教程介绍ROS中Topic的概念以及与Topic相关的rostopic,rqt_plot等工具的使用。

2022-09-18 22:56:30 1578

翻译 5_ROS节点

本教程主要介绍ROS节点的概念,以及与节点相关的ros命令的使用

2022-09-18 22:47:52 74

翻译 4-ROS1-catkin相关REP128文档

翻译REP128文档,帮助理解catkin相关空间概念

2022-08-31 23:27:46 119

翻译 3-catkin包介绍与构建

简单介绍catkin包

2022-08-31 23:24:00 1600

翻译 2-ROS文件系统简单介绍

简单介绍ROS1为我们实现进行文件系统切换的几个小工具

2022-08-31 23:19:52 482

翻译 1-deepinV20 安装配置ROS

翻译ros-noetic的教程,并在deepin上进行ros的安装与环境配置

2022-08-30 00:17:04 812 2

原创 嵌入式Linux_FreeType_01交叉编译

交叉编译的万能命令使用此万能命令的前提是开源软件的源码里:有configure文件,confiuer支持–host,–prefiex参数.在编译安装完成后,对应的库以及头文件会安装在当前目录的tmp目录下./configure --host=arm-hisiv400-linux --prefix=$PWD/tmpmakemake installfreetype交叉编译freetype版本:freetype-2.10.2.tar.xz直接使用上述的交叉编译万能命令编译过程中报错:ftgz

2021-04-11 21:51:05 427

原创 嵌入式Linux_Framebuffer_04点阵显示汉字

中文的显示与ASCII字符的显示过程是一样的确定要显示的汉字在字库中找到对应汉字的点阵数据使用描点函数绘制汉字点阵数据但是与ASCII字符显示不同的是,汉字需要注意汉字的编码方式。C代码源文件的编码方式和编译出来的程序中的汉字所使用的编码方式也是有差别的。注意: 一般采用ANSI或者UTF-8编码,而不采用UTF-16编码,因为UTF-16编码ASCII字符也是2个字节,此时其中一个字节就是0,在C语言中0表示字符串的结束容易引起误会。在编写C程序的时,不论源码使用的ANSI还是UTF8编码

2021-04-11 21:14:47 515

原创 嵌入式Linux_Framebuffer_03点阵显示ASCII字符串

要在LCD上显示一个ASCII字符,首先需要找到字符对应的点阵.在Linux的内核源码中有:lib/fonts/font_8x16.c以数组的形式保存各自字符的点阵信息.下图左边就是font_8x16.c中fontdata_8x16数组中字符A的点阵数据。由上图可知,要以点阵的形式显示某个ASCII字符只需找到此字符在字符点阵数组中的位置,然后取出此字符的点阵数据,进行绘制即可。代码示例...

2021-04-07 22:03:17 375

原创 嵌入式Linux_Framebuffer_02字符编码

文本文件保存的是字符的编码值,在字符显示的时候字符显示的样子是由字体所决定的.ASCII编码ASCII编码是用一个字节的低7位来表示128个数值,在ASCII码中最高位永远是0.ASCII编码百度百科ANSI编码ANSI是ASCII的扩展,向下兼容ASCII.对于ASCII字符仍用ASCII来表示,对于非ASCII字符则使用2字节来表示.ANSI并不是特定的一种字符编码,它与本地化(local)密切相关,在windows平台上,不同地区的ANSI编码代表不同的字符编码.例如中国台湾的ANSI实际是

2021-04-07 21:34:00 151

原创 嵌入式Linux_Framebuffer_01描点画线

Framebuffer顾名思义,Frame是帧的意思,buffer是缓冲区的。Framebuffer中保存着每一帧图像的每一个像素的颜色值。LCD操作原理驱动程序设置好LCD控制器根据LCD参数设置LCD控制器的时序,信号极性根据LCD分辨率,BPP分配FramebufferAPP通过ioctl获取LCD的分辨率,BPP等参数APP通过mmap映射Framebuffer,在Framebuffer中写入数据。从上图可以看到Framebuffer和LCD的可显示区域是一一对应的。使用F

2021-04-03 23:27:20 606

原创 嵌入式Linux_环境搭建篇_简单的shell命令

shell的功能从键盘接收数据并回显解析输入的字符串,寻找程序,执行程序shell解析字符串,这些字符串使用空格分开,第一部分是程序名,其余是参数shell会从环境环境变量PATH所指定的位置去查找应用程序,当然也可以使用绝对路径或者相对路径直接找到程序找到程序后,启动程序,并传入参数设置环境变量永久修改环境变量对所有用户都有效 /etc/environment#在此文件的最后追加上要加入PATH环境变量的路径#重启或重新登录后生效对当前用户有效 ~/.bashrc

2021-03-27 20:56:59 140 1

原创 嵌入式Linux_环境搭建篇_vim的基本使用

嵌入式学习开篇的虚拟机设置,deepin Linux发行版安装,虚拟机网络配置等基本操作这里就不在介绍了.由于本人对vim也并非使用特别多,但也就是离不开而已,所以这里就简单介绍下基本使用.平时编码等本人还是使用VSCode来进行编码.只有在设备上使用vi或vim来修改参数或查看日志.故也就简单介绍下vim的基本操作即可.配置vim/etc/vim/vimrccp /etc/vim/vimrc ~/.vimrc#之后使用发布的配置文件进行替换cat ~/.vimrc100ask提供的vimr

2021-03-12 14:41:16 98

原创 corrupted double-linked list:0xb4a12bb8问题解决

程序的主要功能进程的主要功能是定期轮训获取设备上所添加的下级设备的信息.最近突然发现在某些情况下会发生WEB获取到的下级设备信息一直不正确的问题.不过此问题也是偶尔发生的,也加上自己的盲目自信一直以为没啥问题就一直没关注此问题.今天测试找到了此问题的稳定复现条件,就详细记录下解决此bug的过程.处理流程bug复现后,使用strace去跟踪发现只要出现WEB获取下级设备信息不正确的情况下总是会出现问题:也就是出现的死锁问题导致的WEB在获取下级设备的时候一直不能获取到正确的设备信息.经过最终的

2021-03-04 11:12:23 5012 2

原创 2.3 OpenCV对图像的基本操作-Sobel边缘检测

操作图片输入输出加载图片文件 Mat img = imread(filename);如果读取的文件是jpg格式的文件,那么默认就会为此文件创建一个3通道的图像.如果你仅仅是加载一个灰度图像可使用: Mat img = imread(filename, IMREAD_GRAYSCALE);注意图片的文件格式由图片文件的文件头决定即图片文件的前几个字节所决定,也可以理解为文件的扩展名.保存文件. imwrite(filename, img);使用cv::imdecode

2021-02-04 14:53:52 287

原创 2.2 OPenCV直接访问像素和filter2D函数两种方式实现图片对比度增强

矩阵的Mask操作是非常简单的.就是我们根据掩码矩阵(Kernel矩阵)重新计算图像总每个像素的值.此Mask值用于调整相邻像素对新像素的影响程度.从数学的角度来看,是用我们指定的值做了一个加权平均数.测试用例要实现对图像对比度的增强,基本上我们会对图像中的每一个像素应用下面的公式: [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0NE00zcM-1612349382161)(1_图像对比度增强公式.png)]上图中第一种表示方式是使用公式,第二种表示法是使用M

2021-02-03 18:55:49 359

翻译 MySQL-部分C API解读

C API提供对MySQL 客户端/服务器 低级访问,使得C程序能够访问MySQL数据库中的内容.C API代码是和MySQL一起发布的,并在libmysqlclient库中进行实现.可参考27.8.1节 MySQL C API实现.大多数的客户端API使用libmysqlclient库与MySQL服务器进行通信(Connector/J Connector/Net除外).这意味着,您可以利用其他客户端程序而使用相同的环境变量,因为他们都是libmysqlclient的引用.可在4.1节 MySQL概述中获.

2021-02-03 12:43:12 259

原创 Qt5.6.2 源码交叉编译

写在前面的话此教程主要是将我之前交叉编译Qt5的过程做了简要记录。希望给需要的开发者们一点帮助。版本Qt版本:Qt5.6.2交叉编译器:linux-arm-hisiv400-g++源码下载和解压此处就不再详细介绍了。相信需要交叉编译Qt5的小伙伴们应该都知道如何百度下载[Qt源码](http://download.qt.io/archive/qt/ "Qt源码")以及如何解压创建mkspecs切换到解压后的Qt源码的qtbase/mkspecs目录中.将linux-arm-gnueabi

2021-02-03 12:40:25 822

原创 嵌入式版本Qt5不能使用QStorageInfo类问题定位

嵌入式Qt版本:Qt5.6.2交叉编译器:arm-hisiv400-linux-gcc表现:按照正常流程调用QStorageInfo类,均不能得到正确结果,win/x86 linux下均正常,仅仅arm版不行.查看qt源码分析:相关文件:qt/qtbase/src/corelib/io中qstorageinfo.hqstorageinfo_p.hqstorageinfo_unix.cpp...

2021-02-03 12:38:11 443

原创 linux C获取CPU使用率

/proc/stat 文件介绍/proc/stat文件中是内核/系统的统计数据。此文件可能随着体系结构的改变而有变化。常见的信息如下:gy@gy-PC:~/Desktop$ cat /proc/stat name user nice system idle iowait irq softirq steal guest guest_nicecpu 687385 674 103362 5359975 106204 0 7588 0 0 0

2021-02-03 12:36:03 1214

原创 2.1.基本图像容器

目标 我们有多种方法从现实世界中获取数字图像:数码相机,扫描仪,计算机断层摄影技术,核磁共振成像等。在任何情况下我们看到的都是图像。然而当将其转换到我们的数字设备时,我们所记录的是图像中每个点的数值。 就和上面的图像一样,你可以看到汽车的镜像只是一个包含所有像素点的强度值的矩阵。我们会根据我们的不同需要来获取存储这些像素值,但最终在计算机世界中的所有图像都可能被简化位数字矩阵和描述矩阵本身的其他信息。OpenCV是一个计算机视觉库,它的主要重点是处理和操作这些信息。因此我们首先需要熟悉...

2021-02-02 23:13:45 139 2

原创 1.2. 从一张图片入门OpenCV

目标本实例的目的是使初学者通过本文档的学习,可以掌握从文件读取图片(cv::imread) 使用OpenCV 窗口显示图片(cv::imshow) 将图片另存为新的文件(cv::imwrite)源码#include <opencv2/core.hpp>#include <opencv2/imgcodecs.hpp>#include <opencv2/highgui.hpp>#include <iostream>using name

2021-02-02 21:00:31 125

原创 1.1 OpenCV介绍与安装

目前使用版本:OpenCV 3.4.13OpenCV(开源机器视觉库)是一个开源的BSD许可的库,包括数百种机器视觉算法。此文档描述了基于C++的OpenCV 2.x API。自从OpenCV2.4版本以后,C的API已经弃用,不再使用c编译器进行测试。 OpenCV具有模块化结构,意味着其包含着几个共享库或静态库。以下模块可供选择:Core(核心功能):一个紧凑的模块,定义基本数据结构,包括密集的多维数组MAT并且包含供其他模块使用的基本功能。 Imgproc(图像处理):图...

2021-02-02 20:59:14 248

翻译 Onvif再学习---MiniXml-介绍

简介: Mini-XML是一个小型的XML库。您可以使用它在应用程序中读写XML以及和类XML数据文件,而不需要其他大型非标准库。Mini-XML只需要与一个ANSI C兼容的编译器(gcc以及大部分编译器)和一个make程序即可工作。 Mini-XML提供以下功能:读取UTF-8 UTF-16以及写UTF-8的XML文件以及字符串 数据是存储在链表树结构...

2019-07-04 09:18:31 1375

原创 Onvi再学习----分析设计方案

之前版本的Onvif协议是使用gsoap框架生成的,每升级一次onvif版本都需要从onvif官网下载最新的wsdl。然后使用gsoap带的相关工具去生成框架代码。在onvif版本升级的时候改动太多。故考虑使用xml解析库以及socket实现一个onvif的服务器和客户端demo。 从下面的Onvif的请求和响应报文来看,Onvif主要使用的是HTTP协议,另外就是x...

2019-07-04 08:52:26 483

原创 libvlc-源码编译流程记录

一、安装编译vlc的必要工具 VLC需要C11编译器以及开发工具链,建议使用高于4.9版本的gcc,另外clang/LLVM也是可以的。如果你是从git仓库构建,你还需要gnu构建系统即 autotools(autoconf,automake,libtol,gettext)来设置Makefile.并确保这些工具是最新且可用sudo apt-get install git bui...

2019-06-28 09:29:18 3438

原创 ubuntu18.04编译安装mpv

在项目的实际开发过程中,接触了解到了mpv这一优秀的播放器。由于需要将其内嵌到代码中,所以需要将其编译成动态库的形式使用。将自己的编译流程做如下记录:mpv源码URL: URL1: https://github.com/mpv-player/mpv URL2:https://github.com/mpv-play...

2018-09-18 09:32:36 3189 2

原创 线程池-Qt

QThreadPool类使用://pro文件Qt += core//头文件包含   #include &lt;QThreadPool&gt;介绍:     QThreadPool类管理了一个线程的集合。QThreadPool管理和回收QThread对象,以帮助减少使用线程的程序在线程创建的开销。每一个Qt应用程序有一个全局的QThreadPool对象,可以使用欧冠globalI...

2018-08-17 10:55:11 1620

sdl2-yuv视频播放demo-linux

使用sdl2实现对于YUV420P视频进行播放,并且通过SDL2的多线程实现窗口可大可小变化 有利于初学者学习sdl编程

2019-01-23

ffmpeg-解码例程-linux

此例程在linux下实现了读取mp4文件进行解码,分析出I,P,B帧 有助于初学者学习ffmpeg

2019-01-23

粒子滤波代码

这是经典粒子滤波的代码,直接运行即可,里面有相关注释帮助理解

2018-11-26

Qt 模拟键盘 sqlite 和数组模式

根据QtCN某代码修改的,增加了数组模式的虚拟键盘可以使用在嵌入式设备上,运行较为流畅

2017-11-06

ubuntu16.04 64位dnw

亲测在ubuntu16.04 64位操作系统下,此款dnw可正常使用

2017-10-29

上千个图标文件

上千个好用的图标

2017-08-25

onvif2.8.17带有鉴权的框架代码

onvif 2.8.17 未裁剪完整框架

2017-06-01

onvif相关文档

onvif相关文档 onvifdiscovey onvif 核心规范

2017-05-31

C++Builder6的帮助文档

为大家免费提供福利吧

2016-03-19

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

TA关注的人

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