自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 HAL库配置头文件路径

就是将根目录丢进去就好,然后重新编译。

2026-01-19 11:11:45 222

原创 Antipodal Robotic Grasping using Generative Residual Convolutional Neural Network 模型代码

本文介绍了一个基于PyTorch实现的机器人抓取检测网络模型。该模型采用U型残差结构,包含下采样编码器、残差瓶颈层和上采样解码器三部分,通过多分支输出层预测抓取位置、角度和宽度等参数。核心组件包括GraspModel基础框架和带批量归一化的ResidualBlock残差模块。模型通过Xavier初始化、批量归一化和Dropout等技术优化训练稳定性,适用于机器人视觉抓取任务。其U型结构和多分支输出设计也可借鉴于其他像素级回归任务。

2026-01-19 09:55:27 978

原创 Ubuntu 20.04 安装Anacada

下载Anaconda3 2021.11安装包(64位) wget https://repo.anaconda.com/archive/Anaconda3-2021.11-Linux-x86_64.sh。执行后终端提示符会略有变化,此时已进入 bash 环境,可重新运行 Anaconda 安装脚本(若前面安装未完成)。3、输入你的系统登录密码,回车确认(输入密码时终端不显示字符,正常现象)。:修改完成后,必须关闭所有终端,重新登录系统(或重启电脑),更改才能生效。5、验证是否生效:重新打开终端,执行。

2026-01-11 21:41:25 1132

原创 四元数法基础

四元数的一般形式:实部(对应 “旋转的幅度”);虚部系数;虚部单位,满足规则:i2=j2=k2=ijk=−1且反对易jk=i,kj=−i;ki=j,ik=−j(旋转顺序会影响结果)

2026-01-05 20:55:06 292

原创 实现蓝牙与手机通信

中断 vs 轮询中断:数据来了硬件自动通知你(效率高)轮询:你不断检查有没有数据(简单但耗CPU)回调函数你把处理函数"注册"给我我收到数据时"回调"你的函数实现模块解耦:蓝牙模块不关心数据怎么处理UART通信三要素波特率一致数据格式一致物理连接正确。

2025-12-22 23:05:16 801

原创 JDY-23蓝牙基本配置(上)

JDY-23是一款基于蓝牙5.0协议的超低功耗BLE(低功耗蓝牙)模块,兼容BLE4.0/4.2标准,专为物联网(IoT)设备设计。其核心特性包括低功耗、远距离传输(60米)、支持AT指令灵活配置,适用于智能家居、工业控制、健康监测等场景。

2025-12-22 22:11:40 596

原创 UR5机械臂MoveIt+Gazebo联动配置笔记

实现UR5机械臂在Gazebo仿真环境中通过MoveIt API进行控制时,遇到以下问题:MoveIt规划成功,控制器报告执行完成但Gazebo中的机械臂模型完全不动Gazebo控制台出现硬件接口语法警告和PID参数缺失错误│ ├── gazebo_controllers.yaml # Gazebo控制器配置│ ├── ros_controllers.yaml # MoveIt控制器连接配置│ ├── simple_moveit_controllers.yaml # MoveIt内部控制器配置。

2025-12-22 16:06:16 1057

原创 第2章 空间描述和变换

本系列课程将深入探讨机械手臂的运动学与操作。在正式进入机械手臂的具体内容之前,我们需要补充一些必备的数学基础,核心在于如何精确地描述一个“刚体”(Rigid Body)的运动状态。这是因为在后续分析中,我们通常将机械手臂的各个部件视为刚体来处理。2.1 概述。

2025-12-12 12:15:55 624

原创 2.2 话题通信

在功能包下创建msg文件夹,msg文件夹下创建Student.msg文件,文件内容如下:int32 age/*需求:以某个固定频率发送文本学生信息,包含学生的姓名、年龄、身高等数据。*/// 1. 包含头文件// 命名空间简化// 3. 定义节点类public:// 3-1. 创建发布方// 3-2. 创建定时器(500ms触发一次)500ms,private:// 3-3. 组织消息并发布stu.name = "张三";// 打印日志。

2025-12-09 20:23:18 1021

