零差云控电机ubuntu+IGH调试记录

一、上位机

Twincat3安装:https://blog.csdn.net/LclLsh/article/details/122863502

Twincat3设置实时网卡:https://zhuanlan.zhihu.com/p/217715531

Twincat3设置独立cpu:https://blog.csdn.net/weixin_44555503/article/details/108711912

  • 零差云控的上位机包括两种形式,利用erob调试器(can2usb)的canopen协议进行调试和网线的ethercat协议进行调试。canopen就不说了,直接看手册就行。
  • ethercat就要麻烦一点了,需要用到倍福的Twincat软件进行调试,安装说明可以参考上面的链接,好像只能装在系统c盘中。安装之前需要确定自己网卡的类型,可以搜到一个twincat支持的网卡列表,只能支持部分的intel网卡。在安装完成后,有以下几个步骤:
    ①把零差云控的xml配置文件,放到Twincat文件夹下
    ②设置实时网卡
    ③restart twincat system,这时应该可以看到数据更新了
    ④配置参数,参考eRob CANopen and EtherCAT 用户手册第六章Twincat主站控制。注意这里一定要按照流程配置完成,尤其是控制量的映射关系和上下限制。如果用原来的参数会导致电机飞转,虽然会很快报错停住,但是如果是用在机械臂的大关节上,停住前可能已经碰到东西了。
    ⑤激活配置Active Configuration,这里可能会报错setting TwinCAT in RUN Mode with VMware running might fail,是没有设置独立cpu导致的。

二、单关节电机代码

ROS2_IGH方案bilibili:https://www.bilibili.com/video/BV15X4y1t7XY/

ROS2_IGH方案CSDN:https://blog.csdn.net/Primary_student/article/details/135156861

  • 整体的方案参考了上面大佬的做法,实时补丁+ros2+ros2_control+moveit2+igh,因为当时对moveit和ros2_control不熟悉,所以没有用上面方案中的ethercat_driver_ros2中间件。在学习了ros2_control后,重新写了硬件接口的代码。这部分代码参考的是下面这个链接。

IGH分享-让电机转起来:https://www.bilibili.com/video/BV1kP4y1Y7QK/?spm_id_from=333.788.recommend_more_video.2\&vd_source=a686d8f8b0e9b94066f2d4ba714466e7

三、多关节电机代码

1、igh命令行

资料:https://blog.csdn.net/u014077947/article/details/127489297

  • 这是一个很重要的点,除了启动master节点、查看从机状态,还有切换电机状态、向sod写数据、设置debug日志等功能

2、速度限制

  • 运行过程中,还有一个问题是电机运动快了以后会报错,一般错误原因是警告,如果查看一下警告的错误码,会发现是软速度报错,这是因为速度软误差限制太低导致的。
  • 这个限制可以修改0x3B61,利用命令行进行修改。但是修改完了以后发现重新上电后,这个寄存器会重新恢复原来的数值。这就涉及到手册里的另一个属性了,也就是Backup,也就是有一部分寄存器可以在断电后保存参数,要实现保存还要操作0x1010这个寄存器。

3、同步模式

  • 电机多了以后会出现电机初始化报错的情况,也就是SAFEOP向OP转换的时候,会出现SAFEOP+ERROR的情况。这个情况可以用命令行切换,但是很不方便,而且初始化失败,肯定是有什么问题。经过大佬的提示,最终发现这是同步问题导致的。
  • 这里就进入一个比较迷惑的情况了,零差给的手册中关于同步设置的寄存器0x1C32,存在问题。0a寄存器大小不对,表述不清。很多寄存器的默认值错误。
  • ethercat的同步模式有三种,freerun、SM、DC。默认情况是freerun的,之前单关节电机代码的写法,会把同步模式设置为SM同步管理器模式,但是这会导致出现上面说的问题。
  • 最终还是参考了ethercat_driver_ros2的写法,完成了DC模式的配置。要用到ecrt_slave_config_dc、ecrt_master_application_time、ecrt_master_sync_slave_clocks这几个函数,并且在循环中也要更新
相关推荐
JIANGHONGZN13 天前
PROFIBUS DP 转 EtherCAT 网关:冶金自动化高效协同的基石
dp·ethercat·协议网关·profibus·profibusdp
NYKJ.Co13 天前
开疆智能ModbusTCP转EtherCAT网关连接IVO编码器配置案例
modbustcp·ethercat
NYKJ.Co14 天前
开疆智能ModbusTCP转Ethercat网关连接丹尼克尔拧紧系统配置案例
modbustcp·ethercat
JIANGHONGZN15 天前
船舶动力与自动化系统:PROFIBUS转EtherCAT接口技术的创新应用
dp·ethercat·协议网关·工业通讯·profibus
工控小楠16 天前
CANopen转EtherCAT协议转换案例解析
ethercat·can协议·canopen
码农小展17 天前
【STM32+LAN9252+HAL库】EtherCAT从站搭建 保姆级教程
stm32·单片机·教程·ethercat·机器人领域·协议栈移植
JIANGHONGZN1 个月前
DeviceNET转EtherCAT网关:医院药房自动化的智能升级神经中枢
网关·工业自动化·ethercat·协议网关·工业通讯·devicenet
JIANGHONGZN1 个月前
当PLC遇上电焊机器人:EtherCAT转CANopen上演工业级“语言翻译官”
工业控制·工业自动化·ethercat·协议网关·canopen
weixin_426602142 个月前
EtherCAT转EtherNet/IP解决方案-泗博网关CEI-382
ethercat·ethernet/ip·ethercat转eip·ethercat转ab plc
rosemary5122 个月前
Ubuntu 22.04安装IGH
linux·ubuntu·ethercat