Skip to content

rd record_calibration_poses starts but leader arms cannot be moved because teleoperation is not started #3

Description

@tron-ann

I ran into an issue after cloning and running the repository.

When running rd record_calibration_poses, the command starts normally, cameras open correctly, and CAN interfaces are detected. However, both leader arms become stiff / unresponsive in the calibration pose recording mode, so I cannot move the leaders to record calibration poses as described in the instructions.
In contrast, rd teleop works normally, and regular teleoperation is possible.

Cause:
After tracing the code, it looks like setup_for_teleop_recording() in raiden/robot/controller.py initializes the robots, moves them home, and puts the leaders into gravity compensation mode, but it does not actually call start_teleoperation().
As a result, the leaders enter gravity compensation, but the leader-follower teleoperation loop is never started.

Workaround / fix:
I was able to fix this locally by adding:

self.start_teleoperation()
at the end of setup_for_teleop_recording() in:

raiden/robot/controller.py

So the function becomes:

def setup_for_teleop_recording(self):
    """Complete setup for teleoperation-based recording: init -> home -> grav comp"""
    # Check CAN interfaces
    print("Checking CAN interfaces...")
    self.check_can_interfaces()

    # Initialize robots
    self.initialize_robots(gravity_comp_mode=False)

    # Move to home positions
    self.move_to_home_positions(simultaneous=True)

    # Enable gravity compensation mode for leaders only
    print(
        "  - Disabling position control on leaders for gravity compensation mode..."
    )
    if self.leader_r:
        self.leader_r.update_kp_kd(kp=np.zeros(6), kd=np.zeros(6))
    if self.leader_l:
        self.leader_l.update_kp_kd(kp=np.zeros(6), kd=np.zeros(6))
    print("✓ Leaders in gravity compensation mode")

    # Gripper ready signal
    self.signal_ready_with_grippers()

    # Footpedal soft e-stop (optional)
    print("Initializing footpedal...")
    self.attach_footpedal()

    self.start_teleoperation()

After this change, the leaders can be moved and the followers follow as expected during calibration pose recording.

I’m sharing this here in case it helps others.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions