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然后您需要禁用安全启动。具体操作如下:
- 重新启动计算机并进入 BIOS 设置。
- 在安全选项卡中,禁用安全启动。
- 保存并退出。
1.2 安装所需工具:
sudoapt-getupdatesudoapt-getupgradesudoapt-getinstallgitautoconf libtool pkg-configmakebuild-essential net-tools1.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 script1.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_installinstallsudodepmod1.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/ethercat1.6 创建新udev规则:
sudogedit /etc/udev/rules.d/99-EtherCAT.rules加入文档:
KERNEL=="EtherCAT[0-9]*",MODE="0666"1.7 为EtherCAT配置网络适配器:
sudogedit /etc/sysconfig/ethercat1.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.3done1.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 ~/.bashrc2.3 安装colcon及其扩展:
sudoaptinstallpython3-colcon-common-extensions2.4 创建一个新的 ROS2 工作区
mkdir~/ros2_ws/src2.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