ethercat_driver_ros2 安装 EtherLab
2026/4/27 21:18:25 网站建设 项目流程

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

文章目录

  • 前言
  • 一、安装 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

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询