一文学会配置Fanuc控制柜端ROS2驱动

文章目录

  • 前言
  • 一、RobotGuide是什么?
  • 二、实现步骤
    • 创建机器人工作单元
    • 导入程序
      • TP程序
      • Karel程序
    • 构建程序
    • 配置控制柜
      • 配置机器人控制柜通讯
      • 配置可同时运行程序数量
      • 配置ROS_RELAY变量
      • 配置ROS_STATE变量
      • 设置启用标志
  • 三、测试
    • 机器人状态反馈
    • 机器人命令接收
    • 整体运行测试
  • 总结


前言

本文用来记录如何配置Fanuc机器人控制器ros驱动,目的是后续实现ROS2控制实体机器人运动。

官方指导如下:
ROS-Industrial Fanuc support


一、RobotGuide是什么?

Fanuc RobotGuide是由日本知名机器人制造商Fanuc提供的机器人仿真软件。该软件使用简单、直观,用户无需具备专业的编程技能即可轻松地进行机器人编程和仿真。通过Fanuc RobotGuide软件,用户可以创建3D模型,对机器人进行动态仿真,实现机器人运动轨迹的仿真、路径规划和碰撞检测等功能。可以大大提高机器人编程的效率和精度。

Fanuc RobotGuide还提供了超过100多种不同厂家的机器人模型,用户可以根据需要进行选择,配合不同的设备及工具,实现各种不同生产任务。除此之外,还支持离线编程,可以提前对机器人进行程序测试和修改,在实际应用中可以大大减少机器人停机时间,提高生产效率。

在本文,我们将使用RobotGuide来配置机器人及测试运行。

二、实现步骤

创建机器人工作单元

请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述

此处可以看到红框圈中的两个软件选项是必须的,其它打勾项是生成完成后系统自己勾选,保持默认即可。

请添加图片描述
请添加图片描述

导入程序

TP程序

Fanuc ros提供的驱动路径如下,任意选择其一下载到本地,注意选择分支为melodic-devel:

Gitee加速地址

Github地址

这里程序分为两种,一种是ls的TP程序,一种是ls的karle程序,选择文件右键点击添加,导入如下路径下的文件

请添加图片描述

Karel程序

另一种为Karel程序,路径如下所示:

请添加图片描述

构建程序

导入后文件应当如下图左侧所示,之后选择菜单栏——项目——构建——全部

请添加图片描述
构建成功则如下所示,出现Translation successful字样,同时生成.pc文件,生成的文件也是后续需要使用U盘导入机器人控制柜的程序。

请添加图片描述

配置控制柜

配置机器人控制柜通讯

进入如下菜单:

请添加图片描述

点击显示切换至服务器
请添加图片描述
配置3、4号标签如下两张图所示 (1、2号标签不要动它)
请添加图片描述
请添加图片描述

通过下边步骤启动这两个协议:

动作——定义、动作——开始,则可以看到这两个协议的状态变换为已开始

请添加图片描述

配置可同时运行程序数量

进入系统变量设置,如下图:

请添加图片描述
选择SCR_T并按Enter

请添加图片描述
将如下参数修改为大于3的数,因为后续同时需要运行下边三个程序

  1. 机器人当前状态及轴角度发送
  2. 接收机器人运动控制及状态切换指令
  3. 执行机器人运动指令

请添加图片描述

配置ROS_RELAY变量

打开程序按照如下图:

SELECT——KAREL程序——ROS_RELAY

请添加图片描述
配置变量如下步骤:

DATA——KAREL变量——RRELAY_CFG_T——ENTER

请添加图片描述
配置参数如下:

请添加图片描述

NameTypeDefaultUnitDescription
checkedbooleanFalse-Configuration has been completed by user
f_msm_rdyinteger1-movesm i’face: ‘ready/ack’ signal flag
f_msm_drdyinteger2-movesm i’face: ‘data ready’ signal flag
loop_hzinteger42HzMain loop update rate
move_cntinteger50%CNT to set with each joint motion instruction
move_speedinteger20%Joint speed to set for all trajectory points
pr_moveinteger1-movesm i’face: position register for next trajectory point
r_move_spdinteger1-movesm i’face: integer register for motion speed
r_move_cntinteger2-movesm i’face: integer register for CNT value
s_tcp_nrinteger11000-TCP port to listen on
s_tag_nrinteger4-Index of the Server Tag to use
um_clearbooleanTrue-Clear user menu on start
  • default configuration of ros_relay

配置ROS_STATE变量

同ROS_RELAY相同,选择程序后配置变量

请添加图片描述
变量具体值如下图所示

请添加图片描述

NameTypeDefaultUnitDescription
checkedbooleanFalse-Configuration has been completed by user
loop_hzinteger42HzMain loop update rate
sloop_divinteger10-Divider for robot_status reporter loop
s_tcp_nrinteger11002-TCP port to listen on
s_tag_nrinteger3-Index of the Server Tag to use
um_clearbooleanTrue-Clear user menu on start
  • default configuration of ros_state

设置启用标志

在上述信息均设置完成后,设置 ros_stateros_relay中的checked变量为True

三、测试

机器人状态反馈

测试机器人状态,轴关节角度及其他参数:

请添加图片描述

使用SHIFT+FWD启动程序,此时程序即在监听11002端口

请添加图片描述
这里我使用的软件是sokit,通过该软件方便测试tcp socket server/client

请添加图片描述

通讯建立成功,并且返回了机器人关节数据

机器人命令接收

运行ROS_RELAY可以接收机器人发送的轨迹点数据,端口为11000

请添加图片描述
通讯建立成功并且数据发送成功

