Skip to main content

IsaacArm

Inherits from: Arm, ZenohAgent Isaac Sim arm implementation backed by Zenoh. This class provides an interface to control a simulated arm in Isaac Sim using Zenoh clients for poses, joints, and gripper control.

Inherited methods

  • From Arm: setNamedPose, removeNamedPose, getNamedPose
  • From Robot: addSensor, cleanup
  • From ZenohAgent: create_clients, getForce, getTorque, sendVelocity, sendPose, publishMsg, getMsg, getJointVelocities, getJointStates, getObjectPose, setObjectPose, run, prompt, reset

init

IsaacArm.__init__(config = default_isaac_config, clients: Optional[dict] = None)
Initialize an Isaac Sim arm interface.
Arguments
config (dict)
dict
Configuration dictionary containing Zenoh topics and settings. (default: default_isaac_config)
clients (Optional[dict])
Optional[dict]
Pre-created Zenoh clients to reuse instead of creating new ones. (default: None)

getImage

IsaacArm.getImage(camera_name: str = '', image_type: Optional[str] = 'rgb') -> Image
Get an image from a camera client.
Arguments
camera_name (str)
str
Name of the image client to read from. If empty, selects the default camera based on image_type. (default: "")
image_type (Optional[str])
Optional[str]
Image type used to select the default camera. Accepts “rgb” or “depth”. (default: “rgb”)
Returns
Image
Image
Captured image wrapped in the project’s Image type.
Raises
ValueError
If an invalid image_type is provided.

moveByVelocity

IsaacArm.moveByVelocity(linear_velocity: Velocity, angular_velocity: Velocity, frame: str = 'body')
Move the arm by specifying linear and angular velocities.
Arguments
linear_velocity (Velocity)
Velocity
required
Linear velocity components.
angular_velocity (Velocity)
Velocity
required
Angular velocity components.
frame (str)
str
Reference frame for the velocity command. (default: “body”)

moveToPose

IsaacArm.moveToPose(position: Position, orientation: Orientation, blocking: bool = True, moving_time: float = 0.3, accel_time: float = 0.15)
Move the end effector to an absolute pose. This method sends a single command to move the end effector to the specified absolute position and orientation.
Arguments
position (Position)
Position
required
Target position in meters (x, y, z).
orientation (Orientation)
Orientation
required
Target orientation as a quaternion (x, y, z, w).
blocking (bool)
bool
Whether to block until the move completes. (unused) (default: True)
moving_time (float)
float
Time allowed for movement in seconds. (unused) (default: 0.3)
accel_time (float)
float
Acceleration time in seconds. (unused) (default: 0.15)

moveToDeltaPose

IsaacArm.moveToDeltaPose(position: Position, orientation: Orientation, blocking: bool = True, moving_time: float = 0.3, accel_time: float = 0.15)
Move the end effector to a relative pose.
Arguments
position (Position)
Position
required
Desired relative position of the end effector.
orientation (Orientation)
Orientation
required
Desired relative orientation of the end effector.
blocking (bool)
bool
Whether to block until the move completes. (unused) (default: True)
moving_time (float)
float
Time allowed for movement in seconds. (unused) (default: 0.3)
accel_time (float)
float
Acceleration time in seconds. (unused) (default: 0.15)

getState

IsaacArm.getState() -> dict
Get the current state of the arm.
Returns
dict
dict
Current state including position, orientation, and joint positions.

getPosition

IsaacArm.getPosition() -> Optional[Position]
Get the current position of the end effector.
Returns
Optional[Position]
Optional[Position]
Current position of the end effector.

getOrientation

IsaacArm.getOrientation() -> Orientation
Get the current orientation of the end effector.
Returns
Orientation
Orientation
Current orientation of the end effector as a quaternion (x, y, z, w).

grasp

IsaacArm.grasp()
Close the gripper.

release

IsaacArm.release()
Open the gripper.

getJointAngles

IsaacArm.getJointAngles() -> Optional[list]
Get the current joint angles of the arm.
Returns
Optional[list]
Optional[list]
List of current joint angles in radians.

setJointAngles

IsaacArm.setJointAngles(joint_positions: list, blocking: bool = True, moving_time: float = 2.0, accel_time: float = 0.5) -> None
Set the joint angles of the arm.
Arguments
joint_positions (list)
list
required
List of joint angles for the robot in radians.
blocking (bool)
bool
Whether to block until the move completes. (unused) (default: True)
moving_time (float)
float
Time allowed for movement in seconds. (unused) (default: 2.0)
accel_time (float)
float
Acceleration time in seconds. (unused) (default: 0.5)
Returns
returns
None

stop

IsaacArm.stop(immediate: bool = False)
Stop the robot.
Arguments
immediate (bool)
bool
Whether to stop immediately. (unused) (default: False)