Skip to main content

Set up your embodied LLM agent same easiness as you set up normal agents in CrewAI or Autogen

Project description

๐Ÿค– RoboCrew

Build AI-powered robots that see, move, and manipulate objects โ€” in a few lines of code.

RoboCrew makes it stupidly simple to create LLM agents for physical robots. Think of it like building agents with CrewAI or AutoGen, except your agents live in the real world with cameras, microphones, wheels, and arms.

images/main.jpg

PyPI version GitHub stars Docs Discord


โœจ Features

  • ๐Ÿš— Movement - Pre-built wheel controls for mobile robots
  • ๐Ÿฆพ Manipulation - VLA models as tools for arms control
  • ๐Ÿ‘๏ธ Vision - Camera feed with automatic angle grid overlay for spatial understanding
  • ๐ŸŽค Voice - Wake-word activated voice commands and TTS responses
  • ๐Ÿ—บ๏ธ LiDAR - Top-down mapping with LiDAR sensor
  • ๐Ÿง  Intelligence - LLM agent control provides complete autonomy and decision making
  • ๐Ÿ“š Memory - Long-term memory to remember environment details

๐ŸŽฏ How It Works

How It Works Diagram

The RoboCrew Intelligence Loop:

  1. ๐Ÿ‘‚ Input - Voice commands, text tasks, or autonomous operation
  2. ๐Ÿง  LLM Processing - Gemini analyzes the task and environment
  3. ๐Ÿ› ๏ธ Tool Selection - AI chooses appropriate tools (move, turn, grab the apple, etc.)
  4. ๐Ÿค– Robot Actions - Wheels and arms execute commands
  5. ๐Ÿ“น Visual Feedback - Cameras capture results with augmented overlay
  6. ๐Ÿ”„ Adaptive Loop - LLM evaluates results and adjusts strategy

This closed-loop system creates AI agents that perceive โ†’ reason โ†’ act, but in the physical world!

๐ŸŽจ Supported Robots

  • โœ… XLeRobot - Full support for all features
  • ๐Ÿฅ LeKiwi - Use XLeRobot code (compatible platform)
  • ๐Ÿš™ Earth Rover mini plus - Full support
  • ๐Ÿ”œ More robot platforms coming soon! Request your platform โ†’

๐Ÿš€ Quick Start

pip install robocrew

To run GUI use:

robocrew-gui

๐Ÿ“ฑ Mobile Robot (XLeRobot)

from robocrew.core.camera import RobotCamera
from robocrew.core.LLMAgent import LLMAgent
from robocrew.robots.XLeRobot.tools import create_move_forward, create_turn_right, create_turn_left
from robocrew.robots.XLeRobot.servo_controls import ServoControler

# ๐Ÿ“ท Set up main camera
main_camera = RobotCamera("/dev/camera_center")  # camera usb port Eg: /dev/video0

# ๐ŸŽ›๏ธ Set up servo controller
right_arm_wheel_usb = "/dev/arm_right"  # provide your right arm usb port. Eg: /dev/ttyACM1
servo_controler = ServoControler(right_arm_wheel_usb=right_arm_wheel_usb)

# ๐Ÿ› ๏ธ Set up tools
move_forward = create_move_forward(servo_controler)
turn_left = create_turn_left(servo_controler)
turn_right = create_turn_right(servo_controler)

# ๐Ÿค– Initialize agent
agent = LLMAgent(
    model="google_genai:gemini-3-flash-preview",
    tools=[move_forward, turn_left, turn_right],
    main_camera=main_camera,
    servo_controler=servo_controler,
)

# ๐ŸŽฏ Give it a task and go!
agent.task = "Approach a human."
agent.go()

๐ŸŽค With Voice Commands

Add a microphone and speaker to give your robot voice commands and enable it to speak back to you:

agent = LLMAgent(
    model="google_genai:gemini-3-flash-preview",
    tools=[move_forward, turn_left, turn_right],
    main_camera=main_camera,
    servo_controler=servo_controler,
    sounddevice_index=2,  # ๐ŸŽ™๏ธ provide your microphone device index
    tts=True,  # ๐Ÿ”Š enable text-to-speech (robot can speak)
)

Then install Portaudio and Pyaudio for audio support:

