Skip to content
Merged
Show file tree
Hide file tree
Changes from 14 commits
Commits
Show all changes
66 commits
Select commit Hold shift + click to select a range
b964b09
feat: introduce webots demo package and enhance rust provider
enkerewpo Jan 4, 2026
5cd5203
feat: enhance robonix-core with web GUI and TF monitoring
enkerewpo Jan 4, 2026
aa69ef1
feat: add topic monitoring functionality to robonix-core
enkerewpo Jan 4, 2026
2e57854
feat: update demo service provider and enhance configuration
enkerewpo Jan 4, 2026
5fbd354
fix: fix RustDDS AService response bug
enkerewpo Jan 4, 2026
462b3a2
docs: update README with RUST_LOG configs
enkerewpo Jan 4, 2026
fe07c05
feat: enhance robonix-core with image monitoring and web GUI updates
enkerewpo Jan 5, 2026
b023dff
refactor: update test script and enhance ROS2 service call handling
enkerewpo Jan 5, 2026
ae7304a
fix: fixed multiple rbnx/core node bug
enkerewpo Jan 11, 2026
7027291
feat: update Docker and test framework for enhanced functionality
enkerewpo Jan 11, 2026
cc37da6
refactor: reorganize robonix-core modules and enhance skill library f…
enkerewpo Jan 12, 2026
91e085a
feat: enhance test framework and service integration
enkerewpo Jan 12, 2026
c82d062
feat: enhance font handling and reporting in test framework
enkerewpo Jan 12, 2026
5b070a6
Merge branch 'main' into dev/rust
enkerewpo Jan 12, 2026
ec177f4
refactor: update robot launch and controller configurations
enkerewpo Jan 17, 2026
6b7e807
fix: fixed webots ranger mini control bug when steering
enkerewpo Jan 17, 2026
ecc13a6
feat: enhance robot launch configuration and add camera info publisher
enkerewpo Jan 18, 2026
b587c89
feat: add initial setup for tiago_demo_package
enkerewpo Jan 18, 2026
ef3153a
feat: implement tiago_demo_package with navigation and camera capabil…
enkerewpo Jan 18, 2026
e216f8b
feat: update service and skill definitions in demo and navigation pro…
enkerewpo Jan 18, 2026
59da81c
feat: improve skill execution scripts and remove unused std_msgs module
enkerewpo Jan 18, 2026
f85857b
feat: enhance server thread management and add real-time priority sup…
enkerewpo Jan 18, 2026
8b2dcf4
feat: add ranger mini v3 demo package with four wheel steering contro…
enkerewpo Jan 19, 2026
065a35a
feat: introduce StdString struct for ROS2 message handling
enkerewpo Jan 19, 2026
68a51fd
feat: update demo recipe and navigation skills for AMCL integration
enkerewpo Jan 25, 2026
26bc09c
feat: implement Qwen-assisted object merging in semantic map service
enkerewpo Jan 25, 2026
7f8bc67
feat: remove ranger mini v3 demo package and associated files
enkerewpo Jan 25, 2026
7ea6681
feat: enhance object selection and error handling in task planning an…
enkerewpo Jan 25, 2026
05cf14b
feat: enhance error handling and status reporting in navigation skills
enkerewpo Jan 25, 2026
382353c
feat: enhance error handling and logging in task planning and navigat…
enkerewpo Jan 25, 2026
474001e
feat: update process cleanup commands and enhance semantic map service
enkerewpo Jan 25, 2026
3a7cfd5
refactor: restructure web module and update logging configuration
enkerewpo Jan 26, 2026
32f5993
feat: add Pyright configuration and refactor semantic map service
enkerewpo Jan 26, 2026
6d6a3ee
refactor: enhance Robonix client integration and streamline task hand…
enkerewpo Jan 26, 2026
54b8e4f
feat: set FastDDS as the default DDS implementation across various sc…
enkerewpo Jan 26, 2026
be72a98
refactor: update SkillEntry structure and improve JSON handling
enkerewpo Jan 26, 2026
04c89b8
feat: update dependencies and enhance configuration management
enkerewpo Jan 27, 2026
449fab5
feat: enhance speech configuration and agent functionality
enkerewpo Jan 27, 2026
7c6f915
feat: enhance configuration update responses and TTS error handling
enkerewpo Jan 27, 2026
0bb93db
refactor: update camera primitive references from capture to rgb
enkerewpo Jan 27, 2026
d8f0212
feat: update pose primitive references from amcl to cov
enkerewpo Jan 27, 2026
eb3b123
refactor: simplify CAN interface configuration in init.sh
enkerewpo Jan 27, 2026
23f1f93
chore: update versioning and maintainer information in manifest files
enkerewpo Jan 27, 2026
1d910e8
chore: remove deprecated documentation files and scripts
enkerewpo Jan 28, 2026
4d8e12e
feat: enhance navigation skill startup scripts with improved logging …
enkerewpo Jan 28, 2026
5f23ad3
refactor: improve logging formatting in navigation skills
enkerewpo Jan 28, 2026
16a8f3f
feat: implement manual object loading from configuration in semantic …
enkerewpo Jan 28, 2026
22cfc6c
fix: use sudo for apt-get commands in build.sh
enkerewpo Jan 29, 2026
58d1799
docs: update README files for clarity and new features
enkerewpo Jan 29, 2026
d2d552a
docs: enhance tiago_demo_package README with installation instructions
enkerewpo Jan 29, 2026
d884f86
feat: add task functionality to the daemon
enkerewpo Jan 30, 2026
9acb4b0
feat: add benchmark results and documentation for Robonix Test Framework
enkerewpo Jan 30, 2026
89e3d43
feat: add CLI and dev setup scripts for Robonix services
enkerewpo Jan 31, 2026
b310ab0
feat: enhance cleanup functionality in core scripts
enkerewpo Jan 31, 2026
99e1cc6
feat: implement cancellation handling in navigation skills
enkerewpo Jan 31, 2026
6bee925
feat: enhance initialization and cleanup scripts for Robonix
enkerewpo Feb 1, 2026
5ca6a9d
feat: add transform scan service and related configurations
enkerewpo Feb 1, 2026
5c80dc8
fix: update type hint for LaserScan return in transform_scan_service.py
enkerewpo Feb 1, 2026
1869542
feat: add forward primitive test script for navigation
enkerewpo Feb 1, 2026
8be473f
refactor: update service configurations and permissions
enkerewpo Feb 1, 2026
02ce7a9
feat: enhance target handling in MoveToObjectSkill
enkerewpo Feb 2, 2026
38680b9
docs: deprecate examples
enkerewpo Mar 3, 2026
234e029
chore: remove deprecated scripts and configuration files
enkerewpo Mar 3, 2026
50e0eb4
docs: update README.md with new warning format
enkerewpo Mar 3, 2026
a1623c2
feat: add Mulan Permissive Software License v2 to the project
enkerewpo Mar 3, 2026
f24adbf
feat: enhance README.md with new logo and architecture image
enkerewpo Mar 3, 2026
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
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -25,3 +25,4 @@ test_performance
publish_camera_tf.py
tailscale/
target
stress_test
4 changes: 3 additions & 1 deletion docker/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,9 @@ RUN apt update && apt install -y \
libglfw3 \
libglfw3-dev \
mesa-utils \
libclang-dev python3-vcstool
libclang-dev python3-vcstool \
bash-completion \
fonts-lmodern

