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

2024-01-14 15:50

本文主要是介绍一文学会配置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端的软件程序。

这篇关于一文学会配置Fanuc控制柜端ROS2驱动的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/605699

相关文章

Linux中SSH服务配置的全面指南

《Linux中SSH服务配置的全面指南》作为网络安全工程师,SSH(SecureShell)服务的安全配置是我们日常工作中不可忽视的重要环节,本文将从基础配置到高级安全加固,全面解析SSH服务的各项参... 目录概述基础配置详解端口与监听设置主机密钥配置认证机制强化禁用密码认证禁止root直接登录实现双因素

嵌入式数据库SQLite 3配置使用讲解

《嵌入式数据库SQLite3配置使用讲解》本文强调嵌入式项目中SQLite3数据库的重要性,因其零配置、轻量级、跨平台及事务处理特性,可保障数据溯源与责任明确,详细讲解安装配置、基础语法及SQLit... 目录0、惨痛教训1、SQLite3环境配置(1)、下载安装SQLite库(2)、解压下载的文件(3)、

Linux如何快速检查服务器的硬件配置和性能指标

《Linux如何快速检查服务器的硬件配置和性能指标》在运维和开发工作中,我们经常需要快速检查Linux服务器的硬件配置和性能指标,本文将以CentOS为例,介绍如何通过命令行快速获取这些关键信息,... 目录引言一、查询CPU核心数编程(几C?)1. 使用 nproc(最简单)2. 使用 lscpu(详细信

Nginx 重写与重定向配置方法

《Nginx重写与重定向配置方法》Nginx重写与重定向区别:重写修改路径(客户端无感知),重定向跳转新URL(客户端感知),try_files检查文件/目录存在性,return301直接返回永久重... 目录一.try_files指令二.return指令三.rewrite指令区分重写与重定向重写: 请求

Nginx 配置跨域的实现及常见问题解决

《Nginx配置跨域的实现及常见问题解决》本文主要介绍了Nginx配置跨域的实现及常见问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来... 目录1. 跨域1.1 同源策略1.2 跨域资源共享(CORS)2. Nginx 配置跨域的场景2.1

gitlab安装及邮箱配置和常用使用方式

《gitlab安装及邮箱配置和常用使用方式》:本文主要介绍gitlab安装及邮箱配置和常用使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1.安装GitLab2.配置GitLab邮件服务3.GitLab的账号注册邮箱验证及其分组4.gitlab分支和标签的

MySQL MCP 服务器安装配置最佳实践

《MySQLMCP服务器安装配置最佳实践》本文介绍MySQLMCP服务器的安装配置方法,本文结合实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下... 目录mysql MCP 服务器安装配置指南简介功能特点安装方法数据库配置使用MCP Inspector进行调试开发指

Redis Cluster模式配置

《RedisCluster模式配置》:本文主要介绍RedisCluster模式配置,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录分片 一、分片的本质与核心价值二、分片实现方案对比 ‌三、分片算法详解1. ‌范围分片(顺序分片)‌2. ‌哈希分片3. ‌虚

SpringBoot项目配置logback-spring.xml屏蔽特定路径的日志

《SpringBoot项目配置logback-spring.xml屏蔽特定路径的日志》在SpringBoot项目中,使用logback-spring.xml配置屏蔽特定路径的日志有两种常用方式,文中的... 目录方案一:基础配置(直接关闭目标路径日志)方案二:结合 Spring Profile 按环境屏蔽关

Maven 配置中的 <mirror>绕过 HTTP 阻断机制的方法

《Maven配置中的<mirror>绕过HTTP阻断机制的方法》:本文主要介绍Maven配置中的<mirror>绕过HTTP阻断机制的方法,本文给大家分享问题原因及解决方案,感兴趣的朋友一... 目录一、问题场景:升级 Maven 后构建失败二、解决方案:通过 <mirror> 配置覆盖默认行为1. 配置示