From 298f057ec741c41d3851f591c8dcc90ea86f946c Mon Sep 17 00:00:00 2001 From: Maciej Bednarczyk <83034299+mcbed@users.noreply.github.com> Date: Tue, 28 Mar 2023 18:56:36 +0200 Subject: [PATCH] Added Sphinx documentation (#48) * added documentation workflow * added metapackage with doc * updated doc --- .github/workflows/documentation.yml | 60 +++++ README.md | 70 +----- ethercat_driver_ros2/CMakeLists.txt | 4 + ethercat_driver_ros2/doxygen/Doxyfile | 23 ++ ethercat_driver_ros2/package.xml | 18 ++ ethercat_driver_ros2/sphinx/Makefile | 24 ++ .../sphinx/_static/css/custom.css | 17 ++ ethercat_driver_ros2/sphinx/conf.py | 100 ++++++++ .../sphinx/developer_guide/cia402_drive.rst | 220 ++++++++++++++++++ .../sphinx/developer_guide/coe.rst | 37 +++ .../sphinx/developer_guide/new_plugin.rst | 166 +++++++++++++ .../sphinx/images/logo-icube.png | Bin 0 -> 204123 bytes ethercat_driver_ros2/sphinx/index.rst | 31 +++ ethercat_driver_ros2/sphinx/make.bat | 35 +++ .../sphinx/quickstart/configuration.rst | 76 ++++++ .../sphinx/quickstart/installation.rst | 140 +++++++++++ .../sphinx/quickstart/usage.rst | 40 ++++ .../sphinx/user_guide/config_cia402_drive.rst | 104 +++++++++ .../user_guide/config_generic_slave.rst | 217 +++++++++++++++++ 19 files changed, 1315 insertions(+), 67 deletions(-) create mode 100644 .github/workflows/documentation.yml create mode 100644 ethercat_driver_ros2/CMakeLists.txt create mode 100644 ethercat_driver_ros2/doxygen/Doxyfile create mode 100644 ethercat_driver_ros2/package.xml create mode 100644 ethercat_driver_ros2/sphinx/Makefile create mode 100644 ethercat_driver_ros2/sphinx/_static/css/custom.css create mode 100644 ethercat_driver_ros2/sphinx/conf.py create mode 100644 ethercat_driver_ros2/sphinx/developer_guide/cia402_drive.rst create mode 100644 ethercat_driver_ros2/sphinx/developer_guide/coe.rst create mode 100644 ethercat_driver_ros2/sphinx/developer_guide/new_plugin.rst create mode 100644 ethercat_driver_ros2/sphinx/images/logo-icube.png create mode 100644 ethercat_driver_ros2/sphinx/index.rst create mode 100644 ethercat_driver_ros2/sphinx/make.bat create mode 100644 ethercat_driver_ros2/sphinx/quickstart/configuration.rst create mode 100644 ethercat_driver_ros2/sphinx/quickstart/installation.rst create mode 100644 ethercat_driver_ros2/sphinx/quickstart/usage.rst create mode 100644 ethercat_driver_ros2/sphinx/user_guide/config_cia402_drive.rst create mode 100644 ethercat_driver_ros2/sphinx/user_guide/config_generic_slave.rst diff --git a/.github/workflows/documentation.yml b/.github/workflows/documentation.yml new file mode 100644 index 00000000..074e24ae --- /dev/null +++ b/.github/workflows/documentation.yml @@ -0,0 +1,60 @@ +name: Documentation + +# Controls when the workflow will run +on: + # Triggers the workflow on push or pull request events but only for the master branch + push: + branches: [ main ] + + # Allows you to run this workflow manually from the Actions tab + workflow_dispatch: + +# A workflow run is made up of one or more jobs that can run sequentially or in parallel +jobs: + # This workflow contains a single job called "build" + build_documentation: + # The type of runner that the job will run on + runs-on: ubuntu-latest + + # Steps represent a sequence of tasks that will be executed as part of the job + steps: + # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it + - uses: actions/checkout@v3 + + - name: Install dependencies + run: | + sudo apt-get update -qq + sudo apt-get install -y -qq doxygen graphviz plantuml + pip install sphinx-rtd-theme + pip install sphinxcontrib-plantuml + pip install sphinx-mdinclude + pip install breathe + pip install exhale + - name: Build doxygen + run: | + cd ./documentation/doxygen/ + doxygen + cd ../.. + - name: Build documentation + run: | + cd ./documentation/sphinx/ + make html + cd ../.. + - name: Create commit + run: | + git clone https://github.com/ICube-Robotics/ethercat_driver_ros2.git --branch gh-pages --single-branch gh-pages + mkdir -p gh-pages/docs/ + mkdir -p gh-pages/api/ + cp -r ./documentation/sphinx/_build/html/* gh-pages/ + cp -r ./documentation/doxygen/_build/html/* gh-pages/api/ + cd gh-pages + git config --local user.email "action@github.com" + git config --local user.name "GitHub Action" + git add . + git commit -m "Update documentation" -a || true + - name: Push changes + uses: ad-m/github-push-action@master + with: + branch: gh-pages + directory: gh-pages + github_token: ${{ secrets.GITHUB_TOKEN }} diff --git a/README.md b/README.md index d10f6d20..c58edcbc 100644 --- a/README.md +++ b/README.md @@ -7,71 +7,7 @@ Implementation of a `Hardware Interface` for simple Ethercat module integration ## About [EtherCAT](https://www.ethercat.org/default.htm) provides applications with the capacity of reliable, real-time communication between systems and is therefore a common industrial standard. In order to simplify the development/deployment of new application using EtherCAT modules, the `ethercat_driver` allows to combine them with [`ros2_control`](https://github.com/ros-controls/ros2_control). This driver proposes a generic ways to parametrise and assemble `Hardware Interfaces` based on EtherCAT modules that can be defined using parameter files. -## Usage -### 1. Installation -Installation steps for [IgH EtherCAT Master for Linux](https://etherlab.org/en/ethercat/) and the driver can be found [here](INSTALL.md). - -### 2. Description -#### Hardwre Interfaces and EtherCAT Master -The `ethercat_driver` is designed in such a way that each EtherCAT Master is defined in `ros2_control` as a specific `Hardware Interface`. This is done in the `ros2_control` description file, where the EtherCAT driver is loaded as `Hardware Interface` and linked to an EtherCAT Master by its ID: -```xml - - - ethercat_driver/EthercatDriver - 0 - 100 - - -``` -**NOTE**: As in the current implementation of `ros2_control` there is no information about the system update frequency, it needs to be passed here as parameter. This is only needed systems that include EtherCAT modules that use the Distributed Clock. - -#### EtherCAT Slave modules as Plugins -In this driver, the EtherCAT Slave modules are defined as [Plugins](https://docs.ros.org/en/foxy/Tutorials/Pluginlib.html) and can be parametrized in the `ros2_control` description file : -```xml - - ethercat_plugins/ECModule - 0 - 1 - -``` -All modules have `alias` and `position` parameters that specify their address in the EtherCAT Bus topology. Additional parameters can be specified depending on the purpose of the module. A list of implemented modules and their parameters can be found [here](ethercat_plugins/available_plugins.md). - -#### Interfacing controllers with EtherCAT Slave modules -In `ros2_control` the access to resources within a system from a controller is done by means of [`Hardware Resources`](https://github.com/ros-controls/roadmap/blob/master/design_drafts/hardware_access.md). For this purpose `state_interface` and `command_interface` tags need to be defined and associated with the module functionalities. -Also, for better understanding of the overall system, the pupropose of the used modules need to be clearly identified and sorted into the following types: -- ``: logical component actuated by at least one actuator with read-write capacity. -- ``: logical component to read-only states from system. -- ``: logical component for general purpose IO systems. - -**NOTE**: These components have the possibility to include parameters that will be used to link particular states and commands to the slave module input/outputs. - -Here is an example of a `gpio` resource built using 2 EtherCAT IO modules, where digital commands are mapped on ports 4 and 6 of the digital output module and analog states are read from ports 1 and 4 of the analog input module: -```xml - - - - - - - - - ethercat_plugins/Beckhoff_EL3104 - 0 - 1 - ana_input.1 - ana_input.2 - - - ethercat_plugins/Beckhoff_EL2008 - 0 - 2 - dig_output.2 - dig_output.1 - - -``` - -**NOTE** : To send commands to `gpio` resources, a generic controller was developed and can be found [here](https://github.com/mcbed/ros2_controllers/tree/gpio_controllers). +**For more information, please check the [documentation](https://ICube-Robotics.github.io/ethercat_driver_ros2/).** ## Acknowledgments Parts of the driver are based on the implementation of [`SimplECAT`](https://bitbucket.org/bsoe/simplecat/src/master/). @@ -79,6 +15,6 @@ Parts of the driver are based on the implementation of [`SimplECAT`](https://bit ## Contacts ## ![icube](https://icube.unistra.fr/fileadmin/templates/DUN/icube/images/logo.png) -[ICube Laboratory](https://plateforme.icube.unistra.fr), [University of Strasbourg](https://www.unistra.fr/), France +[ICube Laboratory](https://icube.unistra.fr), [University of Strasbourg](https://www.unistra.fr/), France -__Maciej Bednarczyk:__ [m.bednarczyk@unistra.fr](mailto:m.bednarczyk@unistra.fr), @github: [mcbed](mailto:macbednarczyk@gmail.com) +__Maciej Bednarczyk:__ [m.bednarczyk@unistra.fr](mailto:m.bednarczyk@unistra.fr), @github: [mcbed](https://github.com/mcbed) diff --git a/ethercat_driver_ros2/CMakeLists.txt b/ethercat_driver_ros2/CMakeLists.txt new file mode 100644 index 00000000..f372d947 --- /dev/null +++ b/ethercat_driver_ros2/CMakeLists.txt @@ -0,0 +1,4 @@ +cmake_minimum_required(VERSION 3.8) +project(ethercat_driver_ros2 NONE) +find_package(ament_cmake REQUIRED) +ament_package() diff --git a/ethercat_driver_ros2/doxygen/Doxyfile b/ethercat_driver_ros2/doxygen/Doxyfile new file mode 100644 index 00000000..7a3e19f4 --- /dev/null +++ b/ethercat_driver_ros2/doxygen/Doxyfile @@ -0,0 +1,23 @@ +# All settings not listed here will use the Doxygen default values. + +PROJECT_NAME = "ethercat_driver_ros2" +PROJECT_NUMBER = main +PROJECT_BRIEF = "C++ ROS test" + +# Use these lines to include the generated logging.hpp (update install path if needed) +INPUT = ../../ethercat_driver/include ../../ethercat_interface/include + +RECURSIVE = YES +OUTPUT_DIRECTORY = _build + +EXTRACT_ALL = YES +SORT_MEMBER_DOCS = NO + +GENERATE_LATEX = NO +GENERATE_XML = YES + +ENABLE_PREPROCESSING = YES + +DOT_GRAPH_MAX_NODES = 101 + +FILE_PATTERNS = *.cpp *.h *.hpp *.md diff --git a/ethercat_driver_ros2/package.xml b/ethercat_driver_ros2/package.xml new file mode 100644 index 00000000..b6fdf8c6 --- /dev/null +++ b/ethercat_driver_ros2/package.xml @@ -0,0 +1,18 @@ + + + + ethercat_driver_ros2 + 1.0.0 + Meta-package aggregating the ethercat_driver_ros2 packages and documentation + Maciej Bednarczyk + Apache License 2.0 + + ament_cmake + ethercat_driver + ethercat_interface + ethercat_plugins + + + ament_cmake + + diff --git a/ethercat_driver_ros2/sphinx/Makefile b/ethercat_driver_ros2/sphinx/Makefile new file mode 100644 index 00000000..7c644899 --- /dev/null +++ b/ethercat_driver_ros2/sphinx/Makefile @@ -0,0 +1,24 @@ +# Minimal makefile for Sphinx documentation +# + +# You can set these variables from the command line, and also +# from the environment for the first two. +SPHINXOPTS ?= +SPHINXBUILD ?= sphinx-build +SOURCEDIR = . +BUILDDIR = _build + +# Put it first so that "make" without argument is like "make help". +help: + @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) + +.PHONY: help Makefile clean + +clean: + rm -rf "_doxygen/" "api/" + @$(SPHINXBUILD) -M clean "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) + +# Catch-all target: route all unknown targets to Sphinx using the new +# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS). +%: Makefile + @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) diff --git a/ethercat_driver_ros2/sphinx/_static/css/custom.css b/ethercat_driver_ros2/sphinx/_static/css/custom.css new file mode 100644 index 00000000..54d2f2e7 --- /dev/null +++ b/ethercat_driver_ros2/sphinx/_static/css/custom.css @@ -0,0 +1,17 @@ + +.wy-table-responsive table td, +.wy-table-responsive table th { + white-space:normal; +} + +tr { + white-space: normal; +} + +thead { + white-space: normal; +} + +table { + white-space: normal; +} diff --git a/ethercat_driver_ros2/sphinx/conf.py b/ethercat_driver_ros2/sphinx/conf.py new file mode 100644 index 00000000..5b6a976a --- /dev/null +++ b/ethercat_driver_ros2/sphinx/conf.py @@ -0,0 +1,100 @@ +# Copyright 2022 ICube Laboratory, University of Strasbourg +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Configuration file for the Sphinx documentation builder. +# +# This file only contains a selection of the most common options. For a full +# list see the documentation: +# https://www.sphinx-doc.org/en/master/usage/configuration.html + +# -- Path setup -------------------------------------------------------------- + +# If extensions (or modules to document with autodoc) are in another directory, +# add these directories to sys.path here. If the directory is relative to the +# documentation root, use os.path.abspath to make it absolute, like shown here. +# +from pathlib import Path + +# -- Project information ----------------------------------------------------- + +project = "ethercat_driver_ros2" +copyright = "2023, ICUBE Laboratory, University of Strasbourg" +author = "Maciej Bednarczyk, Philippe Zanne, Laurent Barbé" + +# The full version, including alpha/beta/rc tags +release = "1.0.0" + + +# -- General configuration --------------------------------------------------- + +# Add any Sphinx extension module names here, as strings. They can be +# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom +# ones. +extensions = [ + "sphinx_rtd_theme", + "sphinx_mdinclude", + "sphinx.ext.imgmath", + "sphinx.ext.todo", + "sphinx.ext.graphviz", + "sphinxcontrib.plantuml", + "breathe", +] + +breathe_default_project = "ethercat_driver_ros2" + + +def get_package(package: str): + path = Path(__file__).parent.parent.parent.joinpath(f"{package}/include/{package}") + files_gen = path.glob("*.hpp") + files = [] + for file in files_gen: + files.append(file.name) + return (path, files) + + +breathe_projects = { + "ethercat_driver_ros2": "../doxygen/_build/xml/", +} + + +# Tell sphinx what the primary language being documented is. +primary_domain = "cpp" + +# Tell sphinx what the pygments highlight language should be. +highlight_language = "cpp" + + +# Add any paths that contain templates here, relative to this directory. +templates_path = ["_templates"] + +# List of patterns, relative to source directory, that match files and +# directories to ignore when looking for source files. +# This pattern also affects html_static_path and html_extra_path. +exclude_patterns = ["_build", "Thumbs.db", ".DS_Store"] + + +# -- Options for HTML output ------------------------------------------------- + +# The theme to use for HTML and HTML Help pages. See the documentation for +# a list of builtin themes. +# +html_theme = "sphinx_rtd_theme" + +# Add any paths that contain custom static files (such as style sheets) here, +# relative to this directory. They are copied after the builtin static files, +# so a file named "default.css" will overwrite the builtin "default.css". +html_static_path = ["_static"] +html_logo = "images/logo-icube.png" +html_css_files = ["css/custom.css"] +pygments_style = "sphinx" diff --git a/ethercat_driver_ros2/sphinx/developer_guide/cia402_drive.rst b/ethercat_driver_ros2/sphinx/developer_guide/cia402_drive.rst new file mode 100644 index 00000000..ee180445 --- /dev/null +++ b/ethercat_driver_ros2/sphinx/developer_guide/cia402_drive.rst @@ -0,0 +1,220 @@ +CANopen over EtherCAT for electrical drives +=========================================== + +CANopen also defines several device profiles by establishing standard behavior and communication objects for similar devices. In the case of electrical drives, the profile is given by the **CiA402** ("CANopen device profile for drives and motion control") norm compliant with the `IEC `_ standard that defines programming languages for programmable control systems. The CiA402 norm specifies specific objects in OD in range :code:`0x6000` to :code:`0x67fe`, what guarantees, that for a drive compatible with CiA402, typical process values such as position, velocity, or torque set-points and actual values will always be defined in the same objects with the same address regardless of the manufacturer and by such simplifies the commissioning of different drives. CIA402 also defines a state machine that corresponds to the drive’s actual operating state (:code:`Disabled`, :code:`Fault`, :code:`Switch ON`, etc.). This state machine is controlled and monitored by two mandatory PDO entries: :code:`Control Word` and :code:`Status Word`. The drive cannot be started until the state machine has been put into the appropriate state. + +The device states and possible control sequences of the drive are described by the CANopen state machine as follows: + +.. image:: https://webhelp.kollmorgen.com/kas/Content/Resources/Images/CoE%20status%20machine.png + :width: 400 + :alt: ecm_lifecycle + :align: center + +The possible drive states are : + +.. list-table:: CiA402 Drive States + :widths: 15 35 + :header-rows: 1 + + * - State + - Description + * - :code:`NOT_READY_TO_SWITCH_ON` + - The drive is not ready to switch on. The drive is in boot phase. Drive motion functions are disabled. No communication established. + * - :code:`SWITCH_ON_DISABLED` + - The drive cannot be enabled via the EtherCAT interface. Drive motion functions are disabled. + * - :code:`READY_TO_SWITCH_ON` + - The drive can be enabled. Parameters can be transferred. Power may be applied. Drive motion functions are disabled. + * - :code:`SWITCHED_ON` + - The drive is enabled but idle No fault detected. Power is enabled Drive motion functions are disabled. Parameters can be transferred. No set-points are transferred from the EtherCAT interface. + * - :code:`OPERATION_ENABLED` + - Normal operation mode No fault detected. Drive motion functions and power are enabled. Power enabled. Set-points are transferred from the EtherCAT interface. + * - :code:`QUICK_STOP_ACTIVE` + - The quick stop process is executed. Drive motion functions are disabled. Power is enabled. + * - :code:`FAULT_REACTION_ACTIVE` + - A fault has occurred, fault reaction processes are executed. + * - :code:`FAULT` + - A fault is active, Drive is stopped and its functions are disabled. + +State transitions are the result of events that can be either internal or triggers through the :code:`Control Word`. When a command trigger for state change is received, the transition is performed before any other command is processed. + +The possible transition states, their trigger events and performed actions are : + +.. list-table:: CiA402 Drive State Transitions + :widths: 1 20 24 + :header-rows: 1 + + * - State Transition + - Event + - Action + * - :code:`0` + - **Automatic transition** after power-on or reset application + - Drive device self-test and/or self initialization has to be performed + * - :code:`1` + - **Automatic transition** + - Communication has to be activated + * - :code:`2` + - Shutdown command from control device or local signal + - None + * - :code:`3` + - Switch on command received from control device or local signal + - The high-level power has to be switched ON, if possible + * - :code:`4` + - Enable operation command received from control device or local signal + - The drive function has to be enabled. All internal set-points cleared. + * - :code:`5` + - Disable operation command received from control device or local signal + - The drive function has to be disabled. + * - :code:`6` + - Shutdown command received from control device or local signal + - The high-level power has to be switched OFF, if possible. + * - :code:`7` + - Quick stop or disable voltage command from control device or local signal + - None + * - :code:`8` + - Shutdown command from control device or local signal + - The drive function has to be disabled. The high-level power has to be switched OFF, if possible. + * - :code:`9` + - Disable voltage command from control device or local signal + - The drive function has to be disabled. The high-level power has to be switched OFF, if possible. + * - :code:`10` + - Disable voltage or quick stop command from control device or local signal + - The high-level power has to be switched OFF, if possible. + * - :code:`11` + - Quick stop command from control device or local signal + - The quick stop function has to be started. + * - :code:`12` + - Either: - **Automatic transition** when the quick stop function is completed and quick stop option code is 1, 2, 3 or 4. - Disable voltage command received from control device (depends on the quick stop option code) + - The drive function has to be disabled. The high-level power has to be switched OFF, if possible. + * - :code:`13` + - Fault signal + - The configured fault reaction function has to be executed. + * - :code:`14` + - **Automatic transition** + - The drive function has to be disabled. The high-level power has to be switched OFF, if possible. + * - :code:`15` + - Fault reset command from control device or local signal. + - A reset of the fault condition is performed if no fault exists currently on the drive device. After leaving the Fault state, the Fault reset bit in the control word has to be cleared by the control device. + * - :code:`16` + - If the quick stop option code is 5, 6, 7, or 8, enable operation command from control device + - The drive function has to be enabled + +CANopen uses 16-bits :code:`Status Word` and :code:`Control Word` to monitor and control the state machine. These PDO entries have the following bit assignment : + +.. list-table:: CiA402 Drive Words + :widths: 1 20 24 + :header-rows: 1 + + * - Bit + - :code:`Status Word` Name + - :code:`Control Word` Name + * - :code:`0` + - Ready to switch on + - Switch On + * - :code:`1` + - Switched on + - Disable Voltage + * - :code:`2` + - Operation Enabled + - Quick Stop + * - :code:`3` + - Fault + - Enable Operation + * - :code:`4` + - Voltage Enabled + - Operation-mode Specific + * - :code:`5` + - Quick Stop + - Operation-mode Specific + * - :code:`6` + - Switch On Disabled + - Operation-mode Specific + * - :code:`7` + - Warning + - Reset Fault (only effective for faults) + * - :code:`8` + - Manufacturer-specific (reserved) + - Pause/halt + * - :code:`9` + - Remote (always 1) + - Reserved + * - :code:`10` + - Target Reached + - Reserved + * - :code:`11` + - Internal Limit Active + - Reserved + * - :code:`12` + - Operation-mode Specific (reserved) + - Reserved + * - :code:`13` + - Operation-mode Specific (reserved) + - Manufacturer-specific + * - :code:`14` + - Manufacturer-specific (reserved) + - Manufacturer-specific + * - :code:`15` + - Manufacturer-specific (reserved) + - Manufacturer-specific + +.. image:: https://infosys.beckhoff.com/content/1033/ax2000-b110/Images/StateMachine04.gif + :width: 700 + :alt: words + +The :code:`Status Word` is only updated and written by the drive in :code:`Safe-Op` and :code:`Operational` states. The current drive state can be decoded from the logical combination of the bits in the :code:`Status Word`: + +.. list-table:: CiA402 Drive State form :code:`Status Word` + :widths: 50 50 + :header-rows: 1 + + * - :code:`Status Word` + - State + * - :code:`xxxx xxxx x0xx 0000` + - Not ready to switch on + * - :code:`xxxx xxxx x1xx 0000` + - Switch on disabled + * - :code:`xxxx xxxx x01x 0001` + - Ready to switch on + * - :code:`xxxx xxxx x01x 0011` + - Switched on + * - :code:`xxxx xxxx x01x 0111` + - Operation enabled + * - :code:`xxxx xxxx x00x 0111` + - Quick stop active + * - :code:`xxxx xxxx x0xx 1111` + - Fault reaction active + * - :code:`xxxx xxxx x0xx 1000` + - Fault + +The control commands allow the manipulation of the state of a drive by setting its control word. Commands are built up from the logical combination of the bits in the :code:`Control Word`: + +.. list-table:: CiA402 Drive Commands to :code:`Control Word` + :widths: 25 25 25 + :header-rows: 1 + + * - :code:`Control Word` + - Command + - State Transitions + * - :code:`xxxx 0xxx x110` + - Shutdown + - 2, 6, 8 + * - :code:`xxxx 0xxx 0111` + - Switch On + - 3 + * - :code:`xxxx 0xxx 1111` + - Switch On + Enable Operation + - 3 + 4 + * - :code:`xxxx 0xxx xx0x` + - Disable + - 7, 9, 10, 12 + * - :code:`xxxx 0xxx x01x` + - Quick Stop + - 7, 10, 11 + * - :code:`xxxx 0xxx 0111` + - Disable Operation + - 5 + * - :code:`xxxx 0xxx 1111` + - Enable Operation + - 4, 16 + * - :code:`xxxx 1xxx xxxx` + - Fault Reset + - 15 diff --git a/ethercat_driver_ros2/sphinx/developer_guide/coe.rst b/ethercat_driver_ros2/sphinx/developer_guide/coe.rst new file mode 100644 index 00000000..c1b745ad --- /dev/null +++ b/ethercat_driver_ros2/sphinx/developer_guide/coe.rst @@ -0,0 +1,37 @@ +CANopen over EtherCAT +===================== + +The CANopen over EtherCAT (CoE) protocol allows devices equipped with CANopen to be used on EtherCAT-based Industrial Ethernet networks. + +CANopen +------- + +CANopen is a communication protocol based on the `CAN (Controller Area Network) `_ physical communication standard. In the `OSI communication model `_, CAN specifies the physical and data link layers, while CANopen addresses the higher layers — network, transport, session, presentation, and application. + +The CANopen protocol defines how automation devices are configured and accessed, and how messages are exchanged between them. CANopen is object-based, meaning that each node (drives, controllers, encoders, I/O, and other devices) in the network has an Object Dictionary (OD), which contains communication objects. These communication objects cover network management data; special functions; acyclic configuration data, which is handled by Service Data Objects (SDOs); cyclic real-time data, which is handled by Process Data Objects (PDOs): + +- **Process Data Objects (PDO)** contain OD entries that are cyclically transferred as process variables. Before cyclic communication is started during the configuration phase, particular OD objects are mapped to this structure. Each PDO entry has a defined offset in the exchanged dataset, encapsulated in the Ethernet frame, so that, during the cyclic phase, the slaves’ hardware can locate the relevant data. After cyclic communication is started, PDO entries are exchanged between master and slaves in every cycle and cannot be changed without reconfiguring the communication configuration of the network. +- **Service Data Objects (SDO)** contain object dictionary entries that can be exchanged acyclically. SDO works as a mailbox sending and buffering received data. This communication is acyclic and is dependent on available bandwidth in the communication cycle. This communication is not deterministic and is best suited for transmitting configuration data. + +The use of object dictionaries, Service Data Objects, and Process Data Objects is a key component of the CANopen protocol, with SDOs being the mechanism for read-write access to the object dictionary. + +Every entry of the OD objects is given an index address and sometimes a sub-index sub-address and each OD object consists of 16-bits and data indexes. In this context, addresses between :code:`0x1000` and :code:`0x1fff` contain communication objects, between :code:`0x2000` and :code:`0x5999` manufacturer specific objects and from :code:`0x6000` device profile objects. + +CANopen is widely used thanks to its low hardware cost, wide range of device and application profiles, and simple implementation. It’s also extremely reliable and provides real-time communication, making it suitable for industrial applications. + +EtherCAT +-------- + +EtherCAT is an Industrial Ethernet network. It’s based on standard Ethernet hardware but uses a “processing-on-the-fly” method for transporting and routing messages. In addition to being a real-time networking protocol, EtherCAT is deterministic, meaning it guarantees that a message will be transmitted (or an event will occur) in a specified, predictable period of time — not slower or faster. EtherCAT allows up to 100 meters between nodes (devices) and can provide data transmission rates up to 100 Mbps, with cycle times of less than 100 μs and extremely low jitter, thanks to distributed synchronized clocks. + +CANopen over EtherCAT (CoE) protocol +------------------------------------ + +CANopen over EtherCAT (CoE) allows the CANopen communication protocol to be implemented over an EtherCAT network, providing a user-friendly, cost-effective solution that provides deterministic data delivery along with faster transmission speeds over longer network lengths. + +The use of CANopen over EtherCAT is possible in significant part because EtherCAT implements the same communication system, including object dictionaries, SDOs (the SDO protocol is implemented directly from CANopen, without changes) and PDOs. And on an EtherCAT network, PDO frames are sent deterministically and without the 8-byte limit imposed by CANopen. CANopen over EtherCAT also supports the CANopen device profiles, which specify the parameters and behavior of the device, as well as the device class-specific state machines. + +.. image:: https://b2600047.smushcdn.com/2600047/wp-content/uploads/2021/12/Applied-Motion-CANopen-over-EtherCAT.png + :width: 400 + :alt: coe + :align: center diff --git a/ethercat_driver_ros2/sphinx/developer_guide/new_plugin.rst b/ethercat_driver_ros2/sphinx/developer_guide/new_plugin.rst new file mode 100644 index 00000000..145550cd --- /dev/null +++ b/ethercat_driver_ros2/sphinx/developer_guide/new_plugin.rst @@ -0,0 +1,166 @@ +Creating a new device driver +============================ + +Creating a new device driver to work with the :code:`ethercat_driver_ros2` is fairly easy. You should do this if you need to create a driver for a specific device or a specific device profile that is not yet supported. If you create a driver for a device profile we are happy to integrate the package into this repository - simply create a PR. + +What you need to do +------------------- + +To create a dedicated driver for an EtherCAT module, you need to create a new package containing the module driver plugin and register it so that it can be called by the :code:`ethercat_driver_ros2`. + +How to do it +------------ + +Create a package +~~~~~~~~~~~~~~~~ + +Create a new package using the standard ros2 pkg commands. Make sure you add the following dependencies: + +* :code:`ethercat_interface` +* :code:`pluginlib` + +Create your plugin class +~~~~~~~~~~~~~~~~~~~~~~~~ + +To be loaded by the :code:`ethercat_driver_ros2`, the new module plugin needs to inherit from the :code:`EcSlave` class and implement some of its virtual functions. To do so create in your package :code:`src` folder a new file :code:`my_ec_device_driver.cpp`: + +.. code-block:: cpp + + #include "ethercat_interface/ec_slave.hpp" + + namespace ethercat_plugins + { + + class MyEcDeviceDriver : public ethercat_interface::EcSlave + { + public: + MyEcDeviceDriver() + : EcSlave(, ) {} + virtual ~MyEcDeviceDriver() {} + // data processing method that will be called cyclically for every channel + // the index corresponds to the values registered in domains_ + virtual void processData(size_t index, uint8_t * domain_address) + { + // Your process data logic goes here + } + virtual const ec_sync_info_t * syncs() {return &syncs_[0];} + virtual size_t syncSize() + { + return sizeof(syncs_) / sizeof(ec_sync_info_t); + } + virtual const ec_pdo_entry_info_t * channels() + { + return channels_; + } + virtual void domains(DomainMap & domains) const + { + domains = domains_; + } + // configure the slave module with urdf parameters + // and link ros2_control command and stat interface + virtual bool setupSlave( + std::unordered_map slave_paramters, + std::vector * state_interface, + std::vector * command_interface) + { + state_interface_ptr_ = state_interface; + command_interface_ptr_ = command_interface; + paramters_ = slave_paramters; + + // Your module setup logic goes here + + return true; + } + + private: + // configure module channels + ec_pdo_entry_info_t channels_[X] = { + {, , }, + }; + // configure module pdos + ec_pdo_info_t pdos_[X] = { + {, , }, + }; + // configure module syncs + ec_sync_info_t syncs_[X] = { + {, , , , }, + {0xff} + }; + // configure module domain + DomainMap domains_ = { + {0, {0}} // index of channels that should call processData() + }; + }; + + } // namespace ethercat_plugins + + #include + + PLUGINLIB_EXPORT_CLASS(ethercat_plugins::MyEcDeviceDriver, ethercat_interface::EcSlave) + +Export your plugin +~~~~~~~~~~~~~~~~~~ + +In the package root directory create a plugin description file :code:`ethercat_plugins.xml` : + +.. code-block:: xml + + + + Description of the device driver. + + + +Modify your :code:`CMakeLists.txt` file so that it looks like this: + +.. code-block:: cmake + + cmake_minimum_required(VERSION 3.8) + project() + + if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang") + add_compile_options(-Wall -Wextra -Wpedantic) + endif() + + # find dependencies + find_package(ament_cmake REQUIRED) + find_package(ament_cmake_ros REQUIRED) + find_package(ethercat_interface REQUIRED) + find_package(pluginlib REQUIRED) + + file(GLOB_RECURSE PLUGINS_SRC src/*.cpp) + add_library(${PROJECT_NAME} ${PLUGINS_SRC}) + target_compile_features(${PROJECT_NAME} PUBLIC c_std_99 cxx_std_17) # Require C99 and C++17 + target_include_directories(${PROJECT_NAME} PUBLIC + $ + $ + ) + ament_target_dependencies( + ${PROJECT_NAME} + "ethercat_interface" + "pluginlib" + ) + pluginlib_export_plugin_description_file(ethercat_interface ethercat_plugins.xml) + install( + DIRECTORY include/ + DESTINATION include + ) + install( + TARGETS ${PROJECT_NAME} + EXPORT export_${PROJECT_NAME} + ARCHIVE DESTINATION lib + LIBRARY DESTINATION lib + RUNTIME DESTINATION bin + ) + ament_export_include_directories( + include + ) + ament_export_libraries( + ethercat_plugins + ) + ament_export_targets( + export_${PROJECT_NAME} + ) + ament_package() diff --git a/ethercat_driver_ros2/sphinx/images/logo-icube.png b/ethercat_driver_ros2/sphinx/images/logo-icube.png new file mode 100644 index 0000000000000000000000000000000000000000..cf22f48a3abdcb1f5d91dba020b68c3a425acde5 GIT binary patch literal 204123 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 DgGOk<`ziTLg#!xm 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В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 provides applications with the capacity of reliable, real-time communication between systems and is therefore a common industrial standard. In order to simplify the development/deployment of new application using EtherCAT modules, this stack allows to combine them with `ros2_control `_. This driver proposes a generic ways to parametrize and assemble Hardware Interfaces based on EtherCAT modules that can be defined using parameter files. + +.. toctree:: + :maxdepth: 1 + :caption: Quickstart + :glob: + + quickstart/installation + quickstart/configuration + quickstart/usage + +.. toctree:: + :maxdepth: 1 + :caption: User Guide + :glob: + + user_guide/config_generic_slave + user_guide/config_cia402_drive + +.. toctree:: + :maxdepth: 1 + :caption: Developer Guide + :glob: + + developer_guide/coe + developer_guide/cia402_drive + developer_guide/new_plugin + API Reference diff --git a/ethercat_driver_ros2/sphinx/make.bat b/ethercat_driver_ros2/sphinx/make.bat new file mode 100644 index 00000000..8084272b --- /dev/null +++ b/ethercat_driver_ros2/sphinx/make.bat @@ -0,0 +1,35 @@ +@ECHO OFF + +pushd %~dp0 + +REM Command file for Sphinx documentation + +if "%SPHINXBUILD%" == "" ( + set SPHINXBUILD=sphinx-build +) +set SOURCEDIR=. +set BUILDDIR=_build + +if "%1" == "" goto help + +%SPHINXBUILD% >NUL 2>NUL +if errorlevel 9009 ( + echo. + echo.The 'sphinx-build' command was not found. Make sure you have Sphinx + echo.installed, then set the SPHINXBUILD environment variable to point + echo.to the full path of the 'sphinx-build' executable. Alternatively you + echo.may add the Sphinx directory to PATH. + echo. + echo.If you don't have Sphinx installed, grab it from + echo.https://www.sphinx-doc.org/ + exit /b 1 +) + +%SPHINXBUILD% -M %1 %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O% +goto end + +:help +%SPHINXBUILD% -M help %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O% + +:end +popd diff --git a/ethercat_driver_ros2/sphinx/quickstart/configuration.rst b/ethercat_driver_ros2/sphinx/quickstart/configuration.rst new file mode 100644 index 00000000..35aff5a3 --- /dev/null +++ b/ethercat_driver_ros2/sphinx/quickstart/configuration.rst @@ -0,0 +1,76 @@ +Configuration +============= + +Hardware Interfaces and EtherCAT Master +--------------------------------------- + +The EtherCAT Driver is designed in such a way that each EtherCAT Master is defined in :code:`ros2_control` as a specific Hardware Interface. This is done in the :code:`ros2_control` description file, where the EtherCAT driver is loaded as Hardware Interface and linked to an EtherCAT Master by its ID: + +.. code-block:: xml + + + + ethercat_driver/EthercatDriver + 0 + 100 + + + +.. note:: As in the current implementation of :code:`ros2_control` there is no information about the system update frequency, it needs to be passed here as parameter. This is only needed by systems that include EtherCAT modules that use the Distributed Clock. + +EtherCAT Slave modules as Plugins +--------------------------------- + +In this driver, the EtherCAT Slave modules are defined as `Plugins `_ and can be parametrized in the :code:`ros2_control` description file : + +.. code-block:: xml + + + ethercat_plugins/ECModule + 0 + 1 + + +.. note:: All modules have :code:`alias` and :code:`position` parameters that specify their address in the EtherCAT Bus topology. Additional parameters can be specified depending on the purpose of the module. + +EtherCAT Slave module plugins come in two version: + +* **Generic plugins** : generic module implementation configured using a configuration file which purpose is to facilitate the use of generally available devices. For most applications, the use of these plugins is encouraged. +* **Specific plugins** : specific implementations for dedicated devices or dedicated functionalities. + +.. note:: A list of implemented specific plugins for EtherCAT modules and their parameters can be found in this list of `available plugins `_. + +Creating components with EtherCAT Slave modules +----------------------------------------------- + +In :code:`ros2_control` the access to resources within a system from a controller is done by means of `Hardware Resources `_. For this purpose :code:`state_interface` and :code:`command_interface` tags need to be defined and associated with the module functionalities. +Also, for better understanding of the overall system, the purpose of the used modules need to be clearly identified and sorted into the following types: + +* :code:``: logical component actuated by at least one actuator with read-write capacity. +* :code:``: logical component to read-only states from system. +* :code:``: logical component for general purpose IO systems. + +Here is an example of a :code:`gpio` resource built using 2 EtherCAT IO modules: + +.. code-block:: xml + + + + + + + + ethercat_generic_plugins/GenericEcSlave + 0 + 0 + /path/to/EL3104_slave_config.yaml + + + ethercat_generic_plugins/GenericEcSlave + 0 + 1 + /path/to/EL2008_slave_config.yaml + + + +.. note:: To send commands to :code:`gpio` resources, a generic controller was developed and can be found on this `branch `_. diff --git a/ethercat_driver_ros2/sphinx/quickstart/installation.rst b/ethercat_driver_ros2/sphinx/quickstart/installation.rst new file mode 100644 index 00000000..93b176b1 --- /dev/null +++ b/ethercat_driver_ros2/sphinx/quickstart/installation.rst @@ -0,0 +1,140 @@ +Installation +=============================== + +**Required setup : Ubuntu 22.04 LTS** + +Installing EtherLab +------------------- +The proposed development builds upon the `IgH EtherCAT Master `_. +Installation steps are summarized here: + +* Install required tools: + + .. code-block:: console + + $ sudo apt-get update + $ sudo apt-get upgrade + $ sudo apt-get install git autoconf libtool pkg-config make build-essential net-tools + +* Setup sources for the EtherCAT Master: + + .. code-block:: console + + $ git clone https://gitlab.com/etherlab.org/ethercat.git + $ cd ethercat + $ git checkout stable-1.5 + $ sudo rm /usr/bin/ethercat + $ sudo rm /etc/init.d/ethercat + $ ./bootstrap # to create the configure script + +* Configure, build and install libs and kernel modules: + + .. code-block:: console + + $ ./configure --prefix=/usr/local/etherlab --disable-8139too --disable-eoe --enable-generic + + $ make all modules + $ sudo make modules_install install + $ sudo depmod + + .. note:: This step is needed every time the Linux kernel is updated. +* Configure system: + + .. code-block:: console + + $ sudo ln -s /usr/local/etherlab/bin/ethercat /usr/bin/ + $ sudo ln -s /usr/local/etherlab/etc/init.d/ethercat /etc/init.d/ethercat + $ sudo mkdir -p /etc/sysconfig + $ sudo cp /usr/local/etherlab/etc/sysconfig/ethercat /etc/sysconfig/ethercat + +* Create a new :code:`udev` rule: + + .. code-block:: console + + $ sudo gedit /etc/udev/rules.d/99-EtherCAT.rules + + containing: + + .. code-block:: console + + KERNEL=="EtherCAT[0-9]*", MODE="0666" + + +* Configure the network adapter for EtherCAT: + + .. code-block:: console + + $ sudo gedit /etc/sysconfig/ethercat_driver_ros2 + + In the configuration file specify the mac address of the network card to be used and its driver + + .. code-block:: console + + MASTER0_DEVICE="ff:ff:ff:ff:ff:ff" # mac address + DEVICE_MODULES="generic" + +Now you can start the EtherCAT master: + +.. code-block:: console + + $ sudo /etc/init.d/ethercat start + +it should print + +.. code-block:: console + + Starting EtherCAT master 1.5.2 done + + +You can check connected slaves: + +.. code-block:: console + + $ ethercat slaves + +It should print information of connected slave device: + +.. code-block:: console + + : + + +Example: + +.. code-block:: console + + 0 0:0 PREOP + + 0 0:1 PREOP + + +Building :code:`ethercat_driver_ros2` +------------------------------------- + +1. Install ROS2 packages. The current development is based of :code:`ros2 humble`. Installation steps are described in the `ROS2 Humble Documentation `_. +2. Source your ROS2` environment: + + .. code-block:: console + + source /opt/ros/humble/setup.bash + + .. note:: The ROS2 environment needs to be sources in every used terminal. If only one distribution of ROS2 is used, it can be added to the :code:`~/.bashrc` file. + +3. Install :code:`colcon` and its extensions : + + .. code-block:: console + + sudo apt install python3-colcon-common-extensions + +4. Create a new ROS2 workspace: + + .. code-block:: console + + mkdir ~/ros2_ws/src + +5. Pull relevant packages, install dependencies, compile, and source the workspace by using: + + .. code-block:: console + + cd ~/ros2_ws + git clone https://github.com/ICube-Robotics/ethercat_driver_ros2.git src/ethercat_driver_ros2 + rosdep install --ignore-src --from-paths . -y -r + colcon build --cmake-args -DCMAKE_BUILD_TYPE=Release --symlink-install + source install/setup.bash diff --git a/ethercat_driver_ros2/sphinx/quickstart/usage.rst b/ethercat_driver_ros2/sphinx/quickstart/usage.rst new file mode 100644 index 00000000..e1605b3e --- /dev/null +++ b/ethercat_driver_ros2/sphinx/quickstart/usage.rst @@ -0,0 +1,40 @@ +Usage +===== + +Start EtherCAT Master +--------------------- + +First start the EtherCAT Master + +.. code-block:: console + + $ sudo /etc/init.d/ethercat start + +it should print + +.. code-block:: console + + Starting EtherCAT master 1.5.2 done + +You can check connected slaves: + +.. code-block:: console + + $ ethercat slaves + +It should print information of connected slave device: + +.. code-block:: console + + : + + +.. note:: If nothing is displayed or some slave modules are missing, it means that your EtherCAT Master is either not well configured, or that the connection on your field-bus is interrupted. + +Launch configuration +-------------------- + +Once the EtherCAT Master is running you can go on and launch your configuration package. + +.. code-block:: console + + $ ros2 launch [package] [launchfile] diff --git a/ethercat_driver_ros2/sphinx/user_guide/config_cia402_drive.rst b/ethercat_driver_ros2/sphinx/user_guide/config_cia402_drive.rst new file mode 100644 index 00000000..b12fc98d --- /dev/null +++ b/ethercat_driver_ros2/sphinx/user_guide/config_cia402_drive.rst @@ -0,0 +1,104 @@ +CiA402 EtherCAT Motor Drive configuration +========================================= + +The generic plugin :code:`EcCiA402Drive` is a particular case of the :code:`GenericEcSlave` enabling features compliant with the CiA402 (“CANopen device profile for drives and motion control”) norm. Therefore, the configuration of such a drive uses the same formalism for the :code:`slave_config` file as in the case of the :code:`GenericEcSlave`. + +Plugin features +--------------- + +* **Drive State transitions**: Management of the motor drive states and their transitions. +* **Drive Fault reset**: Management of the motor drive fault reset using :code:`command_interface` "reset_fault". +* **Mode of Operation**: Management of multiple cyclic modes of operation : position (8), velocity (9), effort (10) and homing (6) with the possibility of switch between them. +* **Default position**: Management of the target position when not controlled. + +Configuration options +--------------------- + +In addition to the configuration options given by the :code:`GenericEcSlave`, the :code:`EcCiA402Drive` allows to configure the following options in the :code:`slave_config` file: + +.. list-table:: + :widths: 15 35 + :header-rows: 1 + + * - Configuration flag + - Description + * - :code:`auto_fault_reset` + - if set to :code:`true` the drive performs automatic fault reset; if set to :code:`false`, fault reset is only performed on rising edge (0 -> 1) command on the :code:`command_interface` "reset_fault". + +Behavior +-------- +Here are some remarks about the implemented motor drive behavior logic. + +After launching the well-configured drive, by default and without fault, motor drive module is brought automatically into the state :code:`OPERATION_ENABLED` making it ready for use. Automatic transition is only enabled when the :code:`control_word` command interface is either missing or set to :code:`NaN` making it possible for the user to take control over the motor drive's state machine by sending corresponding state transition values using the :code:`control_word` command interface. + +The default mode of operation of the motor drive can be set either in the configuration yaml file as the default value of the corresponding PDO channel or in urdf using the :code:`mode_of_operation` parameter of the the :code:`EcCiA402Drive`. If both are set, the urdf parameter value overrides the default one from the configuration yaml file. + +In order to prevent unwanted movements of the motor, if uncontrolled, the default target position that is send to the drive in all modes of operation is always the last read position. That is why, it is important to send :code:`NaN` in the position command interface when not controlling the motor position. This applies especially for cases when switching between modes. + +Usage +----- + +Example configuration for the Maxon EPOS3 motor dive: + +.. code-block:: yaml + + # Configuration file for Maxon EPOS3 drive + vendor_id: 0x000000fb + product_id: 0x64400000 + assign_activate: 0x0300 # DC Synch register + auto_fault_reset: false # true = automatic fault reset, false = fault reset on rising edge command interface "reset_fault" + sdo: # sdo data to be transferred at drive startup + - {index: 0x60C2, sub_index: 1, type: int8, value: 10} # Set interpolation time for cyclic modes to 10 ms + - {index: 0x60C2, sub_index: 2, type: int8, value: -3} # Set base 10-3s + rpdo: # RxPDO = receive PDO Mapping + - index: 0x1603 + channels: + - {index: 0x6040, sub_index: 0, type: uint16, default: 0} # Control word + - {index: 0x607a, sub_index: 0, type: int32, command_interface: position, default: .nan} # Target position + - {index: 0x60ff, sub_index: 0, type: int32, default: 0} # Target velocity + - {index: 0x6071, sub_index: 0, type: int16, default: 0} # Target torque + - {index: 0x60b0, sub_index: 0, type: int32, default: 0} # Offset position + - {index: 0x60b1, sub_index: 0, type: int32, default: 0} # Offset velocity + - {index: 0x60b2, sub_index: 0, type: int16, default: 0} # Offset torque + - {index: 0x6060, sub_index: 0, type: int8, default: 8} # Mode of operation + - {index: 0x2078, sub_index: 1, type: uint16, default: 0} # Digital Output Functionalities + - {index: 0x60b8, sub_index: 0, type: uint16, default: 0} # Touch Probe Function + tpdo: # TxPDO = transmit PDO Mapping + - index: 0x1a03 + channels: + - {index: 0x6041, sub_index: 0, type: uint16} # Status word + - {index: 0x6064, sub_index: 0, type: int32, state_interface: position} # Position actual value + - {index: 0x606c, sub_index: 0, type: int32, state_interface: velocity} # Velocity actual value + - {index: 0x6077, sub_index: 0, type: int16, state_interface: effort} # Torque actual value + - {index: 0x6061, sub_index: 0, type: int8} # Mode of operation display + - {index: 0x2071, sub_index: 1, type: int16} # Digital Input Functionalities State + - {index: 0x60b9, sub_index: 0, type: int16} # Touch Probe Status + - {index: 0x60ba, sub_index: 0, type: int32} # Touch Probe Position 1 Positive Value + - {index: 0x60bb, sub_index: 0, type: int32} # Touch Probe Position 1 Negative Value + +This configuration can be used for controlling a :code:`joint` component. Here is an example urdf for :code:`ros2_control` using this configuration together with the :code:`EcCiA402Drive` plugin: + +.. code-block:: xml + + + + ethercat_driver/EthercatDriver + 0 + 100 + + + + + + + + + + ethercat_generic_plugins/EcCiA402Drive + 0 + 0 + 8 + /path/to/maxon.yaml + + + diff --git a/ethercat_driver_ros2/sphinx/user_guide/config_generic_slave.rst b/ethercat_driver_ros2/sphinx/user_guide/config_generic_slave.rst new file mode 100644 index 00000000..c426c513 --- /dev/null +++ b/ethercat_driver_ros2/sphinx/user_guide/config_generic_slave.rst @@ -0,0 +1,217 @@ +Generic EtherCAT Slave configuration +==================================== + +Configuration options +--------------------- + +The :code:`GenericEcSlave` allows to configure the following options in the :code:`slave_config` file: + +.. list-table:: + :widths: 15 35 + :header-rows: 1 + + * - Configuration flag + - Description + * - :code:`vendor_id` + - Vendor identification number in hexadecimal format :code:`0x...`. + * - :code:`product_id` + - Product identification number in hexadecimal format :code:`0x...`. + * - :code:`assign_activate` + - Distributed Clock Synchronization register in hexadecimal format :code:`0x...`. If not used remove or set to :code:`0x00`. + * - :code:`sdo` + - SDO data to be transferred at drive startup for configuration purposes. + * - :code:`tpdo` + - Transmit PDO mapping configuration. + * - :code:`rpdo` + - Receive PDO mapping configuration. + * - :code:`sm` + - Sync Manager configuration. + +SDO configuration +~~~~~~~~~~~~~~~~~ + +Service Data Objects (SDO) are used to setup the module at startup. This is done only one during the activation phase. +Each SDO has the following configuration flags: + +.. list-table:: + :widths: 15 35 + :header-rows: 1 + + * - SDO flag + - Description + * - :code:`index` + - SDO index in hexadecimal format :code:`0x...`. + * - :code:`sub_index` + - SDO sub-index in hexadecimal format :code:`0x...`. + * - :code:`type` + - SDO data type. Possible types: :code:`bool`, :code:`uint8`, :code:`int8`, :code:`uint16`, :code:`int16`, :code:`uint32`, :code:`uint32`, :code:`uint64`, :code:`uint64`, :code:`bitN` with N the number of bits required. + * - :code:`value` + - Value to be transferred to the module. + +PDO mapping configuration +~~~~~~~~~~~~~~~~~~~~~~~~~ + +The :code:`tpdo` and :code:`rpdo` Process Data Object (PDO) mapping configurations can be composed of multiple PDO mappings. +Each PDO mapping requires to specify its register :code:`index` and the configuration of the PDO Channels it is composed of. + +PDO channel configuration +~~~~~~~~~~~~~~~~~~~~~~~~~ + +Each PDO Channel has the following configuration flags: + +.. list-table:: + :widths: 15 35 + :header-rows: 1 + + * - PDO Channel flag + - Description + * - :code:`index` + - Channel index in hexadecimal format :code:`0x...`. + * - :code:`sub_index` + - Channel sub-index in hexadecimal format :code:`0x...`. + * - :code:`type` + - Channel data type. Possible types: :code:`bool`, :code:`uint8`, :code:`int8`, :code:`uint16`, :code:`int16`, :code:`uint32`, :code:`uint32`, :code:`uint64`, :code:`uint64`, :code:`bitN` with N the number of bits required. + * - :code:`command_interface` + - **Only for** :code:`tpdo`. Name of the command interface to be used inside :code:`ros2_control`. + * - :code:`state_interface` + - **Only for** :code:`rpdo`. Name of the state interface to be used inside :code:`ros2_control`. + * - :code:`default` + - **Only for** :code:`tpdo`. Default value to be send to the drive if data received on the command interface is :code:`NaN`. + * - :code:`mask` + - Data mask, to be used with :code:`type` = :code:`bool`. + * - :code:`factor` + - Data conversion factor. + * - :code:`offset` + - Data offset term. + + +.. warning:: For each channel, tags :code:`index`, :code:`sub_index` and :code:`type` are **mandatory** even if the channel is not used in order to fill the data layout expected by the module. All other tags can remain unset. +.. note:: Data type :code:`bitN` is used for gaps in the config. Refer to module manual if required. +.. note:: Data type :code:`bool` requires the use of the :code:`mask` option as the registers can only be read as a multiple of 8 bits. + +Sync Manager Configuration +~~~~~~~~~~~~~~~~~~~~~~~~~~ + +A SyncManager protects a DPRAM area from simultaneous access and thus ensures data consistency. For more information, refer to the `Synch Manager EtherCAT documentation `_. +Sync Manager can be configured with the following options: + +.. list-table:: + :widths: 15 35 + :header-rows: 1 + + * - Sync Manager flag + - Description + * - :code:`index` + - Sync Manager index. + * - :code:`type` + - Sync Manager type. Can be either :code:`output` or :code:`input`. + * - :code:`pdo` + - PDO to be mapped on the Sync Manager. Can be :code:`rpdo`, :code:`tpdo` or :code:`~` if empty. + * - :code:`watchdog` + - Enables Sync Manager Watchdog. Can be :code:`disable` or :code:`enable`. + +.. note:: If :code:`sm` is not specified, the default Sync Manager configuration is : + + .. code-block:: yaml + + sm: # Sync Manager + - {index: 0, type: output, pdo: ~, watchdog: disable} + - {index: 1, type: input, pdo: ~, watchdog: disable} + - {index: 2, type: output, pdo: rpdo, watchdog: enable} + - {index: 3, type: input, pdo: tpdo, watchdog: disable} + +Usage +----- + +Example configuration for the Beckhoff EL3104 analog input module: + +.. code-block:: yaml + + # Configuration file for Beckhoff EL3104 + vendor_id: 0x00000002 + product_id: 0x0c1e3052 + tpdo: # TxPDO + - index: 0x1a00 + channels: + - {index: 0x3101, sub_index: 1, type: uint8} + - {index: 0x3101, sub_index: 2, type: int16, state_interface: analog_input.1, factor: 0.000305185} + - index: 0x1a01 + channels: + - {index: 0x3102, sub_index: 1, type: uint8} + - {index: 0x3102, sub_index: 2, type: int16, state_interface: analog_input.2, factor: 0.000305185} + sm: # Sync Manager + - {index: 0, type: output, pdo: ~, watchdog: disable} + - {index: 1, type: input, pdo: ~, watchdog: disable} + - {index: 2, type: output, pdo: ~, watchdog: disable} + - {index: 3, type: input, pdo: tpdo, watchdog: disable} + +Example configuration for the Beckhoff EL2008 digital output module using data type :code:`bool` with :code:`mask`: + +.. code-block:: yaml + + # Configuration file for Beckhoff EL2008 + vendor_id: 0x00000002 + product_id: 0x07d83052 + rpdo: # RxPDO + - index: 0x1a00 + channels: + - {index: 0x6000, sub_index: 1, type: bool, mask: 1, command_interface: d_output.1} + - index: 0x1a01 + channels: + - {index: 0x6010, sub_index: 1, type: bool} + - index: 0x1a02 + channels: + - {index: 0x6020, sub_index: 1, type: bool} + - index: 0x1a03 + channels: + - {index: 0x6030, sub_index: 1, type: bool, mask: 8, command_interface: d_output.4} + - index: 0x1a04 + channels: + - {index: 0x6040, sub_index: 1, type: bool} + - index: 0x1a05 + channels: + - {index: 0x6050, sub_index: 1, type: bool} + - index: 0x1a06 + channels: + - {index: 0x6060, sub_index: 1, type: bool} + - index: 0x1a07 + channels: + - {index: 0x6070, sub_index: 1, type: bool} + sm: # Sync Manager + - {index: 0, type: output, pdo: rpdo, watchdog: enable} + +.. note:: In this configuration only digital output 1 and 4 will be used and are therefore configured. The other channels are set up with the mandatory tags :code:`index`, :code:`sub_index` and :code:`type` to fill the data layout expected by the module. + +This configuration can be used for controlling a :code:`gpio` component. Here is an example urdf for :code:`ros2_control` using this configuration together with the :code:`GenericEcSlave` plugin: + +.. code-block:: xml + + + + ethercat_driver/EthercatDriver + 0 + 100 + + + + + + + ethercat_generic_plugins/GenericEcSlave + 0 + 0 + /path/to/EL3104_slave_config.yaml + + + + + + + + ethercat_generic_plugins/GenericEcSlave + 0 + 1 + /path/to/EL2008_slave_config.yaml + + +