Installation Guide
The PLEM library stack is pre-installed on W-RC (WIM Robot Controller). All dependencies and development environments are already configured.
This guide covers how to verify the installation and build user applications.
Pre-installed on W-RC
PLEM is provided pre-installed on W-RC systems. No separate installation process is required.
Prerequisites Verification
W-RC systems with PLEM installed come with the following environment pre-configured.
Required Software Versions
# Check CMake version (≥3.25 required)
cmake --version
# Check C++20 compiler (≥GCC 11 required)
g++ --version
Expected output:
cmake version 4.2.1
g++ (Ubuntu 11.4.0-1ubuntu1~22.04.2) 11.4.0
Source ROS2 Humble Environment
You need to activate the ROS2 environment for each session.
# Source ROS2 Humble
source /opt/ros/humble/setup.bash
# To apply permanently, add to ~/.bashrc
echo 'source /opt/ros/humble/setup.bash' >> ~/.bashrc
Verify Library Installation
Verify that PLEM packages are installed on your system.
Method 1: Check ROS2 Package List
# Search for PLEM-related packages
ros2 pkg list | grep plem
# Expected output:
# plem_core
# plem_ipc
# plem_fieldbus
# plem_control
# plem_robot
# plem_ros2_adapter
# plem_bringup
Method 2: Check Include Path
# Check PLEM header files
ls /opt/ros/humble/include/plem/
# Expected output:
# core/ ipc/ fieldbus/ control/ robot/ ...
Building User Code
CMakeLists.txt Example
Basic CMakeLists.txt for a package using PLEM libraries:
cmake_minimum_required(VERSION 3.25)
project(my_robot_app)
# C++20 standard required
set(CMAKE_CXX_STANDARD 20)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
# Find PLEM packages
find_package(ament_cmake REQUIRED)
find_package(plem_core REQUIRED)
find_package(plem_robot REQUIRED)
# Define executable or library
add_executable(${PROJECT_NAME}_node src/main.cpp)
# Link PLEM libraries
target_link_libraries(${PROJECT_NAME}_node
plem_core::plem_core
plem_robot::plem_robot
)
# Installation rules
install(TARGETS ${PROJECT_NAME}_node
DESTINATION lib/${PROJECT_NAME})
ament_package()
package.xml Example
<?xml version="1.0"?>
<package format="3">
<name>my_robot_app</name>
<version>0.1.0</version>
<description>My PLEM-based robot application</description>
<maintainer email="you@example.com">Your Name</maintainer>
<license>MIT</license>
<buildtool_depend>ament_cmake</buildtool_depend>
<!-- PLEM dependency -->
<depend>plem_core</depend>
<depend>plem_robot</depend>
<export>
<build_type>ament_cmake</build_type>
</export>
</package>
Build Commands
# From workspace root, build a single package
colcon build --packages-select my_robot_app
# Verify build
source install/setup.bash
ros2 pkg list | grep my_robot_app
Expected output on successful build:
Starting >>> my_robot_app
Finished <<< my_robot_app [1m 23s]
Summary: 1 package finished [1m 25s]
Next Steps
Proceed to Quick Start to connect and control an actual robot.
Getting Help
If issues persist:
- Check logs: Review
colcon buildoutput andbuild/*/stderr.logfiles - Verify environment variables: Run
printenv | grep -E '(AMENT|CMAKE|ROS)' - Test minimal example: Validate environment with Quick Start examples
- Information to include when requesting support:
- OS and ROS2 version (
lsb_release -a,ros2 --version) - Build command and complete error message
CMakeLists.txtandpackage.xmlcontents
- OS and ROS2 version (