Jump to content

[WIP] MSI's Infernal Robotics - Plugin Rework (Updated: 05/04/2015)


erendrake

Recommended Posts

I did (previously) indeed try increasing the mass on the old washer. I didn't notice much difference. Or, perhaps said better, the difference between the old docking washer and the new rotatron certainly seems to be vastly more significant.

I will do some dedicated testing tonight to really probe this further, but right now it does seem like some of the joints are significantly stronger than others. I could be mistaken... it could be something to do with how they are attached to their parent, or perhaps how their children attach to them. Proper scientific testing is required. But in the meantime if you can think of anything that makes the new rotatron different from the old docking washer (other than the raw geometry, obviously), that might be the key.

I'll put together some click through gfys, pretty sure I've accidentally taken parts off but again, could be my faulty memory. Will perform some proper testing for you tonight.

Overall I should mention that BY FAR my biggest issues with building right now are to do with the game crashing after half a dozen reverts, and the problem with symmetry getting stuck on radial. These are bugs in the base game that, afaik, have nothing to do with any mods and which take up much more of my time than working around any issues with IR, KAS or KOS. Testing IR craft (or, really, any complex craft) requires a lot of launches and a lot of tweaking, and when the game has a memory leak that happens on revert... yeeesh. I spend half my time looking at the KSP loading screen, lol.

We've fixed the leak in editor, we'll try to post a new pre-release or even a release soon. There are some other fixes too that might help.

Link to comment
Share on other sites

I saw that earlier, which is of course good. My crashes aren't caused by anything in IR (or any other mod) though. The base game just leaks memory when reverting, particularly reverting to SPH (about 100 meg), but also somewhat when reverting to launch (30-40 meg). Long standing issue with the stock game.

I guess what I'm trying to say is that I pretty much judge everything and don't sugarcoat my feedback (INTJ), but the niggles I have with IR are really just that - niggles - compared to some of the stock game frustrations. Overall I have huge appreciation for what you guys have been able to do.

Link to comment
Share on other sites

