41 lines
1.1 KiB
Python
41 lines
1.1 KiB
Python
from .grasp import GraspStage, PickStage, HookStage
|
|
from .place import PlaceStage
|
|
from .insert import InsertStage, HitStage
|
|
from .slide import SlideStage
|
|
from .pour import PourStage
|
|
from .pull import PullStage
|
|
from .push import PushStage
|
|
from .pull_revolute import PullRevoluteStage
|
|
from .press import PressPrismaticStage
|
|
from .twist import TwistStage
|
|
|
|
ACTION_STAGE = {
|
|
"grasp": GraspStage,
|
|
"pick": PickStage,
|
|
"hook": HookStage,
|
|
"place": PlaceStage,
|
|
"insert": InsertStage,
|
|
"slide": SlideStage,
|
|
"shave": NotImplemented,
|
|
"brush": NotImplemented,
|
|
"wipe": NotImplemented,
|
|
"hit": NotImplemented,
|
|
"pour": PourStage,
|
|
"push": PushStage,
|
|
'click': PressPrismaticStage,
|
|
'touch': PressPrismaticStage,
|
|
"pull": PullStage,
|
|
# ---- Articulate ----
|
|
"pull_revolute": PullRevoluteStage,
|
|
"push_revolute": NotImplemented,
|
|
"pull_prismatic":PullStage,
|
|
"push_prismatic":PushStage,
|
|
"twist": TwistStage,
|
|
'press_prismatic': PressPrismaticStage,
|
|
}
|
|
|
|
def build_stage(action):
|
|
if action not in ACTION_STAGE:
|
|
raise NotImplementedError
|
|
return ACTION_STAGE[action]
|