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

ethercat_driver_ros2 安装 EtherLab

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 前言
  • 一、安装 EtherLab
    • 1.1 禁用安全启动:
    • 1.2 安装所需工具:
    • 1.3 EtherCAT 主站的设置源:
    • 1.4 配置、构建和安装库和内核模块:
    • 1.5 配置系统:
    • 1.6 创建新udev规则:
    • 1.7 为EtherCAT配置网络适配器:
    • 1.8 配置、构建和安装库和内核模块:
    • 1.9 现在您可以启动EtherCAT主站:(当然在这之前,确保电机驱动和主站连好了)
    • 1.10 您可以检查已连接的从属设备:
  • 二、安装 ethercat_driver_ros2
    • 2.1 安装 ROS2 软件包, 当前开发基于humble。
    • 2.2 获取 ROS2 环境:
    • 2.3 安装colcon及其扩展:
    • 2.4 创建一个新的 ROS2 工作区
    • 2.5 使用以下命令提取相关软件包、安装依赖项、编译和获取工作区:

前言

原文链接 在这里,同时参考了Primary_student同学的IgH EtherCAT MASTER安装。本文的适配的版本为Ubuntu22.04 humble 的 LTS。

一、安装 EtherLab

1.1 禁用安全启动:

拟议的开发基于IgH EtherCAT Master。安装步骤总结如下:

验证您是否可以运行未签名的内核模块

Etherlab 是默认未签名的内核模块。要允许内核加载未签名的模块,您需要禁用安全启动。

验证安全启动是否已启用(您需要先安装“mokutil”):

sudoapt-getinstallmokutil mokutil --sb-state

它应该打印:

SecureBoot disabled

如果打印:

SecureBoot enabled

然后您需要禁用安全启动。具体操作如下:

  1. 重新启动计算机并进入 BIOS 设置。
  2. 在安全选项卡中,禁用安全启动。
  3. 保存并退出。

1.2 安装所需工具:

sudoapt-getupdatesudoapt-getupgradesudoapt-getinstallgitautoconf libtool pkg-configmakebuild-essential net-tools

1.3 EtherCAT 主站的设置源:

gitclone https://gitlab.com/etherlab.org/ethercat.gitcdethercatgitcheckout stable-1.5sudorm/usr/bin/ethercat# 第一次装不需要sudorm/etc/init.d/ethercat# 第一次装不需要./bootstrap# to create the configure script

1.4 配置、构建和安装库和内核模块:

./configure--prefix=/usr/local/etherlab --disable-8139too --disable-eoe --enable-generic

在make all modules前要注意检查系统是否安装了gcc-12, 这是编译过程中必需的编译器, 如果内核是用 gcc-12 编译的, 但是系统中没有安装该版本编译器,就会导致 接下来 make modules 阶段的失败, 为了解决这个问题, 安装正确版本的GCC。

gcc 是 GNU Compiler Collection 的缩写,是一种强大、广泛使用的编译器工具链,用于将代码(如C、C++、Objective-C等语言编写的源代码)编译成可执行的二进制文件。GCC 在开源软件社区特别受欢迎,是Linux和许多其他操作系统的默认编译器。其功能包括编译、汇编和链接代码,并且支持跨平台编译、优化、调试和分析等多种功能。
主要功能

编译源代码:将高层次的编程语言(如C或C++)转换为机器代码,以便在特定平台上运行。
优化:可以生成经过优化的代码,提升程序的执行效率。
调试:与调试工具(如gdb)结合,帮助程序员进行错误排查。
跨平台支持:可以在一种架构上编译生成适用于另一种架构的程序。

sudoaptupdatesudoaptinstallgcc-12 g++-12exportCC=gcc-12# 设置 gcc-12 为当前编译器(仅针对本次编译)

在 /home/xxx/ethercat 目录下重新运行后续指令:

makeall modulessudomakemodules_installinstallsudodepmod

1.5 配置系统:

sudoln-s/usr/local/etherlab/bin/ethercat /usr/bin/sudoln-s/usr/local/etherlab/etc/init.d/ethercat /etc/init.d/ethercatsudomkdir-p/etc/sysconfigsudocp/usr/local/etherlab/etc/sysconfig/ethercat /etc/sysconfig/ethercat

1.6 创建新udev规则:

sudogedit /etc/udev/rules.d/99-EtherCAT.rules

加入文档:

KERNEL=="EtherCAT[0-9]*",MODE="0666"

1.7 为EtherCAT配置网络适配器:

sudogedit /etc/sysconfig/ethercat

1.8 配置、构建和安装库和内核模块:

在Ubuntu上查看MAC地址

ifconfig

找到对应行,将ff:ff:ff:ff:ff:ff由自己的mac地址代替,并将这两行内容输入进去,保存

MASTER0_DEVICE="ff:ff:ff:ff:ff:ff"mac addressDEVICE_MODULES=“generic”

