自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 双目摄像头品牌

• 开发/机器人:RealSense 与 ZED 生态成熟,奥比中光性价比高,OAK 带 AI 加速。• 乔安、普联 TP-LINK、霸天安、联想(线上销量大,但近期有安全漏洞投诉,需谨慎)• 东风“天元智驾”惯导双目摄像头(已用于东风纳米 06,支持 L2+ 自动驾驶)• 家用:优先考虑小米、萤石、海康威视,固件更新和售后更可靠。(按“家用安防级→工业/机器人级→汽车级”由低到高排列)• 小米(米家 CW500、C700 等双摄版)• 萤石 EZVIZ(H6、C6c 星光增强版)工业/机器人/开发者级。

2025-07-19 18:38:50 63

原创 ROS2 双目摄像头物体定位系统实现

一个完整的ROS2双目视觉物体定位系统实现,包含相机驱动、标定、立体匹配、三维定位和可视化功能。

2025-07-19 18:35:37 193

原创 双目摄像头定位原理

双目摄像头定位的核心是“视差三角测量”——用两台平行固定的小孔相机,从不同视角看同一目标,根据目标在左右图像上的像素位移(视差 d)反推三维坐标。用棋盘格同时拍摄多张图片,计算左右相机的内参(焦距 fx、fy,主点 cx、cy)和外参(基线 Tx、姿态 R|t),并估计径向/切向畸变系数。常用算法:SGBM(半全局匹配)或 BM(Block Matching),输出视差图 d。Z 由上式得出,最终得到目标在世界坐标系下的 (X, Y, Z)其中 fx 为像素焦距,Tx 为左右相机中心距离(基线)

2025-07-19 18:13:13 68

原创 ROS2 通过相机确定物品坐标位置

要实现通过相机确定物品坐标位置,通常需要相机标定、物体检测和坐标转换几个步骤。下面我将提供一个完整的解决方案,包括相机标定、物体检测和3D坐标估计。

2025-07-19 18:09:04 428

原创 ROS2 视频采集节点实现

一个完整的ROS2视频采集节点的实现,使用OpenCV进行视频捕获并通过ROS2发布图像消息。

2025-07-19 17:48:35 319

原创 gitee 分支切换

git branch # 看看前面有没有 * feature/login。git add . # 或 git add <具体文件>git checkout feature/login # 如果已经切过可跳过。git push -u origin laserwelding:想要的远程分支名。git commit -m "feat: 用户登录功能初步实现"# 2. 基于远程 master 创建本地分支并立即切换。

2025-07-19 16:11:43 42

原创 张量数据库

张量数据库 =“多维数据的超算仓库”,既存储复杂科学数据,也加速 AI 模型训练,是连接HPC与AI的关键基础设施。

2025-07-18 08:39:45 179

原创 ubuntu 如何连接gitlab

替换为你的 GitLab 用户名和仓库名。登录你的 GitLab 账号,进入。栏粘贴你复制的内容,然后点击。安装完成后,打开浏览器访问。按照提示操作,完成后会在。,使用默认管理员账号。

2025-07-18 08:27:14 251

原创 万兆光纤接口

SFP+插槽通常向下兼容1G SFP模块,但10G SFP+模块无法在1G SFP插槽中使用。:SFP+模块的插槽外形是统一的,但内部可插不同波长或距离的光纤模块(如SR/LR/ER等)。:通常是SFP+插槽,可插10G SR(多模光纤)或LR(单模光纤)模块。(如10G SFP+ DAC),无需光模块,成本低但距离短(1-7米)。(主流,支持10Gbps,兼容1Gbps SFP但速率固定)(千兆接口转换器)无法支持万兆,但万兆时代已过渡至SFP+。(早期万兆模块,体积较大,已逐渐被SFP+取代)

2025-07-18 07:25:38 97

原创 ROS2 安装