# 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 && \
Expand Down
15 changes: 15 additions & 0 deletions docker/docker-entrypoint.sh
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,21 @@ source /opt/ros/humble/setup.bash

echo "source /opt/ros/humble/setup.bash" >> ~/.bashrc

# Enable bash completion
if [ -f /usr/share/bash-completion/bash_completion ]; then
. /usr/share/bash-completion/bash_completion
echo "# Enable bash completion" >> ~/.bashrc
echo "if [ -f /usr/share/bash-completion/bash_completion ]; then" >> ~/.bashrc
echo " . /usr/share/bash-completion/bash_completion" >> ~/.bashrc
echo "fi" >> ~/.bashrc
elif [ -f /etc/bash_completion ]; then
. /etc/bash_completion
echo "# Enable bash completion" >> ~/.bashrc
echo "if [ -f /etc/bash_completion ]; then" >> ~/.bashrc
echo " . /etc/bash_completion" >> ~/.bashrc
echo "fi" >> ~/.bashrc
fi

echo -e "[*] \033[1mWelcome to robonix docker environment!\033[0m Distro is: \033[33m$(lsb_release -ds 2>/dev/null || echo "Linux")\033[0m with ROS2 \033[33m$(echo $ROS_DISTRO)\033[0m"
exec bash

77 changes: 68 additions & 9 deletions rust/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,11 @@
# Robonix Makefile
#
# Convenient commands for building and running Robonix components
#
# Tab completion: bash-completion is installed in Docker container
# If tab completion doesn't work, ensure bash-completion is installed and enabled

