SCARA ROS2 EtherCAT Workshop
Welcome to the SCARA ROS2 EtherCAT Workshop! This comprehensive tutorial will guide you through the fundamentals of controlling robotic systems using the ros2_control framework and EtherCAT communication.
Overview
The ros2_control framework is a real-time control framework designed for general robotics applications that is gaining increasing attention in both research and industrial contexts. This tutorial is designed to help you understand the basic concepts of controlling a robot using ros2_control and EtherCAT.
What You'll Learn
This workshop covers the following topics:
-
URDF Description
Learn how to write a complete URDF description for a simple SCARA manipulator, including geometry, dynamics, and ros2_control interfaces.
-
Launch & Interact
Discover how to launch your robot system and interact with controllers through the Controller Manager.
-
Hardware Interface
Develop custom hardware interfaces to communicate with your robot's physical hardware or simulation.
-
Controller Development
Write custom controllers tailored to your specific application requirements.
-
Gazebo Simulation
Set up your SCARA manipulator to run with ros2_control and Gazebo for realistic physics simulation.
-
EtherCAT Integration
Configure and control CIA 402 compliant EtherCAT motor drives using the ethercat_driver_ros2 stack.
-
FSoE Safety Integration
Integrate FailSafe over EtherCAT (FSoE) for enhanced safety in your robotic system.
Prerequisites
System Requirements
- Operating System: Ubuntu 24.04 LTS
- ROS Distribution: ROS2 Jazzy
- Basic Knowledge: Familiarity with ROS2, C++, and Python
Quick Start
Ready to get started? Follow our installation guide:
The SCARA Robot
Throughout this tutorial, we'll work with a SCARA (Selective Compliance Assembly Robot Arm) manipulator. This robot type is commonly used in industrial applications for pick-and-place operations, assembly tasks, and more.
Robot Structure
The SCARA robot consists of:
- 3 Degrees of Freedom: Two revolute joints for horizontal movement and one prismatic joint for vertical movement
- Joint 1 & 2: Revolute joints controlling the arm position in the XY plane
- Joint 3: Prismatic joint controlling the vertical (Z-axis) position
ros2_control Framework
Before diving into the tutorials, it's helpful to understand the ros2_control framework architecture:
- Controller Manager: Orchestrates the control loop and manages controller lifecycle
- Hardware Interface: Abstracts physical hardware or simulation
- Controllers: Implement control algorithms for your robot
- Resource Manager: Manages hardware resources and interfaces
For a detailed overview, see the ros2_control Overview.
Support & Contribution
Need Help?
If you encounter any issues or have questions:
License
This project is open source. Check the repository for license information.