原创 驱动310电机

当使用PWM控制来实现调速功能时,H桥可以操作在两种不同的状态:快衰减或者慢衰减。下面的表是 “用 PWM 时” 的控制逻辑,(3)电机怎么正转 / 反转?—— 电流的 “方向开关”(2)什么是 “死区”?—— 电机的 “启动门槛”(1)什么是 PWM?—— 电机的 “电子油门”(脉冲信号,对应 “油门深浅”),另一个是。

2025-12-07 11:17:11 732

原创 1.4 ROS2 集成开发环境搭建

和大多数开发环境一样,理论上,在 ROS2 中,只需要记事本就可以编写基本的 ROS2 程序,但 是工欲善其事必先利其器,为了提高开发效率,可以先安装集成开发工具和使用方便的工具:IDE、 终端、git。

2025-12-06 20:02:59 1103

原创 解决:/dev/sda3: recovering journal/dev/sda3: clean, 363692/1277952 files, 4854308/5110784 blocks

由于sda3内存爆满,导致打不开虚拟机。

2025-12-06 18:00:34 821

原创 1.3 Ros2快速体验

1.需求编写 ROS2 程序,要求程序运行时,可以在终端输出文本"Helo World"。2.准备(创建工作空间)无论是使用 C++还是 Python 编写 ROS2 程序,都需要依赖于工作空间,在此,我们先实现工作空 间的创建与编译,打开终端,输入如下指令:mkdir -p ws00_helloworld/src #创建工作空间以及子级目录 src,工作空间名称可以自定义cd ws00_helloworld #进入工作空间colcon build #编译。

2025-12-06 15:29:02 1141

原创 Moveit编程之关节目标和位姿目标

1.1.1 代码解释一、代码使用的 MoveIt! 核心接口上述代码核心使用了 MoveGroupCommander 接口(moveit_commander 库的核心类),该接口是 MoveIt! 为用户提供的高层级 Python API,用于简化机械臂运动规划、目标设置、轨迹执行等操作,无需直接调用底层规划器接口,直接面向 "规划组(Planning Group)" 操作。除代码中使用的功能外,该接口还支持以下核心能力:

2025-12-01 11:21:33 291

原创 控制机械臂运动

为 RViz 可视化、运动规划、传感器数据融合等模块提供统一的 “机器人全局状态”。

2025-11-25 17:10:24 769

原创 给机械臂添加移动底盘

mesh filename="package://myrobot_description/meshes/wheel.dae" /> 车轮的模型。下面是底盘base_link与arm_base_link的关节。

2025-11-25 15:16:00 240

原创 使用xacro简化URDF给机械臂建模

/robot>

2025-11-24 21:37:31 298

原创 使用URDF给机械臂建模

本文详细介绍了使用URDF(Unified Robot Description Format)构建机械臂模型的完整过程。通过XML格式定义了机械臂的各个组件,包括底座(圆柱体)、三个旋转关节连接的连杆(长方体/圆柱体)以及末端执行器(包含两个可移动的夹爪)。每个组件都包含视觉(visual)、碰撞(collision)和惯性(inertial)属性配置,并详细说明了关节类型(旋转/平移)、运动限制和动态参数。文章还提供了完整的URDF代码实现,包括底座与第一个连杆的详细设计说明,以及如何通过launch文件

2025-11-24 21:10:42 1299

原创 Linux虚拟机如何将文件传输到Window系统下

本文介绍了在Linux虚拟机中压缩文件并传输到Windows系统的两种方法:1)通过图形界面右键压缩或终端使用zip命令;2)使用WinSCP工具通过SFTP协议传输。详细说明了开启SSH服务、查看IP地址等准备工作,以及WinSCP连接和文件拖拽传输的具体步骤,同时总结了SSH服务的相关操作命令。

2025-11-24 16:46:01 1155

原创 第一节 STM32 宏和枚举的使用