.PHONY: help build build-cli build-core build-sdk debug release install install-cli install-core source-sdk env clean test check setup-dev fmt
.PHONY: help build build-cli build-core build-sdk debug release install install-cli install-core source-sdk env clean test test-all test-rust test-python test-cpp test-ros2 benchmark check setup-dev fmt test-framework
.DEFAULT_GOAL := help

# Default ROS2 distribution (can be overridden)
Expand Down Expand Up @@ -49,12 +52,22 @@ help:
@echo " make check - Run cargo check on all Rust projects"
@echo " make clean - Clean build artifacts"
@echo ""
@echo "Test commands:"
@echo " make test - Run all tests (Rust, Python)"
@echo " make test-rust - Run Rust CLI stress tests"
@echo " make test-python - Run Python stress tests"
@echo " make benchmark - Run benchmark suite with different concurrency levels"
@echo ""
@echo "Examples:"
@echo " make build"
@echo " make install"
@echo " rbnx config --show"
@echo " rbnx package list"
@echo " eval \$$(make source-sdk)"
@echo ""
@echo "Tab Completion:"
@echo " Tab completion for make targets is enabled automatically in Docker container"
@echo " If it doesn't work, ensure bash-completion package is installed"

# Build mode helper: determine cargo build flags
ifeq ($(BUILD_MODE),release)
Expand Down Expand Up @@ -186,9 +199,9 @@ env:
setup-dev:
@echo "Setting up development environment..."
@mkdir -p ~/.robonix
@if [ -L ~/.robonix/packages ]; then \
echo "Removing existing provider link..."; \
rm -f ~/.robonix/packages; \
@if [ -e ~/.robonix/packages ]; then \
echo "Removing existing packages path..."; \
rm -rf ~/.robonix/packages; \
fi
@ln -sf "$(PROVIDER_DIR)" ~/.robonix/packages
@echo "✓ Linked $(PROVIDER_DIR) to ~/.robonix/packages"
Expand All @@ -212,11 +225,57 @@ check:
cd $(CORE_DIR) && cargo check
@echo "✓ All checks passed"

test:
@echo "Running tests..."
cd $(CLI_DIR) && cargo test || true
cd $(CORE_DIR) && cargo test || true
@echo "✓ Tests completed"
# Test framework paths
TEST_FRAMEWORK_DIR := $(RUST_DIR)/tools/test_framework
TEST_RUST_DIR := $(TEST_FRAMEWORK_DIR)/rust_tests
TEST_PYTHON_DIR := $(TEST_FRAMEWORK_DIR)/python_tests
TEST_CPP_DIR := $(TEST_FRAMEWORK_DIR)/cpp_tests
TEST_ROS2_DIR := $(TEST_FRAMEWORK_DIR)/ros2_tests

# Test parameters (can be overridden)
CONCURRENCY ?= 3
REQUESTS ?= 1000
RATE ?= 100
DURATION ?= 0

