"alicia_d_leader" is missing from teleop.type, and "teleop.directly_controls_robot" support is missing from lerobot-teleoperate - #10
Open
linanw wants to merge 2 commits into
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
1. "alicia_d_leader" is missing from teleop.type
When using lerobot-teleoperate with Alicia-D Leader and Alicia-M Followe pair. User will see "alicia_d_leader" is a invalid choice. The cause is "alicia_d_leader" is missing from teleop.type in src/lerobot/scripts/lerobot_teleoperate.py. I add it back and created this PR.
Reproduce command and error message:
lerobot-teleoperate
--robot.type=alicia_m_follower
--robot.port=/dev/ttyACM1
--robot.id=alicia_m
--teleop.type=alicia_d_leader
--teleop.port=/dev/ttyACM0
--teleop.gripper_type=50mm
--teleop.directly_controls_robot=false
--teleop.target_follower_type=alicia_m
--teleop.id=alicia_d
usage: lerobot-teleoperate [-h] [--config_path str] [--teleop str]
[--teleop.type {so100_leader,bi_so100_leader,gamepad,homunculus_glove,homunculus_arm,keyboard,keyboard_ee,keyboard_rover,koch_leader,omx_leader,so101_leader}]
[--teleop.left_arm_port str] [--teleop.right_arm_port str]
[--teleop.side str] [--teleop.baud_rate str] [--teleop.use_gripper str]
[--teleop.linear_speed str] [--teleop.angular_speed str]
[--teleop.speed_increment str] [--teleop.turn_assist_ratio str]
[--teleop.angular_speed_ratio str] [--teleop.min_linear_speed str]
[--teleop.min_angular_speed str] [--teleop.gripper_open_pos str]
[--teleop.id str] [--teleop.calibration_dir str] [--teleop.port str]
[--teleop.use_degrees str] [--robot str]
[--robot.type {alicia_d_follower,alicia_m_follower,bi_alicia_d_follower,so100_follower,bi_so100_follower,earthrover_mini_plus,hope_jr_hand,hope_jr_arm,koch_follower,omx_follower,so101_follower}]
[--robot.gripper_type str] [--robot.speed_deg_s str] [--robot.version str]
[--robot.variant str] [--robot.base_link str] [--robot.end_link str]
[--robot.baudrate str] [--robot.control_aim str] [--robot.control_mode str]
[--robot.skip_mit_init str] [--robot.use_interpolation str]
[--robot.debug_mode str] [--robot.speed str] [--robot.connect_arm str]
[--robot.left_arm_connect str] [--robot.left_arm_gripper_type str]
[--robot.left_arm_debug_mode str] [--robot.left_arm_speed_deg_s str]
[--robot.right_arm_connect str] [--robot.right_arm_gripper_type str]
[--robot.right_arm_debug_mode str] [--robot.right_arm_speed_deg_s str]
[--robot.use_teleop_state_for_observation str] [--robot.left_arm_port str]
[--robot.right_arm_port str]
[--robot.left_arm_disable_torque_on_disconnect str]
[--robot.left_arm_max_relative_target str]
[--robot.left_arm_use_degrees str]
[--robot.right_arm_disable_torque_on_disconnect str]
[--robot.right_arm_max_relative_target str]
[--robot.right_arm_use_degrees str] [--robot.sdk_url str] [--robot.side str]
[--robot.id str] [--robot.calibration_dir str] [--robot.port str]
[--robot.disable_torque_on_disconnect str] [--robot.max_relative_target str]
[--robot.cameras str] [--robot.use_degrees str] [--fps str]
[--teleop_time_s str] [--display_data str]
lerobot-teleoperate: error: argument --teleop.type: invalid choice: 'alicia_d_leader' (choose from so100_leader, bi_so100_leader, gamepad, homunculus_glove, homunculus_arm, keyboard, keyboard_ee, keyboard_rover, koch_leader, omx_leader, so101_leader)
#2. "teleop.directly_controls_robot" support is missing from lerobot-teleoperate
When use lerobot-teleoperate without "--teleop.directly_controls_robot" flag or with "teleop.directly_controls_robot=true". The teleoperator controls the robot through the direct hardware connection, sending the action again from the computer would duplicate the command, but lerobot-teleoperate isn't implemented to skip the transmission to respect the flag. The commit add the implementation to lerobot-teleoperate.py