PLEM User Guide
PLEM is a real-time robot control library for industrial manipulators. It provides an integrated control interface based on ROS2, allowing you to control robots from various manufacturers with a consistent API.
Quick Start
If you're new to PLEM, follow these steps:
1. Environment Setup
Check the system requirements and build PLEM in the Installation Guide.
2. Connect Your First Robot
Run a sample robot and test basic control commands in the Quick Start.
3. Robot Integration
Learn how to add your robot to PLEM in the Robot Integration Guide.
Key Features
Real-Time Control
- Deterministic control loop at 1kHz cycle rate
- Real-time kernel support (PREEMPT_RT)
- Priority-based scheduling
ROS2 Integration
- Composable node architecture
- Asynchronous control based on action server
- Configuration management through launch system
Safety System
- SafetyMode API (NORMAL, P_STOP, HW_FAULT)
- Dual state machine-based hardware protection
- Emergency stop handling
Extensibility
- Add robots through Description Package
- Support new manufacturers with C++ Robot Extension
- Extensible without modifying PLEM source code
Documentation Structure
This documentation is organized into three sections.
Getting Started
Guides you through PLEM's basic concepts, installation, and first execution.
- Library Overview: PLEM architecture and core concepts
- Installation Guide: Environment verification and build process
- Quick Start: First robot connection and testing
Guides
Explains specific methods needed for real-world tasks.
- Robot Integration: Description Package creation and checklist
- ROS2 Launch System: Composable Launch structure
- Safety Mode API: How to use SafetyMode and RobotMode
- Action Server Usage: ROS2 action interface
- Control Tuning: Adjusting PID gains and friction compensation
- Performance Monitoring: Visualization with PlotJuggler
Reference
Provides API specifications and configuration options.
- Description Protocol: Package convention rules
- Configuration Reference: YAML files and launch parameters
Adding a New Robot
PLEM allows you to add robots in two ways.
If you have a robot from an already-supported manufacturer or only need simulation/planning, you can quickly integrate it by creating a Description Package.
ros2 run plem_bringup create_description --name my_robot --dof 6
To support hardware control for a new manufacturer's robot, create a C++ Extension. It can be extended without modifying PLEM source code.
ros2 run plem_bringup create_robot
An interactive wizard automatically generates Config structs, RobotTraits specialization, and RobotFactory implementation.
For more details, refer to the Robot Integration Guide.
Next Steps
- Understand PLEM's design philosophy and architecture in the Library Overview.
- Set up your development environment by following the Installation Guide.
- Run your first robot with the Quick Start.