You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
60 lines
1.4 KiB
60 lines
1.4 KiB
from abc import abstractmethod
|
|
|
|
from decoupled_wbc.control.base.env import Env
|
|
from decoupled_wbc.control.base.sensor import Sensor
|
|
from decoupled_wbc.control.robot_model.robot_model import RobotModel
|
|
|
|
|
|
class Hands:
|
|
"""Container class for left and right hand environments.
|
|
|
|
Attributes:
|
|
left: Environment for the left hand
|
|
right: Environment for the right hand
|
|
"""
|
|
|
|
left: Env
|
|
right: Env
|
|
|
|
|
|
class HumanoidEnv(Env):
|
|
"""Base class for humanoid robot environments.
|
|
|
|
This class provides the interface for accessing the robot's body, hands, and sensors.
|
|
"""
|
|
|
|
def body(self) -> Env:
|
|
"""Get the robot's body environment.
|
|
|
|
Returns:
|
|
Env: The body environment
|
|
"""
|
|
pass
|
|
|
|
def hands(self) -> Hands:
|
|
"""Get the robot's hands.
|
|
|
|
Returns:
|
|
Hands: Container with left and right hand environments
|
|
"""
|
|
pass
|
|
|
|
def sensors(self) -> dict[str, Sensor]:
|
|
"""Get the sensors of this environment
|
|
|
|
Returns:
|
|
dict: A dictionary of sensors
|
|
"""
|
|
pass
|
|
|
|
@abstractmethod
|
|
def robot_model(self) -> RobotModel:
|
|
"""Get the robot model of this environment
|
|
This robot model is used to dispatch whole body actions to body
|
|
and hand actuators and to reconstruct proprioceptive
|
|
observations from body and hands.
|
|
|
|
Returns:
|
|
RobotModel: The robot model
|
|
"""
|
|
pass
|