官方提供两种ros2_control安装方式,分别为指令安装方式和源码编译安装方式,由于指令安装方式可能会导致功能包安装不全,故推荐使用源码编译安装方式。2.创建ros2_control工作空间,下载资源。1.首先source ROS2的资源。4.编译ros2_control。1.打开shell窗口。4.最后安装dev工具。

2025-07-18 07:22:44 707

原创 VTK三维软件包

VTK 是的缩写,中文常译为。它是一个开源的、跨平台的软件系统,用于,广泛应用于科研、工程、医疗等领域。

2025-07-18 06:18:37 283

原创 机械臂强化学习算法

• 先在 Isaac Gym 并行仿真训练,再使用“sim-to-real”域随机化(摩擦、质量随机扰动 10%)迁移到真实 Panda 机械臂,成功率维持 90% 以上。• HER(Hindsight Experience Replay)→ 与 DDPG/TD3/SAC 组合,解决“reach/pick-place”稀疏奖励问题。• DQN 系列:DQN、Double-DQN、Dueling-DQN → 适合离散关节档位控制。• 基础:关节角 + 末端位姿 + 目标位姿(7+7+3=17 维)。

2025-07-18 06:17:07 237

原创 深度学习算法与强化学习算法区别

深度学习(Deep Learning, DL)与强化学习(Reinforcement Learning, RL)经常被并列提及,但二者。

2025-07-18 06:11:11 118

原创 ROS2 参数服务器设置

演示如何在运行时通过 C++/Python API 读取/设置/列出参数。负责在启动时一次性声明若干参数,并对外提供查询/修改服务。目录结构(C++ 版)

2025-07-18 06:04:23 183

原创 ros2 server 可以设置命令同时获取位置

一个自定义服务 :请求字段 响应字段 服务端收到请求后,把 缓存下来,再把当前位姿填进响应返回。为了便于演示,位置用一个简单计数器模拟;你可以把它替换成 TF、里程计或 SLAM 输出。一、创建功能包bash复制二、定义服务接口在包目录里新建 :复制在 里加入:cmake复制在 里加入:xml复制三、服务端源码把下面内容保存为 :cpp复制四、CMakeLists.txt 与 package.xml 关键片段CMakeLists.txt:cmake复制pa

2025-07-18 05:58:43 179

原创 ubuntu 如何连接gitlab

通过以上方式,你可以在 Ubuntu 上连接并使用 GitLab。替换为你的 GitLab 用户名和仓库名。登录你的 GitLab 账号,进入。栏粘贴你复制的内容,然后点击。安装完成后,打开浏览器访问。按照提示操作,完成后会在。,使用默认管理员账号。

2025-07-17 09:26:48 445

原创 使用make编译ROS2节点

可以看到make指令调用了脚本里的build下的指令,对代码进行了编译。同级目录下也产生了first_node可执行文件(绿色代表可执行)。工具,我们可以将g++的指令写成脚本,就可以通过make自动的调用脚本完成操作。编译节点无比的麻烦,的确是这样子,为此先行者们发明了一个叫做make的。,然后将上面的g++编译指令用下面的形式写到Makefile里。在Makefile同级目录输入。

2025-07-07 15:14:40 166

原创 ROS2工程引入第三方库,如何编写CMakeList.txt

所以你可以认为 ament_target_dependencies 是专门用于链接ROS 2 的库, target_link_libraries 用于链接普普通通的第三方库。对于不支持的,要先找到对应库路径,我们放到工程目录下,可以直接通过CMakeLists.txt提供的${PROJECT_SOURCE_DIR}获取路径,拼接lib即可获取库。如果你这样直接编译,是没有问题的,但最后运行的时候就会无法link,这是因为src目录下的库目录没有被 ROS 2的 setup.bash 添加到搜索目录。

2025-07-07 14:48:48 690

原创 qtcreator使用ros2编译qt代码

【代码】qtcreator使用ros2编译qt代码。

2025-07-07 14:43:18 87

原创 ament_cmake cmakelist

