77import numpy as np
88from rcs ._core .common import Pose
99from rcs ._core .sim import SimRobot
10- from rcs .envs .base import GripperWrapper
10+ from rcs .envs .base import ControlMode , GripperWrapper , RelativeTo
1111from rcs .envs .configs import EmptyWorldFR3
1212
1313import rcs
1919class PickUpDemo :
2020 def __init__ (self , env : gym .Env ):
2121 self .env = env
22- self ._robot = cast (SimRobot , self .env .get_wrapper_attr ("robot" ))
22+ self ._robot = cast (SimRobot , self .env .get_wrapper_attr ("robot" ))[ "robot" ]
2323 self .home_pose = self ._robot .get_cartesian_position ()
2424
2525 def _action (self , pose : Pose , gripper : list [float ]) -> dict [str , Any ]:
26- return {"xyzrpy" : pose .xyzrpy (), "gripper" : [gripper ]}
26+ return {"robot" :{ " xyzrpy" : pose .xyzrpy (), "gripper" : [gripper ]} }
2727
2828 def get_object_pose (self , geom_name ) -> Pose :
2929 model = self .env .get_wrapper_attr ("sim" ).model
@@ -86,6 +86,8 @@ def pickup(self, geom_name: str):
8686def main ():
8787 scene = EmptyWorldFR3 ()
8888 cfg = scene .config ()
89+ cfg .control_mode = ControlMode .CARTESIAN_TRPY
90+ cfg .relative_to = RelativeTo .NONE
8991 cfg .sim_cfg .realtime = False
9092 cfg .sim_cfg .async_control = True
9193 cfg .max_relative_movement = None
@@ -98,10 +100,10 @@ def main():
98100 env = scene .create_env (cfg )
99101 env .get_wrapper_attr ("sim" ).open_gui ()
100102 # wait for gui to open
101- sleep (3 )
103+ # sleep(3)
102104 for _ in range (100 ):
103105 env .reset ()
104- print (env .get_wrapper_attr ("robot" ).get_cartesian_position ().translation ()) # type: ignore
106+ # print(env.get_wrapper_attr("robot").get_cartesian_position().translation()) # type: ignore
105107 controller = PickUpDemo (env )
106108 controller .pickup ("box_geom" )
107109
0 commit comments