chars-main is the ROS 2 meta-repository for the CHARS stack. It keeps package code split across independent GitHub repositories and uses a single chars-main.repos file so anyone can bootstrap the full workspace with vcs import.
We are building the next generation of autonomous robotic swarms to tackle complex physical challenges, from dynamic logistics and large-scale construction to disaster recovery.
For decades, robotics has relied on highly specialized, expensive, and fragile single-unit systems. We believe the future is different. Inspired by swarm intelligence, our approach shifts the paradigm toward complexity via simplicity: coordinated teams of diverse, accessible robots that collaborate to accomplish massive, long-horizon tasks faster, more reliably, and at lower cost than any single machine.
Managing a swarm in an unpredictable real-world environment usually requires expert operators who can write scripts and coordinate many robots directly. Field operators such as construction supervisors or emergency responders often cannot afford that overhead.
This is the bottleneck we are solving.
By combining the conversational reasoning of Large Language Models (LLMs) with the safety and consistency of symbolic planning, we are creating an intelligent control architecture where users can issue high-level commands in natural language and let the system handle execution. The platform interprets the physical context, decomposes goals into subtasks, and converts human intent into coordinated physical action.
Integrating LLMs into robotics is promising, but current multi-agent systems still face major operational limits in real environments.
Many frameworks rely on standard assignment solvers or integer programming to allocate tasks. These methods can be mathematically strong, but they often compute for the entire team at once. As swarm size increases or when the environment changes rapidly, computation costs can spike and create unacceptable delays.
Many systems also behave like closed-loop pipelines. If a robot fails, loses capability, or encounters a blocked path, the whole system may need a full replan. In high-risk and time-sensitive missions, that latency becomes a critical weakness.
| Demo 1 | Demo 2 |
single_agent_demo.mp4 |
multi_agent_demo.mp4 |
- Clone the meta repo:
git clone https://github.com/alphanome-ai/chars-main.git
cd chars-main
chmod +x setup.sh- Run one-command setup (imports packages + installs dependencies):
./setup.sh ~/chars_ws- Build the workspace:
cd ~/chars_ws
colcon build --symlink-install
source install/setup.basharuco_depth_fusionchars_dashboardmobman_moveit_confignav2_proximity_waitplansys2_vlm_plannerswarm_bringupswarm_descriptionswarm_interfaces
All repos are pulled into src/<package_name> via chars-main.repos.
The setup script does the following:
- Creates workspace directory and
src/if needed - Imports repositories using vcstool
- Sources ROS 2 environment (defaults to
humbleifROS_DISTROis unset) - Runs
rosdep update - Runs
rosdep install --from-paths <ws>/src --ignore-src -r -y - Prints final
colcon buildandsource install/setup.bashcommands
Run it with default workspace path:
./setup.shOr provide a custom workspace path:
./setup.sh ~/chars_wsInstall prerequisites:
sudo apt update
sudo apt install -y python3-vcstool python3-rosdep python3-colcon-common-extensionsCreate workspace and import repos:
mkdir -p ~/chars_ws/src
cd ~/chars_ws
vcs import . < /path/to/chars-main/chars-main.reposInstall ROS dependencies:
source /opt/ros/${ROS_DISTRO:-humble}/setup.bash
sudo rosdep init # ignore if already initialized
rosdep update
rosdep install --from-paths src --ignore-src -r -yBuild and source:
colcon build --symlink-install
source install/setup.bashFrom workspace root:
cd ~/chars_ws
vcs pull src