RoboWaiter/robowaiter/robot/robot.py

38 lines
1.1 KiB
Python
Raw Normal View History

import os
import py_trees as ptree
2023-11-08 15:28:01 +08:00
from robowaiter.behavior_tree.utils import load_bt_from_ptml,find_node_by_name,print_tree_from_root
class Robot(object):
scene = None
2023-10-25 22:12:15 +08:00
response_frequency = 1
def __init__(self,ptml_path,behavior_lib_path):
self.ptml_path = ptml_path
self.behavior_lib_path = behavior_lib_path
2023-10-25 22:12:15 +08:00
self.next_response_time = self.response_frequency
self.step_num = 0
def set_scene(self,scene):
self.scene = scene
def load_BT(self):
self.bt = load_bt_from_ptml(self.scene, self.ptml_path,self.behavior_lib_path)
2023-11-08 15:28:01 +08:00
sub_task_seq = find_node_by_name(self.bt.root,"SubTaskPlaceHolder").parent
sub_task_seq.children.pop()
print(sub_task_seq.children)
2023-10-25 22:12:15 +08:00
def step(self):
if self.scene.time > self.next_response_time:
self.next_response_time += self.response_frequency
self.step_num += 1
print(f"==== step: {self.step_num}, time:{self.scene.time:f}s ======")
self.bt.tick()
print("\n")
if __name__ == '__main__':
pass