|
| 1 | +# Tasks |
| 2 | +This README documents all of the tasks that are currently available in Judo. |
| 3 | + |
| 4 | +| Task | Description | |
| 5 | +| ---- | ----------- | |
| 6 | +| [cylinder_push](#cylinder-push) | Push a cylinder to a target position with another actuated cylinder. | |
| 7 | +| [cartpole](#cartpole) | Swing up a cartpole with actuator limits to a target angle. | |
| 8 | +| [fr3_pick](#fr3-pick) | Pick up a cube with a Franka robot and place it in a target location. | |
| 9 | +| [leap_cube](#leap-cube) | Rotate a cube to a target orientation using a LEAP hand. | |
| 10 | +| [leap_cube_down](#leap-cube-down) | Rotate a cube to a target orientation using a LEAP hand, but with the palm facing down. | |
| 11 | +| [caltech_leap_cube](#caltech-leap-cube) | Rotate a cube to a target orientation using a modified LEAP hand at Caltech. | |
| 12 | + |
| 13 | +## Cylinder Push |
| 14 | +The cylinder push task has the following weights: |
| 15 | + |
| 16 | +| Weight | Description | |
| 17 | +| ------ | ----------- | |
| 18 | +| `w_pusher_proximity` | Penalizes the distance between the pusher and a point offset from the cart along the direction to the goal. | |
| 19 | +| `w_pusher_velocity` | Penalizes the squared linear velocity of the pusher. | |
| 20 | +| `w_cart_position` | Penalizes the distance from the cart to the goal. | |
| 21 | + |
| 22 | +There are other tunable parameters: |
| 23 | + |
| 24 | +| Parameter | Description | |
| 25 | +| --------- | ----------- | |
| 26 | +| `pusher_goal_offset` | The offset distance from the cart that defines the pusher's target. | |
| 27 | +| `goal_pos` | The 2D target position for the cart. | |
| 28 | + |
| 29 | +## Cartpole |
| 30 | +The cartpole task has the following weights: |
| 31 | + |
| 32 | +| Weight | Description | |
| 33 | +| ------ | ----------- | |
| 34 | +| `w_vertical` | Penalizes the distance between the pole's angle and its upright (vertical) position. | |
| 35 | +| `w_centered` | Penalizes the distance of the cart from the origin. | |
| 36 | +| `w_velocity` | Penalizes the squared linear and angular velocities of the cart and pole. | |
| 37 | +| `w_control` | Penalizes the amount of control effort applied. | |
| 38 | + |
| 39 | +--- |
| 40 | + |
| 41 | +There are other tunable parameters: |
| 42 | + |
| 43 | +| Parameter | Description | |
| 44 | +| --------- | ----------- | |
| 45 | +| `p_vertical` | The threshold parameter for the smooth L1 norm used in the `w_vertical` penalty. | |
| 46 | +| `p_centered` | The threshold parameter for the smooth L1 norm used in the `w_centered` penalty. | |
| 47 | + |
| 48 | +## FR3 Pick |
| 49 | +The FR3 Pick task involves a Franka Research 3 picking up an object and placing it at a goal location. The task is divided into four phases, the first three of which have reward weights, and also includes global reward weights applied throughout the task. |
| 50 | + |
| 51 | +> ⚠️ **Disclaimer** ⚠️ |
| 52 | +> |
| 53 | +> This task is currently configured to use up to 64 threads by default (depending on the optimizer)! For most users, this is too many, and will be very slow. You can adjust this in the GUI or update the default value. |
| 54 | +
|
| 55 | +### Reward Weights |
| 56 | + |
| 57 | +#### Lift Phase Weights |
| 58 | +These weights are active during the "LIFT" phase, when the object is being lifted from the table. |
| 59 | + |
| 60 | +| Weight | Description | |
| 61 | +| ------ | ----------- | |
| 62 | +| `w_lift_close` | Penalizes the distance between the end-effector's grasp site and the object. Encourages the robot to grasp the object. | |
| 63 | +| `w_lift_height` | Penalizes the squared difference between the object's current height and a predefined `pick_height`. Encourages lifting the object to a certain height. | |
| 64 | + |
| 65 | +#### Move Phase Weights |
| 66 | +These weights are active during the "MOVE" phase, when the object is being moved towards the goal position. |
| 67 | + |
| 68 | +| Weight | Description | |
| 69 | +| ------ | ----------- | |
| 70 | +| `w_move_goal` | Penalizes the distance between the object's XY position and the target `goal_pos`. Encourages moving the object to the goal. | |
| 71 | +| `w_move_close` | Penalizes the distance between the end-effector's grasp site and the object. Encourages maintaining a grasp on the object. | |
| 72 | + |
| 73 | +#### Place Phase Weights |
| 74 | +These weights are active during the "PLACE" phase, when the object is being placed on the table at the goal. |
| 75 | + |
| 76 | +| Weight | Description | |
| 77 | +| ------ | ----------- | |
| 78 | +| `w_place_table` | Penalizes the distance between the object and the table. Encourages placing the object on the table. | |
| 79 | +| `w_place_goal` | Penalizes the distance between the object's XY position and the target `goal_pos`. Encourages placing the object accurately at the goal. | |
| 80 | + |
| 81 | +#### Home Phase Weights |
| 82 | +Once placed, the system enters the "HOME" phase and homes the arm, but there is only one reward term in this phase, so no additional weights. |
| 83 | + |
| 84 | +#### Global Weights |
| 85 | +These weights are applied across all phases of the task. |
| 86 | + |
| 87 | +| Weight | Description | |
| 88 | +| ------ | ----------- | |
| 89 | +| `w_upright` | Penalizes the deviation of the end-effector's Z-axis from a purely downward (upright) orientation. Encourages maintaining an upright end-effector. | |
| 90 | +| `w_coll` | Rewards avoiding contact between the robot hand (fingers) and the table. | |
| 91 | +| `w_qvel` | Penalizes the norm of the robot's joint velocities, with a decay over time. Encourages smoother, less erratic movements. | |
| 92 | +| `w_open` | Penalizes the squared difference between the gripper position and an "open" position (0.04). Encourages the gripper to be open. | |
| 93 | + |
| 94 | +### Other Tunable Parameters |
| 95 | + |
| 96 | +| Parameter | Description | |
| 97 | +| --------- | ----------- | |
| 98 | +| `goal_pos` | The 2D (x, y) target position for the object to be placed. | |
| 99 | +| `goal_radius` | The radius around `goal_pos` that defines the goal region for the object. | |
| 100 | +| `pick_height` | The desired height the object should reach during the `LIFT` phase. | |
| 101 | + |
| 102 | +## Leap Cube |
| 103 | +The LEAP Cube Rotation task involves a robotic hand manipulating a cube to achieve a desired orientation while maintaining its position. |
| 104 | + |
| 105 | +| Weight | Description | |
| 106 | +| ------ | ----------- | |
| 107 | +| `w_pos` | Penalizes the squared difference between the cube's current 3D position and a fixed `goal_pos`. Encourages the cube to stay at the target position. | |
| 108 | +| `w_rot` | Penalizes the squared difference in orientation (using SO(3) distance) between the cube's current quaternion and a target `goal_quat`. Encourages the cube to achieve the desired rotation. | |
| 109 | + |
| 110 | +## Leap Cube Down |
| 111 | +This works the same way as the LEAP Cube task, but the palm is facing downwards. |
| 112 | + |
| 113 | +> ⚠️ **Disclaimer** ⚠️ |
| 114 | +> |
| 115 | +> This task is currently configured to use up to 64 threads by default (depending on the optimizer)! For most users, this is too many, and will be very slow. You can adjust this in the GUI or update the default value. |
| 116 | +
|
| 117 | +## Caltech Leap Cube |
| 118 | +This works the same way as the LEAP Cube task, but uses a modified LEAP hand model from Caltech. |
| 119 | + |
| 120 | +> ⚠️ **Disclaimer** ⚠️ |
| 121 | +> |
| 122 | +> This task is currently configured to use up to 32 threads by default (depending on the optimizer)! For many users, this is too many, and will be very slow. You can adjust this in the GUI or update the default value. |
0 commit comments