sudo apt install portaudio19-dev
pip install pyaudio

Now just say something like "Hey robot, bring me a beer." โ€” the robot listens continuously and when it hears the wakeword "robot" anywhere in your command, it'll use the entire phrase as its new task.

๐Ÿ“– Full example: examples/2_xlerobot_listening_and_speaking.py


๐Ÿฆพ Add VLA Policy as a Tool

Let's make our robot manipulate with its arms!

First, you need to pretrain your own policy for it - reference here.

After you have your policy, run the policy server in a separate terminal. Let's create a tool for the agent to enable it to use a VLA policy:

from robocrew.robots.XLeRobot.tools import create_vla_single_arm_manipulation

# ๐ŸŽฏ Create a specialized manipulation tool
pick_up_notebook = create_vla_single_arm_manipulation(
    tool_name="Grab_a_notebook",
    tool_description="Manipulation tool to grab a notebook from the table and put it to your basket.",
    task_prompt="Grab a notebook.",
    server_address="0.0.0.0:8080",
    policy_name="Grigorij/act_right-arm-grab-notebook-2",
    policy_type="act",
    arm_port=right_arm_wheel_usb,
    servo_controler=servo_controler,
    camera_config={
        "main": {"index_or_path": "/dev/camera_center"},
        "right_arm": {"index_or_path": "/dev/camera_right"}
    },
    main_camera_object=main_camera,
    policy_device="cpu",
)

๐Ÿ“– Full example: examples/3_xlerobot_arm_manipulation.py

๐Ÿ”ง Give USB Ports Constant Names (Udev Rules)

To ensure your robot's components (cameras, arms, etc.) are always mapped to the same device paths, run the following script to generate udev rules:

robocrew-setup-usb-modules

This script will guide you through connecting each component one by one and will create the necessary udev rules to maintain consistent device naming.

After running the script, you can check the generated rules at /etc/udev/rules.d/99-robocrew.rules, or check the symlinks:

pi@raspberrypi:~ $ ls -l /dev/arm*
lrwxrwxrwx 1 root root 7 Dec 2 11:40 /dev/arm_left -> ttyACM4
lrwxrwxrwx 1 root root 7 Dec 2 11:40 /dev/arm_right -> ttyACM2

pi@raspberrypi:~ $ ls -l /dev/cam*
lrwxrwxrwx 1 root root 6 Dec 2 11:40 /dev/camera_center -> video0
lrwxrwxrwx 1 root root 6 Dec 2 11:40 /dev/camera_right -> video2

๐Ÿ“š Documentation

For detailed documentation, tutorials, and API references, visit our official documentation.

๐Ÿ’ฌ Community & Support

๐Ÿ™ Acknowledgments

Built with โค๏ธ for the robotics and AI community. Special thanks to all contributors and early adopters!

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

robocrew-0.2.0.tar.gz (333.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

robocrew-0.2.0-py3-none-any.whl (64.9 kB view details)

Uploaded Python 3

File details

Details for the file robocrew-0.2.0.tar.gz.

File metadata

  • Download URL: robocrew-0.2.0.tar.gz
  • Upload date:
  • Size: 333.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for robocrew-0.2.0.tar.gz
Algorithm Hash digest
SHA256 1b48aa02d4ea3a6acd54793736350daed44ee712ef8662db183d9fb29d61805d
MD5 2367e5ab75c16313cfdfdb6896d072ff
BLAKE2b-256 6e722aa61772426acf0bbdd631fcf25ad9909a46d81026a0d1a472d7f730e3d7

See more details on using hashes here.

Provenance

The following attestation bundles were made for robocrew-0.2.0.tar.gz:

Publisher: publish.yml on Grigorij-Dudnik/RoboCrew

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file robocrew-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: robocrew-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 64.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for robocrew-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 53894e8c8673bf277c17518b11d91343569326a95bcc92b431fc37b6df17ff34
MD5 5677ff26229af497e2bdd6011975c051
BLAKE2b-256 2c895ffcac85e19cc0d0f5641065eb536098a8710ab102b7a4019e5066615ee2

See more details on using hashes here.

Provenance

The following attestation bundles were made for robocrew-0.2.0-py3-none-any.whl:

Publisher: publish.yml on Grigorij-Dudnik/RoboCrew

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page