Controllers for connecting embodiments (robots, simulators, sensors, IoT devices) to FEAGI's neural engine. This repository contains controllers for common platforms, and you can create your own.
Prerequisite: FEAGI and Brain Visualizer must be started before launching any controller. See FEAGI Installation Guide for setup.
- Controller = Software that bridges an embodiment to FEAGI (this repository)
- Agent = Autonomous entity with decision-making capability
- Embodied Agent = Embodiment + Controller + FEAGI Brain working together
The controller is the bridge. The agent is the result when everything works together with autonomy.
This repository is organized into two main categories:
Real-world hardware platforms organized by manufacturer:
- Robots: Petoi (Bittle), Elephant Robotics (MyCobot), Digital Dream Labs (Cozmo), Freenove, uFactory (Lite 6), Neuromaker (Hand 2)
- Microcontrollers: Arduino, ESP32, Raspberry Pi, Micro:bit
- BCI: Interaxon
- Sensors: Hokuyo LiDAR
- Drones: Ryze (Tello)
- Other: Elecfreaks (Cutebot), Neuraville (audio, video, webcam), Keystudio
Virtual environments for development and testing:
- MuJoCo: Physics simulation (humanoid, ant, reacher). Generic controller at
simulators/mujoco/. - Gazebo: Robotics simulator
- Webots: Robot simulator
- Blender: 3D environment integration
-
Start FEAGI and Brain Visualizer first (required):
feagi start feagi bv start
See FEAGI Installation Guide if not yet installed.
-
Clone the repository:
git clone https://github.com/feagi/embodiment-controllers.git cd embodiment-controllersOr, if using the FEAGI 2.0 monorepo:
cd embodiment-controllersfrom the project root. -
Navigate to your controller:
cd embodiments/petoi/bittle # or (MuJoCo: controller at simulators/mujoco root) cd simulators/mujoco
-
Set up Python environment:
python3 -m venv venv source venv/bin/activate # Linux/macOS # Windows: venv\Scripts\activate pip install -r requirements.txt
-
Run the controller:
# Local FEAGI (default 127.0.0.1:8000) python controller.py # Remote FEAGI python controller.py --ip 192.168.1.100 --port 8000
MuJoCo and some controllers require additional arguments (e.g.
--feagi-zmq-motor-port,--model_xml). See each controller'sREADME.mdfor details.
Want to connect FEAGI to your own robot or device?
- Read the standard: CONTROLLER_STANDARD.md
- Use the template:
embodiments/template/ - Follow the structure: Required files and conventions
- Test thoroughly: Local, Docker, and cloud environments
- Submit a PR: Contribute back to the community
For detailed guidance, see:
- CONTROLLER_STANDARD.md - Technical requirements
- docs/create_controller.md - Development guide
- connectivity.md - Connection options
Controllers in this repository are open source (Apache 2.0) and community-maintained.
Want your controller to be easily installable by end users through the FEAGI Marketplace?
- Ensure your controller follows CONTROLLER_STANDARD.md
- Submit to the marketplace (coming soon: marketplace.feagi.io/submit)
- Neuraville will review, package, and distribute
- Users can install with one click from FEAGI Desktop or Cloud
The marketplace handles:
- Quality assurance
- Professional packaging
- Media and documentation
- Easy installation
- User support
embodiment-controllers/
├── embodiments/
│ ├── arduino/
│ ├── petoi/
│ │ ├── bittle/
│ │ ├── bluetooth/
│ │ └── pyserial/
│ ├── elephant_robotics/
│ ├── esp32/
│ ├── microbit/
│ ├── digital_dream_labs/
│ │ └── cozmo_1.0/
│ ├── template/
│ └── ...
├── simulators/
│ ├── mujoco/ # Generic controller (ant, humanoid, reacher models)
│ ├── gazebo/
│ ├── webots/
│ └── blender/
├── docs/
│ └── create_controller.md
├── CONTROLLER_STANDARD.md # Technical requirements
├── connectivity.md # Connection guide
└── README.md # You are here
Join the FEAGI community:
- Discord: FEAGI Community
- Twitter/X: @neuraville
- YouTube: Neuraville Channel
- LinkedIn: FEAGI Group
We welcome contributions! Please:
- Fork this repository
- Follow CONTROLLER_STANDARD.md
- Test your controller thoroughly
- Submit a pull request
See also: FEAGI Contribution Guide
All controllers in this repository are distributed under the Apache 2.0 License.