Skip to main content

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.

Description Package

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
C++ Robot Extension

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