- 博客(204)
- 收藏
- 关注
原创 ROS2实时性案例分析之倒立摆系统
平衡倒立摆是通常由实时计算解决的控制问题的经典示例之一。但是,如果控制器比控制摆锤的电动机运行的速度更快的速度可靠地更新,则摆锤将成功地对传感器数据做出反应平衡摆锤。演示中使用的主要节点是/pendulum_controller和/pendulum_driver。创建包pendulum_manager的目的是为了更轻松地控制节点的状态。只是为了好玩,可以尝试在仿真处于活动状态时停用控制器节点,以查看摆锤的下落。本篇主要针对倒立摆小车在ROS2系统中的实现为例,进行详细介绍。代码语言:javascript。
2025-09-15 08:38:38
292
原创 fanuc abb ros2
PickNikRobotics和OptimaxSystems联合发布了用于ABB机械手的ROS2驱动程序,支持ABBIRB1200-5/0.9机械手。该驱动程序提供两种模拟模式,可与RobotStudio进行通信。相较于ROS1版本,ROS2版本具有更高的安全性、更灵活的中间件配置和完整文档。Optimax将利用此驱动程序进行精密制造,而PickNikRobotics是开源机器人社区的领导者,拥有丰富的机器人经验。PickNik Robotics 和 Optimax Systems 发布了用于。
2025-09-09 15:18:46
664
原创 scp 网间拷贝
scp 是 secure copy 的缩写,是一个基于 SSH 协议的安全文件复制工具,可以在本地与远程主机之间或两台远程主机之间传输文件。
2025-09-08 15:17:56
224
原创 ppo 如何训练机械人关节
均值网络:输入状态s,输出每个关节的动作均值μ = [μ₁, μ₂, ..., μₙ](n为关节数),通常通过全连接网络(MLP)实现,输出层用tanh激活函数限制在[-1, 1],再缩放至关节实际范围(如μ_i × 最大角度);输出分布参数:通常用高斯分布建模连续动作,策略网络输出动作的均值(μ)和标准差(σ),从该分布中采样动作(训练时)或直接取均值(测试时,减少随机性)。惩罚项:避免不良行为,如关节超限位(-50)、动作幅度过大(能耗惩罚,如-0.1×|动作|)、碰撞环境(-100);
2025-08-26 17:35:53
429
原创 ros2 如何传输样条曲线
self.get_logger().info(f"第一个控制点: ({first_point.x}, {first_point.y}, {first_point.z})")self.get_logger().info(f"发布样条曲线:{len(spline_msg.control_points)}个控制点")self.get_logger().info(f"控制点数量: {len(msg.control_points)}")self.get_logger().info(f"接收到样条曲线:")
2025-08-21 08:55:12
487
原创 std::vector<std::vector<float>> 概述
std::vector<std::vector<float>> 是 C++ 标准模板库(STL)中的一个数据结构,表示一个二维向量(二维数组),其中每个元素都是一个 std::vector<float> 类型的向量,即每个内部向量都包含了一系列的浮点数(float)。在 C++ 中,std::vector 是一个动态数组,它可以在运行时添加或删除元素。在 C++ 中,std::vector<std::vector<float>> 是一个二维向量(也可以理解为矩阵),你可以通过嵌套的循环来遍历它的所有元素。
2025-08-20 10:39:05
662
原创 ROS2 解析XML 文件
在 ROS2 中解析 XML 文件可以使用 C++ 标准库或第三方库(如 TinyXML2、PugiXML)。以下是使用。
2025-08-18 13:13:17
423
原创 Fanuc机器人EtherCAT通讯配置详解
EtherCAT,这一基于以太网的现场总线系统,以其开放架构和高速性能著称。CAT代表的是控制自动化技术(Control Automation Technology)的缩写,彰显了其在工业自动化领域的核心地位。作为确定性的工业以太网技术,EtherCAT由德国Beckhoff公司(倍福)率先研发,以其无需IP地址、高速传输(每个节点接收及传送资料时间仅需1微秒以下)以及大数据处理能力受到广泛赞誉。
2025-08-15 16:55:57
770
原创 Fanuc 机器人rmi 功能
Fanuc 机器人的是一种强大的通信功能,允许外部设备(如 PLC、PC、HMI 或 ROS 系统)通过与机器人控制器进行和。读取/写入机器人寄存器(R, I/O, 位置寄存器, 系统变量等)。监控机器人状态(运行/停止、报警、程序行号)。启动/停止程序。选择并执行指定宏程序。触发特定动作(如工具开关)。基于 TCP/IP 协议,响应速度通常在毫秒级。
2025-08-15 13:41:19
832
原创 ros2 节点参数保存为yaml 文件
命令行导出:简单快捷,适合手动保存运行中节点的参数。代码中保存:灵活可控,适合自动保存或复杂场景(如条件触发)。根据需求选择合适的方法即可。
2025-08-12 17:12:52
443
原创 ROS2 QT 多线程功能包设计
一个完整的 ROS2 QT 多线程功能包实现,包含可选 GUI 界面、发布者线程、接收者线程和参数服务器交互功能。
2025-08-10 18:56:21
305
原创 ROS2 多线程 与组件机制
ROS 2 中,和是提升节点灵活性和性能的重要技术。两者结合可以实现动态加载节点组件,并通过多线程并行处理回调,非常适合复杂机器人系统的模块化设计。
2025-08-09 16:40:06
935
原创 ros2 单线程与多线程
在 ROS 2(Robot Operating System 2)中,是一个常用的执行器类,用于处理节点的回调函数和事件。你提到的executor_看起来是一个类型的成员变量。这种执行器使用单个线程来处理所有注册到它的节点的回调函数,按照它们被触发的顺序依次执行。spin()适用于不需要并行处理回调的简单场景,它可以避免多线程带来的同步问题,但在处理大量计算密集型回调时可能会导致延迟。添加多线程如果你想在 ROS 2 中使用多线程处理回调,可以将替换为,它支持配置线程池大小来实现多线程处理回调。
2025-08-09 16:31:18
283
原创 参数服务器 server and client
RCLCPP_ERROR(get_logger(), "更新参数失败: %s", params[i].get_name().c_str());RCLCPP_INFO(get_logger(), "成功设置参数: %s", params[i].get_name().c_str());RCLCPP_INFO(get_logger(), "成功更新参数: %s", params[i].get_name().c_str());RCLCPP_INFO(get_logger(), "\n当前参数列表:");
2025-08-08 11:31:42
544
原创 ROS 参数服务器
在 ROS 2 中,参数服务器的实现与节点紧密结合,每个节点都可以维护自己的参数,同时也可以访问其他节点的参数。以下是一个完整的 ROS 2 节点实现,展示如何创建参数、设置参数、获取参数以及响应参数变化:ROS 2参数服务器节点实现V1创建时间:18:20。
2025-08-04 18:49:28
180
原创 ROS2中传输样条曲线
此方案平衡了通用性和效率:通过**自定义Spline消息**规范数据结构,利用**QoS策略**保障实时性,结合**序列化优化**处理大规模曲线。在ROS2中传输样条曲线需要解决两个核心问题:**如何结构化表示曲线数据**和**如何高效传输**。| **场景** | **可靠性** | **持久性** | **深度** | **截止时间(Deadline)** |- **分片传输**:超长曲线拆分为多条消息,通过`sequence_id`字段重组。
2025-08-01 16:41:44
483
原创 ROS 传输自定义消息
4.消息的传输是通过话题来实现的,发布器将消息发布到话题上去,订阅器通过订阅该话题来接收消息,在本文中消息是通过trajectory_control这个话题进行传输的。基于mavros_controllers-master这个包,实现终端输入来实时控制无人机的运动形状(定点,圆,8字型等),位置,圆的半径。本文的目的是ROS利用话题传输自定义消息类型,因此并未对轨迹发布的具体操作进行说明,刚刚入了无人机的坑,第一次写博客,如有错误请多指教。float32 x # 目标坐标/圆心。
2025-08-01 08:24:52
466
原创 qt 6.8.3 配置环境变量
保存后,在“开始菜单”里会出现 “Qt Creator (ROS)” 图标,点它即可。启动 Qt Creator,ROS 环境就已经在进程里,无需任何额外设置。无需在 CMakeLists.txt 里再写绝对路径。工程里的 CMakeLists.txt 无需再管路径。下面给出最省事的“一次配置,永久生效”做法。能找到 ROS 的包路径。(可选)给桌面图标也用上。就带 ROS 环境。写一个启动脚本(推荐)
2025-07-30 08:27:22
209
原创 相机ROI 参数
如需进一步操作,建议查阅相机厂商的技术手册(如Basler、FLIR、海康机器人等),或使用其配套软件(如MVS、NI MAX)实时调整ROI参数验证效果。:输出图像的分辨率等于ROI的宽高(如原传感器为2048×1536,ROI设为1024×768后,输出图像即为1024×768)。:减少处理的像素数量,降低数据带宽,使相机能以更高速度采集图像(例如:从30fps提升到100fps)。:部分相机允许非对称ROI(如仅截取右侧1/4区域),而有些需对称设置(如中心区域)。
2025-07-25 18:47:21
765
原创 fanuc 机器人末端z坐标如何跟测距传感器做闭环控制
通过以上方案,Fanuc 机器人可以根据测距传感器的实时数据动态调整末端 Z 坐标,实现高精度的闭环控制。最大单次调整量(mm)当前误差和上一次误差。
2025-07-24 11:06:40
456
原创 weldpro 仿真程序如何控制 fanuc M-20id
要控制 Fanuc M-20iD 机器人,通常需要通过 Fanuc 的 R-J3iC/R-30iB 控制器和相应的通信接口实现。WeldPro 通过生成符合 Fanuc 语法的 TP 程序,并借助通信协议将程序传输到机器人控制器,实现对 M-20iD 的控制。在 WeldPro 中添加 Fanuc M-20iD 机器人模型(通常需要导入机器人的 D-H 参数或官方模型文件)。选择 Fanuc 机器人的程序格式(如 TP 程序),并设置合适的后置处理器。
2025-07-24 11:05:31
358
原创 代码补全工具
在代码编辑器中开始编写代码,TabNine 会根据上下文提供代码建议,如下图1所示,第一张图提示我们方法有两个参数,第二张图是使用 Tab 键接受建议后,Tabnine 给我们的反馈!在代码编辑器中开始编写代码,IntelliCode 会根据上下文提供代码建议,如下图所示,当你在另一个地方调用已经定义好的 fun1( 时,IntelliCode 会自动建议 fun1 函数的参数 radius 的类型。假设你要定义一个计算斐波那契数列的函数,当你开始输入函数体时,Codeium 会根据上下文提供补全建议。
2025-07-20 17:48:38
244
原创 gym 安装
环境类型所需额外安装备注已包含Box2D需要 SWIGAtari需要 ROM 文件MuJoCo需要许可证 ($)Robotics需要 MuJoCoToy Text已包含FrozenLake 等简单环境建议根据实际需要的环境选择安装,避免不必要的依赖冲突。对于机器学习研究,通常需要至少安装 Box2D 和 Atari 组件。
2025-07-20 17:47:42
773
原创 安装pytorch
print(f"设备名称: {torch.cuda.get_device_name(0) if torch.cuda.is_available() else 'CPU'}")建议根据您的硬件配置和项目需求选择合适的安装方式,GPU版本能显著加速深度学习训练过程,但需要兼容的NVIDIA显卡支持。print(f"CUDA可用: {torch.cuda.is_available()}")print(f"CUDA版本: {torch.version.cuda}")选择您的配置后,网站会生成对应的安装命令。
2025-07-20 17:26:34
879
原创 将SAC强化学习算法部署到ROS2的完整指南
将Soft Actor-Critic (SAC)强化学习算法部署到ROS2环境中,可以实现智能机器人的自主决策和运动控制。下面详细介绍从算法集成到实际部署的全过程。
2025-07-20 13:30:40
671
原创 SAC强化学习进行机器人轨迹规划的完整指南
轨迹规划是机器人控制中的核心问题,SAC(Soft Actor-Critic)因其出色的探索能力和稳定性,特别适合解决复杂的连续控制类轨迹规划问题。下面我将详细介绍如何用SAC实现高效的轨迹规划。
2025-07-20 13:24:58
803
原创 TD3与SAC强化学习算法深度对比
text开始│├── 是否需要精确控制?→ 是 → 选择TD3│ ├── 动作空间维度>10?→ 是 → 首选TD3│ └── 否 → 根据其他因素决定│├── 环境是否动态变化?→ 是 → 选择SAC│├── 奖励信号是否稀疏?→ 是 → 首选SAC│└── 其他情况 → 两者均可,建议:├── 初步测试用SAC(更稳定)└── 精细调优用TD3(更高上限)维度TD3优势SAC优势训练速度简单环境中收敛更快复杂环境中收敛更稳最终性能在部分任务中峰值更高。
2025-07-20 13:18:14
855
原创 软演员-评论家(SAC)强化学习算法详解与实现
软演员-评论家(Soft Actor-Critic, SAC)是一种基于最大熵框架的深度强化学习算法,在连续动作空间任务中表现出色。下面我将全面介绍SAC的原理、实现细节以及在机器人控制中的应用。
2025-07-20 13:12:24
672
原创 TD3 (Twin Delayed Deep Deterministic Policy Gradient) 强化学习算法详解与实现
TD3 (Twin Delayed Deep Deterministic Policy Gradient) 是一种先进的深度强化学习算法,专门针对连续动作空间问题设计。它是DDPG算法的改进版本,通过多项技术创新解决了DDPG存在的高估偏差问题。
2025-07-20 13:05:04
783
原创 深度学习方法生成抓取位姿与6D姿态估计的完整实现
如何将GraspNet等深度学习模型与6D姿态估计集成到ROS2和MoveIt中,实现高精度的机器人抓取系统。
2025-07-20 12:55:48
1193
原创 MoveIt创建抓取位姿的完整指南
text# 抓取位姿# 抓取方向 (可选)string approach_direction # 如"top", "side", "front"# 抓取宽度 (单位:米)# 抓取质量评分 (0-1)
2025-07-20 12:20:59
857
原创 奥比中光双目摄像头实现物品抓取的机器人系统
text[奥比中光摄像头] → [点云数据处理] → [物品识别定位] → [运动规划] → [机械臂控制]
2025-07-20 12:07:12
719
原创 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
440
原创 通过YAML文件加载参数的C++ ROS2节点
一个完整的ROS2节点示例,它从YAML文件中加载参数并使用这些参数。这个示例包括节点创建、参数声明和YAML文件解析。
2025-07-20 09:45:49
907
原创 双目摄像头品牌
• 开发/机器人:RealSense 与 ZED 生态成熟,奥比中光性价比高,OAK 带 AI 加速。• 乔安、普联 TP-LINK、霸天安、联想(线上销量大,但近期有安全漏洞投诉,需谨慎)• 东风“天元智驾”惯导双目摄像头(已用于东风纳米 06,支持 L2+ 自动驾驶)• 家用:优先考虑小米、萤石、海康威视,固件更新和售后更可靠。(按“家用安防级→工业/机器人级→汽车级”由低到高排列)• 小米(米家 CW500、C700 等双摄版)• 萤石 EZVIZ(H6、C6c 星光增强版)工业/机器人/开发者级。
2025-07-19 18:38:50
271
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人