本文介绍了一个基于STM32标准库的RGB灯控制接口实现。该接口通过枚举和宏定义实现了直观易用的控制功能,主要包括:1. 使用car_RGB和RGB_Color枚举分别定义灯位置(左/右/双侧)和颜色(7种颜色),提高代码可读性和防错性;2. 通过多级宏定义实现GPIO控制,包括基础电平宏、单灯控制宏、组合控制宏和关灯宏,简化代码编写;3. 展示了枚举与宏的配合使用方式,实现了"语义清晰、易扩展、好维护"的控制接口。该设计避免了直接操作底层硬件,使开发者可以更直观地控制RGB灯的状态切换

2025-11-21 11:11:37 1049

原创 第4节 检测亚博小车电池电量

摘要:本文介绍了基于STM32的ADC电压采集系统实现方案。系统使用STM32F103芯片,通过ADC3模块采集GPIOF_7引脚的模拟电压信号,转换为0-3.3V电压值。程序采用模块化设计,包括主程序main.c、串口通信Serial.c和AD转换AD.c三个主要模块。系统通过串口USART1以9600波特率输出实时电压值(精度0.01V),每秒采集一次。ADC模块配置为12MHz时钟、55.5周期采样时间,采用独立模式进行单次转换。串口模块实现了数据包收发、格式化输出等功能,为系统提供了可靠的数据传输接

2025-11-10 20:05:04 288

原创 第3节 STM32 串口通信

该代码实现了STM32单片机通过USART1串口向电脑端发送数据的功能。主要内容包括:1)初始化USART1串口(9600波特率、8位数据位);2)实现单字节、数组、字符串及格式化数据发送功能;3)通过fputc重定向支持printf输出。使用时需注意:正确设置波特率,交叉连接TX/RX线,选择匹配的串口模式(文本/HEX)。代码提供了多种数据发送方式,包括底层字节发送和高级格式化输出,可满足不同场景需求。

2025-11-09 12:13:10 403

原创 第7节 神经网络

本文介绍了PyTorch中卷积层、池化层、非线性激活函数和线性层的核心概念与实现方法。主要内容包括:1)nn.Conv2d卷积层的参数配置与计算过程;2)最大池化、平均池化等池化操作的作用与实现;3)ReLU和Sigmoid等非线性激活函数的特性比较;4)线性层的原理与数据摊平方法。通过CIFAR10数据集上的代码示例,展示了各层在实际应用中的使用方法,包括输入输出维度变化、参数设置等关键细节。这些基础组件构成了深度学习模型的核心架构,为构建复杂神经网络提供了必要工具。

2025-08-18 11:11:01 602

原创 第6节 torch.nn介绍

PyTorch中的torch.nn.Module是构建神经网络的基础类,提供网络构建、参数管理、设备转换(CPU/GPU)和训练/评估模式切换等功能。关键方法包括:__init__初始化网络层,forward定义前向传播,parameters获取可学习参数,to实现设备转移,train/eval切换模型状态。通过继承Module类,用户可以自定义网络结构(如示例中的Conv2d层),并自动管理参数和计算过程。Module还支持模型参数的保存与加载,是PyTorch神经网络开发的核心组件。

2025-08-13 23:00:13 800

原创 第4节 Torchvision

Torchvision 是PyTorch官方推出的计算机视觉工具库,集成了常用的数据集、模型架构和图像变换工具,极大简化了计算机视觉任务的开发流程。本文将围绕的核心功能展开,重点讲解图像变换(transforms)和数据加载(datasetsDataLoader)的使用方法。

2025-08-13 18:02:33 877

原创 第4节 Transforms使用

PyTorch中的torchvision.transforms是一个强大的图像预处理工具库,提供多种变换操作来增强数据并适配神经网络输入。主要包括基础变换(如ToTensor、Normalize)、尺寸调整(Resize、RandomCrop)、色彩变换(ColorJitter、RandomRotation)以及组合变换Compose。这些操作能有效增加数据多样性、防止过拟合并提升模型泛化能力。文章详细介绍了各类变换的用途、参数配置及实现方法,包括图像类型转换、标准化处理、尺寸调整等核心功能,并展示了如何通

2025-08-13 10:30:33 653

原创 第3节 TensorBoard

