Skip to content

Commit b516315

Browse files
committed
Ready for 1.0 ?
1 parent bbafb1d commit b516315

File tree

2 files changed

+31
-6
lines changed

2 files changed

+31
-6
lines changed
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
{
2+
"NAME": "EasyRobotics",
3+
"URL": "https://raw.githubusercontent.com/gotmachine/EasyRobotics/master/GameData/EasyRobotics/EasyRobotics.version",
4+
"DOWNLOAD": "https://github.com/gotmachine/EasyRobotics/releases",
5+
"VERSION": {"MAJOR": 1, "MINOR": 0, "PATCH": 0, "BUILD": 0},
6+
"KSP_VERSION": {"MAJOR": 1, "MINOR": 12, "PATCH": 5},
7+
"KSP_VERSION_MIN": {"MAJOR": 1, "MINOR": 12, "PATCH": 3},
8+
"KSP_VERSION_MAX": {"MAJOR": 1, "MINOR": 12, "PATCH": 5}
9+
}

README.md

Lines changed: 22 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ EasyRobotics is available from the Part Action Window (PAW) for the KAL-1000 par
88

99
### Download and installation
1010

11-
Compatible with **KSP 1.12.3** to **1.12.5** - Available on CKAN
11+
Compatible with **KSP 1.12.3** to **1.12.5**
1212

1313
**Manual installation**
1414

@@ -22,29 +22,31 @@ Compatible with **KSP 1.12.3** to **1.12.5** - Available on CKAN
2222

2323
MIT
2424

25+
### Recommended mods
26+
27+
- [**htRobotics**](https://github.com/benjee10/htRobotics) by Benjee : Stockalike Canadarm 1 & 2 parts
28+
- [**MissingRobotics**](https://forum.kerbalspaceprogram.com/index.php?/topic/197841-missing-robotics/) by Aahz88 : Various additional robotic parts, including a set of tubes and rotational joints to make manipulators.
29+
2530
### User manual
2631

2732
<img align="left" width="42" height="58" src="https://raw.githubusercontent.com/gotmachine/EasyRobotics/master/Images/KAL-1000.png">
2833

2934
All controls are available from the KAL-1000 Part Action Window, both in the editor and in flight.
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.
35+
<br/>The KAL-1000 part can be placed anywhere, but it must stay on the same vessel as the servo and effector parts, something to keep in mind for "walking arms" designs such as the ISS canadarm.
3136

3237
<img src="https://raw.githubusercontent.com/gotmachine/EasyRobotics/master/Images/PAW.png ">
3338

34-
#### IK chain setup
39+
#### IK Configuration
3540
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.
3641
This can be done from the `IK Configuration` section :
3742

38-
39-
4043
- `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.
4144
- `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".
4245
- `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`
4346
- `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.
4447

4548
#### IK Execution Control
4649

47-
4850
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.
4951

5052
- `Control mode`
@@ -68,6 +70,20 @@ Once the servos and effector are properly configured, the `Status` label in the
6870
#### IK Target
6971
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.
7072

73+
#### Tips and tricks
74+
75+
Often, you will experience your setup starting to spin around or to get stuck, never reaching the target :
76+
- In most cases, the reason is simply that in the servo configuration you designed, the target position and rotation *can't* be reached. In such situations, EasyRobotics will just keep trying forever. Putting together a kinematic chain for a full 5 or 6 degree of freedom (DoF) manipulator with a lot of reach and no dead zone can be pretty tricky, especially if you're using the Breaking Grounds hinges, as they can only actuate up to a ±90° angle.
77+
- If you're sure that the kinematic configuration of your servos can actually reach the target, try increasing the `Learning rate` setting.
78+
- The IK algorithm isn't especially smart, and can easily get stuck in a combination of servo angles from which it can't find a way out. This is usally fixed by using the `Reset all servos positions` option.
79+
- Try to make manipulators out of as few servos as possible. In theory, a 6-DoF manipulator only require 6 servos, such as is the case for most industrial manipulators. In particular, avoid having multiple servos in close proximity providing the exact same degree of freedom.
80+
81+
Other difficulties will come when using your contraption in flight :
82+
- Breaking grounds servo joints aren't very strong, so any attempt at moving them fast will result in a lot of elastic behavior. In flight, the IK controller will try to correct for the position error induced by the various forces acting on the arm (like gravity, accelerations and decelerations...), but in order to do so, it needs all servos to reach a steady state at some point. So it can't do it if everything is wobbling or if the arm is continously moving.
83+
- The main workaround is to make your servos move slower by limiting their traverse rate. Servos that are near the effector, or whose movement won't displace a lot of mass can move faster. Getting the right settings can be a bit time consuming, especially since the traverse rate can only be assessed in flight.
84+
- A good workaround in "wobbling" situations is to use the `On request` tracking mode instead of the `Continous` mode, waiting for things to stabilize before hitting the `Request execution` button.
85+
7186
### Changelog
7287

7388
#### 1.0.0 - 15/05/2024
89+
- First public release

0 commit comments

Comments
 (0)