
ROS
文章平均质量分 71
ZPC8210
robot
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
将SAC强化学习算法部署到ROS2的完整指南
将Soft Actor-Critic (SAC)强化学习算法部署到ROS2环境中,可以实现智能机器人的自主决策和运动控制。下面详细介绍从算法集成到实际部署的全过程。原创 2025-07-20 13:30:40 · 227 阅读 · 0 评论 -
深度学习方法生成抓取位姿与6D姿态估计的完整实现
如何将GraspNet等深度学习模型与6D姿态估计集成到ROS2和MoveIt中,实现高精度的机器人抓取系统。原创 2025-07-20 12:55:48 · 355 阅读 · 0 评论 -
MoveIt创建抓取位姿的完整指南
text# 抓取位姿# 抓取方向 (可选)string approach_direction # 如"top", "side", "front"# 抓取宽度 (单位:米)# 抓取质量评分 (0-1)原创 2025-07-20 12:20:59 · 425 阅读 · 0 评论 -
奥比中光双目摄像头实现物品抓取的机器人系统
text[奥比中光摄像头] → [点云数据处理] → [物品识别定位] → [运动规划] → [机械臂控制]原创 2025-07-20 12:07:12 · 332 阅读 · 0 评论 -
ros2 通过yaml 文件加载参数
1. **命名匹配规则**:YAML 中的顶级键(如 `my_node`)必须与节点名**完全匹配**在 ROS 2 中,可以通过 YAML 文件为节点加载参数。2. 参数优先级:命令行参数 > YAML 文件 > 代码中默认值。#### 方式2:通过启动文件加载(Python 启动示例)### 6. 安装参数文件(CMakeLists.txt)### 3. Python 节点加载参数示例。### 4. 运行节点时加载 YAML 文件。### 1. 创建 YAML 参数文件。### 多节点共享参数文件。原创 2025-07-20 10:12:28 · 143 阅读 · 0 评论 -
通过YAML文件加载参数的C++ ROS2节点
一个完整的ROS2节点示例,它从YAML文件中加载参数并使用这些参数。这个示例包括节点创建、参数声明和YAML文件解析。原创 2025-07-20 09:45:49 · 394 阅读 · 0 评论 -
双目摄像头品牌
• 开发/机器人:RealSense 与 ZED 生态成熟,奥比中光性价比高,OAK 带 AI 加速。• 乔安、普联 TP-LINK、霸天安、联想(线上销量大,但近期有安全漏洞投诉,需谨慎)• 东风“天元智驾”惯导双目摄像头(已用于东风纳米 06,支持 L2+ 自动驾驶)• 家用:优先考虑小米、萤石、海康威视,固件更新和售后更可靠。(按“家用安防级→工业/机器人级→汽车级”由低到高排列)• 小米(米家 CW500、C700 等双摄版)• 萤石 EZVIZ(H6、C6c 星光增强版)工业/机器人/开发者级。原创 2025-07-19 18:38:50 · 74 阅读 · 0 评论 -
ROS2 双目摄像头物体定位系统实现
一个完整的ROS2双目视觉物体定位系统实现,包含相机驱动、标定、立体匹配、三维定位和可视化功能。原创 2025-07-19 18:35:37 · 450 阅读 · 0 评论 -
双目摄像头定位原理
双目摄像头定位的核心是“视差三角测量”——用两台平行固定的小孔相机,从不同视角看同一目标,根据目标在左右图像上的像素位移(视差 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 · 76 阅读 · 0 评论 -
ROS2 通过相机确定物品坐标位置
要实现通过相机确定物品坐标位置,通常需要相机标定、物体检测和坐标转换几个步骤。下面我将提供一个完整的解决方案,包括相机标定、物体检测和3D坐标估计。原创 2025-07-19 18:09:04 · 625 阅读 · 0 评论 -
ROS2 视频采集节点实现
一个完整的ROS2视频采集节点的实现,使用OpenCV进行视频捕获并通过ROS2发布图像消息。原创 2025-07-19 17:48:35 · 327 阅读 · 0 评论 -
ROS2 安装
官方提供两种ros2_control安装方式,分别为指令安装方式和源码编译安装方式,由于指令安装方式可能会导致功能包安装不全,故推荐使用源码编译安装方式。2.创建ros2_control工作空间,下载资源。1.首先source ROS2的资源。4.编译ros2_control。1.打开shell窗口。4.最后安装dev工具。原创 2025-07-18 07:22:44 · 708 阅读 · 0 评论 -
VTK三维软件包
VTK 是的缩写,中文常译为。它是一个开源的、跨平台的软件系统,用于,广泛应用于科研、工程、医疗等领域。原创 2025-07-18 06:18:37 · 307 阅读 · 0 评论 -
ROS2 参数服务器设置
演示如何在运行时通过 C++/Python API 读取/设置/列出参数。负责在启动时一次性声明若干参数,并对外提供查询/修改服务。目录结构(C++ 版)原创 2025-07-18 06:04:23 · 204 阅读 · 0 评论 -
ros2 server 可以设置命令同时获取位置
一个自定义服务 :请求字段 响应字段 服务端收到请求后,把 缓存下来,再把当前位姿填进响应返回。为了便于演示,位置用一个简单计数器模拟;你可以把它替换成 TF、里程计或 SLAM 输出。一、创建功能包bash复制二、定义服务接口在包目录里新建 :复制在 里加入:cmake复制在 里加入:xml复制三、服务端源码把下面内容保存为 :cpp复制四、CMakeLists.txt 与 package.xml 关键片段CMakeLists.txt:cmake复制pa原创 2025-07-18 05:58:43 · 179 阅读 · 0 评论 -
使用make编译ROS2节点
可以看到make指令调用了脚本里的build下的指令,对代码进行了编译。同级目录下也产生了first_node可执行文件(绿色代表可执行)。工具,我们可以将g++的指令写成脚本,就可以通过make自动的调用脚本完成操作。编译节点无比的麻烦,的确是这样子,为此先行者们发明了一个叫做make的。,然后将上面的g++编译指令用下面的形式写到Makefile里。在Makefile同级目录输入。原创 2025-07-07 15:14:40 · 166 阅读 · 0 评论 -
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 阅读 · 0 评论 -
qtcreator使用ros2编译qt代码
【代码】qtcreator使用ros2编译qt代码。原创 2025-07-07 14:43:18 · 87 阅读 · 0 评论 -
ament_cmake cmakelist
根据项目需求,添加其他必要的配置,例如设置编译选项、查找其他依赖包等。:在文件开头指定 CMake 的最低版本,例如。命令为可执行文件链接所需的库文件。命令设置源文件和头文件的路径。命令设置可执行文件的源文件。命令为可执行文件添加依赖项。命令安装目标文件到指定目录。命令设置项目名称,例如。原创 2025-07-07 09:31:20 · 222 阅读 · 0 评论 -
【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 阅读 · 0 评论 -
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 阅读 · 0 评论 -
【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 阅读 · 0 评论 -
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 阅读 · 0 评论 -
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 阅读 · 0 评论 -
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 阅读 · 0 评论 -
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 阅读 · 0 评论 -
ubuntu 安装QT
在 Ubuntu 系统上安装 Qt 可以通过以下步骤完成,以下是详细的安装指南。原创 2025-07-01 17:11:30 · 1059 阅读 · 0 评论 -
qt5 安装
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。原文链接:https://blog.csdn.net/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 阅读 · 0 评论 -
ubuntu 启动SSH 服务
在Ubuntu系统中,启动SSH服务需要确保SSH服务已经安装,并且正确配置。原创 2025-07-01 10:45:20 · 826 阅读 · 0 评论 -
moveit config 属性
【代码】moveit config 属性。原创 2025-01-08 09:17:39 · 328 阅读 · 0 评论 -
MoveIt 中启动文件
”功能,用于简单、理想化的模拟。在我们的示例中,这是在 URDF 级别使用先前定义的“use_fake_hardware”xacro 参数配置的。虽然“ros2_control”允许您连接到真实的机器人硬件,或基于物理的模拟器(如 Gazebo 或 NVIDIA Isaac Sim)中的机器人,但它还公开了“模拟组件<>”节点,用于监听机器人的关节状态,使用机器人的 URDF 模型计算框架变换,并将它们发布到“tf2”。最后,我们可以告诉我们的启动文件实际启动我们在前面部分描述的所有内容。原创 2025-01-07 19:22:55 · 786 阅读 · 0 评论 -
move_group.launch.py 示例
import os# 获取 MoveIt 配置包的路径# 定义启动参数# 定义 MoveIt move_group 节点的参数文件路径# 创建 launch description 对象# 添加启动参数声明# 添加 move_group 节点Node(],],return ld。原创 2025-01-07 16:55:17 · 642 阅读 · 0 评论 -
MoveItConfigsBuilder 配置机器人的完整示例
这个示例涵盖了 MoveIt 配置的多个关键方面,可以根据具体需求进行调整和扩展。原创 2025-01-07 16:49:44 · 726 阅读 · 0 评论 -
ROS2组件component自定义实现
本教程的主要目标为:生成一个自定义的组件信息test_component::Test1,功能包为test_component,该组件的主要功能为发布话题“/talker”,发送的数据类型为std_msg/msg/string。本教程主要实现一个自定义的组件信息test_component::Test1,功能包为test_component,组件管理器启动加载该组件后,能够正常发布话题“/talker”,据类型为std_msg/msg/string。// 创建定时器,定时1s后进入回调函数。转载 2024-12-06 13:53:24 · 173 阅读 · 0 评论 -
ROS单线程与多线程处理
这意味着ros::spin()和ros::spinOnce()不会调用这些回调函数。如果将NULL(默认值)作为setCallbackQueue的参数会导致使用全局队列(由ros::spin()和ros::spinOnce()服务)。在上面的spin()实现中使用了对ros::getGlobalCallbackQueue()的调用。ros::MultiThreadSpinner是一个阻塞式的spin,类似于ros::spin()。在上面的例子中,所有的用户回调函数都会在ros::spin()内部被调用。转载 2024-12-05 20:21:21 · 265 阅读 · 0 评论 -
精讲多线程之 MultiThreadedSpinner
笔者在实际中未遇到使用该方法的地方,仅记录在此,保持文章的完整性。CallbackB 处理了 B/message 中的所有消息 (1,2,3,4,5,6),而 CallbackA 还是 2s 调用一次,只处理了 A/message 中编号为 1,3,5 的消息。这就说明了单线程的不足,不管有多少个 Subscriber,节点都只能顺序执行回调,这在某些时候是不能忍受的,因此,多线程有了用武之地,我们要做的事情就是增加 spinner thread。一图胜千言,在只有一个。转载 2024-12-05 20:18:32 · 139 阅读 · 0 评论