本文介绍了TensorBoardX在PyTorch中的应用,重点讲解了SummaryWriter类的使用。TensorBoardX是PyTorch的可视化工具扩展,通过将训练指标写入事件文件,实现训练过程的实时监控和分析。文章详细说明了SummaryWriter的常用方法:add_scalar()记录标量数据(如损失值)、add_image()记录图像、add_histogram()记录参数分布等,并提供了具体代码示例。特别强调了add_scalar()和add_image()的参数配置及注意事项,包括数据

2025-08-12 09:51:57 908

原创 第2节 PyTorch加载数据

PyTorch数据处理实战:构建昆虫图像数据集 本文介绍了PyTorch中Dataset和Dataloader的核心功能,重点讲解了如何构建自定义图像数据集。Dataset类主要负责数据获取和编号,需要实现__getitem__和__len__方法;Dataloader则负责数据打包。通过实战演示了使用PIL.Image读取图片、处理绝对/相对路径、以及利用os模块管理文件路径。最后实现了一个昆虫图像数据集构建工具MyData类,能够从指定文件夹读取蚂蚁和蜜蜂图像并合并成完整训练集。该工具支持图像可视化,为

2025-08-11 16:36:26 856

原创 第六节 Gradio搭建Web GUI

Gradio是一个开源的Python库,用于快速构建机器学习交互界面。它支持多种输入输出类型(文本、图像、音频等),无需前端经验即可通过简单代码创建功能完善的Web应用。本文介绍了Gradio的核心组件(输入/输出/布局组件)及其在YOLOv5荔枝分类项目中的应用实现。项目通过Gradio的Interface模式构建了包含图像上传、参数调节和结果展示的交互界面,并提供了实时检测功能。Gradio的简单易用性使其成为展示机器学习模型的理想工具。

2025-08-10 08:51:48 889

原创 第五节 Pyside6可视化界面

本文介绍了使用PySide6开发基于YOLOv5模型的图像检测图形界面程序。主要内容包括:1)PySide6安装及Qt Designer工具使用;2)UI界面设计方法;3)程序功能实现,包括图片和视频文件选择、YOLOv5模型加载、检测结果显示等功能。程序通过PySide6实现图像处理界面,调用训练好的YOLOv5模型进行目标检测,支持图片和视频两种输入方式,并将原始画面和检测结果分别显示。文中提供了完整的Python实现代码,涵盖了从UI设计到模型调用的完整开发流程。

2025-08-07 22:00:14 765

原创 第三节 YOLOv5数据集构成

标注工具3.1数据集收集3.3.1收集1)、公开数据集网站2)、自作数据集:(1)、可以自行使用手机进行拍摄。然后使用labelimg进行标注。(2)、网络爬取图片,然后使用labelimg进行标注。代码运行结果:(1)、网络下载的图像大小不一,要进一步编写代码将图片的尺寸大小修改成符合模型的输入图像尺寸大小。调节图片大小640 X 640代码)(2)、网络爬虫的图像可能模糊不清甚至下载与数据集不相关的图片,需要人工筛选。

2025-08-06 21:39:06 1024

原创 解决yolov5的数据集找不到。Dataset not found , missing paths

path: C:\Users\Desktop\yolov5-7.0\datasets # ✅ 必须是你改名后的完整路径。我的错误之处是我的数据集的文件夹结构错误,导致YOLOv5 尝试加载。程序会执行指令,运行YOLOv5的train.py文件。确保路径和文件夹名一致(大小写、空格都一样)字段,如果它指向了错误路径(比如默认的。YOLOv5 会自动去读取这个文件里的。如果找不到,说明结构不对,必须重新整理!),就会强行下载 COCO 数据集!文件中配置的路径不正确!中定义的数据集失败了。

2025-08-06 16:15:28 583

原创 跑yolov5的train.py时,ImportError: Failed to initialize: Bad git executable.

遇到Git执行程序错误问题,错误显示GIT_PYTHON_REFRESH环境变量设置无效或Git可执行文件未正确配置。解决方案是:1) 从官网下载安装Git;2) 安装完成后重启终端并验证git --version命令;3) 确保Git路径已加入系统环境变量PATH。安装成功后,重新运行程序即可解决该导入错误。关键步骤是正确安装Git并确保其可执行路径能被Python识别。

