linuxcnc_gantry_robot

A large high-precision 3-axis gantry robot system using LinuxCNC, integrated with Mesa Electronics interface cards and igus® dryve D1 controllers.

https://github.com/gtec-udc/linuxcnc_gantry_robot

Science Score: 67.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 1 DOI reference(s) in README
  • Academic publication links
    Links to: zenodo.org
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (12.7%) to scientific vocabulary

Scientific Fields

Engineering Computer Science - 31% confidence
Last synced: 6 months ago · JSON representation ·

Repository

A large high-precision 3-axis gantry robot system using LinuxCNC, integrated with Mesa Electronics interface cards and igus® dryve D1 controllers.

Basic Info
  • Host: GitHub
  • Owner: GTEC-UDC
  • License: cc-by-sa-4.0
  • Language: C
  • Default Branch: master
  • Homepage:
  • Size: 11.3 MB
Statistics
  • Stars: 0
  • Watchers: 0
  • Forks: 0
  • Open Issues: 0
  • Releases: 1
Created 9 months ago · Last pushed 7 months ago
Metadata Files
Readme License Citation

README.md

LinuxCNC Gantry Robot System

A large high-precision 3-axis gantry robot system using LinuxCNC, integrated with Mesa Electronics interface cards and igus® dryve D1 motor controllers.

The system was developed from our LinuxCNC motor control testbed, which ensured the main components of the system were able to work reliably.

The repository includes a custom calibration solution that leverages an existing OptiTrack motion capture system in the installation room to measure and compensate for errors in the gantry movement. Using this solution the gantry robot can achieve sub-centimeter precision across the entire work envelope.

