- 博客(78)
- 资源 (6)
- 收藏
- 关注
原创 点云在ROS中的应用
可以看出图像与激光雷达时间戳大致对齐,小部分差异是由程序bag写入时的先后顺序导致的。官方概述:http://wiki.ros.org/message_filters。ros官网提供了message_filters用于对齐多种传感信息的时间戳。下载并安装libpcap-dev。就是需要录制的激光雷达数据。文件中的pacp文件目录。或者通过可视化界面录制。或者通过可视化界面查看。运行launch文件。
2024-02-04 10:49:21 841
原创 STM32CubeMX配置HAL库输入捕获
STM32的输入捕获功能可以用来测量脉冲宽度或者频率。其工作原理是,通过检测TIMx_CHx上的边沿信号,在边沿信号发生跳变(比如上升沿/下降沿)的时候,将当前定时器的值(TIMx_CNT)存放到对应的通道的捕获/比较寄存器(TIMx_CCRx)里面,完成一次捕获。
2023-12-22 19:06:54 662
原创 C++_Eigen库的使用
Eigen是一个C++开源线性代数库。它提供了快速的有关矩阵的线性代数运算和解方程等功能。许多上层的软件库也使用Eigen进行矩阵运算,包括g2o、Sophus等.
2023-12-13 16:28:53 604
原创 直流无刷电机原理
磁场会对位于其中的带电导体内运动的电荷载流子施加一个垂直于其运动方向的力,该力会使得正负电荷分别积聚到导体的两侧。电荷在导体两侧的积累会平衡磁场的影响,在导体两侧建立稳定的电势差。当转子从上一个磁场方向旋转到下一个磁场方向后,再改变通电方向。磁场旋转一圈,转子旋转一圈,但是此电机有四对磁极,所以磁场旋转四圈,转子旋转一圈。以一个磁极为例,逆时针旋转一圈,分别检测霍尔1、2、3的波形。💡如果磁场旋转太快,转子跟不上磁场,就会发生抖动。,可求出磁场方向,转子位置与之相反,如图。以霍尔1上升沿为例,左移如图。
2023-12-05 15:47:56 478
原创 STM32使用PID调速
PID算法是一种闭环控制系统中常用的算法,它结合了比例(P)、积分(I)和微分(D)三个环节,以实现对系统的控制。它的目的是使控制系统的输出值尽可能接近预期的目标值。在PID算法中,控制器通过不断地测量实际输出值和目标值之间的误差,并使用比例、积分和微分部分的控制参数来调整控制系统的输出值。比例部分根据误差的大小进行控制,其输出与误差成正比。积分部分根据误差的历史累积值进行控制,其输出与误差积分的结果成正比。微分部分根据误差的变化率进行控制,其输出与误差变化率成正比。
2023-08-24 20:10:56 2114
原创 STM32CubeMx配置HAL库编码器测速
编码器是一种用来测量机械旋转或位移的传感器。它能够测量机械部件在旋转或直线运动时的位移位置或速度等信息,并将其转换成一系列电信号。按照读出方式编码器可以分为接触式和非接触式两种;按照工作原理编码器可分为增量式和绝对式两类。编码器按照检测原理,可以分为光学式、磁式、感应式和电容式。而我们常见的是光电编码器(光学式)和霍尔编码器(磁式)下面主要以霍尔编码器的原理及应用为主。
2023-08-24 11:59:39 3243 4
原创 STM32CubeMx配置HAL库PWM
PWM(Pulse Width Modulation)是脉冲宽度调制的缩写,是一种利用微处理器的数字输出来对模拟电路进行控制的技术。PWM的原理是通过调节占空比来调节脉冲宽度,从而改变输出电压的大小。波形图如下PWM的两个重要参数为频率和占空比。频率是周期的导数即f1Tf=1/Tf1/T,占空比是指脉宽时间占周期的比例。STM32中用定时器来输出PWM,其原理图如下。
2023-08-22 11:14:06 919
原创 ROS中使用RealSense-D435
Intel RealSense D435是Intel推出的一款结合RGB和深度摄像的立体视觉摄像头,具有以下主要特点:使用双摄像头和红外投射器实现立体视觉采集。提供频率可达90Hz的VGA分辨率(640x480)深度图像。具有2个720p RGB摄像头,提供1920x1080分辨率彩色视频流。使用全局快门同步RGB图像和深度图像。内置6轴IMU运动跟踪模块。支持近距离检测,最小检测距离约0.25米。提供硬件级图像流同步和时间戳。支持USB 3.0接口传输高速率图像流。
2023-07-29 19:32:00 3342 1
原创 ROS与STM32通信(一)-rosserial
rosserial是ROS中的一个重要模块,它实现了ROS通信协议与各类嵌入式硬件平台之间的桥接,大大简化了ROS在底层硬件上的移植和应用。rosserial通过消息序列化和常用串行通信接口,实现了ROS主机和嵌入式客户端之间的消息交互,为各种嵌入式平台提供了C++和Python的ROS客户端库,使得在这些硬件上也能方便地使用ROS的通信架构来进行节点管理、话题通信和服务调用。rosserial还支持动态主题和服务,以较小的代码占用实现ROS功能,具有很强的可移植性。出现以下内容则表示运行正常。
2023-07-27 16:58:37 2694
原创 ROS中使用Kinect v2
Kinect v2是微软公司推出的第二代Kinect,也称为Kinect for Xbox One或Kinect for Windows v2。它是Kinect系列产品的升级版本,于2013年首次发布。Kinect v2采用了一系列先进的传感器和技术,使其能够实现高度准确的人体识别和动作追踪,以及强大的深度感知功能。Kinect v2配备了一台深度传感器,能够实时获取场景中的深度信息。通过红外光和红外相机,Kinect v2能够对物体进行高精度的深度感知,实现人体骨架追踪、手势识别等功能。
2023-07-24 16:59:39 773
原创 ROS-驱动摄像头
不断的将标定板前后左右上下方向平移以及旋转和扭转,使X,Y,Size,Skew变成绿色,即可结束标定。点击CALLBRATE计算,等待几分钟计算完成。从网上下载标定版打印出来,固定在硬纸板上。如果使用笔记本自带的摄像头可跳过此步骤。修改video_device设备号即可。
2023-07-24 16:58:50 483
原创 ROS-Moveit机械臂追踪二维码(四)
ROS-Moveit机械臂追踪二维码(四)在仿真环境增加相机<gazebo reference="camera_depth_frame"> <sensor name="camera1" type="depth"> <always_on>true</always_on> <update_rate>20.0</update_rate> <camera> <ho
2023-07-22 17:13:45 317
原创 ROS-Moveit使用程序控制机械臂轨迹规划(三)
在工作空间/src目录新建功能包添加依赖rospy新建文件夹scripts在scripts文件夹中新建然后在scripts中打开终端添加权限更改。
2023-07-12 15:58:56 1130
原创 ROS-Moveit-ABORTED CONTROL_FAILED
具体表现在,在rviz的moveit界面机械臂会出现轨迹虚影,而Gazebo中却不执行,即规划成功,运动失败。当我使用python程序控制机械臂作笛卡尔空间运动时,让其轨迹在空间中画一个正方形,具体程序如下。解决方案就是把waypoints中的第一个点删除,即注释掉下面这条语句。
2023-07-08 10:39:46 686 5
原创 STM32HAL库RS485-ModBus协议控制伺服电机
一个月前,接手了一个学长的毕设小车,小车采用rs485通信的modbus协议驱动轮毂电机,与往常我学习的pwm控制电机方法大相径庭,在这里以这篇博客记录下该学习过程。
2023-05-27 18:52:34 6748 9
原创 OpenMV初体验
也可以通过blob[8]来获取。blob.cx() 返回色块的外框的中心x坐标(int),也可以通过blob[5]来获取。blob.cy() 返回色块的外框的中心y坐标(int),也可以通过blob[6]来获取。blob.x() 返回色块的外框的x坐标(int),也可以通过blob[0]来获取。blob.y() 返回色块的外框的y坐标(int),也可以通过blob[1]来获取。blob.w() 返回色块的外框的宽度w(int),也可以通过blob[2]来获取。360°,也可以通过blob[7]来获取。
2023-04-16 10:33:05 461
原创 STM32使用OLED移植U8g2库
System Core->RCC->HSE->Crystal/Ceramic ResonatorSystem Core->SYS->Debug->Serial WireConnectivity->I2C1->I2C->I2C I2C Speed Mode 为 Fast ModeOLED使用I2C通信,不使用GPIO模拟I2C了设置时钟树为72MHzGenerate CodeU8g2Github地址: https://github.com/olikraus/u8g2克隆到本地主要用到U8g2库的文件夹
2023-04-05 22:37:00 864
原创 Ubuntu添加桌面图标快捷方式
Ubuntu不像是windows,启动程序会有桌面快捷方式,需要cd到软件根目录下,启动运行脚本,这显得非常繁琐。本文以CLion为例子,创建CLion的桌面图标。
2023-04-05 21:25:35 1275
原创 STM32HAL库驱动MPU6050
这里使用PB6/PB7分别作为IIC1的SCL时钟线/SDA数据线,可以分别设置Label SCL和SDA。
2023-04-04 21:56:00 1209
原创 ROS2显示urdf模型中No transform from [XX_Link] to [base_link]
该错误中关节joint为fixed可以正常显示,而其他joint为cotinuous,都显示无法关联到base_link,当我尝试把所有joint改为fixed时可以显示正常,但这并不是正确的解决办法。
2023-03-31 22:29:04 1175 1
原创 Linux双系统的安装
镜像下载地址:https://cn.ubuntu.com/download/desktop。然后在安装启动引导器的设备,换成efi的设备地址,安装即可。重启电脑,在电脑未进入Logo前,按F2进入BIOS界面。选则要分区的磁盘->压缩卷选为40000M(40G)然后选则没有windows的选项,进入U盘启动。在空闲的40000多M就是刚才自己的磁盘分区。安装步骤只在安装类型处,选择其他选项。然后就会获得一个ubuntu界面。重启在未进入Logo前按F12。右击磁盘0->属性->卷。然后设置用户名和密码。
2023-03-25 18:47:06 1055
MQTT-STM32通信(HAL库)
2022-07-30
STM32虚拟串口和OLED输出DHT11、BH1750(HAL库)
2022-07-25
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人