- 博客(54)
- 收藏
- 关注
原创 RVIZ和QT联合
引言:我们最近有一个解决的问题就是通过QT怎么来实时化来展示我们的机器人可视化界面,让我们的机器人实时运动来随着实时展现,我想到一种办法就是将我们的RVIZ来嵌入到我们的QT界面中来,让我们实现我们从ROS2来对我们的MIcro_ROS机器人的控制,并实时显示机器人的状态最近在更新这个文件第一天完成了MainWindow窗口,明天完成rviz_panel,主要实现我们MainWindow窗口的实现。
2026-01-05 19:20:31
328
原创 数据是怎么在硬盘之间传输的
引言:如果我们要把存在 C 盘的数据放在 D 盘中,可能我们会把这个数据给剪切加粘贴,但是如果你在这时想同时运行一些大型的游戏,比如说永劫无间,你会发现运行的很卡。这是为什么呢?当我们的应用在运行的时候要占用电脑的内存,RAM的速度远大于硬盘读取的速度,如果我们的APP直接对硬盘进行读取,而不是通过在RAM中读取,我们的游戏将会运行将会非常卡。
2025-12-06 20:40:05
434
原创 嵌入式设备里面写文件通过外部 Flash 来进行
如果你选择了,那你一定想要了解为啥要给我们的操作系统安装不同类型的文件系统Linux 常见的文件系统如:ext3/ext4/swap格式的文件 等等在Windows 11上也有各种各样的文件系统ntfs ,exfat 格式的文件。
2025-12-06 18:12:45
327
原创 什么是Handle句柄
比如说我们在图形化界面中配置 IIC 总线的相关参数,STM32MX 返回的 Handle 返回的句柄就是我们对这个 IIC 外设的相关配置。这个是使用STM32CubeMX生成的代码,如何使用STM32Cube生成代码可以看这个文章。我们可以简单的把这个句柄理解为:本质上是指向特定外设配置和状态信息的结构体指针。首先我们先清楚在什么样的开发环境中会用到这个句柄的概念。比如我们配置波特率为 115200 bt/s。在系统层级的API开发中会了解到这个词语。在 MX 生成的代码中就会有。
2025-12-04 20:39:19
220
原创 使用WSL安装系统
这样在新建终端的时候就可以选择 Ubuntu20.04的终端命令行了,或者通过编程软件来操作这个版本的 Ubuntu 了给我们在 window 平台下提供了 Linux 的操作平台。2.如果有的话使用下面的指令安装你需要的系统这里我选择的是Ubuntu-20.04。因为有些我们ROS2没有办法编译,只有ROS版本的。1.打开PowerShell。看一下有没有你需要的子系统。
2025-12-04 20:20:48
148
原创 使用TRAE来制作MCP和Agent
Agent 就像一个智能管家一样,来将我们的 MCP 服务给加载进来,它更像是一个智能管家一样,我们可以选择不同的大语言模型+不同的 MCP 来实现不同的 Agent 助手。
2025-12-04 20:17:53
316
原创 KNN 算法和 K means算法和 Q-Learning 算法(简单的理解)
kmeans 算法是根据聚类的一种算法我们要根据具体的环境来判断这个环境中有几类物体一句话说明白:根据特征值来判断物体的类别那这里又引出一个概念什么叫强化学习呢?强化学习是通过奖励机制来实现的,最经典的例子要数走迷宫了刚刚开始智能体在初始位置,运动到一个我们的迷宫出口,如果我们走一步,无论成功与否,都给这个智能体的 Q 值减少,如果走到陷阱 Q 值大量减少,走到出口 Q 的值大量增加。
2025-12-04 20:06:32
834
原创 ROS2的cpp版本调试
下面并在./vscode/launch.json里面添加下面的代码这相当于一个节点。点击这个名称就可以实现cpp文件的单步调试了。因为我这个有很多了所以就有很多调试接口。下面在vscode的调试部分。
2025-11-21 18:12:03
225
原创 对于system系统文件夹(HAL库详解)
Systick在M3内核里面,核心是24位的递减计数器2^24Systick是来自AHB总线上的时钟信号HCLKVAL是我们自己定义的值<2^24// 传入的sysclk是72// 将CTRL寄存器清零// 选择8分频的分频 相当于将CLKSOURCE选择外部时钟//在9MHz的频率下数多少次得到1us。
2025-11-15 19:36:52
932
原创 STM32时钟系统对于STM32F1系列(详解)
我们可以使用STM32F103C8T6的时钟树来给大家做一个演示在STM32MX中MCO PA8复用向外部输出到芯片外部外部时钟源(高速和低速)HSE LSE 更稳定精确度更高内部时钟源(高速和低速)HSI LSIHSE可以选择(不分频和二分频)和HSI(二分频)通过PLL(锁相环)使得倍频(2~16)之后得到SYSCLK 系统时钟 72MHZ的但是内部最高最能到达64MHz,所以一般使用都是外部高速时钟从SYSCLK到HCLK(AHB总线),要经过分频器,一般我们也不进行分频。
2025-11-10 18:15:19
968
原创 PLCSIM影响我们的Ssh通信
但是我们并没有连接上报错是permission denied 但是我们的输入也没有问题呀,我们有使用了同属于Windows 10的主机发现配置也一样,注这个Windows 10可以连接上.最后想让其他机器连接这个主机的时候发现这个以太网2也就是PLCSIm 的地址和我们从机的地址一样,这导致了我们使用这个从机地址和PLCsim地址冲突,也导致了我们无法连接上我们的从机。我们今天使用的是我们的实验室的主机,连接我们的机械臂,我们使用ssh连接一直连接不上,最后阴差阳错的解决的。
2025-11-05 18:07:10
308
原创 FreeRTOS移植
delay_osrunning :用于表示OS当前是否正在运行,以决定是否可以使用相关函数 delay_ostickspersec :用于表示OS设定的时钟节拍,delay_init将根据这个参数来初始化systick delay_osintnesting :用于表示OS中断嵌套级别,因为中断里面不可以调度,delay_ms使用该参数来决定如何运行3.编译发现有问题是因为我电脑上有两个版本的编译器ARMCC和ARMCLANGARMCLANG不会向下兼容导致编译不通过。
2025-11-01 20:12:34
668
原创 使用Python怎么打包成.exe文件
相信学习C语言的大家会发现自己写的程序会通过编译生成.exe文件,那么我们的Python是不是也可以生成点击运行的.exe文件呢需要使用到的工具使用pip安装这个工具。
2025-10-31 15:10:59
231
原创 Nav2自主导航
它关注机器人前方一小片区域内的动态环境,并避开临时出现的障碍物(如行人、移动的椅子):当导航出现问题时(例如,机器人被卡住、无法规划出路径、无法找到有效控制指令),打一个比方,我们在Rviz中使用Nav2 Goal就是我们全局规划器来规划的。:这是一张高频率更新的、只关注机器人周围局部区域的地图。就是如果Planner 规划的不是十分正确,它可以对部分路径进行更改。比如我们全局规划之后这个路径,发现有障碍物,会实时修改这个路径。它只关心“从A到B怎么走大体路线”,不关心临时的动态障碍。
2025-10-30 20:26:10
1100
原创 什么是状态机编程和模块化编程
我们可以把LED和按键分模块来使用,在keil里面我们会封装成为。今天我听别人说什么是状态机编程这个和我们的模块话编程有什么联系。之后对他们分别进行初始化,这里我使用标准库来给大家做演示。这就是我对模块化编程和状态机编程的简单理解欢迎批评指正。这把按下按键和按键初始化这两个状态给分开。拿大家熟知的按键控制LED灯来说吧。比如我们这里举出一个很简单的例子。可以看出这个就是Led的三种状态。这个正好满足模块化和状态机编程。初始化,灯亮,灯灭这三种状态。但这两个是分别是两个模块。
2025-10-28 19:43:16
221
原创 我的树莓派5B初始化
后面需要一个u盘作为我们的启动盘,注意要使用空的u盘。然后在windows主机上输入这个网址。连接从机和显示器的线。然后下载的是这个软件。
2025-10-28 17:24:57
191
原创 在ROS2下出现雷达识别不到的问题及解决方案
1️⃣ 架构不匹配(比如你在树莓派上运行 x86 编译的二进制)在soucre ./install/setup.bash再运行。问题所在:这在 Linux/ROS 2 环境中几乎可以。平台:轮趣科技S300-Pro-mini。我们来检测一下是哪里的问题使用这个指令。2️⃣ 缺少运行时依赖库(动态库。1.首先先检测一下有没有这个文件。我这里显示是有这个文件的。我们对这个雷达包使用这个。是没有找到这个动态库。这个就可以成功运行啦。
2025-10-28 15:29:24
674
原创 树莓派设置中文输入法
第一次接触这个树莓派这个操作系统,首当其冲的就是给这个系统装上中文输入法。在preferences中点击fcitx configuration。在最下面就可以找到我们安装的google pinyin输入法啦。1.安装fcitx框架和googlepinyin输入法。这里我选择的是google pinyin输入法。进入后我们点击左下角的+取消关闭这个勾选。最后点击ctrl+空格来切换输入法。3.之后点击电脑上的win键。2.安装成功之后重启电脑。
2025-10-25 11:37:56
432
原创 ROS 学习
引言:每当我们开始学习一个新的东西,我们都要给他们搭建好环境这个是我学习ROS的一个笔记持续更新中环境:Ubuntu22.04LTS。
2025-10-22 20:22:16
654
原创 我编译好的opencv库与ros2 humble库里面的opencv库的解决方案
首先明确我们从源码编译的opencv库在/usr/local/中ros2 humble的opencv库在/opt/ros/humble/中一般我们默认选取这个/usr/local/的opencv库。
2025-10-18 19:41:30
1387
原创 在小车上挂载nfs
在export文件中写入 /home/dxf/WHEELTEC_S300Pro_mini。no_root_squash :允许客户端以 root 身份访问(仅在可信网络中使用)* :允许所有客户端访问(可换成指定 IP,如 192.168.0.0/24)在我们的电脑Ubuntu终端上运行这里使用的是我的树莓派。输出如下证明我们的文件夹被共享起来啦。出现下面的界面证明nfs服务正在运行。这个就是我们使用nfs挂载的文件夹。检查nfs服务是否运行。修改被挂载的目录权限。3.检测是否安装成功。
2025-10-16 14:10:37
311
原创 在编译opencv出现的问题
目标机器:Jetson irno nano 4GB操作系统:Ubuntu 22.04 LTSROS操作系统:ROS Humble安装依赖库opencv4.10。
2025-10-14 13:32:08
691
原创 package.xml文件的作用
我们为啥使用这个ros2 pgk 构建包,这个构建包的形式和colcon是对应着的。在我们使用ros2 pkg 工具的时候会生成一个package.xml文件。其他文件我们都知道但是这个package.xml是干什么用的。我上网查看了一下这个xml文件的作用大概是存储用户信息的文件。使用cpp语言开发的话使用下面的指令会在当前工作目录下生成。我们打开这个文件里面是这样的。我们可以做一个测试包。
2025-10-10 18:05:33
168
原创 终端自动代码补全
Ubuntu22.04.5 虚拟机在我们使用Linux的时候,常常使用的终端是bash那我们怎么去获得和clion/vscode一样的自动代码补全我们需要安装两个软件。
2025-10-04 13:21:03
540
原创 怎么给做过启动盘的U盘恢复
输入这行指令选中磁盘3--注意看上一次我们要复原的磁盘是哪一个。我的U盘的文件格式是exfat文件格式。1.首先要记住你启动盘之前的文件格式。进行diskpart的bash界面。看一下少了哪一个盘就是你要选择的盘。如果忘记可以去问厂家文件格式是啥。在命令行中输入diskpart。然后使用这个命令创建一个分区。使用clean命令清理文件。最后在格式化成原来的模式。2.打开终端命令行工具。然后拔出你要格式化的盘。
2025-09-30 08:57:30
283
原创 当我们不知道给一个函数传入几个参数的的方法
这样我们就可以使用args库了,也就可以给一个功能函数传递参数了。我们如果需要给功能函数,在不确定几个参数的时候,我们该怎么办呀。我们可以看出第一个可以给我们的主函数传递参数。我们在写代码的时候有没有遇到这样的代码,如。这时候c语言给我们提供了一个库。那么这两种主入口有啥不同呢。这个库里面定义了三个宏。
2025-09-29 18:50:51
217
原创 keil5怎么添加新的芯片
出现这个STM32F2 series 就证明安装到keil 5 上了。点击这个hareware 硬件 选择 devices。然后点击这个就是下载所有STM32F2系列的包。搜索这个网站www.keil.arm.com。首先我们是在已经安装好keil5的情况下。这里的搜索框搜素你想要安装的芯片。我们可以看一下,打开keil5。下载完成打开我们下载的芯片包。出现这个页面就证明安装成功了。
2025-09-25 21:01:34
553
原创 注释汇总->仅仅是我学过的语言
在 python /bash 里面几乎所有的脚本文件都是使用这个进行注释。-- -->进行注释。使用/* */进行注释。使用 // 进行注释。
2025-09-24 19:09:19
95
原创 给Jetson iron nano 安装 ubantu 出现的问题
就是注意要留一部分做 EFI 分区,注意根目录和家目录的挂载内存都要在 40G 以上,而且留下了一个小问题,就是我们在给一个电脑刷上 ubantu 系统之后,我们并不可以对它挂载的磁盘取消挂载,我本来磁盘分的不行给根目录分小了注意根和家目录的文件类型都是 XFS 的文件类型。2.在调整好硬盘了之后发现在 Jetson 上面下载的软件打不开,如果在终端上强行运行会下面的情况。更离谱的是在这个cuda的 bin 目录下有 nvcc 这就很奇怪了。这个问题我试了好几种解决方案,都不可以把这个问题给解决。
2025-09-24 19:01:31
324
原创 git的使用说明
Git config alias.logg”git log --graph --oneline --all”来实现。我们使用这个git clone的时候遇见了一个问题--通过下面的检查来解决了这个问题。然后进入GitHub对其进行以下配置--要复制这个文件中产生的密钥。右键选择小乌龟--提交--提交完成之后使用推送按键就可以成功推送了。Git branch -d +分支名 删除当前分支。Untracked files--未背跟踪的文件。Git branch -D+分支名强制删除。
2025-09-19 18:57:50
784
原创 来自我的一些对 mac电脑的使用体验
8.mac安装软件比较繁琐,反正我记得我的vs code安装就弄了好久,这一点远不如Windows,但是我发现mac的配置环境比Windows快,这是因为mac的底层是Linux,不是很懂哈。11.如果你有苹果手机的话,可能使用mac汇更加方便一点,但是我总体感觉不如Windows,但是界面设计的比较成功,但是保密性太好了,以至于很多软件无法安装。10.mac上使用舒服的一点在于它下面的工作区,在Windows下也有,但是感觉做出来的效果不如mac实际使用体验也不如mac。一个目前全免费的壁纸平台。
2025-09-16 00:13:36
251
原创 c/c++打开文件方式汇总
这就是我们c/c++操作文件的方式共三种,个人感觉c++的更容易使用,因为它面向的是文件输入输出流。从fopen的man手册中也可以看到这些状态都是Linux下封装好给你的。那在c++中的文件操作流是对文件指针的更高级封装我们无法man 它。在Linux下我们打开一个文件通常使用这种办法使用读的方式。在windows下我们使用一种叫fopen的函数。面向的是fstream file是流对象。一个叫文件指针是对文件描述符的封装。
2025-09-13 20:36:17
585
原创 我们都知道->是结构体指针来调用结构体成员的,那么-->有是什么呢
相信各位有一点点c语言基础的可能会和结构体指针联系起来,但是很明显,这并不是一个结构体指针,我们可以和\换行符结合就可以搞出很多有意思的创意。这时循环的次数会变少,是不是还挺有趣的,一个--和>还有换行符可以画画了哈哈哈。而且我们也可以通过-号的数量来控制快慢是不是更有趣了。今天逛论坛偶然看见这个帖子。
2025-09-13 20:05:39
189
原创 使用makefile在window下遇到的问题
但是在linux系统下我学到了makefile文件,我们可不可以使用makefile在window平台下进行配置。相必大家在使用vscode的时候都会发现刚刚开始的hello world都不能输入的。我们不知道为啥我们使用getcwd->得到当前的工作目录还发现我们的路径也没有问题呀。在使用的时候使用gcc make(在linux环境下使用make就行)我们在学习c语言的时候,不知道大家会不会好奇c语言怎么跑起来的。这里写一个最简单的makefile文件。头文件--include。构建文件--build。
2025-09-12 19:23:19
238
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅
3