Implementation:ARISE Initiative Robosuite TiagoRobot
| Knowledge Sources | |
|---|---|
| Domains | Robotics, Robot Modeling, Mobile Manipulation |
| Last Updated | 2026-02-15 07:00 GMT |
Overview
The Tiago class defines the robot model for the PAL Robotics TIAGo, a bimanual mobile manipulator with a torso lift joint and a pan-tilt head.
Description
The Tiago class extends ManipulatorModel to represent the TIAGo robot, a mobile manipulator created by PAL Robotics. It is configured as a bimanual robot with right and left arms, loading its MJCF model from robots/tiago/robot.xml. The robot uses a NullMobileBase as its default base platform.
Both arms are equipped with Robotiq85Gripper end-effectors. The default controller configuration specifies "joint_position" control for four body parts: right arm, left arm, head, and torso. This provides position-based joint control for all actuated degrees of freedom.
The initial joint configuration (init_qpos) is a 15-element array that includes the torso joint (index 0) and 7 joints per arm. The arms are initialized in a half-extended pose. End-effector names are defined as "right_hand" and "left_hand" for the two arms.
Workspace offsets are provided for bins, empty, and table arena configurations. The robot has a horizontal radius of 0.5 and a top offset of 1.0 in the z-direction.
Usage
Use this class when you need a bimanual mobile manipulator with head and torso control. The TIAGo is well-suited for tasks that require reaching, dual-arm coordination, and active perception through its pan-tilt head. Specify "Tiago" as the robot name when creating environments.
Code Reference
Source Location
Signature
class Tiago(ManipulatorModel):
arms = ["right", "left"]
def __init__(self, idn=0)
Import
from robosuite.models.robots.manipulators.tiago_robot import Tiago
I/O Contract
Inputs
| Name | Type | Required | Description |
|---|---|---|---|
| idn | int or str | No | Unique identification number or string for this robot instance (default: 0) |
Outputs
| Name | Type | Description |
|---|---|---|
| default_base | str | "NullMobileBase" |
| default_gripper | dict | {"right": "Robotiq85Gripper", "left": "Robotiq85Gripper"} |
| default_controller_config | dict | {"right": "joint_position", "left": "joint_position", "head": "joint_position", "torso": "joint_position"} |
| init_qpos | np.ndarray | 15-element array with torso joint and 7 joints per arm |
| arm_type | str | "bimanual" |
| _eef_name | dict | {"right": "right_hand", "left": "left_hand"} |
Usage Examples
import robosuite
# Create an environment with a Tiago robot
env = robosuite.make(
"Lift",
robots="Tiago",
has_renderer=True,
has_offscreen_renderer=False,
use_camera_obs=False,
)
obs = env.reset()
# Access robot properties
robot = env.robots[0]
print(f"Arms: {robot.robot_model.arms}") # ['right', 'left']
print(f"Arm type: {robot.robot_model.arm_type}") # "bimanual"