自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(34)
  • 收藏
  • 关注

原创 【C语言基础】存储类型(自动变量、静态变量和寄存器变量)

但是,编译器并不一定要理睬register关键字,如果有太多的变量被声明为register,它只选取前几个实际存储于寄存器中,其余的就按普通自动变量处理。在程序执行到声明自动变量的代码块时,自动变量才被创建,当程序的执行流离开该代码块时,这些自动变量便自行销毁。在一个使用寄存器变量的函数返回之前,这些寄存器先前存储的值必须恢复,确保调用者的寄存器变量未被破坏。在代码块内部声明的变量的缺省存储类型是自动的(automatic),也就是说它存储于堆栈中,称为自动(auto)变量。

2024-04-10 23:58:51 575

原创 不管技术多牛都需要时刻理解的C语言基础知识-堆栈

堆的存取是随意,这就如同我们在图书馆的书架上取书,虽然书的摆放是有顺序的,但是我们想取任意一本时不必像栈一样,先取出前面所有的书,书架这种机制不同于箱子,我们可以直接取出我们想要的书。这是由于系统是用链表来存储的空闲内存地址的,自然是不连续的,而链表的遍历方向是由低地址向高地址。栈:后进先出的数据结构,比如我们一层一层的叠放箱子,都会遵循一个时间顺序来叠放,先放的在下面,后放的在上面,我们如果要取出其中一个箱子,前提就是先把最近压在这个箱子上面的箱子先搬走,才能拿走到这个箱子。以下是两者的区别和使用方法。

2024-04-04 09:58:26 202

原创 梯形加减速算法原理优缺点及对步进电机的控制

所以要使用加减速来解决启动频率低的问题,在启动时使用较低的脉冲频率,然后逐渐的加快频率。对于加减速的每一步来说,都需要重新计算下一步的时间,计算的过程中可能会出现除不尽的项式, 为了更有利的加减速,可以采用加速向上取整,减速向下取整的原则来做运算,也可以采用余数累计的方法, 在这里使用的是将余数累计的方法来提高间隔时间的精度和准确性。rad/sec 弧度每秒;图中是梯形加减速模型中的加速部分中,红色竖线表示的是脉冲发生的位置,由加速的方向看(从左到右), 在图上两个相邻之间的脉冲之间的距离越来越近,根据。

2024-04-03 07:00:00 1554

原创 采用旋转式编码器实现步进电机速度环控制算法

我们知道步进电机是一种数字信号驱动的电机,其主要优点之一就是拥有很好的开环控制能力,控制系统不需要传感器和相应电路的反馈电机信息, 在负载不超载和脉冲频率合适的情况下,步进电机接收到的脉冲数和转子的角位移就是严格成正比关系。既然如此,那为什么要在步进电机上引入闭环控制呢?虽然步进电机可以很好的开环控制,但实际在一些开环系统中,步进电机有可能由于自身性能及系统机械结构等因素的影响,在快速启停或负载突变时出现失步、过冲甚至堵转, 控制器无法知晓和矫正,这些现象在某些对精度要求较高的系统中可能导致严重后果。

2024-04-02 07:00:00 1156

原创 增量式和位置式编码器的原理讲解以及步进电机测速方案实现

编码器,是一种用来测量机械旋转或位移的传感器。这种传感器能够测量机械部件在旋转或直线运动时的位移位置或速度等信息, 并将其转换成一系列电信号。编码器是工业中常用的传感器之一,广泛应用于工业生产当中需要对机械系统进行监视或控制的场景, 包括工业控制、机器人、照相机镜头、雷达平台以及部分计算机输入设备例如轨迹球和鼠标滚轮等等。编码器可以根据不同的方式分出很多种类型。例如根据检测原理,可分为光学式、磁式、感应式和电容式。根据内部机械结构的运动方式,可分为线性编码器和旋转编码器。

2024-04-01 10:40:01 1843

原创 STM32F4系列单片机的定时器讲解和计数器,PWM信号输出,PWM信号捕获的实现对电机进行控制和监测功能

在控制领域里面,我们可以用信号输出定时器,进行PWM的控制,从而达到控制电机的目的,通过输入捕获功能可以用来接收外部的数字信号,用于测量脉冲宽度、频率或周期等。在这里给大家介绍下,具体用定时器做计数,输出和捕获的功能实现。STM32F4一共有三种14个定时器。(12个16位的,2个32位的),STM32F1系列只有8个16位的。TIM1、TIM8。通常用于特定领域和专业需求用户使用的精密计时工具,通常适用于需要精度更高的领域。通常可以精确到毫秒或更小的时间单位,并具有更复杂的逻辑和算法。

2024-03-29 18:12:33 1616

原创 RS485协议是什么?它和Modbus协议的区分以及C语言实现

