Skip to content

dos-group/llarm

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

llarm

This project investigates how Large Language Models (LLMs) can directly orchestrate robot behavior, bridging high-level intentions and low-level action sequences. PyBullet is used as a reproducible simulation environment to prototype and evaluate LLM-guided policies for a robotic gripper arm, including grasping, placement, and simple manipulation routines.

The pipeline translates natural-language goals into structured action plans, executes them in PyBullet, and incorporates state feedback and failure signals to refine prompts, constraints, and controllers. The objective is to map language to reliable closed-loop control, benchmarking success rates, safety, and sample efficiency entirely in simulation before transferring to hardware.

Furthermore, the project aims to provide diverse environments for investigating different aspects of workflow generation within this context.

Components

World

The WorldManager abstracts the environment in PyBullet and provides a unified interface for querying objects. It consists of instances of WorldObject for retrieving object related details such as the orientation or the position. It is used for providing environment related information to the prompt.

Controller

The ArmController abstracts required joint movements and implements related state management. It provides high-level methods for performing gripper opening, closing and moving.

Workflow

The WorkflowManager and its related classes provide the infrastructure for workflow generation, transitions, and event handling. The WorkflowGenerator class is responsible for interfacing with an external LLM. NodeTransformer classes, such as WorkflowAsynchronousNodeTransformer, implement visitors for transforming Abstract Syntax Tree (AST) representations of LLM-generated workflows. While WorkflowFunctions offers a high-level interface to registered functions, WorkflowEventListeners provides signaling and hooking mechanisms that are useful for extension, tracing, and debugging.

Base Environment

The base environment serves as the foundation for all other environments by implementing common behaviors and shared scene objects.

Freestanding Environment

The freestanding environment is designed for experimenting with different LLMs and tasks. Intentions can be entered directly into the console from which the application was launched. The commands listed below allow resetting, exiting, or debugging the environment. Configuration of a specific LLM is handled via environment variables.

Install (pip)

pip install -r requirements.txt

Environment Variables

Key Description Default
MODEL_NAME LLM model name None
MODEL_TEMPERATURE LLM model temperature None
MODEL_URL URL to the chat completions endpoint None
MODEL_KEY API key for the chat completions endpoint None

Run

python3 -m "src.environment.freestanding"

Commands

Name Action
reset Reset the environment, including gripper and object positions and joint states
exit Exit the application
break Breakpoint call to the python debugger

Reinforcement Learning Environment (TODO)

The reinforcement learning environment is intended for adapting models using reinforcement learning. Its implementation is not yet complete.

Environment Variables

Key Description Default
MODEL_NAME LLM model name None
MODEL_TEMPERATURE LLM model temperature None
MODEL_URL URL to the chat completions endpoint None
MODEL_KEY API key for the chat completions endpoint None

Run

python3 -m "src.environment.reinforcement_learning"

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages