Skip to content
Merged
Show file tree
Hide file tree
Changes from 37 commits
Commits
Show all changes
42 commits
Select commit Hold shift + click to select a range
2715c31
feat: code cleanup and add a seperate config for 5090 server
enkerewpo Oct 25, 2025
b741472
Merge branch 'syswonder:main' into main
enkerewpo Oct 29, 2025
63efb66
feat: update Docker setup and remove unused files
enkerewpo Oct 29, 2025
fe92806
feat: implement Robonix core with registration service
enkerewpo Oct 29, 2025
c75fa42
feat: enhance Robonix core with demo RGB camera provider
enkerewpo Nov 1, 2025
169e066
feat: add rust/ros2-client submodule and update registration service
enkerewpo Nov 1, 2025
3ff0bf6
feat: add new Rust submodules for rcl_interfaces and common_interfaces
enkerewpo Nov 1, 2025
bf0232d
feat: enhance message generation script and add new message structures
enkerewpo Nov 1, 2025
97c34a6
fix: resolve dependencies for ROS2 Humble compatibility
enkerewpo Nov 3, 2025
3f58842
chore(rust): update rust code
enkerewpo Nov 9, 2025
fe56f54
feat: enhance package specification and process management
enkerewpo Nov 9, 2025
9524a57
docs: update PACKAGE_SPEC.md
enkerewpo Nov 9, 2025
b4f0493
refactor: update Dockerfile and enhance Rust CLI structure
enkerewpo Nov 14, 2025
7942248
chore: update Dockerfile and enhance Rust CLI output handling
enkerewpo Nov 14, 2025
7d79020
refactor: improve process management and command structure in Rust CLI
enkerewpo Nov 14, 2025
c0cb200
refactor: reorganize Rust CLI and enhance package management features
enkerewpo Nov 15, 2025
4b4bdae
feat: enhance package specification and registration process
enkerewpo Nov 15, 2025
4f15fb7
docs: update README with API key registration instructions
enkerewpo Nov 15, 2025
c0cebb8
docs: update PACKAGE_SPEC.md and demo_recipe.yaml for deployment process
enkerewpo Nov 15, 2025
30da858
feat: implement daemon management and enhance service communication
enkerewpo Nov 16, 2025
7201d84
refactor: update socket and state directory paths in Rust CLI
enkerewpo Nov 16, 2025
0767e41
feat: improve daemon startup process and executable discovery
enkerewpo Nov 16, 2025
95e9e86
feat(cli): add build command
enkerewpo Nov 16, 2025
4310895
feat: enhance error handling and signal management in demo skills
enkerewpo Nov 16, 2025
98e0ceb
feat: enhance daemon response structure and improve CLI output
enkerewpo Nov 16, 2025
062fc50
feat: implement task management and DSL execution modules
enkerewpo Nov 16, 2025
93f54e4
docs: update README for workflow clarity and code examples
enkerewpo Nov 16, 2025
d321073
chore: remove obsolete fast.xml configuration file
enkerewpo Dec 12, 2025
6367b4a
feat: enhance Robonix framework with new service and primitive modules
enkerewpo Dec 12, 2025
674f585
feat: add Docker configuration and new service definitions
enkerewpo Dec 12, 2025
9379f63
fix: update Docker options in CI workflow
enkerewpo Dec 12, 2025
7dd1247
chore: remove obsolete service definitions
enkerewpo Dec 12, 2025
51955d0
chore: remove CI workflow for Rust Robonix
enkerewpo Dec 12, 2025
64f92fa
feat: transition from robonix-msg to robonix-sdk
enkerewpo Dec 15, 2025
75cad44
feat: add initial message and service definitions for Robonix
enkerewpo Dec 15, 2025
a0f3179
chore: remove obsolete Robonix message and service definitions
enkerewpo Dec 15, 2025
cbe0e05
fix: update ROS2 service type references in PACKAGE_SPEC.md
enkerewpo Dec 15, 2025
03a5751
docs: update README with instructions for using the prebuilt Robonix …
enkerewpo Dec 21, 2025
0d5a0b2
feat: add Ping Pong service and load testing clients
enkerewpo Dec 21, 2025
670e215
chore: remove example Docker environment file and update README instr…
enkerewpo Dec 21, 2025
9a8cb05
docs: streamline README for Robonix quick start instructions
enkerewpo Dec 21, 2025
f338fbf
refactor: improve error handling and code formatting in daemon client…
enkerewpo Dec 21, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 3 additions & 15 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,36 +1,24 @@
__pycache__/
*.py[cod]
*$py.class