例如,在智能家居中,RS485协议可以用于家庭内部的各种设备之间的通信,包括智能电视、智能音响、智能照明、智能安防等,实现设备的互联互通和集中控制。协议性质:RS485是一种物理层通信标准,主要定义了电气特性、信号传输方式和连接方式等,而Modbus是一种通信协议,定义了一种常用的通信格式和规则,用于在主设备和从设备之间进行数据交换。Modbus是主从方式通信,也就是说,不能同步进行通信,总线上每次只有一个数据进行传输,即主机发送,从机应答,主机不发送,总线上就没有数据通信.,本文主要讲解RTU协议。

2024-03-28 08:00:00 2284

原创 位置式PID算法讲解和C语言实现

位置式PID也称全量式的PID,PID是Proportional(比例)、Integral(积分)、Differential(微分)的首字母缩写;是一种结合比例、积分和微分三种环节于一体的闭环控制算法,它是目前为止在连续控制系统中计数最为成熟的一种控制算法;在工业控制、机器人、无人机、机械臂和平衡车等领域有着极为重要的作用;该控制算法出现于20世纪30至40年代,至今为止经久不衰, 适用于对被控对象模型了解不清楚的场合。

2024-03-22 10:55:36 2129

原创 机器人运动学学习-齐次变化矩阵的推导-单个关节运动的平移矩阵和旋转矩阵证明

机器人学中我们是通过齐次矩阵来描述机器人的关节运动,接下来我们详细的证明下齐次矩阵的推导过程。

2024-03-19 13:57:15 1424

原创 MATLAB学习笔记:常用矩阵的计算工具

(3) A=randn(size(B)):生成维数和B相同的均值为0,方差为1的正态分布随机矩阵。(3) A=rand(size(B)):生成维数和B相同的0~1之间均匀分布的随机矩阵。(2) A=randn(M,N):生成M×N的均值为0,方差为1的正态分布随机矩阵。(1) A=randn(N):生成N×N的均值为0,方差为1的正态分布随机矩阵。(3) A=ones (size(B)):生成和矩阵B相同维数的全1矩阵。(1) A=rand(N):生成N×N的0~1之间均匀分布的随机矩阵。

2024-03-17 15:24:21 358

原创 使用Matlab的Robotics Toolbox进行运动学三维坐标位姿描述

rotx(theta) / roty(theta) / rotz(theta):绕x / y / z轴theta得到的旋转矩阵。trotx(theta) / troty(theta) / trotz(theta):绕x / y / z轴theta的旋转。注意:trotx和rotx默认都为弧度,trotx可直接与平移函数相乘,而rotx不可。transl(x,y,z):(x,y,z)的平移。tranimate ( R ):绘制旋转动画R。trplot ( R ):绘制坐标系变换R。

2024-03-17 14:55:55 301

原创 有了欧拉角,为什么还要引入四元数?欧拉旋转方式与万向节死锁问题

坐标的旋转方式一共分为两种类型,一种是固定坐标旋转,一种是相对坐标旋转(欧拉旋转),每种旋转方式有12种方式,共24种,而目前常用的方式都是属于欧拉旋转,基于相对运动坐标系的活动轴,进行三个方向不同的组合方式分别旋转,就构成了一组相对旋转运动就称作欧拉旋转角。

2024-03-14 21:58:13 1149

原创 三维直角坐标系旋转相关问题-欧拉旋转角与旋转矩阵的关系

在刚体运动学中常用欧拉角作为刚体绕固定轴旋转的描述。引入的三个角度(α,β,γ)欧拉旋转可以通过一定的顺序组合来实现,目前组合方式一共分为24种方案,统一被称为转角排列设定法,12种称为固定角,另外12种为欧拉设定法,本文重点讲解一种目前目标流行的欧拉设定方式:Z-Y-X欧拉旋转,如果对其他的方法感兴趣,后期我再单独更新。

2024-03-14 18:21:53 651

原创 Matlab使用Robotics Toolbox机器人逆运动路劲规划实现

【代码】Matlab使用Robotics Toolbox机器人逆运动路劲规划实现。

2024-03-14 16:39:45 411

原创 QT发布Release正式版本

本机开发都是用debug,带有很多调试信息。如果是要在其他机器上用那么生成的debug版本的exe可能就会出很多问题,所以需要需要发布一个Release版本,直接跑的。

2024-03-08 16:44:13 680 1

原创 Could not initialize NNPACK! Reason: Unsupported

如果是在使用yolov5进行模型训练的时候提示如下说明的计算机不支持NNPACK所需的指令集。你可以安装easyocr的较低的版本如1.3.2等不使用这些指令集的版本。

2023-12-16 16:22:29 561 1

