Skip to main content

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="[email protected]">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:

  1. Check logs: Review colcon build output and build/*/stderr.log files
  2. Verify environment variables: Run printenv | grep -E '(AMENT|CMAKE|ROS)'
  3. Test minimal example: Validate environment with Quick Start examples
  4. Information to include when requesting support:
    • OS and ROS2 version (lsb_release -a, ros2 --version)
    • Build command and complete error message
    • CMakeLists.txt and package.xml contents