I think I've found why I was sometimes clicking "through" the IR window. it's not actually a clickthrough, it seems to be to do with "lag" (can't think of a better word) in the SPH when dealing with a complex craft. It does seem to get worse over time, so this might be related to the UI memory leak. Since you've already fixed this one I think it's all good!

Regarding the joint connections, the new joints do all seem to behave consistently. I created a few test craft and put them through tests lifting weights. I also put them in the middle of a couple of girders and dropped it vertically onto the ground with 9 tons of weight on top to see what it did to the connection at the joint and the lower girder always "twitched" on impact pretty much the same. In fact, the girder twitches about the same as the control, for which I didn't put any robotic joint in, just two girders connected directly, so that's good.

I scaled up the docking washer's mass to match the new rotatron and the plates separated a bit, which I didn't see with the rotatron. But the actual girder twitch wasn't much more than with the new rotatron. So the net effect seems to be about the same despite there being more apparent movement in the joint itself with the docking washer.

In other words, I don't really have any conclusions to draw here.

I am hypothesizing that the effect might be more related to how things are connected (surface attachment, node attachment, offset, etc) than it is to the joint itself. When I node attached the girder and did the drop test the girder wobbled but it did not get forced up through the hinge joints, whereas when I dropped the mech, which also has the girders node attached but then rotated and offset, the hinge "fell through" the girder quite far and then sprung back up. If true then this behaviour seems dependent on the base game, not on anything in IR itself.

Link to comment
Share on other sites

The problem of the joint stiffness can be solved with a mod that introduces different materials. KSP should get rid of the mass-joint dependency. A 10kg gold hinge cannot be stronger than a 1kg titanium hinge in real life, and so it should be in KSP.

Link to comment
Share on other sites

I think there's another bug with setting limits at the moment.

In the SPH I right clicked my rotatrons and turned on "engage limits". I noticed that the min and max bars didn't show up immediately but they did when I right clicked again, so I expect that's just because the GUI needs to repaint after the update.

However, when I launched and ran my KOS script, KOS complained that the module didn't have a field called "min". It printed out the field list and, sure enough, neither min nor max were there. Some other parts did seem to have them, though.

I went back to the SPH and right clicked the part again. "Disengage limits" was the caption of the limits button, but the "min" and "max" bars were not there.

I clicked the disengage limits button, clicked away and brought the menu up again. The button still said "disengage limits" but now the min and max bars had returned.

Link to comment
Share on other sites

I think there's another bug with setting limits at the moment.

In the SPH I right clicked my rotatrons and turned on "engage limits". I noticed that the min and max bars didn't show up immediately but they did when I right clicked again, so I expect that's just because the GUI needs to repaint after the update.

However, when I launched and ran my KOS script, KOS complained that the module didn't have a field called "min". It printed out the field list and, sure enough, neither min nor max were there. Some other parts did seem to have them, though.

I went back to the SPH and right clicked the part again. "Disengage limits" was the caption of the limits button, but the "min" and "max" bars were not there.

I clicked the disengage limits button, clicked away and brought the menu up again. The button still said "disengage limits" but now the min and max bars had returned.

It is mostly due to not repainted tweak window. For unrestricted parts limits should not be shown neither in flight nor in editor.

Link to comment
Share on other sites

So it is, meant to set it as unlisted, youtube is being uncooperative. Fixed now.

Can confirm that for some reason the Engage Limit does not persist from editor to flight. I've logged an issue, but it will have to wait a little bit to be fixed.

Link to comment
Share on other sites

BTW we are ready for a release, just waiting for sirkut to have some time to upload it and make a forum post. I hope he can do it today.

Edited by Ziw
Link to comment
Share on other sites

Ziw/Erendrake/Sirkut how hard is it to add the scrollwheel for increasing/decreasing numbers?

You want this to fine tune position in editor? But you can now type in the position via keyboard input, have you seen the release video? Or I am missing some other use case for it?

Link to comment
Share on other sites

You want this to fine tune position in editor? But you can now type in the position via keyboard input, have you seen the release video? Or I am missing some other use case for it?

In terms of useability scrollwheel is much more comfortable for fine-tuning than clicking arrows.

Link to comment
Share on other sites

In terms of useability scrollwheel is much more comfortable for fine-tuning than clicking arrows.

Are you refering to in-editor or in-flight. If in editor the as ziw says there's a textbox you can enter angles directly into. If in-flight then its best to use presets to get exact servo angles. It doesn't seem worth the extra complexity to introduce scroll wheel support, especially in the case of in-editor, where people expect scroll to move the contents of the window up and down.

Link to comment
Share on other sites

Hehe ZI i just wanted to ask for a new IR feature and your reply touched on it !

Is it possible to have named actions for position presets ?

If kOS is used it does not matter as much, everything can be done in code. What i ask is for cases of "manual" action control.

Currently only "Move To Next Preset" and "Move To Previous Preset" are available.

Is it possible to add feature to enable this :

1. add "Hinge Pivotron - Basic" to craft

2. define a preset 75.0

3. go to action editor

4. select part

5. add "Move to 75.0" to action group 1

This way, a specific preset is guaranteed to be used, along with existing preset chaining.

Edited by fatcargo
Link to comment
Share on other sites

Hehe ZI i just wanted to ask for a new IR feature and your reply touched on it !

Is it possible to have named actions for position presets ?

If kOS is used it does not matter as much, everything can be done in code. What i ask is for cases of "manual" action control.

Currently only "Move To Next Preset" and "Move To Previous Preset" are available.

Is it possible to add feature to enable this :

1. add "Hinge Pivotron - Basic" to craft

2. define a preset 75.0

3. go to action editor

4. select part

5. add "Move to 75.0" to action group 1

This way, a specific preset is guaranteed to be used, along with existing preset chaining.

Just wait till Monday/Tuesday. kOS update will bring proper IR integration via API (https://github.com/MagicSmokeIndustries/InfernalRobotics/wiki/Using-the-IR-API)

I'm already making a set of kOS scripts to control walker robot without SAS (via counterabalancing). Here's the snippet of code as an example:


function Balance
{
parameter
fPID,
sPID,
servoList.


local sideAngleVector to vxcl(ship:facing:starvector, ship:up:vector).
set sideAngle to vang(ship:up:vector, sideAngleVector).
if (vdot(vxcl(ship:up:vector,sideAngleVector), ship:facing:starvector) < 0)
{
set sideAngle to -sideAngle.
}
set sideOffset to pid_seek(sPID, 0, sideAngle).


set foreAngleVector to vxcl(ship:facing:topvector, ship:up:vector).
set foreAngle to vang(ship:up:vector, foreAngleVector).
if (vdot(vxcl(ship:up:vector,foreAngleVector), ship:facing:topvector) < 0)
{
set foreAngle to -foreAngle.
}
set foreOffset to pid_seek(fPID, 0, foreAngle).


print "foreAngle: " + foreAngle.
print "foreOffset: " + foreOffset.


for s in servoList
{
if(s:name = "R Shoulder Rot" or s:name = "L Shoulder Rot")
{
s:moveto(-15 + foreOffset, 4).
}


if(s:name = "R Shoulder Hinge")
{
s:moveto(clamp(-sideOffset, -60, 0), 4).
}


if(s:name = "L Shoulder Hinge")
{
s:moveto(clamp(sideOffset, -60, 0), 4).
}


if(s:name = "Counterweight")
{
s:moveto(clamp(sideOffset*2, -90, 90), 6).
}




}


}


Edited by Ziw
Link to comment
Share on other sites

This thread is quite old. Please consider starting a new thread rather than reviving this one.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...