原创 yolov5训练模型提醒:PyTorch no longer supports this GPU because it is too old.

pip install 路径\文件名.whl 安装即可。之后需要重新安装PyTorch。

2023-12-16 15:01:31 117

原创 Ubuntu系统使用conda配置yolov5环境

下载对应的安装包,根据自己的系统和Python版本选择相应的版本进行下载。安装完了之后,打开命令窗口,前面会出现一个(base)表示安装成功进入了conda,(如果不想在conda环境中,输入。如果安装成功,在环境中pip list即可查看安装的torch、torchvision、torchaudio版本。之后打开命令窗口,进入到你的下载目录中,然后按照顺序输入如下指令创建YoLov5环境,cuda的版本号根据自己的情况自行更改,我用的是11.4。或者可以执行以下命令查看torch的版本。

2023-12-16 14:50:31 307

原创 Command ‘nvidia-smi‘ not found, but can be installed with:

打开software根据你的显卡型号选择相应的版本安装就可以了。如果提醒以下错误,代表你的驱动可能没有安装,

2023-12-15 20:13:45 3469

原创 OpenCV 图像和QT以及ROS2图像之间的相互转化

在OpenCV中实现cv:Mat图像转成QImage,QPixmap,sensor_msgs::msg::Image图像格式之间的相互转换。

2023-12-10 22:25:54 193 1

原创 QT继承QLabel类实现控件的鼠标点击事件监测

如果要实现QT上面一些控件的鼠标事件,是没办法直接实现的,如果想要捕捉鼠标的点击,那么只需要继承QLable类重写mousePressEvent这个函数即可。第二步:进入到UI设计界面,找到需要实现鼠标事件的lable控件,之后右击鼠标选择Promote to ...填写自己的类名和头文件路径,之后点击Add。第一步:新建好自己的MyQLabel类。之后点击Promote。

2023-12-08 17:47:41 649

原创 py调用openCV报错:TypeError: ‘numpy._DTypeMeta‘ object is not subscriptable

找到上述问题中的最后一个报错文件的路径文件,typing/__init__.py文件打开之后,找到第 69 行,将 68 至 83 行与 numpy 相关的部分使用单引号作为参数;

2023-12-02 09:56:06 458

原创 Qt读写三种文件,ini,QJsonDocument,QDomDocument

QT读取本地文件

2023-11-29 19:31:28 57 1

原创 C++实现四元数和欧拉角之间的相互转化

【代码】C++实现四元数和欧拉角之间的相互转化。

2023-11-25 15:01:53 539 1

原创 QT开发中自定义参数的qRegisterMetaType注册

Qt中的类库有接近一半是从基类QObject上继承下来,信号与反应槽(signals/slot)机制就是用来在QObject类或其子类间通讯的方法(connect),当自定义参数如果出现如下错误提示的时候,表示你的参数可能没有进行注册:解决方法:在窗口程序中直接把写上如下代码即可(参数替换成自己的)

2023-11-24 23:06:13 282 1

原创 OpenNI2 SDK for ROS2奥比中光深度摄像头驱动安装配置

进入到下载好的SDK for ROS2 SDK目录中(需要根据自己情况修改,我的路径是:~/Downloads/OpenNI_SDK_ROS2_v1.0.2_linux)。以下主要针对Astra S系列的驱动安装,用于使用ROS2的开发,供大家参考,提供了驱动的下载地址。sudo ldconfig # 刷新链接库。sudo ldconfig # 刷新链接库。sudo ldconfig # 刷新链接库。之后输入 以下指令即可测试摄像头了。安装libusb rules。安装magic_enum。

2023-11-23 17:36:26 541 2

原创 QT在线配置安装ROS2插件以及创建项目

安装QT ROSProjectManager进行图形化开发RO2项目

2023-11-23 15:40:18 440 3

原创 octomap和pcl安装相关

在命令窗口中输入如下指令即可。

2023-11-23 15:09:14 71

原创 Moveit2安装问题

出现提示,直接填写y之后,回车继续。

2023-11-23 15:04:04 123

原创 ubuntu22安装VSCode进行ROS2开发配置

选择左边最下面的四个方形之后,右侧出现一列插件,输入ROS,选择第一个安装即可。这样VS的基本配置就安装完成了,可以进行ROS2开发了,稍后会分享怎么创建项目。左下角点击打开可以看见VScode的图标,直接打开即可。其他还有更多插件,可以根据自己的实际需求进行安装。之后输入py选择第二个安装。

2023-11-23 14:51:49 264

原创 在ubuntu22系统上手动安装以及卸载ROS2

ubuntu22系统下ROS2的安装和卸载操作

2023-11-23 14:25:21 660

原创 QT安装错误提醒类别

在线安装QT时可能会出现如下错误:解决办法:

2023-11-23 13:39:59 113

原创 为什么单片机中需要设计一个看门狗?

在电子产品中,除了产品的低功耗以外,还得考虑一个因素就是产品的可靠性,就算我们使用电脑,都难保证百分百不死机。何况在嵌入式芯片当中,他的抗干扰能力比电脑要差很多。而且在实际应用当中经常会出现电压不稳,电磁干扰等因素导致系统出问题。简单来说,他们的原理其实就是一个计数器,如果单片机是正常的那么就每隔一段时间要进行一次喂狗。来重置计数器,用来表明系统正常如果单片机出现了故障,没办法喂狗了,那么当看门狗倒技术到了零之后,就会引起单片机复位重启。在STM32芯片当中,有两种看门狗,一个是独立看门狗和窗口看门狗。

2023-03-31 17:04:06 474

原创 物联网嵌入式开发新手入门单片机怎么选

到了这个阶段的,基本上已经开始脱离硬件研发了,跟单片机的联系已经不是很大了,完全根据个人的发展方向去选择是否需要走这条路,属于纯软件层面的研发,一定程度上需要了解Liunx系统的底层知识,同时需要有完备的C语言知识储备。一举两得,做一些联网的小电子产品,对物联网领域建立一个初步的认知,对于仅仅想做个小东西玩玩,也不想太深了解或者开发一些复杂设备的话,那基本上你对单片机的学习就可以到此止步,因为小DIY物联网家控设备,这些单片机都可以满足需求了。51培养的可能是硬件思维,那STM32培养的就是纯编程思维。

2023-03-31 13:23:56 409

stm32-cubeMX-HAL函数库实现语音灯光控制

stm32-cubeMX-HAL函数库实现语音灯光控制

2024-03-19

stm32-cubeMX-HAL函数库实现人体传感器

stm32-cubeMX-HAL函数库实现人体传感器

2024-03-19

stm32-cubeMX-HAL函数库实现可燃气体传感器源码

stm32-cubeMX-HAL函数库实现可燃气体传感器源码

2024-03-19

stm32-cubeMX-HAL函数库实现防火预警系统源码

stm32-cubeMX-HAL函数库实现防火预警系统源码

2024-03-19

stm32-cubeMX-HAL函数库实现WWWDG看门狗功能

stm32-cubeMX-HAL函数库实现WWWDG看门狗功能

2024-03-19

stm32-cubeMX-HAL函数库实现USART通讯

stm32-cubeMX-HAL函数库实现USART通讯

2024-03-19

stm32-cubeMX-HAL函数库实现UID获取保存

stm32-cubeMX-HAL函数库实现UID获取保存

2024-03-19

stm32-cubeMX-HAL函数库实现TIM定时器功能

stm32-cubeMX-HAL函数库实现TIM定时器功能

2024-03-19

stm32-cubeMX-HAL函数库实现TEM功能

stm32-cubeMX-HAL函数库实现TEM功能

2024-03-19

stm32-cubeMX-HAL函数库实现RTC时钟功能

stm32-cubeMX-HAL函数库实现RTC时钟功能

2024-03-19

stm32-cubeMX-实现RCC功能使用

stm32-cubeMX-实现RCC功能使用

2024-03-19

stm32-cubeMX实现PWR功能

stm32-cubeMX实现PWR功能

2024-03-19

stm32-cubeMX点亮led功能

stm32-cubeMX点亮led功能

2024-03-19

stm32-cubeMX实现独立看门狗IWDG功能

stm32-cubeMX实现独立看门狗IWDG功能

2024-03-19

stm32-cubeMX实现GPIO使用

stm32-cubeMX实现GPIO使用

2024-03-19

stm32-cubeMX-实现EXTI中断功能

stm32-cubeMX-实现EXTI中断功能

2024-03-19

stm32-cubeMX-实现ADC功能

stm32-cubeMX-实现ADC功能

2024-03-19

STM32单片机IR红外线接收指令码的解析

STM32单片机IR红外线接收指令码的解析

2024-03-19

glog-0.6.0.tar

OpenNI2 SDK for ROS2奥比中光深度摄像头驱动安装

2023-12-12

magic-enum-0.8.0

OpenNI2 SDK for ROS2奥比中光深度摄像头驱动安装

2023-12-12

libvc-master

OpenNI2 SDK for ROS2奥比中光深度摄像头驱动安装

2023-12-12

OpenNI2 SDK for ROS2奥比中光深度摄像头驱动安装

OpenNI2 SDK for ROS2奥比中光深度摄像头驱动安装

2023-11-23

qt-unified-linux-x64-4.6.1-online.run

qt-unified-linux-x64-4.6.1-online.run

2023-11-23

空空如也

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

TA关注的人

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