根据项目需求,添加其他必要的配置,例如设置编译选项、查找其他依赖包等。:在文件开头指定 CMake 的最低版本,例如。命令为可执行文件链接所需的库文件。命令设置源文件和头文件的路径。命令设置可执行文件的源文件。命令为可执行文件添加依赖项。命令安装目标文件到指定目录。命令设置项目名称,例如。

2025-07-07 09:31:20 222

原创 【QT】ROS2 Humble联合使用QT教程

然后点击Next,如果点击Next没有反应的话,我们先点击Browse,然后立马cancel,这个路径不要改,退出来之后,我们就可以点击Next了,这可能是一个小bug。然后安装插件,注意这里是默认Qt Creator的安装路径为~/Qt/Tools/QtCreator,如果你的路径不是这里,请将下面语句-C后改为你自己的安装路径。直接进入src文件夹中然后git clone这个ROS功能包,地址:https://github.com/shenmuxin/ros2_humble_qt_demo。

2025-07-04 12:46:47 449

原创 ubuntu 6.8.0 安装xenomai3.3

选择与内核 6.8.0 匹配的 Dovetail 补丁。例如,如果你使用的是内核 6.8.0,可以尝试下载。对于 Xenomai 3.2.1,你需要下载对应的 Dovetail 补丁。通过以上步骤,你可以成功下载和编译带有 Xenomai 补丁的 Linux 内核 6.8.0。在编译好内核后,需要安装 Xenomai 的用户空间库。下载 Linux 内核 6.8.0 的源码。下载 Xenomai 3.2.1 的源码。: 在网站中找到内核 6.8.0 的下载链接。

2025-07-03 14:13:38 676

原创 【QT】ROS2 Humble联合使用QT教程

然后点击Next,如果点击Next没有反应的话,我们先点击Browse,然后立马cancel,这个路径不要改,退出来之后,我们就可以点击Next了,这可能是一个小bug。安装ROSProjectManager的主要流程参考官方给出的流程,官方地址在这里(ros_qtc_plugin),我们采用二进制安装更为方便。首先先安装相关的依赖。然后安装插件,注意这里是默认Qt Creator的安装路径为~/Qt/Tools/QtCreator,如果你的路径不是这里,请将下面语句-C后改为你自己的安装路径。

2025-07-02 22:48:06 395

原创 ubuntu 22.04 LTS 安装preempt-rt

PREEMPT-RT 内核与 NVIDIA 驱动可能不兼容,建议使用开源的 Nouveau 驱动。如果需要定制内核或使用特定版本的 PREEMPT-RT 补丁,可以手动编译。如果你不想使用 Ubuntu Pro,可以手动下载并安装预编译的实时内核。Ubuntu Pro 提供了官方支持的实时内核,安装过程较为简单且稳定。:重启后在 GRUB 菜单中选择新安装的实时内核启动。:重启后在 GRUB 菜单中选择新编译的实时内核启动。:重启后,在 GRUB 菜单中选择实时内核启动。

2025-07-02 20:46:17 673

原创 Ubuntu22+ROS2+QtCreator+Ros_Qtc_Plugin开发环境搭建

之前开发ROS1程序时一直用的QTC,我本以为QTC应该还没有对应的ROS2插件,没想到网上查找了一番发现ros_qtc_plugin早就支持ROS2了,现在把我配置环境的过程记录下来。② 本例QTC版本为10,则选择ros_qtc_plugin10版本,根据操作系统选择相应的zip文件进行下载。③ 点击install Plugin,选择刚才下载的ros_qtc_plugin的zip文件进行安装,如果QTC版本和ros_qtc_plugin不对应则会报错。本例使用清华源,也可以换成其他支持qt的镜像源。

2025-07-02 17:52:28 400

原创 x86 ubuntu preempt-rt 补丁