1.9 现在您可以启动EtherCAT主站:(当然在这之前,确保电机驱动和主站连好了)

sudo/etc/init.d/ethercat start

它应该打印

Starting EtherCAT master1.5.3done

1.10 您可以检查已连接的从属设备:

ethercat slaves

它应该打印连接的从属设备的信息:

<id><alias>:<position><device_state>+<device_name>

例子:

00:0 PREOP +<device_0_name>00:1 PREOP +<device_1_name>

二、安装 ethercat_driver_ros2

2.1 安装 ROS2 软件包, 当前开发基于humble。

2.2 获取 ROS2 环境:

代码如下(示例):

source/opt/ros/humble/setup.bash

或者把这行加入到下面文档中

sudogedit ~/.bashrc

2.3 安装colcon及其扩展:

sudoaptinstallpython3-colcon-common-extensions

2.4 创建一个新的 ROS2 工作区

mkdir~/ros2_ws/src

2.5 使用以下命令提取相关软件包、安装依赖项、编译和获取工作区:

cd~/ros2_wsgitclone https://github.com/ICube-Robotics/ethercat_driver_ros2.git src/ethercat_driver_ros2

确保已安装hardware_interface库,这是ros2_control库的一部分。运行以下命令以安装相关依赖项:

sudoaptupdatesudoaptinstallros-humble-ros2-control ros-humble-hardware-interface

更新CMAKE_PREFIX_PATH:如果hardware_interface库已经安装,但CMake仍然无法找到它,可以尝试手动设置CMAKE_PREFIX_PATH。在构建之前运行以下命令:

exportCMAKE_PREFIX_PATH=$CMAKE_PREFIX_PATH:/opt/ros/humble

确认是否安装了rosdep:

sudoaptinstallpython3-rosdep2 rosdepinstall--ignore-src --from-paths.-y-rsudorosdep init# 这步可能不需要,如果出现新开一个终端 sudo nano /etc/hosts 将raw.githubusercontent.com 的所有可可能的ip 添入 # [rosdep init 错误解决终极方法(药到病除)](https://blog.csdn.net/weixin_46398948/article/details/120047411)rosdep update

最后运行以下命令继续构建工作区:

colcon build --cmake-args-DCMAKE_BUILD_TYPE=Release --symlink-installsourceinstall/setup.bash

http://www.jsqmd.com/news/710481/

相关文章:

  • 稀疏字典学习在大语言模型压缩中的应用与优化
  • 移动语义、右值引用和完美转发:C++性能优化的终极指南
  • DeepSeek-V4 深度解读:百万上下文背后的工程细节
  • AI视频换脸技术:原理、优化与实践指南
  • 3分钟学会Input Leap:免费开源跨平台设备共享解决方案
  • 雀魂AI助手Akagi:免费开源麻将分析工具,实时提升你的麻将水平
  • Akagi麻雀助手完整指南:如何用AI提升雀魂游戏水平
  • DSMC-Magus:为AI智能体构建外部大脑,解决长会话稳定性难题
  • 3个场景让Android自动化效率倍增:AutoTask智能任务管理实战指南
  • 从‘端点效应’到‘必要性探路’:一个高中数学老师的高观点解题笔记
  • E7Helper完整指南:24小时自动刷第七史诗,解放你的游戏时间
  • 敏捷开发必备-自动化测试工具解析与实践指南
  • RabbitMQ - 在微服务架构中的落地实践:消息推送 / 解耦 / 削峰填谷
  • 如何将Meteor与Nuxt.js集成:Vue生态的完美协作指南
  • 告别臃肿控制软件:5步解决华硕笔记本性能与续航难题
  • AWS批处理作业终极指南:Batch服务的智能任务调度与优化
  • 【农业物联网数据融合实战指南】:Python多源异构数据清洗、对齐与实时融合的7大关键步骤
  • DevDocs性能监控体系:构建高速稳定文档服务的完整指南
  • AWS API网关架构设计模式:构建高可用的微服务架构终极指南
  • 解密sd-webui-controlnet:如何让AI绘画真正听懂你的指令?
  • Zotero重复文献合并终极指南:告别文献库混乱的完整解决方案
  • PTS技术:优化LLM训练的关键token动态搜索方法
  • 【收藏向】2026年版AI产品经理工作指南:从0到1打造第一个AI智能体
  • PDF文件体积过大如何解决?开源工具pdfsizeopt帮你实现无损压缩
  • 终极英语单词发音MP3音频库:免费获取11.9万单词标准发音
  • 衣物防串色母片:科学原理与实测效果全解析 - 行业分析师666
  • 缠论交易可视化:3分钟让K线图开口说话的智能分析插件
  • XUnity.AutoTranslator完整指南:让Unity游戏瞬间跨越语言障碍的终极解决方案
  • jq变量作用域终极指南:掌握局部与全局变量的使用场景
  • 解放双手!用游戏手柄控制Windows电脑的终极懒人方案