# ros2
log/
build/
install/

# additions
temp/
.vscode/

#log
log.txt

.DS_Store

.cursor/
.cursorrules
*.pt
.env

test.txt
path.sh
scene_info.json

frames_*

# skill export
__export__.py
skill/__init__.py

*.log

tmp/
tmp/
tailscale/
target
9 changes: 9 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
Expand Up @@ -10,3 +10,12 @@
[submodule "robonix/driver/ranger_ros2/src/ugv_sdk"]
path = robonix/driver/ranger_ros2/src/ugv_sdk
url = https://github.com/enkerewpo/ugv_sdk.git
[submodule "ros2-client"]
path = rust/lib/ros2-client
url = https://github.com/enkerewpo/ros2-client
[submodule "rcl_interfaces"]
path = rust/lib/rcl_interfaces
url = https://github.com/enkerewpo/rcl_interfaces
[submodule "common_interfaces"]
path = rust/lib/common_interfaces
url = https://github.com/enkerewpo/common_interfaces
133 changes: 114 additions & 19 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,36 +1,131 @@
# robonix
<div align="center">
<img src="robonix.png" alt="robonix" width="200">
</div>
# Robonix

**robonix** is an open-source embodied intelligence framework.
**Robonix** is an open-source embodied intelligence framework built with Rust and ROS2, implementing the EAIOS (Embodied AI Operating System) architecture.

## Setup
## Architecture

Robonix follows the EAIOS architecture with four core components:

- **Task Manager**: Global scheduling and control core, responsible for task parsing, planning, and execution coordination
- **Skill Library**: Stores reusable skills that can be called at runtime
- **Service Registry**: Manages standardized algorithm capabilities (perception, planning, evaluation, verification)
- **Primitive Abstraction Layer**: Provides standardized hardware capability mapping, managing access to actuators and sensors

## Quick Start

### Prerequisites

- ROS2 Humble: https://docs.ros.org/en/humble/Installation.html
- Rust (stable): https://rustup.rs/

### Using Docker (Recommended)

The easiest way to get started is using the pre-built Docker image:

```bash
cd docker
./run.sh # Pulls and runs docker.io/enkerewpo/robonix_ros:latest
```

Or build locally:

```bash
git clone --recurse-submodules https://github.com/syswonder/robonix.git
cd docker
./run.sh -b # Builds and runs local image
```

1. install ROS2 humble: https://docs.ros.org/en/humble/Installation.html
2. build your driver and capability ROS2 node (enter the folder and run build.sh or colcon build)
### Manual Setup

## Startup
1. **Build robonix-cli**:

```bash
cd robonix
python3 ./manager/boot.py --config {YOUR_BOOT_CONFIG}
cd rust/robonix-cli
cargo build
```

Please see examples configs in `config/include`.
2. **Setup packages directory**:

## Action Programming and Simulation
```bash
mkdir -p ~/.robonix
rm -rf ~/.robonix/packages
ln -s "$(realpath ../provider/)" ~/.robonix/packages
export FASTRTPS_DEFAULT_PROFILES_FILE=
```

3. **Build robonix-sdk**:

```bash
cd rust/robonix-sdk
./build_ros2.sh
```

for user action programming and simulation, you need to install the following packages:
4. **Start robonix-core** (in a separate terminal):

```bash
pip install rich loguru mcp pyyaml argparse # basic packages for uapi and manager
pip install grpcio grpcio-tools genesis-world pynput # if you want to use genesis simulator
pip install openai python-dotenv # for LLM-generated action
cd rust/robonix-core
cargo run --
```

run `python3 ./simulator/genesis/robot1.py` to start the genesis simulator, then run example python scripts in `./simulator/examples` to run the abstract action program.
robonix-core provides the following EAIOS API services:
- **Primitive API** (`/rbnx/prm/*`): Primitive registration and query
- **Service API** (`/rbnx/srv/*`): Standard service registration and query
- **Skill API** (`/rbnx/skl/*`): Skill registration and query
- **Task API** (`/rbnx/task/*`): Task submission, status query, and result retrieval

5. **Configure robonix-cli**:

```bash
cd rust/robonix-cli
cargo run -- config --set-sdk-path ../robonix-sdk
cargo run -- config -s
```

