Skip to main content

Installation

Requirements

  • C++17 compiler: GCC 7+ or Clang 5+
  • CMake: 3.16 or later
  • Docker: For building compositions (optional)

Quick Install

# Clone the SDK
git clone https://github.com/roboticks-io/roboticks-sdk.git
cd roboticks-sdk

# Build all packages and modules
make all

# Install to local directory (no sudo needed)
make install
The make install command installs libraries to ./install/ - no root permissions required.

Build Targets

make packages   # Build core packages only
make modules    # Build all modules
make all        # Build everything
make install    # Install to ./install/
make clean      # Clean build artifacts
make help       # Show all available targets

Manual Build

Build All Packages

cd packages
mkdir build && cd build
cmake ..
make -j$(nproc)

# Install system-wide (optional, requires sudo)
sudo make install
sudo ldconfig

Build a Single Module

cd modules/HelloWorldModule
mkdir build && cd build
cmake ..
make -j$(nproc)

Verify Installation

# Check if packages are installed
ls install/lib/

# Run the HelloWorld example
./modules/HelloWorldModule/build/HelloWorldModule
Expected output:
[INFO] HelloWorldTask created
[INFO] Initializing...
[INFO] Starting...
[INFO] Published: Hello World! (count: 1)
[INFO] Published: Hello World! (count: 2)
...

Docker Development

For containerized development:
# Build and run HelloWorld composition
docker compose up -d --build

# View logs
docker compose logs -f

# Stop
docker compose down

Development Workflow with Docker

# 1. Make code changes
vim modules/HelloWorldModule/src/HelloWorldTask.cpp

# 2. Rebuild and restart
docker compose up -d --build

# 3. Watch logs
docker compose logs -f roboticks-hello-world

IDE Setup

VS Code

Create .vscode/c_cpp_properties.json:
{
  "configurations": [
    {
      "name": "Linux",
      "includePath": [
        "${workspaceFolder}/**",
        "${workspaceFolder}/install/include",
        "${workspaceFolder}/packages/*/include"
      ],
      "defines": [],
      "compilerPath": "/usr/bin/g++",
      "cppStandard": "c++17",
      "intelliSenseMode": "linux-gcc-x64"
    }
  ]
}

CLion

  1. Open the SDK directory as a CMake project
  2. Set CMake options: -DCMAKE_PREFIX_PATH=./install
  3. Build All target

Troubleshooting

Make sure packages are installed:
make install
export CMAKE_PREFIX_PATH=$(pwd)/install
Run ldconfig after installing:
sudo ldconfig
# Or add to library path
export LD_LIBRARY_PATH=$(pwd)/install/lib:$LD_LIBRARY_PATH
Check your compiler version:
g++ --version  # Need GCC 7+
clang++ --version  # Need Clang 5+

Next Steps

Creating Modules

Learn how to create your first module