[![License: CC BY-SA 4.0](https://img.shields.io/badge/License-CC%20BY--SA%204.0-limegreen.svg)](https://creativecommons.org/licenses/by-sa/4.0/) [![License: GNU FDL 1.3](https://img.shields.io/badge/License-GNU%20FDL%201.3-limegreen.svg)](https://www.gnu.org/licenses/fdl-1.3.en.html) [![DOI](https://zenodo.org/badge/996340720.svg)](https://zenodo.org/badge/latestdoi/996340720) [![Documentation](https://img.shields.io/badge/docs-sphinx-blue.svg)](https://gtec-udc.github.io/linuxcnc_gantry_robot/) Gantry Robot System

Key Features

  • 3-Axis Control: X, Y, Z linear axes.
  • Large Work Envelope: 5.3m (X) × 5.2m (Y) × 1m (Z) working volume.
  • Real-time Coordination: Precise real-time motion using LinuxCNC with MESA interface cards and igus® dryve D1 motor controllers.
  • Closed Loop Control: High-precision encoder feedback for accurate positioning using closed loop control.
  • Visual Status Indicators: Custom LED status indicators.
  • Positioning calibration: Software to analyze OptiTrack measurements and custom LinuxCNC kinematics module for compensation of positioning errors.
  • Heavy Duty: Built with igus® self-lubricating linear units enabling lifelong operation of the moving parts without external lubrication.

Documentation

The following documentation is provided in this repository:

  • Technical Documentation: Sphinx documentation sources of the system documentation in docs/. The documentation has been prepared to be built in HTML and PDF formats. To build the documentation follow the instructions below:
  1. Prepare the environment:

    bash cd docs uv venv && uv sync && source .venv/bin/activate

  2. Build the documentation:

 - HTML: `make html`

   The HTML documentation index file will be saved in `docs/build/html/index.html`.

 - PDF (requires a LaTeX installation with LuaLaTeX): `make latexpdf`

   The PDF file will be saved in `docs/build/latex/linuxcnc_gantry_robot.pdf`.

Positioning calibration

The gantry robot can be calibrated to compensate for positioning errors using an existing OptiTrack motion capture system in the installation room. For this, the repository provides the following software:

Hardware Components

| Component | Model | Quantity | Function | |-----------|-------|----------|----------| | Control Computer | PC running LinuxCNC | 1 | Real-time motor coordination | | Motor Controllers | igus® dryve D1 | 4 | Individual motor control | | Main Interface | MESA 7I96S | 1 | Ethernet-LinuxCNC bridge and stepper motor control | | I/O Expansion | MESA 7I77 | 1 | Analog control for brushless motors and I/O signals | | X-Axis Motor | igus® MOT-EC-86-C-I-A | 2 | NEMA 34 brushless with 1000 PPR encoder | | Y-Axis Motor | igus® MOT-EC-86-C-I-A | 1 | NEMA 34 brushless with 1000 PPR encoder | | Z-Axis Motor | igus® MOT-AN-S-060-035-060-M-C-AAAC | 1 | NEMA 24 stepper with 500 PPR encoder | | Emergency Stop | Push-button with NO/NC contacts | 1 | System safety shutdown | | Limit Switches | igus® proximity switch | 4 | Position boundary detection | | 48V Power Supply | MEAN WELL SDR-960-48 | 3 | Brushles motors power | | 24V Power Supply | MEAN WELL SDR-240-24 | 1 | Stepper motor power | | 24V Power Supply | Generic power supply | 1 | igus® Drive D1 logic and MESA 7I77 field power | | 5V Power Supply | MEAN WELL MDR-20-5 | 1 | MESA 7I77 field I/O logic power |

System Architecture

Prototype System

Repository Structure

txt gantry-robot/ ├── README.md # This file ├── assets/ # Pictures and videos ├── docs/ # Technical documentation ├── igus-dryve/ # igus® dryve D1 configuration files ├── linuxcnc/ # LinuxCNC configuration files │ ├── configs/ # Machine configurations │ └── components/ # Custom LinuxCNC components ├── calibration/ # Calibration code and measurements │ ├── src/ # Python analysis and calibration tools │ └── measurements/ # Gantry robot and OptiTrack measurements └── electrical_installation/ # Electrical documentation ├── schematics/ # KiCAD electrical diagrams └── photos/ # Electrical installation photos

License

This project contains multiple components with different licenses.

General License (unless otherwise specified)

Creative Commons License badge

LinuxCNC Gantry Robot System © 2025 by Tomás Domínguez Bolaño, Valentín Barral Vales, Carlos José Escudero Cascón, and José Antonio García Naya (CITIC Research Center, University of A Coruña, Spain) is licensed under Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0). To view a copy of this license, see the LICENSE file or visit https://creativecommons.org/licenses/by-sa/4.0/.

Documentation License (docs/)

Copyright © 2000-2022 LinuxCNC.org\ Copyright © 2025 Tomás Domínguez Bolaño, Valentín Barral Vales, Carlos José Escudero Cascón, and José Antonio García Naya.

Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled "GNU Free Documentation License".

Software Licenses

Acknowledgments

This work has been supported by grant PID2022-137099NB-C42 (MADDIE) and by project TED2021-130240B-I00 (IVRY) funded by MCIN/AEI/10.13039/501100011033 and the European Union NextGenerationEU/PRTR.

Acknowledgements logos

Owner

  • Name: Group of Electronic Technology and Communications
  • Login: GTEC-UDC
  • Kind: organization

GTEC is the acronym of Grupo de Tecnología Electrónica y Comunicaciones (GTEC), a research group of the University of A Coruña (UDC)

Citation (CITATION.cff)

cff-version: 1.2.0
title: LinuxCNC Gantry Robot System
message: >-
  If you use this project, please cite it using the metadata
  from this file.
type: software
doi: 10.5281/zenodo.15914350
authors:
  - orcid: 'https://orcid.org/0000-0001-7470-0315'
    affiliation: 'CITIC Research Center, University of A Coruña'
    given-names: Tomás
    family-names: Domínguez Bolaño
  - orcid: 'https://orcid.org/0000-0001-8750-7960'
    affiliation: 'CITIC Research Center, University of A Coruña'
    given-names: Valentín
    family-names: Barral Vales
  - orcid: 'https://orcid.org/0000-0002-3877-1332'
    affiliation: 'CITIC Research Center, University of A Coruña'
    given-names: Carlos J.
    family-names: Escudero
  - orcid: 'https://orcid.org/0000-0002-1944-4678'
    affiliation: 'CITIC Research Center, University of A Coruña'
    given-names: José A.
    family-names: García-Naya
repository-code: 'https://github.com/GTEC-UDC/linuxcnc_gantry_robot'
abstract: |
  A large high-precision 3-axis gantry robot system using LinuxCNC, integrated with Mesa Electronics interface cards and igus® dryve D1 motor controllers.

  This work has been supported by grant PID2022-137099NB-C42 (MADDIE) and by project TED2021-130240B-I00 (IVRY) funded by MCIN/AEI/10.13039/501100011033 and the European Union NextGenerationEU/PRTR.
license: CC-BY-SA-4.0

GitHub Events

Total
  • Release event: 1
  • Push event: 5
  • Create event: 2
Last Year
  • Release event: 1
  • Push event: 5
  • Create event: 2

Dependencies

docs/pyproject.toml pypi
  • furo >=2024.8.6
  • myst-parser >=4.0.1
  • pygments-csv-lexer >=0.1.3
  • sphinx >=7.0.0
  • sphinx-copybutton >=0.5.2
  • sphinxcontrib-bibtex >=2.6.3
docs/requirements.txt pypi
  • furo *
  • pygments-csv-lexer *
  • sphinx >=7.0.0
  • sphinx-copybutton *
  • sphinxcontrib-bibtex *
docs/uv.lock pypi
  • alabaster 1.0.0
  • babel 2.17.0
  • beautifulsoup4 4.13.4
  • certifi 2025.1.31
  • charset-normalizer 3.4.1
  • colorama 0.4.6
  • documentacion 0.1.0
  • docutils 0.21.2
  • furo 2024.8.6
  • idna 3.10
  • imagesize 1.4.1
  • jinja2 3.1.6
  • latexcodec 3.0.0
  • markdown-it-py 3.0.0
  • markupsafe 3.0.2
  • mdit-py-plugins 0.4.2
  • mdurl 0.1.2
  • myst-parser 4.0.1
  • packaging 25.0
  • pybtex 0.24.0
  • pybtex-docutils 1.0.3
  • pygments 2.19.1
  • pygments-csv-lexer 0.1.3
  • pyyaml 6.0.2
  • requests 2.32.3
  • roman-numerals-py 3.1.0
  • setuptools 79.0.0
  • six 1.17.0
  • snowballstemmer 2.2.0
  • soupsieve 2.7
  • sphinx 8.2.3
  • sphinx-basic-ng 1.0.0b2
  • sphinx-copybutton 0.5.2
  • sphinxcontrib-applehelp 2.0.0
  • sphinxcontrib-bibtex 2.6.3
  • sphinxcontrib-devhelp 2.0.0
  • sphinxcontrib-htmlhelp 2.1.0
  • sphinxcontrib-jsmath 1.0.1
  • sphinxcontrib-qthelp 2.0.0
  • sphinxcontrib-serializinghtml 2.0.0
  • typing-extensions 4.13.2
  • urllib3 2.4.0