diff --git a/examples/13_use_trossen_ai_mobile.md b/examples/13_use_trossen_ai_mobile.md index 45bdbcea..acd55cec 100644 --- a/examples/13_use_trossen_ai_mobile.md +++ b/examples/13_use_trossen_ai_mobile.md @@ -60,11 +60,11 @@ python lerobot/scripts/control_robot.py \ --robot.max_relative_target=null \ --control.type=teleoperate ``` -By adding `--robot.force_feedback_gain=0.1`, we override the default value for `force_feedback_gain` defined in [`TrossenAIBimanualRobot`](lerobot/common/robot_devices/robots/configs.py). This enables **force feedback** from the follower arm to the leader arm — meaning the user can **feel contact forces** when the robot interacts with external objects (e.g., gripping or bumping into something). A typical starting value is `0.1` for a responsive feel. You can disable this behavior entirely by setting `--robot.force_feedback_gain=0.0` in the command line: +By adding `--robot.force_feedback_gain=0.1`, we override the default value for `force_feedback_gain` defined in [`TrossenAIMobileRobot`](lerobot/common/robot_devices/robots/configs.py). This enables **force feedback** from the follower arm to the leader arm — meaning the user can **feel contact forces** when the robot interacts with external objects (e.g., gripping or bumping into something). A typical starting value is `0.1` for a responsive feel. You can disable this behavior entirely by setting `--robot.force_feedback_gain=0.0` in the command line: ```bash python lerobot/scripts/control_robot.py \ - --robot.type=trossen_ai_stationary \ + --robot.type=trossen_ai_mobile \ --robot.max_relative_target=null \ --robot.force_feedback_gain=0.1 \ --control.type=teleoperate @@ -110,6 +110,19 @@ python lerobot/scripts/control_robot.py \ --control.display_cameras=false ``` +The **Slate base** works in two modes: +- **Torque OFF** (default): You can push the base around manually. +- **Torque ON**: Enables the motors so you can control the base using the **Slate remote controller**. + +To enable torque-on mode during recording, add the following argument: +```bash +--robot.enable_motor_torque=true +``` + +For more information about the Slate remote controller, refer to the official documentation: +[Slate RC Controller Guide](https://docs.trossenrobotics.com/slate_docs/operation/rc_controller.html) + + ## Visualize a dataset If you uploaded your dataset to the hub with `--control.push_to_hub=true`, you can [visualize your dataset online](https://huggingface.co/spaces/lerobot/visualize_dataset) by copy pasting your repo id given by: @@ -138,6 +151,8 @@ python lerobot/scripts/control_robot.py \ --robot.enable_motor_torque=true ``` +Note: For replaying an episode, you need to turn on motor torque using ``--robot.enable_motor_torque=true``, so that the robot can actively follow the trajectory instead of remaining in a passive (torque-off) state. + ## Train a policy To train a policy to control your robot, use the [`python lerobot/scripts/train.py`](../lerobot/scripts/train.py) script. A few arguments are required. Here is an example command: @@ -178,9 +193,13 @@ python lerobot/scripts/control_robot.py \ --control.num_episodes=10 \ --control.push_to_hub=true \ --control.policy.path=outputs/train/act_trossen_ai_mobile_test/checkpoints/last/pretrained_model \ - --control.num_image_writer_processes=1 + --control.num_image_writer_processes=1 \ + --robot.enable_motor_torque=true ``` +Note: For evaluation, you need to turn on motor torque using ``--robot.enable_motor_torque=true``, so that the robot can actively follow the trajectory instead of remaining in a passive (torque-off) state. + + As you can see, it's almost the same command as previously used to record your training dataset. Two things changed: 1. There is an additional `--control.policy.path` argument which indicates the path to your policy checkpoint with (e.g. `outputs/train/eval_act_trossen_ai_mobile_test/checkpoints/last/pretrained_model`). You can also use the model repository if you uploaded a model checkpoint to the hub (e.g. `${HF_USER}/act_trossen_ai_mobile_test`). 2. The name of dataset begins by `eval` to reflect that you are running inference (e.g. `${HF_USER}/eval_act_trossen_ai_mobile_test`).