## Install and Register Packages

### Install Packages

```bash
cd rust/robonix-cli

# Install package from GitHub
cargo run -- package install --github https://github.com/enkerewpo/demo-package-01-robonix
cargo run -- package list

# Build all packages
cargo run -- package build all
```

### Register Packages

Use recipe files to register primitives, services, and skills:

```bash
cd rust/robonix-cli

# Register recipe
cargo run -- deploy register demo_recipe.yaml

# Start all registered packages
cargo run -- deploy start

# View status
cargo run -- deploy status
```

## Create and Execute Tasks

### Create Task

```bash
cd rust/robonix-cli

# Create task from natural language
cargo run -- task create "Pick up the red box on the table"

# View task details
cargo run -- task get task_0
```

## License

See LICENSE file for details.
5 changes: 5 additions & 0 deletions config/include/nvidia_server.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
driver:
capability:
skill:
- spatial
brain:
3 changes: 2 additions & 1 deletion config/include/ranger_test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,8 @@ skill:
- vision
- semantic_map
- test_skill
- pointcloud
- spatial
- asr
brain:
- test_brian

Expand Down
77 changes: 77 additions & 0 deletions docker/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
FROM osrf/ros:humble-desktop

ENV ROS_DOMAIN_ID=0
ENV ROS_LOCALHOST_ONLY=0
# ENV FASTRTPS_DEFAULT_PROFILES_FILE=/root/shared/fast.xml
# ENV RMW_IMPLEMENTATION=rmw_fastrtps_cpp

# RUN apt-get update && apt-get install -y \
# ca-certificates \
# wget gnupg && \
# wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/cuda-keyring_1.1-1_all.deb && \
# dpkg -i cuda-keyring_1.1-1_all.deb && \
# apt-get update && \
# apt-get install -y cuda-toolkit-12-4 && \
# rm cuda-keyring_1.1-1_all.deb

# RUN wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh && \
# bash Miniconda3-latest-Linux-x86_64.sh -b -p /opt/miniconda3 && \
# rm Miniconda3-latest-Linux-x86_64.sh

RUN apt update && apt install -y \
ros-humble-rmw-fastrtps-cpp \
python3-pip \
python3-dev \
build-essential \
git \
wget \
libeigen3-dev \
libgl1-mesa-glx \
libglib2.0-0 \
libsm6 \
libxext6 \
libxrender-dev \
bzip2 \
libosmesa6 \
libglu1-mesa \
libglfw3 \
libglfw3-dev \
mesa-utils \
libclang-dev python3-vcstool

# RUN apt update && apt install -y curl && \
# curl -fsSL https://pkgs.tailscale.com/stable/ubuntu/focal.noarmor.gpg | tee /usr/share/keyrings/tailscale-archive-keyring.gpg >/dev/null && \
# curl -fsSL https://pkgs.tailscale.com/stable/ubuntu/focal.tailscale-keyring.list | tee /etc/apt/sources.list.d/tailscale.list && \
# apt update && \
# apt install -y tailscale && \
# pip3 install --upgrade pip

# ENV PATH=/opt/miniconda3/bin:$PATH

# RUN conda tos accept || true && \
# conda create -n env1 python=3.10 -y && \
# conda clean -ya

# RUN conda config --set solver classic && \
# conda config --set channel_priority flexible

# install some basic packages in the env1 conda env
# RUN conda run -n env1 pip install intel-openmp && \
# conda run -n env1 pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu124

# RUN conda run -n env1 pip install git+https://github.com/colcon/colcon-cargo.git && \
# conda run -n env1 pip install git+https://github.com/colcon/colcon-ros-cargo.git

# CUDA 12.4 toolkit installs to /usr/local/cuda by default
# Also set up version-specific paths for compatibility
# ENV CUDA_HOME=/usr/local/cuda
# ENV CUDA_PATH=/usr/local/cuda
# ENV PATH=/usr/local/cuda/bin:$PATH
# RUN echo 'export LD_LIBRARY_PATH=/usr/local/cuda/lib64:/usr/local/cuda/compat:${LD_LIBRARY_PATH:-}' >> ~/.bashrc
ENV NVIDIA_VISIBLE_DEVICES=all
ENV NVIDIA_DRIVER_CAPABILITIES=compute,utility

# install rust
RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y

WORKDIR /root/workspace
Loading
Loading