如果你的系统是 Ubuntu 22.04 LTS,以上步骤应该可以帮助你安装官方预编译的实时内核。如果你使用的是其他版本的 Ubuntu 或有其他特殊需求,可能需要采取不同的方法。网站,根据内核主版本号下载对应的 preempt-rt 补丁,如补丁 5.15.83-rt53 需对应 5.15.x 内核。:对于 Ubuntu 22.04 LTS,你可以直接安装官方预编译的实时内核。:安装实时内核后,持续监控系统的性能和稳定性,确保一切正常运行。:在进行任何内核更改之前,建议备份你的系统,以防出现问题。

2025-07-02 11:19:09 473

原创 preempt-rt 测试

例如,在隔离CPU中运行的测评结果中,周期延迟的最大值为17微秒,最小值为1微秒,平均值为1微秒,其中1~4微秒范围占了99.997326%,1~8微秒范围占了99.999969%它的工作原理是启动一个主线程,主线程会启动几个实时测量线程,这些线程会在设定的时间间隔后定期唤醒,记录预期和实际唤醒时间的时差,并将结果传递给主进程,测试结束后输出汇总结果。例如,在空载测试中,某系统的测试结果显示最大延迟为34微秒。:用于模拟系统负载的工具,通过模拟CPU、内存、I/O等多方面的压力,可以对系统进行压力测试。

2025-07-02 09:56:04 392

原创 ubuntu 安装QT

在 Ubuntu 系统上安装 Qt 可以通过以下步骤完成,以下是详细的安装指南。

2025-07-01 17:11:30 1058

原创 qt5 安装

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。原文链接:https://blog.youkuaiyun.com/weixin_48560325/article/details/124373125。Ubuntu自带国外源;先判断 : clang -v。6、安装make-guile。4、安装 clang ++3、安装qtcreator。3、安装clang编译器。2、安装Qt的开发工具。1、判断gcc是否安装。2、判断g++是否安装。1、安装Qt5的组件。

2025-07-01 16:42:08 118

原创 ubuntu 启动SSH 服务

在Ubuntu系统中,启动SSH服务需要确保SSH服务已经安装,并且正确配置。

2025-07-01 10:45:20 825

原创 安装 preempt_rt 实时内核

重启系统后,进入引导程序(如Grub)的引导加载器屏幕,选择新构建的Preempt_RT内核启动。下载与当前系统内核版本匹配的Linux内核源码文件和Preempt_RT补丁文件。在某些系统中,可能需要手动编辑Grub配置文件来设置默认启动的内核。将当前系统内核的配置文件复制到内核源码目录下,并重命名为。命令检查当前运行的内核版本,若版本号中包含。例如,若CPU有4个线程,可使用。命令安装编译内核所需的依赖软件。进入内核源码目录,并应用补丁。后缀,则说明实时内核安装成功。命令,进入内核配置菜单。

2025-06-25 13:41:56 314

原创 sudo cyclictest -l100000 -m -t5 -p99 -i1000 -h100 指令详解

直方图用于统计不同延迟范围内的发生次数,帮助分析系统的延迟分布情况。此参数限制了直方图记录的最大延迟值,超过该值的延迟将不会被记录在直方图中,但会在结果中显示为溢出(overflow)。如果指定了该选项但没有指定具体的线程数,则会创建与CPU核心数量相同的线程。在实时测试中,高优先级的线程可以优先获得CPU资源,从而更准确地测试系统的实时性能。这个参数定义了线程在每次唤醒之间的时间间隔,用于控制测试的频率。可以对系统的实时性能进行详细的测试和分析,帮助评估系统在不同负载和配置下的延迟表现。

2025-06-24 17:47:54 106

原创 Ubuntu 系统是否已安装 PREEMPT-RT 实时内核补丁

