Files
issacdataengine/docs_crawled/api_controllers.md
Tangger 3d6b73753a feat: add test tube pick task with custom assets and grasp annotations
- Add pick_test_tube task: USDC asset repackaging, grasp generation, task config
- Add tools: usdc_to_obj.py, repackage_test_tube.py, fix_test_tube_materials.py
- Add custom_task_guide.md: full Chinese documentation for creating custom tasks
- Add crawled InternDataEngine online docs (23 pages)
- Add grasp generation script (gen_tube_grasp.py) and pipeline config
2026-04-05 11:01:59 +08:00

4.6 KiB
Raw Permalink Blame History

Source: https://internrobotics.github.io/InternDataEngine-Docs/api/controllers.html

Controllers API Reference

This page provides API documentation for the controller module.

TemplateController

Base class for all robot arm controllers.

Constructor

python

TemplateController(cfg, task, robot_file: str, **kwargs)

1

**Parameters: **

| Parameter | Type | Description | | cfg | DictConfig | Controller configuration | | task | BananaBaseTask | Task instance | | robot_file | str | Path to CuRobo robot config |

Properties

| Property | Type | Description | | raw_js_names | List[str] | Joint names in CuRobo order | | cmd_js_names | List[str] | Joint names in simulation order | | arm_indices | np.ndarray | Arm joint indices | | gripper_indices | np.ndarray | Gripper joint indices | | _gripper_state | float | Gripper state (1.0=open, -1.0=closed) |

Methods

_configure_joint_indices(robot_file: str)

Configure joint names and indices. **Must be implemented by subclass. **

_get_default_ignore_substring() -> List[str]

Return default collision filter substrings. **Must be implemented by subclass. **

get_gripper_action() -> np.ndarray

Map gripper state to joint targets. **Must be implemented by subclass. **

_load_world(use_default: bool = True)

Load world configuration for motion planning.

**Returns: **WorldConfig

_get_motion_gen_collision_cache() -> dict

Return collision cache sizes.

**Returns: **{"obb": int, "mesh": int}

_get_grasp_approach_linear_axis() -> int

Return grasp approach axis (0=x, 1=y, 2=z).

**Returns: **int (default: 2)

_get_sort_path_weights() -> Optional[List[float]]

Return weights for path selection.

**Returns: **List[float] or None

plan_to_pose(target_pose)

Plan motion to target pose.

**Parameters: **

  • target_pose : Tuple of (position, orientation)

**Returns: **bool - Success status

execute_plan()

Execute the planned trajectory.

set_gripper_state(state: float)

Set gripper state.

**Parameters: **

  • state : 1.0 for open, -1.0 for closed

get_current_joint_state() -> np.ndarray

Get current joint positions.

**Returns: **np.ndarray of joint positions

Lift2Controller

Controller for ARX-Lift2 dual-arm robot. python

@register_controller
class Lift2Controller(TemplateController):
    def _get_grasp_approach_linear_axis(self) -> int:
        return 0  # x-axis

1 2 3 4

**Features: **

  • Dual-arm support
  • Custom world configuration
  • X-axis grasp approach

SplitAlohaController

Controller for Agilex Split Aloha dual-arm robot. python

@register_controller
class SplitAlohaController(TemplateController):
    def _get_grasp_approach_linear_axis(self) -> int:
        return 2  # z-axis

1 2 3 4

**Features: **

  • Dual-arm support
  • Z-axis grasp approach
  • Optional joint control

Genie1Controller

Controller for Genie1 dual-arm robot. python

@register_controller
class Genie1Controller(TemplateController):
    def _get_sort_path_weights(self) -> List[float]:
        return [1, 1, 1, 1, 3, 3, 1]

1 2 3 4

**Features: **

  • 7-DOF per arm
  • Path selection weights
  • Custom world configuration

FR3Controller

Controller for Franka FR3 single-arm robot. python

@register_controller
class FR3Controller(TemplateController):
    def _get_motion_gen_collision_cache(self):
        return {"obb": 1000, "mesh": 1000}

1 2 3 4

**Features: **

  • Single-arm support
  • Panda gripper
  • Larger collision cache

FrankaRobotiq85Controller

Controller for Franka with Robotiq 2F-85 gripper. python

@register_controller
class FrankaRobotiq85Controller(TemplateController):
    def get_gripper_action(self):
        return np.clip(
            -self._gripper_state * self._gripper_joint_position,
            0.0, 5.0
        )

1 2 3 4 5 6 7

**Features: **

  • Single-arm support
  • Robotiq 2F-85 gripper
  • Inverted gripper mapping