2025-08-05 21:50:42 388

原创 jupyterlab安装失败:原因是python版本太低不兼容

本文针对Python安装jupyterlab时出现的版本不兼容和依赖缺失问题,提供了分步解决方案:1)检查并升级Python至3.9+版本;2)创建Python3.10的conda虚拟环境;3)在新环境中安装jupyterlab;4)通过版本检查确认安装成功。重点强调必须使用Python3.9以上版本才能解决兼容性问题,并给出了完整的命令行操作流程。

2025-08-04 11:38:44 1687 3

原创 第二节 YOLOv5参数

本文介绍了YOLOv5目标检测系统的关键参数和使用方法。主要参数包括weights(模型文件)、source(检测目标)、conf-thres(置信度阈值)和iou-thres(IOU阈值)。系统提供YOLOv5n/s/m/l/x五个模型,在速度、精度和计算量(FLOPs)上各有侧重,适用于不同场景。实验部分展示了检测单张图片、屏幕检测的操作指令和效果,并验证了阈值参数对检测结果的影响。此外还介绍了基于torch.hub的检测方法,通过PyTorch框架实现快速模型加载和推理。系统支持多种输入源,可根据需求

2025-08-03 23:12:37 1298

原创 第一节 YOLOv5安装教程以及配置VSCode虚拟环境

本文提供了YOLOv5开发环境的完整配置指南,包括:1) YOLOv5和VSCode的安装配置教程;2) Python虚拟环境管理(创建、激活、删除venv/conda环境);3) Python库的安装、升级、卸载及批量管理(支持指定版本和国内源加速);4) 库信息查询与导出方法;5) 常见问题解决方案。详细介绍了conda环境克隆、配置导出等高级功能,并强调了操作注意事项,为深度学习开发提供全面的环境配置参考。

2025-08-02 22:50:51 753

原创 第十节 点阵屏模块

用 74HC595 把单片机 3 个引脚(P34、P35、P36 )扩展成 8 路输出,控制 8 个 LED。优势:省单片机引脚,适合需要控制多个外设(比如点阵屏、LED 矩阵)的场景。简单说,这就是个 “串行转并行、少引脚控多设备” 的经典电路,学会它,玩点阵屏、LED 流水灯就轻松。74HC595是串行输入并行输出的移位寄存器,可用3根线输入串行数据,8根线输出并行数据,多片级联后,可输出16位、24位、32位等,常用于IO口扩展。2。

2025-07-25 17:28:10 920

原创 第九节 串口通信

串口是一种应用十分广泛的通讯接口,串口成本低、容易使用、通信线路简单,可实现两个设备的互相通信。单片机的串口可以使单片机与单片机、单片机与电脑、单片机与各式各样的模块互相通信,极大的扩展了单片机的应用范围,增强了单片机系统的硬件实力。51单片机内部自带UART,通用异步收发器),可实现单片机的串口通信。2、硬件电路简单双向串口通信有两根通信线(发送端TXD和接收端RXDTXD与RXD要交叉连接当只需单向的数据传输时,可以直接一根通信线。

2025-07-03 11:23:28 886

原创 第八节 定时器模块

51单片机的定时器属于单片机的内部资源,其电路的连接和运转均在单片机内部完成。2、定时器作用:1)用于计时系统,可实现软件计时,或者使程序每隔一固定时间完成一项操作。2)替代长时间的Delay,提高CPU的运行效率和处理速度。3、STC89C52定时器资源定时器个数:3个(T0T1T2),T0和T1与传统的51单片机兼容,T2是此型号单片机增加的资源。

2025-07-01 16:50:25 1148

原创 批量生成文件名6

摘要:介绍一种批量创建文件夹的方法:1)将竖向排列的名称转为横向;2)全选复制名称;3)新建记事本,先输入"md"再粘贴名称;4)保存为.bat文件(ANSI编码);5)运行该文件即可自动生成多个文件夹。该方法操作简单,适合需要同时创建多个文件夹的场景。

2025-06-30 21:48:17 266

空空如也

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

TA关注的人

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