请添加图片描述

整体运行测试

启动程序后台自动运行:

请添加图片描述

请添加图片描述

即可同时运行发送机器人当前状态,接受机器人运动轨迹,执行机器人运动轨迹三个程序(ros_stateros_relayROS_MOVESM)

请添加图片描述
转换结果按照弧度发送,解析后如下所示

机器人当前各个轴角度如下图最下边所示,分别为:

Degree: A1 -40 A2 30 A3 5 A4 0 A5 -95 A6 40
Arc: A1 -0.698 A2 0.52 A3 0.087 A4 0 A5 -1.658 A6 0

建立通讯后所接收到的完整socket数据包如下:

38 00 00 00 0A 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 C2 B8 32 BF 92 0A 06 3F C0 B8 B2 3D 00 00 00 00 67 3B D4 BF C2 B8 32 3F 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

通过[Online Hex Converter网站](Online Hex Converter - Bytes, Ints, Floats, Significance, Endians - SCADACore)解析:

请添加图片描述


总结

本文讲解了如何配置Fanuc机器人控制柜端的程序,后续会在此基础上讲解如何配置ROS端的软件程序。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/72381.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

(stm32)低功耗模式

低功耗模式 执行哪个低功耗模式的程序判断流程 标志位设置操作一定要在WFI/WFE之前,调用此指令后立即进入睡眠判断流程 模式对比 睡眠模式 停止模式 待机模式

springBoot是如何实现自动装配的

目录 1 什么是自动装配 2 Spring自动装配原理 2.1 SpringBootConfiguration ​编辑 2.2 EnableAutoConfiguration 2.2.1 AutoConfigurationPackage 2.2.2 Import({AutoConfigurationImportSelector.class}) 2.3 ComponentScan 1 什么是自动装配 自动装配就是将官方写好的的…

RuoYi 云服务器部署系统

一.为什么要部署 关于RuoYi-Vue是一个前后端分离的Web后台管理系统。部署在云服务器上让所有人都可以访问这是Web网站很正常的一个需求,只要我们将前端静态文件暴露在公网中,自然就部署好了。当然,要求是前端的静态资源可以访问到后端的接口,网站才会正常运行。 二.云服务器…

Spring系列篇 -- Bean的生命周期

目录 经典面试题目: 一,Bean的生命周期图 二,关于Bean的生命周期流程介绍: 三,Bean的单例与多例模式 总结: 前言:今天小编给大家带来的是关于Spring系列篇中的Bean的生命周期讲解。在了解B…

C语言:每日一练(选择+编程)

目录 选择题: 题一: 题二: 题三: 题四: 题五: 编程题: 题一:打印1到最大的n位数 示例1 思路一: 题二:计算日期到天数转换 示例1 思路一&#xf…

Leetcode-每日一题【剑指 Offer 32 - I. 从上到下打印二叉树】

题目 从上到下打印出二叉树的每个节点&#xff0c;同一层的节点按照从左到右的顺序打印。 例如: 给定二叉树: [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7 返回&#xff1a; [3,9,20,15,7] 提示&#xff1a; 节点总数 < 1000 解题思路 1.题目要求我们从…

每天一道leetcode:剑指 Offer 64. 求1+2+…+n(中等递归)

今日份题目&#xff1a; 求 12...n &#xff0c;要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句&#xff08;A?B:C&#xff09;。 示例1 输入: n 3 输出: 6 示例2 输入: n 9 输出: 45 提示 1 < n < 10000 题目思路 使用递归…

LVS-DR的RS进行ARP抑制的原因和LVS持久连接配置

一.RS的ARP抑制 1.为什么要抑制 2.如何抑制 &#xff08;1&#xff09;修改/etc/sysctl.conf文件&#xff0c;增加以下内容 &#xff08;2&#xff09;命令行临时设置 二.LVS持久连接 1.客户端持久连接 2.端口持久连接 3.防火墙标记持久连接 一.RS的ARP抑制 1.为什么要…

Redis系列(二):深入解读Redis的两种持久化方式

博客地址&#xff1a;blog.zysicyj.top Redis为什么要引入持久化机制 Redis引入持久化机制是为了解决内存数据库的数据安全性和可靠性问题。虽然内存数据库具有高速读写的优势&#xff0c;但由于数据存储在内存中&#xff0c;一旦服务器停止或崩溃&#xff0c;所有数据将会丢失…

matlab中exp和expm的区别

exp()为数组 X 中的每个元素返回指数 e x e^{x} ex expm()计算 X 的矩阵指数。 两个函数传入矩阵后计算的结果是不同的&#xff0c;千万不能混淆。之前曾经想当然得把exp里传入矩阵当矩阵指数使用&#xff0c;也未验证正确性&#xff0c;实不应该。

分割一切模型FastSAM,点哪里分割哪里

分割一切模型FastSAM点哪里分割哪里 VX搜索 《晓理紫》&#xff0c;关注并回复fastsampoint获取核心源码 [晓理紫] 1 效果 2 核心代码 在FastSAM ONNXRuntime部署&#xff0c;FastSAM TensorRT部署分别介绍了FastSAM通过OnnxRuntime以及TensorRT部署&#xff0c;通过点进行选取…

rabbitmq的消息应答

消费者完成一个任务可能需要一段时间&#xff0c;如果其中一个消费者处理一个长的任务并仅只完成 了部分突然它挂掉了&#xff0c;会发生什么情况。RabbitMQ 一旦向消费者传递了一条消息&#xff0c;便立即将该消 息标记为删除。在这种情况下&#xff0c;突然有个消费者挂掉了…