当前位置: 首页 > news >正文

修改ros中的控制器,便于仿真和驱动真实UR

UR机械臂学习(5-3):驱动ur机械臂实物——问题及解决_error: 鈥榰r_msgs::setpayloadrequest {aka struct ur__冰激凌啊的博客-程序员宝宝 - 程序员宝宝 (cxybb.com)

问题5 Action client not connected: scaled_pos_traj_controller/follow_joint_trajectory

在这里插入图片描述

[ WARN] [1624863539.203489625, 57.864000000]: Waiting for scaled_pos_joint_traj_controller/follow_joint_trajectory to come up
[ WARN] [1624863545.212986404, 63.864000000]: Waiting for scaled_pos_joint_traj_controller/follow_joint_trajectory to come up
[ERROR] [1624863551.221038108, 69.865000000]: Action client not connected: scaled_pos_joint_traj_controller/follow_joint_trajectory

解决:

这个是个很大的坑。

首先要确定的是在/home/guyue/ur_ws/src/fmauch_universal_robot/ur3_moveit_config/config下的ros_controllers.yaml
name需要为scaled_pos_traj_controller,因为如果不是这个名字,是无法驱动实物机械臂的。

下面说原因:
看下面这张图,bringup启动的时候,他启动的是scaled_pos_traj_controller控制器

在这里插入图片描述

然后再回来说为什么启动gazebo,然后再启动moveit的时候会报这个错

看下面这张图

在这里插入图片描述
/home/guyue/ur_ws/src/fmauch_universal_robot/ur3_moveit_config/config下的ros_controllers.yaml

/home/guyue/ur_ws/src/fmauch_universal_robot/ur_gazebo/config下的ur3_controllers.yaml

这两个文件夹对这个控制器的名字不一样

现在有两种思路

  • 一种是把这两个文件里关于控制器的名称改为一样的
  • 另一种是在某个文件里把这两个控制器连接在一起

先说第一种思路:

如果把moveit下面的ros_controllers.yaml里的scaled_pos_traj_controller改为pos_traj_controller

gazebo和所有仿真都正常,但在驱动实物时又会出现问题,因为ur_ros_driver驱动里面所有控制器的名字都是scaled_pos_traj_controller

而如果把gazebo下面的ur3_controllers.yaml里的pos_traj_controller改为scaled_pos_traj_controller

在启动gazebo时就会报错,因为/home/guyue/ur_ws/src/fmauch_universal_robot/ur_gazebo/launch文件夹下的ur3_bringup.launch也同样将这个控制器的名字命名为pos_traj_controller

如果说ur3_controllers.yamlur3_bringup.launch里的名字都修改,启动gazebo是不报错了,但启动moveit时还是会报最开始的那个错误。

所以,我们因当采取的是第二种思路:

也就是修改两者的连接文件

我们在moveit中启动的是ur3_moveit_planning_execution.launchl文件,所以从这个文件开始看起。
在这个里面就提到了如果sim参数为true,就连接两个控制器,但是这里面对于gazebo的名字为arm_controller,而不是现在所使用的pos_traj_controller,所以问题应该就出现在这里了。

所以,最后应该是修改/home/guyue/ur_ws/src/fmauch_universal_robot/ur3_moveit_config/launch下的ur3_moveit_planning_execution.launchl

修改后应该如下图所示

在这里插入图片描述
因为gazebo和moveit里的分别是

# moveit
controller_list:
- name: "scaled_pos_joint_traj_controller"action_ns: follow_joint_trajectorytype: FollowJointTrajectoryjoints:- shoulder_pan_joint- shoulder_lift_joint- elbow_joint- wrist_1_joint- wrist_2_joint- wrist_3_joint# gazebo
pos_joint_traj_controller:type: position_controllers/JointTrajectoryControllerjoints: &robot_joints- shoulder_pan_joint- shoulder_lift_joint- elbow_joint- wrist_1_joint- wrist_2_joint- wrist_3_joint

所以修改ur3_moveit_planning_execution.launchl

<remap if="$(arg sim)" from="/scaled_pos_joint_traj_controller/follow_joint_trajectory" to="/pos_joint_traj_controller/follow_joint_trajectory"/>

最后,因为ur的安装包和驱动一直在更新,所以如果这种方法也没用了,可以注意下面几个文件里控制器的名称是否一致

  • gazebo里的文件

    • /home/guyue/ur_ws/src/fmauch_universal_robot/ur_gazebo/config文件夹下的ur3_controllers.yaml
    • /home/guyue/ur_ws/src/fmauch_universal_robot/ur_gazebo/launch文件夹下的ur3_bringup.launch
  • moveit的文件

    • /home/guyue/ur_ws/src/fmauch_universal_robot/ur3_moveit_config/config文件夹下的ros_controllers.yaml
    • /home/guyue/ur_ws/src/fmauch_universal_robot/ur3_moveit_config/launch文件夹下的ur3_moveit_planning_execution.launch

最后的最后,2021年6月下载的fmauch版,moveit的部分不需要修改,只需要修改gazebo部分
也就是说,只驱动真实机械臂,不仿真,是没有任何问题的,不需要任何修改

相关文章:

修改ros中的控制器,便于仿真和驱动真实UR

UR机械臂学习&#xff08;5-3&#xff09;&#xff1a;驱动ur机械臂实物——问题及解决_error: 鈥榰r_msgs::setpayloadrequest {aka struct ur__冰激凌啊的博客-程序员宝宝 - 程序员宝宝 (cxybb.com) 问题5 Action client not connected: scaled_pos_traj_controller/follow_j…...

网络广播模块2*30W 智能4G广播终端开发模块

SV-704UG 4G网络广播模块2*30W 智能4G广播终端开发模块 一、描述 SV-704UG网络音频模块是一款带2*30W功放输出的4G广播音频模块&#xff0c;采用高性能ARM处理器及专业Codec&#xff0c;能接收4G广播音频数据流&#xff0c;转换成音频模拟信号输出。带有一路line in输入&#…...

优思学院|什么是精益项目管理?

正确地使用精益思想和技术是可以减少项目中的浪费、提高客户满意度&#xff0c;并提高项目的利润率。 在现实世界中&#xff0c;项目经理的工作充满了挑战。他们不仅需要专注于产品和团队&#xff0c;还必须确保客户的满意度。同时&#xff0c;他们还必须与矩阵组织打交道&…...

【Android取证篇】华为设备跳出“允许USB调试“界面方法的不同方法

【Android取证篇】华为设备跳出"允许USB调试"界面方法的不同方法 华为设备在鸿蒙OS3系统之后&#xff0c;部分设备启用"允许USB调试"方式会有所变化&#xff0c;再次做个记录—【蘇小沐】 1.实验环境 系统版本Windows 11 专业工作站版22H2&#xff08;2…...

在VSCode中移除不必要的扩展

在VSCode中移除不必要的扩展 在VSCode中安装扩展是编辑器缓慢且耗电的主要原因之一&#xff0c;因为添加的每个新扩展都会增加应用程序的内存和 CPU 使用率。 VSCode现在已经具备了非常多的功能&#xff0c;我们可以将一些重复工作的扩展移除掉。卸载这些现在可有可无的扩展将…...

算法刷题记录-树(LeetCode)

783. Minimum Distance Between BST Nodes 思路(DFS 中序遍历) 考虑中序遍历的性质即可 代码 class Solution { public:int min_diffnumeric_limits<int>::max();int prevnumeric_limits<int>::min()100000;int minDiffInBST(TreeNode* root) {inorderTraversa…...

Linux中安装MySQL_图解_2023新

1.卸载 为了避免不必要的错误发生,先将原有的文件包进行查询并卸载 // 查询 rpm -qa | grep mysql rpm -qa | grep mari// 卸载 rpm -e 文件名 --nodeps2.将安装包上传到指定文件夹中 这里采用的是Xftp 3.将安装包进行解压 tar -zxvf 文件名 -C 解压路径4.获取解压的全路…...

生产设备上的静电该如何处理?

在工厂生产车间里有很多机械设备&#xff0c;在生产运作过程中&#xff0c;难免会产生大量静电&#xff0c;静电会产生许多危害。 例如&#xff0c;1、会使电子设备故障、误操作而引起的电磁干扰。 2、电子元件或集成电路的静电击穿; 3、高压静电放电引起触电; 4、静电放电引起…...

山洪灾害预警方案(山洪预警解决方案的组成)

​ 随着气候变化的不断加剧&#xff0c;山洪灾害在许多地区成为了极具威胁性的自然灾害之一。为了帮助地方政府和居民更好地预防和应对山洪灾害&#xff0c;我们设计了一套基于星创易联的SR600工业路由器和DTU200的山洪灾害预警方案&#xff0c;并成功在某地区进行了部署。 案…...

数据库 MVCC 详解

目录 1. 什么是 MVCC&#xff1f; 2. MVCC 的好处&#xff1f; 3. 快照读&#xff1f;当前读分别是什么&#xff1f;怎么理解&#xff1f; 3.1 快照读 3.2 当前读 4. 数据库的四种隔离级别 5. MVCC 实现原理 5.1 隐藏字段 5.2 undo log(版本链) 5.3 readView 6. re…...

process.nextTick和vue的nextTick区别

事情的起因是代码里用了nextTick&#xff0c;然后提交代码的时候才发现&#xff0c;引入的是process的&#xff0c;然后改成了使用vue的nextTick发现效果不生效了&#xff0c;然后百度查了查两者的区别&#xff1a; process.nextTick是nodejs自带的&#xff0c;而在浏览器中执…...

小程序实现一个 倒计时组件

小程序实现一个 倒计时组件 需求背景 要做一个倒计时&#xff0c;可能是天级别&#xff0c;也可能是日级别&#xff0c;时级别&#xff0c;而且每个有效订单都要用&#xff0c;就做成组件了 效果图 需求分析 需要一个未来的时间戳&#xff0c;或者在服务度直接下发一个未来…...

【四万字】网络编程接口 Socket API 解读大全

Socket 是网络协议栈暴露给编程人员的 API&#xff0c;相比复杂的计算机网络协议&#xff0c;API 对关键操作和配置数据进行了抽象&#xff0c;简化了程序编程。 本文讲述的 socket 内容源自 Linux man。本文主要对各 API 进行详细介绍&#xff0c;从而更好的理解 socket 编程。…...

无涯教程-JavaScript - ISREF函数

描述 如果指定的值是参考,则ISREF函数返回逻辑值TRUE。否则返回FALSE。 语法 ISREF (value) 争论 Argument描述Required/OptionalvalueA reference to a cell.Required Notes 您可以在执行任何操作之前使用此功能测试单元格的内容。 适用性 Excel 2007,Excel 2010,Exce…...

Android:获取MAC < 安卓系统11 <= 获取UUID

1.核心代码 主要的UseMac.java import android.annotation.SuppressLint; import android.content.Context; import android.net.ConnectivityManager; import android.net.NetworkInfo; import android.net.wifi.WifiInfo; import android.net.wifi.WifiManager; import an…...

线程的几种状态

目标&#xff1a; 1. 线程的几种状态的含义 2. 状态之间的切换条件 目录 新建&#xff08;new&#xff09;线程 可运行&#xff08;Runnable&#xff09;状态 运行&#xff08;Running&#xff09;状态 阻塞&#xff08;Blocked&#xff09;状态 等待&#xff08;Waiting…...

kubernetes集群yaml文件与kubectl工具

k8s集群中对资源管理和资源对象编排部署都可以通过声明样式(yaml)文件来解决&#xff0c;也就是可以把需要对资源对象操作编辑到yaml格式文件中&#xff0c;我们把文件叫做资源清单文件&#xff0c;通过kubectl命令直接使用资源清单文件就可以实现对大量的资源对象进行编排部署…...

python基础语法(三)

感谢各位大佬对我的支持,如果我的文章对你有用,欢迎点击以下链接 &#x1f412;&#x1f412;&#x1f412;个人主页 &#x1f978;&#x1f978;&#x1f978;C语言 &#x1f43f;️&#x1f43f;️&#x1f43f;️C语言例题 &#x1f423;&#x1f413;&#x1f3c0;python 运…...

Haproxy集群与常见的Web集群调度器

文章目录 1. Web集群调度器概述1.1 Web集群调度器简介1.2 调度器类别1.2.1 常用软件类1.2.2 常用硬件类 2. Haproxy软件介绍2.1 Haproxy简介2.2 支持功能2.3 主要特性2.4 常用调度算法2.4.1 轮询&#xff1a;RR&#xff08;Round Robin&#xff09;2.4.2 最小连接数&#xff1a…...

centos免密登录

centos免密登录 小白教程&#xff0c;一看就会&#xff0c;一做就成。 1.知道服务器密码的情况 ssh-keygen -t rsa #上面的命令后三次回车#然后把想要免密登录的服务器加进来 ssh-copy-id -i /root/.ssh/id_rsa.pub root192.168.10.115 #免密码登录被控的主机&#xff08;ip是…...

Halcon局部阈值分割避坑指南:dyn_threshold与var_threshold到底怎么选?

Halcon局部阈值分割避坑指南&#xff1a;dyn_threshold与var_threshold到底怎么选&#xff1f; 在工业视觉检测中&#xff0c;遇到反光金属表面的划痕识别或明暗不均背景下的轮廓定位时&#xff0c;全局阈值分割往往力不从心。Halcon提供的dyn_threshold和var_threshold两个局部…...

ARM缓存控制器架构与事件监控系统解析

1. ARM缓存控制器架构概述在嵌入式处理器设计中&#xff0c;缓存控制器作为连接CPU核心与主存的关键中间层&#xff0c;其性能直接影响系统整体效率。ARM架构下的L2缓存控制器采用多级流水线设计&#xff0c;通过事件监控机制和精确的时序参数控制&#xff0c;实现了对内存访问…...

零代码部署 OpenClaw:Win11 一键安装与使用教程

OpenClaw&#xff08;小龙虾&#xff09;Windows 11 一键部署教程 2026 最新版 零代码免配置解压即用适用系统&#xff1a;Windows 11 专业版 / 家庭版 / 正式版&#xff08;全版本兼容&#xff09; 项目介绍&#xff1a;OpenClaw 是 GitHub 星标 28W 的开源本地 AI 智能体&am…...

JESD204B协议在5G MIMO基站中的关键应用与优化

1. JESD204B协议在MIMO基站中的核心价值 现代无线通信系统正经历着从传统单天线向大规模MIMO&#xff08;多输入多输出&#xff09;架构的转型。作为5G基站的核心技术&#xff0c;Massive MIMO系统通常需要处理64T64R甚至更大规模的天线阵列&#xff0c;这对数据转换器&#xf…...

AMD APU异构计算与能效优化技术解析

1. 异构计算时代的能效革命&#xff1a;AMD APU技术深度解析 在半导体行业摸爬滚打十几年&#xff0c;我亲眼见证了处理器能效比从单纯依赖制程进步到架构创新的转变。2014年AMD提出的25x20计划&#xff08;到2020年实现APU能效提升25倍&#xff09;曾被视为天方夜谭&#xff0…...

保姆级避坑指南:在Ubuntu18.04上用ROS Melodic搞定UR5+Realsense D435i手眼标定(附旧版easy_handeye包)

深度避坑实战&#xff1a;Ubuntu18.04ROS Melodic手眼标定全流程精解 当机械臂的末端执行器需要与视觉系统协同工作时&#xff0c;手眼标定成为连接两者的关键桥梁。本文将以UR5机械臂搭配Realsense D435i相机为例&#xff0c;深入剖析在Ubuntu18.04和ROS Melodic环境下实现高精…...

文档秒变播客?NotebookLM这7项语音生成能力,90%开发者至今未启用,现在不学真亏了

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;文档秒变播客&#xff1f;NotebookLM这7项语音生成能力&#xff0c;90%开发者至今未启用&#xff0c;现在不学真亏了 NotebookLM 的语音生成&#xff08;Speech Generation&#xff09;能力远不止“朗读…...

如何通过抖店订单接口实现订单状态管理与履约自动化?

对于电商业务管理系统的开发者而言&#xff0c;订单状态的管理是电商履约流程中最核心的环节。当消费者在抖音小店完成下单后&#xff0c;订单会经历支付、发货、收货等多个状态阶段&#xff0c;每个阶段都需要系统做出相应的业务响应。抖店开放平台提供的订单接口体系&#xf…...

C#/.NET/.NET Core技术前沿周刊 | 第 70 期(2026年5.01-5.10)

前言C#/.NET/.NET Core技术前沿周刊&#xff0c;你的每周技术指南针&#xff01;记录、追踪C#/.NET/.NET Core领域、生态的每周最新、最实用、最有价值的技术文章、社区动态、优质项目和学习资源等。让你时刻站在技术前沿&#xff0c;助力技术成长与视野拓宽。欢迎投稿、推荐或…...

开源技能管理工具rei-skills:从零构建个人技术能力图谱

1. 项目概述与核心价值 最近在折腾个人知识库和技能树管理&#xff0c;发现了一个挺有意思的开源项目 rootcastleco/rei-skills 。这项目名字乍一看有点神秘&#xff0c; rei 在日语里是“零”或“灵”的意思&#xff0c;结合 skills &#xff0c;我理解它想表达的是一种…...