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.
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
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
Statistics
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
- Releases: 1
Metadata Files
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.
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:
Prepare the environment:
bash cd docs uv venv && uv sync && source .venv/bin/activateBuild 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`.
- Electrical Installation: KiCAD electrical schematics in electrical_installation/schematics/.
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:
- Custom
calibxyzkinsLinuxCNC Kinematics Module in linuxcnc/components/linuxcnccalibratedxyz_kins/: compensates for the positioning errors in real-time - Calibration Analysis Software in calibration/: Python scripts for processing the OptiTrack data and generating the calibration parameters
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
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)
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
- LinuxCNC Components (
linuxcnc/components/): GPL v2 or later - Calibration Source Code (
calibration/src/): MIT License
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.
Owner
- Name: Group of Electronic Technology and Communications
- Login: GTEC-UDC
- Kind: organization
- Website: https://www.gtec.udc.es/web/
- Repositories: 1
- Profile: https://github.com/GTEC-UDC
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
- 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
- furo *
- pygments-csv-lexer *
- sphinx >=7.0.0
- sphinx-copybutton *
- sphinxcontrib-bibtex *
- 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