Ubuntu 22.04 LTS 及以上版本可通过 Ubuntu Pro 服务直接安装官方实时内核。:Ubuntu 22.04 LTS 是首个官方集成 PREEMPT-RT 补丁的版本,需确认系统版本是否支持。,则说明系统已通过 Ubuntu Pro 订阅启用了 PREEMPT-RT 内核。,但存在实时性能优化,可能是用户手动编译的内核,需进一步检查。),若数值在微秒级(如 <100μs),则表明实时内核生效。,则表明内核已启用实时抢占功能。),则说明系统已启用实时内核。:若内核版本号未明确标注。

2025-06-17 11:22:09 322

原创 xenomai3+linux构建linux实时操作系统-基于X86_64和arm

Xenomai是一个实时性解决方案,通过在Linux上添加实时内核Cobalt来增强实时性能。它有三个主要部分:libcobalt(用户空间实时库)、Cobalt(内核空间实时内核)和硬件架构特定层(ipipe-core或dovetail)。ipipe-core适用于Linux 5.4以下版本,而dovetail用于5.4及以上版本。本文介绍了在X86 Ubuntu环境下,如何编译Xenomai内核,搭建应用环境,包括配置、编译、安装和实时性测试。对于其他硬件架构,如ARM和ARM64,步骤类似。

2025-06-17 11:05:30 661

原创 Qt Creator 从入门到项目实战

Qt Creator 是一个跨平台的集成开发环境(IDE),专门用于开发 Qt 应用程序。它为开发者提供了一个强大的工具集,包括代码编辑器、调试器、UI 设计器以及性能分析工具等。Qt Creator 提供了一个直观的用户界面,其中包含了多种功能,以帮助开发者更高效地进行软件开发。信号和槽在 QObject 的子类中使用signal和slot关键字来定义。// 示例:定义信号和槽Q_OBJECTpublic:signals:Qt 提供了一套丰富的控件库,用于构建图形用户界面(GUI)。

2025-06-12 17:52:38 719

原创 linux的实时性

在设计上更注重吞吐量和公平调度,而非严格的实时性。Linux 的实时性取决于其内核配置和使用场景。标准 Linux 内核(

2025-06-03 20:49:15 470

原创 udp 传输实时性测量

如果你熟悉编程,可以使用Python等编程语言编写自定义的UDP测试脚本。脚本可以模拟UDP客户端发送数据包,并验证服务器端的响应,以测试UDP的性能和可靠性。

2025-05-29 16:55:34 683

原创 Ubuntu22.04 安装Linux实时补丁preempt_rt

RT补丁:https://mirrors.edge.kernel.org/pub/linux/kernel/projects/rt/Linux内核:https://mirrors.edge.kernel.org/pub/linux/kernel/cp -v /boot/config-6.8.0-50-generic .config ##复制现有的内核配置文件。选择相近版本内核 linux-6.8.2以及内核相同版本补丁 patch-6.8.2-rt11。启动RT内核需下载linuxn内核源码和RT补丁。

2025-05-29 16:30:47 857 1

原创 Docker 挂载卷并保存为容器

docker commit 是一个非常方便的工具,可以快速将运行中的容器保存为一个新的镜像。如果你只是需要快速保存当前容器的状态,docker commit 是一个不错的选择。docker commit 创建的镜像仅包含当前容器的状态,不包含构建过程中的上下文信息(如 Dockerfile 中的指令)。在 Docker 中,你可以将运行中的容器保存为一个新的镜像,以便后续可以基于这个镜像快速创建新的容器。使用 docker commit 创建的镜像会包含容器的所有更改,包括文件系统的变化和运行时的状态。

2025-05-27 17:29:02 843

原创 doucker 挂载卷

v /path/to/host/workspace:/root/ros2_ws:将宿主机的 /path/to/host/workspace 目录挂载到容器的 /root/ros2_ws 目录。在 Docker 中,挂载卷(Volumes)是一种非常重要的功能,它允许你将宿主机的文件系统与容器的文件系统进行共享。-v /path/to/host:/path/to/container:将宿主机的 /path/to/host 目录挂载到容器的 /path/to/container 目录。

2025-05-27 17:05:58 785

空空如也

空空如也

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

TA关注的人

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