diff --git a/README.md b/README.md
deleted file mode 100644
index 788ba14e..00000000
--- a/README.md
+++ /dev/null
@@ -1,221 +0,0 @@
-
-
![LOGO](/kios_logo.png)
-
-
-# KIOS --- Knowledge-based Intelligent Operation System
-
-This is a project for robot task planning and execution based on langchain agent (langgraph), LLM, behavior tree and robot expert skills.
-
-> BB: I'm now finishing my master thesis and the project is still under development. The LLM planning functionality has been fully tested and the behavior tree executor has also been proven to work well.
-
-> BB: I'm now concentrating on generating more data and using them for local model finetuning. The finetuned gpt-3.5-turbo model is now the llm model for generating the unit behavior trees in the behavior tree offline expanding loop, while the mistral 7B model finetuned with QLora 4bit in the llama-factory platform can work equivalently as the unit behavior tree generator. More data is being generated by gpt-4 and collected for the next step to finetuning state forecasting models and sequential planning models.
-
-> BB: To save your time, the tutorial part of the project is still unter construction. You may jump to the "something to try" part to see if there are any updates. BB will fill up the tutorial part as soon as possible.
-
-- About the old version:
-The behavior tree executor is implemented based on project BehaviorTree.CPP. See `kios_cpp`.
-Some of the components are implemented in python. See `kios_py`.
-
-> BB: For the old version, please check `old_readme.md`. The old version will be archived and will not be updated anymore.
-
-- About the new version:
-The no-ros version, which aims at simplizing the system structure, is now actively developed.
-For this part see `kios_bt_planning`.
-
-- About robot interface:
-For people who don't have access to mios, you may deploy your own methods to generate robot commands in "mios_task_factory.py" and your own methods to execute the commands in "robot_command.py".
-
-## Intro
-
-KIOS is a robot task planning system developed by BlackBird for his master thesis. The system is currently under development and is not ready for use.
-
-The system is mainly written in python. The idea is to integrate the LLM (large language model) into the robot task planning system for automatic behaviortree generation and modification.
-
-The LLM is used for generating the task plan in the form of behavior trees based on the provided domain knowledge (prompt engineering or RAG). The APIs for generating, modifying and executing the behavior trees are exposed to the LLM agent. With the feedback from the robot(also the nature language feedbacks from the user), the LLM agent can modify the behavior tree and generate new plans dynamically to finish the robotic assembly tasks.
-
-The usecases are from the siemens robot assembly challenge and the furniture-bench.
-
-## Contents
-
-* [What is KIOS?](#what-is-KIOS)
-* [Getting started](#getting-started)
- * [Requirements](#requirements)
- * [Install](#install)
- * [Packages](#packages)
- * [Usage](#usage)
- * [System Structure](#system-structure)
- * [Something to try](#something-to-try)
- * [Testing](#testing)
- * [Development Log](#development-log)
-* [Contribute](#contribute)
-* [License](#license)
-* [Sources](#sources)
-* [More](#more)
-
-## What is KIOS?
-
-
-## Getting Started
-
-### Requirements
-
-**For the client side:**
-- Ubuntu 20.04 LTS
-- conan 1.59.0 (conan 2 is not compatible with the project mios)
-- linux Realtime kernal. This is the requirement of robot control interface (1000Hz control loop). For walkthrough please check [here](https://frankaemika.github.io/docs/installation_linux.html#setting-up-the-real-time-kernel).
-
-**For the server side (if you want to try the local inference models):**
-- Ubuntu 20.04 LTS
-- CUDA 12.1 or higher
-- RAM 32GB or higher
-- GPU 24GB or higher
-
-### Install
-
-It is highly recommended to use a virtual environment for the project.
-
-```bash
-conda create -n kios python=3.10
-conda activate kios
-```
-
-1. Install dependency packages.
-
-```bash
-pip3 install -r requirements.txt
-sudo apt-get install graphviz
-# install the package kios_bt_planning
-cd kios_bt_planning
-pip3 install -e .
-```
-
-2. (Skip this if you do not need world state visualization) install neo4j.
-
-The application can be downloaded from [here](https://github.com/neo4j/neo4j-python-driver).
-
-After setting up the neo4j server, please change in the neo4j interface in `kios_bt_planning/kios_world` to your pw.
-
-
-3. Set up the mios (branch = kios) and the franka robot.
-
-4. Install llama.cpp according to the [docs](https://github.com/abetlen/llama-cpp-python?tab=readme-ov-file#supported-backends). Please aware that you need to enable CUDA backend.
-
-```bash
-# in the virtual environment
-CMAKE_ARGS="-DLLAMA_CUBLAS=on" pip install llama-cpp-python
-```
-
-> BB: Go to check the project [mios](https://gitlab.lrz.de/ki_fabrik_integration/MIRMI-public/mios) for more information. The docker image's name is "mirmi/mios", but is not compatible with this project. The skills necessary for the robot manipulation in kios are still being actively developed. A new docker image will be released as soon as possible.
-
-### Packages
-- experiments: the experiment files of different problems.
- - chair...
- - gearset...
- - scene
- - domain
- - problem
-- kios_bt_planning
- - kios_agent: the agents for task planning and behavior tree generating
- - kios_llm_bt: prompt engineering files for end-to-end behavior tree generating
- - kios_bt: modules for basic behavior tree functionality.
- - Behavior nodes (actions and conditions)
- - The factory class for generating behavior trees
- - Behavior tree json interface
- - Mios asynchronization module
- - ...
- - kios_domain: domain knowledge written in pddl with unified-planning
- - pddl python interfaces.
- - domain knowledge definitions.
- - ...
- - kios_planner: discarded now
- - kios_robot: robot modules for real-world robot manipulation
- - kios_vision
- - robot_interface: interface methods to execute the actions in behavior trees.
- - robot_proprioceptor: class for interacting with the robot (get/set states).
- - mios_task_factory: task factory for miosskill, mioscall and kioscall.
- - mios_async: asynchronization module for robot_command
- - robot_command: the command (list of calls/skills) for the robot.
- - kios_scene: modules for the task scene model
- - mongodb_interface
- - scene_factory
- - (scene-world_linker)
- - kios_world: modules for the world model
- - world_interface: interfaces for query/update the world state.
- - graph_interface: interfaces for interacting with inner world graph.
- - neo4j_interface: interfaces for neo4j database.
- - kios_utils: utility modules
- - tests: test files for the modules above.
-
-(old version packages)
-- kios_cpp: the behavior tree executor implemented in c++. discarded now.
-- kios_py: the behavior tree executor implemented in python. discarded now.
-- kios_cli: the command line interface for the project. discarded now.
-
-### Usage
-
-> BB: Now the functionality of the project is still under development.
-
-> BB: For now please try out the test files in `kios_bt_planning`.
-
-### System Structure
-
-
-
![The Concept](/TRI.png)
-
-
-### Something to try
-
-1. Set up your openai api-key.
-
-2. Set up langsmith.
-
-3. Set up huggingface.
-
-### Testing
-
-For module testing please check the test folder in `kios_bt_planning`.
-
-To use ipython for debug, install ipython in your environment (otherwise will use the system-wide interpreter):
-
-```bash
-conda install ipython
-```
-
-### Development Log
-
-For the old version see [old_dev_log.md](old_dev_log.md)
-
-## Contribute
-
-The project is still under development. You are welcome to contribute to the project by starting an issue or making a pull request.
-
-## License
-
-MIT License
-
-## Sources
-
-- [langchain](https://python.langchain.com/docs/get_started/introduction)
-- [langsmith](https://docs.smith.langchain.com/tracing)
-- [llama_cpp_python](https://github.com/abetlen/llama-cpp-python)
-- [llama_factory](https://github.com/hiyouga/LLaMA-Factory)
-- [Mistral](https://mistral.ai/technology/#models)
-- [llama2](https://llama.meta.com/llama2)
-- [ChatGPT-Robot-Manipulation-Prompts](https://github.com/microsoft/ChatGPT-Robot-Manipulation-Prompts)
-- [furniture-bench](https://github.com/clvrai/furniture-bench)
-- [mios_py_interface](https://gitlab.lrz.de/bblab/mios_py_interface)
-- [unified-planning](https://github.com/aiplan4eu/unified-planning)
-- [mios](https://gitlab.lrz.de/ki_fabrik_integration/MIRMI-public/mios)
-- [BehaviorTree.CPP](https://github.com/BehaviorTree/BehaviorTree.CPP)
-- [py_trees](https://github.com/splintered-reality/py_trees)
-- [neo4j](https://github.com/neo4j/neo4j-python-driver)
-- [websocketpp](https://github.com/zaphoyd/websocketpp)
-- [ros2](https://docs.ros.org/en/foxy/index.html)
-
-...
-
-## More
-
-The project is still under development. Please feel free to start an issue if you have any question or suggestion.
-
-The tutorial for the new version is still under construction. It will be released as soon as possible (maybe sometime around 15.04.2024, which is the deadline of my master thesis).
diff --git a/TRI.png b/TRI.png
deleted file mode 100644
index 12ffedb6..00000000
Binary files a/TRI.png and /dev/null differ
diff --git a/data/cook/cook_e2e/DISCARDED.md b/data/cook/cook_e2e/DISCARDED.md
deleted file mode 100644
index e69de29b..00000000
diff --git a/data/cook/cook_e2e/behaviortree.txt b/data/cook/cook_e2e/behaviortree.txt
deleted file mode 100644
index 4d79b87c..00000000
--- a/data/cook/cook_e2e/behaviortree.txt
+++ /dev/null
@@ -1,51 +0,0 @@
-[user]
-The behavior tree should be in json dictionary format.
-Following is a simple example:
-"""
-{
- "summary": "Selector to change the tool in the left hand from outwardgripper to defaultgripper",
- "name": "selector: change_tool(left_hand, outwardgripper, defaultgripper)",
- "children": [
- {
- "summary": "the target is that the left hand is holding the default gripper",
- "name": "target: hold(left_hand, defaultgripper)"
- },
- {
- "summary": "Sequence to change the tool in the left hand from outwardgripper to defaultgripper",
- "name": "sequence: change_tool(left_hand, outwardgripper, defaultgripper)",
- "children": [
- {
- "summary": "A precondition is that the left hand is holding the outwardgripper",
- "name": "precondition: hold(left_hand, outwardgripper)"
- },
- {
- "summary": "A precondition is that the outwardgripper is empty",
- "name": "precondition: is_empty(outwardgripper)"
- },
- {
- "summary": "The action to change the tool in the left hand from outwardgripper to defaultgripper",
- "name": "action: change_tool(left_hand, outwardgripper, defaultgripper)"
- }
- ]
- }
- ]
-}
-"""
-1. Every node are described by a summary and a name:
- - "summary": a short interpretive description of the node.
- - "name": includes the node type and the formal form of the node according to the domain knowledge. Legal node types are "selector", "sequence", "condition" ("target", "precondition"), "action".
-2. The control flow nodes, namely "selector" and "sequence", can have "children", which is a list of children nodes.
-3. The "condition" nodes that are children of "selectors" are targets. Those that are children of "sequences" are preconditions.
-4. All the node should always have their corresponding actions/precidates in the domain knowledge.
-5. Control flow nodes in behavior trees don't have memory. Each tick starts from the root and traverses all nodes, regardless of their previous state.
-6. The basic structure template of a unit subtree is:
- - A selector as the root node.
- - One target condition node as the first child of the selector to check if the target of this subtree has been satisfied.
- - A sequence node as the last child of the selector node to achieve the target condition node.
- - A number of precondition nodes as the first child nodes of the sequence node to check the action's preconditions.
- - One action node as the last child of the sequence node, whose preconditions are checked in the child condition nodes before.
- - The action should have effects that can fulfill the target condition node in the selector.
-
-7. If any precondition node will be unsatisfied when it is ticked, a unit subtree should be constructed to replace it, which take that precondition node as its target node and aims to achieve it. You should estimate the world state when the precondition is ticked (checked) according to the initial state and the effects of the actions executed before, then do this replacement repeatedly until all the preconditions are satisfied at the time they are ticked.
-8. The behavior tree should be constructed based on the action sequence you planned and the action definitions in ROBOT_ACTION_LIST.
-9. Control flow nodes (sequence nodes and selector nodes) don't have memory. Each tick starts from the root and traverses all nodes, regardless of their previous state.
\ No newline at end of file
diff --git a/data/cook/cook_e2e/chain.txt b/data/cook/cook_e2e/chain.txt
deleted file mode 100644
index ffcc4fc7..00000000
--- a/data/cook/cook_e2e/chain.txt
+++ /dev/null
@@ -1,9 +0,0 @@
-Follow this workflow to solve the task:
-1. Read the problem description. Parse the initial state and write into the "initial_state" in the output dictionary.
-2. Interpret the goal of the problem as goal_state and write into the "instruction_summary" in the output dictionary.
-3. Try to solve the problem, achieve the goal_state from the initial_state based on the domain knowledge provided. Generate a action sequence with the actions defined in and write it into dictionary["task_plan"]["action_sequence"] of the output.
-4. If you cannot find a plan to solve the task, ask question with nature language in the "question" of the output dictionary.
-5. Explain the actions in the action sequence and write the output dictionary["task_plan"]["action_instructions"].
-6. Collect the objects in the world that are affected by the action sequence, write into dictionary["task_plan"]["manipulated_objects"].
-7. Update the "initial_state" based on the affected objects you collected in the last step so irrelevant objects and relations/constraints are removed.
-8. Generate the behavior tree based on the action sequence and write into dictionary["task_plan"]["behavior_tree"].
\ No newline at end of file
diff --git a/data/cook/cook_e2e/domain.txt b/data/cook/cook_e2e/domain.txt
deleted file mode 100644
index 837729f4..00000000
--- a/data/cook/cook_e2e/domain.txt
+++ /dev/null
@@ -1,40 +0,0 @@
-Following is the domain knowledge you need, which includes:
-- the object types in the world,
-- the predicates for describing the states of the world,
-- the actions that the robot can apply, with their precondtions and effects defined.
-
-The object types are explained as follows:
-"""
-thing: The base class for all objects in the world. Its subclasses are: hand, utensil, food.
-hand: The robot hand. A empty can only hold one at a time.
-utensil: The utensil to contain, handle and cook .
-food: The food to be handled and cooked.
-"""
-
-The precidates are explained as follows:
-"""
-"PREDICATE_LIST"
-- is_empty(): is empty and can hold something.
-- can_manipulate(, ): can be used to manipulate (manipulation constraint). This regulates the compatibility between and .
-- can_insert_to(, ): can be inserted into (insertion assembly constraint)
-- hold(, ): is holding . It can be holding or holding .
-- is_inserted_to(, ): is inserted into (insertion assembly constraint is satisfied)
-"""
-
-The actions are explained as follows:
-"""
-"ROBOT_ACTION_LIST"
-- pick_up(, , ): use to pick up . As preconditions, should be holding and should be empty in order to hold the . The will be held by the as a result of this action.
-- put_down(, , ): use to put down . As preconditions, should be holding and should be holding . The target is to make the tool empty. The will be empty and will not hold the anymore as a result of this action.
-- place(, , , ): use to place to (to satisfy the placement assembly constraint between and ). As preconditions, should be holding and should be holding .
-- change_tool(, , ): change the equipped tool from to in order to manipulate specific parts. As preconditions, should be holding and should be empty.
-
-- cut(, , ): use to cut . As preconditions, should be holding and should be empty in order to hold the . The will be cut by the as a result of this action.
-
-- cook(, , ): use to cook . As preconditions, should be holding and should be empty in order to hold the . The will be cooked by the as a result of this action.
-- stir_and_fry(, , ): use to stir and fry . As preconditions, should be holding and should be empty in order to hold the . The will be stirred and fried by the as a result of this action.
-- serve(, , ): use to serve . As preconditions, should be holding and should be empty in order to hold the . The will be served by the as a result of this action.
-
-
-"""
-the items in <> indicate the type of the instances needed for the predicates and actions.
\ No newline at end of file
diff --git a/data/cook/cook_e2e/example copy.txt b/data/cook/cook_e2e/example copy.txt
deleted file mode 100644
index 615373fc..00000000
--- a/data/cook/cook_e2e/example copy.txt
+++ /dev/null
@@ -1,185 +0,0 @@
-I will give you some examples of the input and the output you will generate.
-Example 1:
-"""
-- Input:
-
-- Output:
-```
-{"task_plan": {
- "action_sequence": [
- "load_tool(left_hand, parallel_box1)",
- "pick_up(left_hand, parallel_box1, gear1)",
- "insert(left_hand, parallel_box1, gear1, shaft1)"
- ],
- "action_instructions": [
- "equip the parallel_box1 on the left hand",
- "pick up the gear1 with the parallel_box1 in the left hand",
- "insert the gear1 into the shaft1 using the parallel_box1 in the left hand"
- ],
- "behavior_tree": {
- "summary": "selector to insert gear1 into shaft1",
- "name": "selector: insert gear1 into shaft1",
- "children": [
- {
- "summary": "check if gear1 is inserted to shaft1",
- "name": "target: is_inserted_to(gear1, shaft1)",
- },
- {
- "summary": "sequence to insert gear1 into shaft1",
- "name": "sequence: insert(gear1, shaft1)",
- "children": [
- {
- "summary": "selector to load parallel_box1",
- "name": "selector: load_tool(left_hand, parallel_box1)",
- "children": [
- {
- "summary": "check if parallel_box1 is hold",
- "name": "target: hold(left_hand, parallel_box1)",
- },
- {
- "summary": "sequence to load parallel_box1",
- "name": "sequence: load_tool(left_hand, parallel_box1)",
- "children": [
- {
- "summary": "check if parallel_box1 is equippable",
- "name": "precondition: is_equippable(parallel_box1)",
- },
- {
- "summary": "check if left hand is free",
- "name": "precondition: is_free(left_hand)",
- },
- {
- "summary": "equip parallel_box1 to left hand",
- "name": "action: load_tool(left_hand, parallel_box1)",
- },
- ],
- },
- ],
- },
- {
- "summary": "selector to pick_up gear1",
- "name": "selector: pick_up(left_hand, parallel_box1, gear1)",
- "children": [
- {
- "summary": "check if parallel_box1 holds gear1",
- "name": "target: hold(parallel_box1, gear1)",
- },
- {
- "summary": "sequence to pick_up gear1",
- "name": "sequence: pick_up(left_hand, parallel_box1, gear1)",
- "identifier": 8,
- "type_name": "sequence",
- "children": [
- {
- "summary": "check if parallel_box1 is free",
- "name": "precondition: is_free(parallel_box1)",
- "identifier": 9,
- "type_name": "condition",
- "conditions": [
- {
- "object_name": "parallel_box1",
- "property_name": "is_free",
- "property_value": null,
- "status": true,
- }
- ],
- },
- {
- "summary": "check if left hand holds parallel_box1",
- "name": "precondition: hold(left_hand, parallel_box1)",
- "identifier": 16,
- "type_name": "condition",
- "conditions": [
- {
- "object_name": "left_hand",
- "property_name": "hold",
- "property_value": "parallel_box1",
- "status": true,
- }
- ],
- },
- {
- "summary": "pick up gear1 using parallel_box1",
- "name": "action: pick_up(left_hand, parallel_box1, gear1)",
- "identifier": 12,
- "type_name": "action",
- "effects": [
- {
- "object_name": "parallel_box1",
- "property_name": "hold",
- "property_value": "gear1",
- "status": true,
- },
- {
- "object_name": "parallel_box1",
- "property_name": "is_free",
- "property_value": null,
- "status": false,
- },
- ],
- },
- ],
- },
- ],
- },
- {
- "summary": "check if gear1 can be inserted to shaft1",
- "name": "precondition: can_insert_to(gear1, shaft1)",
- "identifier": 18,
- "type_name": "condition",
- "conditions": [
- {
- "object_name": "gear1",
- "property_name": "can_insert_to",
- "property_value": "shaft1",
- "status": true,
- }
- ],
- },
- {
- "summary": "insert gear1 to shaft1",
- "name": "action: insert(left_hand, parallel_box1, gear1, shaft1)",
- "identifier": 19,
- "type_name": "action",
- "effects": [
- {
- "object_name": "parallel_box1",
- "property_name": "hold",
- "property_value": "gear1",
- "status": false,
- },
- {
- "object_name": "parallel_box1",
- "property_name": "is_free",
- "property_value": null,
- "status": true,
- },
- {
- "object_name": "gear1",
- "property_name": "is_inserted_to",
- "property_value": "shaft1",
- "status": true,
- },
- ],
- },
- ],
- },
- ],
-}
-},
-"initial_state": {"objects": [
- {"name": "gear1", "properties": []},
- {"name": "shaft1", "properties": []},
- {"name": "parallel_box1", "properties": ["is_equippable", "is_free"]},
- {"name": "left_hand", "properties": ["is_free"]},
- ],
- "constraints": [
- {"source": "gear1", "name": "can_insert_to", "target": "shaft1"},
- {"source": "parallel_box1", "name": "can_manipulate", "target": "gear1"},
- ],
- "relations": [],
-},
-"instruction_summary": "insert gear1 into shaft1"
-}
-```
-"""
\ No newline at end of file
diff --git a/data/cook/cook_e2e/example.txt b/data/cook/cook_e2e/example.txt
deleted file mode 100644
index cf713974..00000000
--- a/data/cook/cook_e2e/example.txt
+++ /dev/null
@@ -1,81 +0,0 @@
-Following is an input/output example.
-Example 1:
-"""
-INPUT:
-target: "insert the gear1 into the shaft1"
-initial_state: {"objects": [
- {"name": "gear1", "properties": []},
- {"name": "shaft1", "properties": []},
- {"name": "parallel_box1", "properties": ["is_empty"]},
- {"name": "left_hand", "properties": []},
- ],
- "constraints": [
- {"source": "gear1", "name": "can_insert_to", "target": "shaft1"},
- {"source": "parallel_box1", "name": "can_manipulate", "target": "gear1"},
- ],
- "relations": [
- {"source": "left_hand", "name": "hold", "target": "parallel_box1"},
- ],
-}
-OUTPUT:
-{
- "thought": "At the start, the left hand is holding the parallel_box1, and the parallel_box1 is empty. According to the constraints, the gear1 can be inserted to the shaft1, and the parallel_box1 can manipulate the gear1. So, the gear1 can be picked up with the parallel_box1 in the left hand, and then the precondition hold(parallel_box1, gear1) is satisfied. Finally, the gear1 can be inserted into the shaft1 with the parallel_box1 in the left hand.",
- "action_sequence": [
- "pick_up(left_hand, parallel_box1, gear1)",
- "insert(left_hand, parallel_box1, gear1, shaft1)"
- ],
- "behavior_tree": {
- "summary": "selector to insert the gear1 into the shaft1 with the parallel_box1 in the left hand",
- "name": "selector: insert(gear1, shaft1, parallel_box1, left_hand)",
- "children": [
- {
- "summary": "check the target that gear1 is inserted to shaft1",
- "name": "target: is_inserted_to(gear1, shaft1)"
- },
- {
- "summary": "sequence to insert the gear1 into the shaft1 with the parallel_box1 in the left hand",
- "name": "sequence: insert(gear1, shaft1, parallel_box1, left_hand)",
- "children": [
- {
- "summary": "check the precondition that the left hand is holding the parallel_box1",
- "name": "precondition: hold(left_hand, parallel_box1)"
- },
- {
- "summary": "selector to pick_up the gear1 with the parallel_box1 in the left hand",
- "name": "selector: pick_up(left_hand, parallel_box1, gear1)",
- "children": [
- {
- "summary": "check the target that the parallel_box1 is holding the gear1",
- "name": "target: hold(parallel_box1, gear1)"
- },
- {
- "summary": "sequence to pick_up the gear1 with the parallel_box1 in the left hand",
- "name": "sequence: pick_up(left_hand, parallel_box1, gear1)",
- "children": [
- {
- "summary": "check the precondition that the parallel_box1 is empty",
- "name": "precondition: is_empty(parallel_box1)"
- },
- {
- "summary": "check the precondition that the left hand is holding the parallel_box1",
- "name": "precondition: hold(left_hand, parallel_box1)"
- },
- {
- "summary": "the action to pick_up the gear1 with the parallel_box1 in the left hand",
- "name": "action: pick_up(left_hand, parallel_box1, gear1)"
- }
- ]
- }
- ]
- },
- {
- "summary": "the action to insert the gear1 into the shaft1 with the parallel_box1 in the left hand",
- "name": "action: insert(left_hand, parallel_box1, gear1, shaft1)"
- }
- ]
- }
- ]
- }
-}
-
-
diff --git a/data/cook/cook_e2e/output_format.txt b/data/cook/cook_e2e/output_format.txt
deleted file mode 100644
index c38fc403..00000000
--- a/data/cook/cook_e2e/output_format.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-The output json obejct has the following keys:
-"""
-- "thought": A brief explanation of the thinking process behind the action sequence.
-- "action_sequence": A sequential list of robot actions. Only the actions defined in the "ROBOT_ACTION LIST" will be used.
-- "behavior_tree": A json dictionary form behavior tree constructed according to the "action_sequence"
-"""
\ No newline at end of file
diff --git a/data/cook/cook_e2e/state.txt b/data/cook/cook_e2e/state.txt
deleted file mode 100644
index 665700ba..00000000
--- a/data/cook/cook_e2e/state.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-Information about world states should be in json dictionary format.
-It contains three lists:
- - objects: the objects and their properties (as lists of strings) in the world. The properties can be changed by robot actions.
- - constraints: the constraint relations that are enforced and should not be changed. They are knowledge about the world or some constraints set by the user.
- - relations: the relations in the world. They can be changed by robot actions.
-The properties, constraints and relations should always align with the [PREDICATE_LIST] in the domain knowledge.
\ No newline at end of file
diff --git a/data/cook/cook_e2e/system.txt b/data/cook/cook_e2e/system.txt
deleted file mode 100644
index cb531830..00000000
--- a/data/cook/cook_e2e/system.txt
+++ /dev/null
@@ -1 +0,0 @@
-You are an excellent interpreter of instructions for robotic assembly tasks.
\ No newline at end of file
diff --git a/data/cook/cook_e2e/task.txt b/data/cook/cook_e2e/task.txt
deleted file mode 100644
index e039d429..00000000
--- a/data/cook/cook_e2e/task.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-The input are:
-target: The target that you make the sequential plan and construct the behavior tree to achieve.
-initial_state: The initial state that you start from.
-
-You analyze the target, refer to the domain knowledge to understand it, make an action sequence and construct a behavior tree based on it.
-Your output should be a json object which follows the regulated format.
\ No newline at end of file
diff --git a/data/cook/cook_e2e/template.txt b/data/cook/cook_e2e/template.txt
deleted file mode 100644
index 9f3f5b61..00000000
--- a/data/cook/cook_e2e/template.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-Resume from the input below.
-"""
-target: {target}
-initial_state: {initial_state}
-"""
\ No newline at end of file
diff --git a/data/examples/behavior_tree_skeleton.json b/data/examples/behavior_tree_skeleton.json
deleted file mode 100644
index c1dc06a5..00000000
--- a/data/examples/behavior_tree_skeleton.json
+++ /dev/null
@@ -1,28 +0,0 @@
-{
- "summary": "Selector to change the tool in the left hand from outwardgripper to defaultgripper",
- "name": "selector: change_tool(left_hand, outwardgripper, defaultgripper)",
- "children": [
- {
- "summary": "the target is that the left hand is holding the default gripper",
- "name": "target: hold(left_hand, defaultgripper)"
- },
- {
- "summary": "Sequence to change the tool in the left hand from outwardgripper to defaultgripper",
- "name": "sequence: change_tool(left_hand, outwardgripper, defaultgripper)",
- "children": [
- {
- "summary": "A precondition is that the left hand is holding the outwardgripper",
- "name": "precondition: hold(left_hand, outwardgripper)"
- },
- {
- "summary": "A precondition is that the outwardgripper is empty",
- "name": "precondition: is_empty(outwardgripper)"
- },
- {
- "summary": "The action to change the tool in the left hand from outwardgripper to defaultgripper",
- "name": "action: change_tool(left_hand, outwardgripper, defaultgripper)"
- }
- ]
- }
- ]
-}
\ No newline at end of file
diff --git a/data/examples/world_state.json b/data/examples/world_state.json
deleted file mode 100644
index 19105d78..00000000
--- a/data/examples/world_state.json
+++ /dev/null
@@ -1,25 +0,0 @@
-{
- "objects": [
- {"name": "clampgripper", "properties": ["is_empty"]},
- {"name": "outwardgripper", "properties": []},
- {"name": "defaultgripper", "properties": ["is_empty"]},
- ...
- {"name": "gear1", "properties": []},
- {"name": "shaft1", "properties": []},
- ...
- {"name": "left_hand", "properties": []}
- ],
- "constraints": [
- {"source": "clampgripper", "name": "can_manipulate", "target": "shaft1"},
- {"source": "parallelgripper", "name": "can_manipulate", "target": "gear1"},
- ...
- {"source": "shaft1", "name": "can_insert_to", "target": "gearbase_hole1"},
- {"source": "gear1", "name": "can_insert_to", "target": "shaft1"}
- ...
- ],
- "relations": [
- {"source": "left_hand", "name": "hold", "target": "outwardgripper"},
- {"source": "outwardgripper", "name": "hold", "target": "gear3"}
- ]
-}
-
diff --git a/data/finetuning/finetuning_messages.jsonl b/data/finetuning/finetuning_messages.jsonl
deleted file mode 100644
index a1cef79a..00000000
--- a/data/finetuning/finetuning_messages.jsonl
+++ /dev/null
@@ -1,10 +0,0 @@
-{"messages": [{"role": "system", "content": "You are an excellent behavior tree builder for robotic assembly tasks"}, {"role": "user", "content": "You are an excellent task planner for robotic assembly tasks. Given the information about the world states and some instructions, you construct robot task plans represented by behaiovr trees. \n\n The input are:\naction: The action that you construct the unit subtree from.\n\nYou analyze the action, refer to the domain knowledge to understand the action, and construct a unit subtree for it.\nThe unit subtree should follow the regulated format.\nYou only return the unit subtree as a json object that is ready to be parsed.\n\n Following is the domain knowledge you need in pddl domain format, which includes:\n- the object types in the world,\n- the predicates for describing the states of the world,\n- the actions that the robot can apply, with their precondtions and effects defined.\n\"\"\"\n(define (domain robot_assembly_problem-domain)\n (:requirements :strips :typing)\n (:types\n thing - object\n tool part hand - thing\n )\n (:predicates (is_free ?p - thing) (is_equippable ?tool - tool) (can_manipulate ?tool - tool ?part - part) (can_insert_to ?part1 - part ?part2 - part) (can_screw_to ?part1 - part ?part2 - part) (can_place_to ?part1 - part ?part2 - part) (hold ?thing1 - thing ?thing2 - thing) (is_inserted_to ?part1 - part ?part2 - part) (is_screwed_to ?part1 - part ?part2 - part) (is_placed_to ?part1 - part ?part2 - part))\n (:action pick_up\n :parameters ( ?hand - hand ?tool - tool ?part - part)\n :precondition (and (is_free ?tool) (hold ?hand ?tool) (can_manipulate ?tool ?part))\n :effect (and (hold ?tool ?part) (not (is_free ?tool))))\n (:action put_down\n :parameters ( ?hand - hand ?tool - tool ?part - part)\n :precondition (and (hold ?tool ?part) (hold ?hand ?tool))\n :effect (and (not (hold ?hand ?part)) (is_free ?tool)))\n (:action place\n :parameters ( ?hand - hand ?tool - tool ?part1 - part ?part2 - part)\n :precondition (and (hold ?hand ?tool) (hold ?tool ?part1) (can_place_to ?part1 ?part2))\n :effect (and (not (hold ?tool ?part1)) (is_free ?tool) (is_placed_to ?part1 ?part2)))\n (:action detach\n :parameters ( ?hand - hand ?tool - tool ?part1 - part ?part2 - part)\n :precondition (and (hold ?hand ?tool) (is_free ?tool) (can_manipulate ?tool ?part1) (is_placed_to ?part1 ?part2))\n :effect (and (hold ?tool ?part1) (not (is_free ?tool)) (not (is_placed_to ?part1 ?part2))))\n (:action insert\n :parameters ( ?hand - hand ?tool - tool ?part1 - part ?part2 - part)\n :precondition (and (hold ?hand ?tool) (hold ?tool ?part1) (can_insert_to ?part1 ?part2))\n :effect (and (not (hold ?tool ?part1)) (is_free ?tool) (is_inserted_to ?part1 ?part2)))\n (:action pull\n :parameters ( ?hand - hand ?tool - tool ?part1 - part ?part2 - part)\n :precondition (and (hold ?hand ?tool) (is_free ?tool) (is_inserted_to ?part1 ?part2) (can_manipulate ?tool ?part1))\n :effect (and (hold ?tool ?part1) (not (is_free ?tool)) (not (is_inserted_to ?part1 ?part2))))\n (:action screw\n :parameters ( ?hand - hand ?tool - tool ?part1 - part ?part2 - part)\n :precondition (and (hold ?hand ?tool) (hold ?tool ?part1) (can_screw_to ?part1 ?part2))\n :effect (and (not (hold ?tool ?part1)) (is_free ?tool) (is_screwed_to ?part1 ?part2)))\n (:action unscrew\n :parameters ( ?hand - hand ?tool - tool ?part1 - part ?part2 - part)\n :precondition (and (hold ?hand ?tool) (is_free ?tool) (is_screwed_to ?part1 ?part2) (can_manipulate ?tool ?part1))\n :effect (and (hold ?tool ?part1) (not (is_free ?tool)) (not (is_screwed_to ?part1 ?part2))))\n (:action load_tool\n :parameters ( ?hand - hand ?tool - tool)\n :precondition (and (is_equippable ?tool) (is_free ?hand))\n :effect (and (not (is_free ?hand)) (not (is_equippable ?tool)) (hold ?hand ?tool)))\n (:action unload_tool\n :parameters ( ?hand - hand ?tool - tool)\n :precondition (and (hold ?hand ?tool) (is_free ?tool))\n :effect (and (is_free ?hand) (is_equippable ?tool) (not (hold ?hand ?tool))))\n)\n\"\"\"\nThe precidates are explained as follows:\n\"\"\"\n\"PREDICATE_LIST\"\n- is_free( or ): or is free and can hold something. (default: true)\n- is_equippable(): is ready to be eqquipped by a robot hand. (default: true)\n- can_manipulate(, ): can be used to manipulate (manipulation constraint) (default: false)\n- can_insert_to(, ): can be inserted into (insertion assembly constraint) (default: false)\n- can_screw_to(, ): can be screwed into (screw assembly constraint) (default: false)\n- can_place_to(, ): can be placed into (placement assembly constraint) (default: false)\n- hold(, ): is holding (default: false)\n- is_inserted_to(, ): is inserted into (insertion assembly constraint is satisfied) (default: false)\n- is_screwed_to(, ): is screwed into (screw assembly constraint is satisfied) (default: false)\n- is_placed_to(, ): is placed into (placement assembly constraint is satisfied) (default: false)\n\"\"\"\n\nThe actions are explained as follows:\n\"\"\"\n\"ROBOT_ACTION_LIST\"\n- pick_up(, , ): use to pick up . As preconditions, should be holding and should be free to hold something.\n- put_down(, , ): use to put down . As preconditions, should be holding and should be holding .\n- place(, , , ): use to place to (to satisfy the placement assembly constraint between and ). As preconditions, should be holding and should be holding .\n- detach(, , , ): use to detach from (to lift the existing placement assembly constraint between and ). As preconditions, should be holding and should be free to manipulate , and should be placed into .\n- insert(, , , ): use to insert into (to satisfy the insertion assembly constraint between and ). As preconditions, should be holding and should be holding .\n- pull(, , , ): use to pull from (to lift the existing insertion assembly constraint between and ). As preconditions, should be holding and should be free to manipulate , and should be inserted into .\n- screw(, , , ): use to screw into (to satisfy the screw assembly constraint between and ). As preconditions, should be holding and