Skip to content

lt-asset/selp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

23 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

SELP

This repository provides artifacts for the paper "SELP: Generating Safe and Efficient Task Plans for Robot Agents with Large Language Models" (ICRA 2025).

Installation

Clone the repository:

 git clone https://github.com/lt-asset/selp.git

Create a fresh conda environment from the repository root:

conda create -n selp python=3.11 -y
conda activate selp
conda install -c conda-forge spot -y
python -m pip install --upgrade pip
python -m pip install -e ".[ml,dev]"
python -m pip install openai

spot is required for semantic LTL equivalence and automaton-based plan checking. Install it from conda-forge.

If the default PyTorch wheel does not match your CUDA driver, install the appropriate PyTorch build first, then rerun:

python -m pip install -e ".[ml,dev]"

Check the install:

python -c "import selp; print('selp import ok')"
python -c "import spot; print('spot import ok')"

Models

Fine-tuned model weights will be released soon.

Quick Starts

Set your OpenAI key before running the full pipeline:

export OPENAI_API_KEY=your_api_key

The full SELP pipeline runs explanation, paraphrase, local LTL translation, equivalence voting, constrained plan generation, and final plan evaluation:

python scripts/run_example_pipeline_eval.py \
  --input data/example_test_data.jsonl \
  --eval-dir eval_log \
  --explanation-system-prompt-file prompts/explanation_system.txt \
  --explanation-user-prompt-file prompts/explanation_user.txt \
  --paraphrase-system-prompt-file prompts/paraphrase_system.txt \
  --paraphrase-user-prompt-file prompts/paraphrase_user.txt \
  --ltl-model-path /path/LLMs/ltl-model \
  --ltl-tokenizer-path codellama/CodeLlama-7b-hf \
  --planner-model-path /path/LLMs/plan-model \
  --planner-tokenizer-path meta-llama/Llama-2-7b-hf \
  --num-ltl-samples 10 \
  --ltl-temperature 0.6 \
  --planner-temperature 0.6 \
  --max-plan-steps 80

Pipeline outputs are written under --eval-dir:

  • openai_explanations.jsonl
  • openai_paraphrases.jsonl
  • ltl_translation_raw.jsonl
  • ltl_voting.jsonl
  • combined_formulas.jsonl
  • generated_plans.jsonl
  • plan_eval.jsonl
  • run_summary.json

To stop after an intermediate stage, add one of these options to the full pipeline command:

--stop-after openai
--stop-after raw_ltl
--stop-after voting
--stop-after plans

The plan-generation stage follows the online constrained-decoding design: it builds the automaton from the combined LTL formula, then validates each next action during trie-based decoding.

Standalone Utilities

Run direct NL-to-LTL inference without the explanation/paraphrase stages:

python scripts/infer_ltl.py input.jsonl ltl_predictions.jsonl \
  --model-path ./path/LLMs/ltl-model \
  --tokenizer-path codellama/CodeLlama-7b-hf \
  --description-field description \
  --output-field model_output \
  --num-return-sequences 10

Run semantic equivalence voting over generated LTL candidates:

python scripts/equivalence_vote.py predictions.jsonl voted.jsonl --formula-field formula --candidates-field model_output

Vote over raw full-pipeline LTL samples and combine component formulas:

python scripts/vote_and_combine_ltl.py --input data/example_test_data.jsonl --eval-dir eval_log

Generate plans with constrained decoding:

python scripts/constrained_plan_generate.py combined_formulas.jsonl plans.jsonl \
  --model-path /path/LLMs/plan-model \
  --tokenizer-path meta-llama/Llama-2-7b-hf \
  --formula-field formula \
  --description-field description \
  --env-field env_data

Citation

@inproceedings{wu2025selp,
  title={SELP: Generating safe and efficient task plans for robot agents with large language models},
  author={Wu, Yi and Xiong, Zikang and Hu, Yiran and Iyengar, Shreyash S and Jiang, Nan and Bera, Aniket and Tan, Lin and Jagannathan, Suresh},
  booktitle={2025 IEEE International Conference on Robotics and Automation (ICRA)},
  pages={2599--2605},
  year={2025},
  organization={IEEE}
}

About

For our ICRA 2025 paper πŸ† "SELP: Generating Safe and Efficient Task Plans for Robot Agents with Large Language Models" by Yi Wu, Zikang Xiong, Yiran Hu, Shreyash Iyengar, Nan Jiang, Aniket Bera, Lin Tan, and Suresh Jagannathan. (πŸ† Best Paper Award Finalist!)

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages