1717from dm_robotics .moma .models import utils as models_utils
1818from dm_robotics .moma .models .end_effectors .robot_hands import robot_hand
1919from dm_robotics .moma .models .robots .robot_arms import robot_arm
20- from dm_robotics .moma .sensors import (robot_arm_sensor , robot_tcp_sensor ,
21- site_sensor , wrench_observations )
20+ from dm_robotics .moma .sensors import (action_sensor , robot_arm_sensor ,
21+ robot_tcp_sensor , site_sensor ,
22+ wrench_observations )
2223from dm_robotics .transformations import transformations as tr
2324
2425from . import arm_constants as consts
@@ -373,10 +374,6 @@ def __init__(self, robot_params: params.RobotParams, arm: robot_arm.RobotArm):
373374 """
374375 super ().__init__ (arm , None , robot_params .name )
375376 self ._robot_params = robot_params
376- self ._empty_spec = specs .BoundedArray (shape = (0 ,),
377- dtype = np .float32 ,
378- minimum = 0 ,
379- maximum = 0 )
380377
381378 def after_compile (self , mjcf_model : mjcf .RootElement ,
382379 physics : mjcf .Physics ) -> None :
@@ -394,11 +391,6 @@ def set_control(self, physics: mjcf.Physics, command: np.ndarray) -> None:
394391 return
395392 super ().set_control (physics , command )
396393
397- def action_spec (self , physics : mjcf .Physics ) -> specs .BoundedArray :
398- if self ._robot_params .actuation == consts .Actuation .HAPTIC :
399- return self ._empty_spec
400- return super ().action_spec (physics )
401-
402394
403395@enum .unique
404396class ControlObservations (enum .Enum ):
@@ -519,13 +511,20 @@ def build_robot(robot_params: params.RobotParams,
519511 if robot_params .actuation in [
520512 consts .Actuation .JOINT_VELOCITY , consts .Actuation .HAPTIC
521513 ]:
522- _arm_effector = ArmEffector (robot_params , arm )
514+ joint_effector = ArmEffector (robot_params , arm )
515+ _arm_effector , spy_sensor = action_sensor .create_sensed_effector (
516+ joint_effector )
517+ robot_sensors .append (spy_sensor )
523518 elif robot_params .actuation == consts .Actuation .CARTESIAN_VELOCITY :
524519 joint_velocity_effector = ArmEffector (robot_params , arm )
525- _arm_effector = Cartesian6dVelocityEffector (robot_params , arm , gripper ,
520+ cart_effector = Cartesian6dVelocityEffector (robot_params , arm , gripper ,
526521 joint_velocity_effector ,
527522 tcp_sensor , control_timestep )
528523
524+ _arm_effector , spy_sensor = action_sensor .create_sensed_effector (
525+ cart_effector )
526+ robot_sensors .append (spy_sensor )
527+
529528 robot .standard_compose (arm , gripper )
530529 moma_robot = robot .StandardRobot (arm = arm ,
531530 arm_base_site_name = arm .base_site .name ,
0 commit comments