# Test commands
test: test-all

test-all: test-rust test-python
@echo "✓ All tests completed"

test-rust:
@echo "Running Rust CLI stress tests (concurrency=$(CONCURRENCY), requests=$(REQUESTS))..."
@if [ -f "$(TEST_FRAMEWORK_DIR)/test.sh" ]; then \
bash $(TEST_FRAMEWORK_DIR)/test.sh rust rustdds $(CONCURRENCY) $(REQUESTS) $(RATE) $(DURATION); \
else \
echo "Test framework not found. Run 'make test-framework' first."; \
exit 1; \
fi

test-python:
@echo "Running Python stress tests (concurrency=$(CONCURRENCY), requests=$(REQUESTS))..."
@if [ -f "$(TEST_FRAMEWORK_DIR)/test.sh" ]; then \
bash $(TEST_FRAMEWORK_DIR)/test.sh python rustdds $(CONCURRENCY) $(REQUESTS) $(RATE) $(DURATION); \
else \
echo "Test framework not found. Run 'make test-framework' first."; \
exit 1; \
fi


benchmark:
@echo "Running benchmark suite with different concurrency levels..."
@if [ -f "$(TEST_FRAMEWORK_DIR)/benchmark.sh" ]; then \
bash $(TEST_FRAMEWORK_DIR)/benchmark.sh; \
else \
echo "Benchmark script not found."; \
exit 1; \
fi

test-framework:
@echo "Setting up test framework..."
@echo "✓ Test framework ready"
@echo "Run 'make test' to execute all tests"

# Clean commands
clean:
Expand Down
11 changes: 8 additions & 3 deletions rust/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -81,9 +81,12 @@ Keep this terminal running.
You can control the verbosity of robonix-core logs by setting the `RUST_LOG` environment variable:

```bash
# Show only info, warn, and error messages (default)
robonix-core
# preferred way to start robonix-core with debug logs and web GUI
ROBONIX_WEB_STATIC_DIR="$(pwd)/robonix-core/web_gui/static" \
ROBONIX_WEB_PORT=8000 \
RUST_LOG=robonix_core=debug robonix-core

# alternative ways for RUST_LOG options
# Show debug messages for robonix-core module
RUST_LOG=robonix_core=debug robonix-core
# Show debug messages for all modules, you can see rustdds logs too for example
Expand Down Expand Up @@ -123,6 +126,7 @@ rbnx package list
# View package details
rbnx package info <package_name>
# Build all packages
rbnx package build
rbnx package build all
```

Expand Down Expand Up @@ -245,7 +249,8 @@ ros2 service type /rbnx/task/submit

### Clean up all ROS2 processes
```bash
pkill -9 -f "ros2|robonix|rclpy|rclcpp|demo_rgb_provider"
pkill -9 -f "ros2|robonix|rclpy|rclcpp|demo_rgb_provider|stress|webots"
rm -f /dev/shm/sem.fastrtps_* /dev/shm/fastrtps_*
```

## System Architecture
Expand Down
2 changes: 1 addition & 1 deletion rust/demo_recipe.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ description: Demo recipe showing how to selectively register primitives, service
packages:
# Example 1: Register all primitives, services, and skills from a package
# (when primitives, services, and skills are not specified, all will be registered)
- name: demo_rgb_provider
- name: webots_demo_package
# primitives: [] # If not specified, all primitives will be registered
# services: [] # If not specified, all services will be registered
# skills: [] # If not specified, all skills will be registered
Expand Down
Empty file modified rust/provider/demo_package/rbnx/stop_capture_rgb.sh
100755 → 100644
Empty file.
Empty file modified rust/provider/demo_package/rbnx/stop_grasp_move.sh
100755 → 100644
Empty file.
Empty file modified rust/provider/demo_package/rbnx/stop_pick.sh
100755 → 100644
Empty file.
9 changes: 0 additions & 9 deletions rust/provider/demo_package_service/.env.example

This file was deleted.

This file was deleted.

Loading
Loading