|
29 | 29 | All controls are available from the KAL-1000 Part Action Window, both in the editor and in flight. |
30 | 30 | <br/>The KAL-1000 part can be placed anywhere, but it must stay on the same vessel as the servos and effector parts, something to keep in mind for "walking arms" designs such as the ISS canadarm. |
31 | 31 |
|
| 32 | +<img src="https://raw.githubusercontent.com/gotmachine/EasyRobotics/master/Images/PAW.png "> |
| 33 | + |
32 | 34 | #### IK chain setup |
33 | 35 | The first step for using the IK controller is to select which servos will be used, as well as which part is to be used as the effector. |
34 | 36 | This can be done from the `IK Configuration` section : |
35 | 37 |
|
36 | | -<img align="left" hspace="10" src="https://raw.githubusercontent.com/gotmachine/EasyRobotics/master/Images/IKConfig.png "> |
| 38 | + |
37 | 39 |
|
38 | 40 | - `Select servos` : Enter the servo selection mode. Hover the mouse on a servo part, then press `ENTER` to add it, or `DELETE` to remove it. To get out of the selection mode, either click again on the button or press `ESC`. You may select as many servos as you want and in any order, but they must form a single "chain". Selected servos and their rotation axis can be visualized by enabling the `Servo gizmos` toggle. |
39 | 41 | - `Effector` : Enter the effector selection mode, similar controls as for the servo selection. You must have a single effector, and it can't be in the middle of the servo "chain". |
40 | 42 | - `Effector node, direction and offset` : Allow to change the controlled position and direction on the effector part, which can be visualized as green gizmo by enabling `Target/effector gizmos` |
41 | 43 | - `Learning rate` : The IK algorithm works by trying to move the servos a little bit to see if that new pose is closer or further away from the target. The learning rate is how big those small moves are. Increasing it can greatly help the algorithm to find a solution, but lowering it can be necessary to avoid the solution "jittering" around the target. How that value should be set depends on the chain configuration, it is recommended to do some editor-time testing to tune it. |
42 | 44 |
|
43 | 45 | #### IK Execution Control |
44 | | -<img align="left" hspace="10" src="https://raw.githubusercontent.com/gotmachine/EasyRobotics/master/Images/IKExec.png "> |
45 | 46 |
|
46 | | -Once the servos and effector are properly configured, the `Status` label in the `IK Execution Control` tab should show `ready`. That label will also indicate what the IK controller state is when it is active. |
47 | | -- `Control mode : Free` : The target (red gizmo) position is relative to the first servo of the chain. |
48 | | -- `Control mode : Target` : The target is a part (see the "IK target" section below). |
49 | | -- `Tracking mode : Continous` : Unlock the `Tracking` toggle. When enabled, the IK controller is always active and will continously try to reach the target. |
50 | | -- `Tracking mode : On request` : Unlock the `Request execution` button, allowing you to request a single execution of the IK controller. |
51 | | -- `Constraint : Position` : The effector will try to reach the target positon from any angle. |
52 | | -- `Constraint : Pos+Direction` : The effector will also try to match the direction of the target, but ignoring its "roll". |
53 | | -- `Constraint : Pos+Rotation` : The effector will try to match the full rotation of the target, including its "roll". |
54 | 47 |
|
| 48 | +Once the servos and effector are properly configured, the `Status` label in the `IK Execution Control` tab should show `ready`. That label will also indicate what the IK controller state is when it is active. |
55 | 49 |
|
| 50 | +- `Control mode` |
| 51 | + - `Free` : The target (red gizmo) position is relative to the first servo of the chain. |
| 52 | + - `Target` : The target is a part (see the "IK target" section below). |
| 53 | +- `Tracking mode` |
| 54 | + - `Continous` : Unlock the `Tracking` toggle. When enabled, the IK controller is always active and will continously try to reach the target. |
| 55 | + - `On request` : Unlock the `Request execution` button, allowing you to request a single execution of the IK controller. |
| 56 | +- `Constraint` |
| 57 | + - `Position` : The effector will try to reach the target positon from any angle. |
| 58 | + - `Pos+Direction` : The effector will also try to match the direction of the target, but ignoring its "roll". |
| 59 | + - `Pos+Rotation` : The effector will try to match the full rotation of the target, including its "roll". |
| 60 | +- `Position range` : |
| 61 | + - `Automatic` : The min/max value of the target position sliders will be set based on the robotic chain length. |
| 62 | + - `Value in m` : Custom min/max target position sliders value |
| 63 | +- `Right/left`, `Up/down`, `Forward/back` : sliders controlling the absolute position of the target. The axes are relative to the current target rotation, and the value is relative to either the first servo in the `Free` control mode, or the targetted part in the `Target` control mode. |
| 64 | +- `Pitch offset`, `Yaw offset`, `Roll offset` : incremental rotation offsets allowing to rotate the target freely. |
| 65 | +- `Reset pos/rot offsets` : Reset all position and rotation offsets. |
| 66 | +- `Reset all servos positions` : Instruct all controlled servos to go back to their original build angle. |
| 67 | + |
| 68 | +#### IK Target |
| 69 | +Allow to select a part as target, to be used with the `Target` control mode. Like for the effector, you can select an arbitrary node and orientation. |
56 | 70 |
|
57 | 71 | ### Changelog |
58 | 72 |
|
|
0 commit comments