Skip to main content
C++ Manipulator Control Library

Precise Robot Control
with Simple Code

PLEM is a C++ library for real-time industrial manipulator control. Build complex robot systems easily with EtherCAT-based 1kHz control and an intuitive API.

main.cpp
1// Configure manipulator
2auto robot = Robot::builder<MyRobot>()
3    .with_network_interface("eth0")
4    .build();
5
6// Start and release brakes
7robot->start();
8robot->release_brake();
1kHzControl Frequency
6/7-DOFMulti-Robot Support
C++20Standard
<50µsControl Jitter

Powerful Features

PLEM provides all the essential features needed for industrial robot control.

Intuitive API

Implement complex robot control easily with a clear and user-friendly C++ interface.

Learn more

Real-time Control

Precise real-time control with fast response performance to meet industrial requirements.

Learn more

Modular Design

Extensible architecture supporting various manipulator models and custom algorithms.

Learn more

Safety Systems

Dual state machine with SafetyMode and RobotMode separates hardware protection from operational control.

Learn more

ROS2 Integration

Seamless ROS2 ecosystem integration with Action servers, Composable Launch, and namespace isolation.

Learn more

EtherCAT Real-Time

Achieve sub-50µs jitter with EtherCAT-based 1kHz control loops and PREEMPT_RT kernel.

Learn more

Workflow

From robot configuration to real-time monitoring in 4 steps.

01

Configure Robot

Configure any robot model in just a few lines of code

auto robot = Robot::builder<MyRobot>()
    .with_network_interface("eth0")
    .build();
02

Launch System

Start RT drivers and controllers with Composable Launch

ComposableLaunch(
    robot_driver_node,
    controller_node
).start();
03

Safe Control

Execute mode transitions and trajectories with dual state machine

robot->set_mode(RobotMode::TRAJECTORY);
trajectory_action->execute(goal);
04

Monitor Performance

Real-time monitoring of RT metrics via wait-free queue

auto metrics = monitor.get_rt_metrics();
// jitter: 12µs, cycle: 1000µs

Why PLEM?

Discover what sets PLEM apart from existing solutions.

Learn More
10xCode Simplification
Traditional ApproachHundreds of lines for EtherCAT init
With PLEM3-line initialization with intuitive API
<50µsControl Jitter
Traditional ApproachGeneral scheduler 100µs+ jitter
With PLEMPREEMPT_RT isolated CPU real-time control
6+Robot Support
Traditional ApproachSingle vendor lock-in
With PLEMIntegrate any robot instantly via Description Package
2중Safety State Machine
Traditional ApproachManual safety logic implementation
With PLEMSafetyMode + RobotMode dual protection

Contact Us About PLEM

Experience the new standard in robot control

Request Demo

See PLEM's performance in your environment. Our engineers will provide a hands-on demonstration.