Jump to content

[WIP] Infernal Robotics - Next


Rudolf Meier

Recommended Posts

finally... there's a new version online (including all improvement and fixes and also all values should be correct now)

the version for 1.3.1 does also contain a special/improved KJR version... with this one also the ship containing IR parts (also the old ones) are much stronger

for those who want to see how the joints react when they are facing a too heavy load do this:

on top of something put a Hinge Pivotron -> Robo Truss Pro 2.5m -> Extendatron Basic -> FL-R25 RCS Fuel Tank with 50 of Monopropellant in it

-> when you move the joint, you can see that it bends... but the Pivotron can hold the weight if you don't extend the Extendatron... and -> save/load plus timewarp should work with this

... source code follows soon

Link to comment
Share on other sites

One thing noticed so far: when TweakScaling more than one or two increments from wherever the part starts (e.g. going up or down more than a couple arrow clicks in either direction - I think), torque values for the parts become very small. They can be set back to 30 again, but there's definitely something funky with scaling + torque values.

The same issue persists where parts (looks like all parts, now) scaled up past a certain point do not turn or extend, as well. You have to add larger sizes to the TweakScale configs to see this, as below (but without the asterisks, of course):

SCALETYPE
{
    name = Rework_Standard
    freeScale = false
    scaleFactors = 	0.198425, 	0.25, 	0.314980, 	0.396850, 	0.5, 	0.629961, 	0.793701, 	1.0, 	1.259921, ******7******
	scaleNames = 	Small -, 	Small, 	Small +, 	Medium -, 	Medium,	Medium +, 	Large -, 	Large, 	Large +, *****GigantorTest****
    defaultScale = 1.0 
}

Example: Both servos should be moving (unlimited EC) in this image, but only the non-scaled one moves. If scaled to 1.259921 (as in the above SCALETYPE), it will still move fine. But when scaled to 7x, it does not move at all:

6pOTSfT.png

Edited by AccidentalDisassembly
Link to comment
Share on other sites

4 hours ago, brusura said:

Does the KJR version only affect IR parts?

no, it's my proposal vor version 3.4.0 of KJR... I modified ... well... "many functions" ... the basic idea behind it remained, but the way to detect partners between wich the strength needs to be enforced is "more than just a little bit different"... so you can say: it's a normal KJR but without the problems we had in the past with moving parts (all moving parts, not just IR).

 

Link to comment
Share on other sites

5 hours ago, AccidentalDisassembly said:

..., but there's definitely something funky with scaling + torque values.

Yes right... and also with the values in the context window of the parts. But I now know what to do... I need some time but I think I can release an updated version later this day...

Link to comment
Share on other sites

Finally I was able to do some testing. Here is link for craft files and output log. I doubt that output log is of any help, but it is included regardless.

Just a prototype for future rover. It might be easier to debug things if you have something to test against. Only Kerbal Foundries are required for wheels

8FsD4mh.jpg

Full gallery from crash test site.

  • spring and damper on uncontroled parts have no effect, or I have set them too low
  • after saving/loading craft in SPH it is no longer possible to set values for spring adn damper joint values
  • powered hinges have too weak joint, IR motor is not strong enough

This is what I mean when I say that powered hinge is too weak:

ziCOZ1u.jpg

Joints just splited when I tried to drive around and test it. This one suppose to be foldable variant of same kind of wheels.

It is possible that I missed something in attempt to set limits of rotations. And what "test test" button do ?

Link to comment
Share on other sites

3 hours ago, kcs123 said:
  • spring and damper on uncontroled parts have no effect, or I have set them too low
  • after saving/loading craft in SPH it is no longer possible to set values for spring adn damper joint values
  • powered hinges have too weak joint, IR motor is not strong enough

It is possible that I missed something in attempt to set limits of rotations. And what "test test" button do ?

thanks for the feedback

spring and damper... that's true... it is a bit tricky to find out which setting for the joint is the best so that it does something useful... I will try another setting

not being able to set the values... interesting... I'm currently modifying functions to set/get values in those context menus... I will explicitly pay attention to those two values

power of the hinges... the "torque" value was always 30, but seems not to be used in old IR... I did take those values without thinking much about them... but it seems that 30 is way too small and we should go to about 600 in all cfg files... this should solve the problem

the "test test" is something I forgot to remove... it's an empty function :rolleyes:

 

Link to comment
Share on other sites

52 minutes ago, Rudolf Meier said:

not being able to set the values... interesting... I'm currently modifying functions to set/get values in those context menus... I will explicitly pay attention to those two values

I was able to set it just once in SPH, but those settings does not seems to have effect in flight for some reason.
Try to hang provided craft on launch clamps. I was lucky and able to set rotatron to stay at zero degree. However, pivotron is set to 65 degree, and due to unbalanced mass it swings slightly left and right as shown on picture:

jsZfyDc.jpg

I was expected from joint spring and damper to slow down oscilation (swinging), at least that I was observed with old IR plugin and manually set values in config file. I don't need strong spring forces here, just enough to push wheels slightly in neutral position after unexpected jump over bumps. Otherwise spring need to be weak enough to allow rotation when craft encounter high slope.

Anyhow, tested some more with alpha version of InnerLock mode from @whale_2, looks promissing:

lLZC5Sr.jpg

 

With collision enabled between certain parts on places where I want them and some light rotation shock absorbers, this kind of rover will be reasonable simple to create (partwise) and simple to use, yet quite robust and forgiving for careless drivers.

What I would like to see from InnerLock mod is slightly more forgiving misalignment when comes to locking between parts. Those new parts from @ZodiusInfuser looks great, but are not practical enough for craft on picture. In some other application might perform just fine. Might also be smaller in size too, but that can be adjusted later on with tweakscale configs. Anyhow, this is just one example of possible usage. Once everything is ironed out, other users will come out with even better crafts.

Link to comment
Share on other sites

2 hours ago, kcs123 said:

I was expected from joint spring and damper to slow down oscilation (swinging), at least that I was observed with old IR plugin and manually set values in config file. I don't need strong spring forces here, just enough to push wheels slightly in neutral position after unexpected jump over bumps. Otherwise spring need to be weak enough to allow rotation when craft encounter high slope.

:mad: that's a great problem... in the old IR there was nothing like a "uncontrolled" joint... it did also controll the uncontrolled ones that's why the "damping" works. I does not, when you don't have a force on the joint (rule of unity). There are of course multiple solutions/workarounds to this... I will see which one is the best...

Edited by Rudolf Meier
Link to comment
Share on other sites

2 hours ago, kcs123 said:

I was expected from joint spring and damper to slow down oscilation (swinging), at least that I was observed with old IR plugin and manually set values in config file. I don't need strong spring forces here, just enough to push wheels slightly in neutral position after unexpected jump over bumps. Otherwise spring need to be weak enough to allow rotation when craft encounter high slope.

ok... let's talk about the expectations

a joint (driven) has a torque and we do have a spring and damper... the torque is for the movement and the spring is making it weaker... it is the part allowing the joint to leave the position it should go to... and because it's as "spring" that pulls towards the "should be" position, this could give us an oscilation... to dampen this we have a "damper" ... the damper does not dampen the normal movement! very important detail! it is only here for the ... lets say "bending of the thing attached to the joint" ... (this of course could happen inside the motor, but you can see it like that)

now, an uncontrolled joint... this one doesn't have a position it should go to and because of that also no spring and damper values. Of course, we could say that's wrong... we need a "damper" on both joints which is some kind of friction or a damper for the movement (not for this bending type of thing I described) ... and the spring doesn't make sense at all... if you want a spring, then either we need to lock down the joint or... well... I don't know what else you can expect

and now... what do you mean with "push wheels in neutral position" ? this is (if it's uncontrolled) done by gravity... but nothing else can push here

if I understand this correctly, then you are talking about the friction-like damping... and in case you want this and the spring stuff, then we need a friction-damping, the spring and the spring-damper... correct? ... now, I think we would need the spring/damper but those are characteristics of the joint and not selectable... and the other damper you want, that's something we could talk about and that could be adjusted... but we don't have any spring values that are selectable... right?? does this make sense??

Link to comment
Share on other sites

9 hours ago, Rudolf Meier said:

... what do you mean with "push wheels in neutral position" ? this is (if it's uncontrolled) done by gravity... but nothing else can push here

if I understand this correctly, then you are talking about the friction-like damping... and in case you want this and the spring stuff, then we need a friction-damping, the spring and the spring-damper... correct? ... now, I think we would need the spring/damper but those are characteristics of the joint and not selectable... and the other damper you want, that's something we could talk about and that could be adjusted... but we don't have any spring values that are selectable... right?? does this make sense??

Yes, by neutral position, I was mean equilibrium established between gravity forces on parts and spring inside rotatron that push it in oposite direction. Perhaps friction-damping is better word for this, I don't know unity well enough to know how variables are called within game engine.

On old IR plugin, I was just set jointSpring and jointDamper values to some number (20 or something close, can't recall) and I got desired effect. Rotatron stoped at some angle where forces from gravity are equal with spring forces inside rotatron. Position of tubes attached to rotatron were zero degree paralel to horizont on launch and were stoped quickly after few sec, like on this picture:

ZfCMjyi.jpg

All I was asking is to expose jointSpring and jointDamper values to right click menu in SPH/VAB. Don't know how much is IR Next module is different from original one, though. It may work as desired only with rotational free moving parts. Spring force should always tend to push part towards zero degree or some other default value set in SPH. In rover example above, desired degree where spring forces should push back something is 65 degree instead of zero.

Desired effect from this is when wheels jumps in air, for whatever reason, spring forces would pushing back sets of wheels on pivotron to 65 degree. Of course, it would not be ideal, but should move wheels in better position when touching ground after jumping.

Perhaps desired effect can be achieved with friction too, ability to lock some otherwise free moving part might come handy too. I would not need to secure free moving rover legs with struts, while rover is in transit from Kerbin to Mun, for example, but that is different story.

That is different usage from joint springs on powered parts, that Zodiusinfuser explained previously, to swing something with powered part and then release it. Those jointSpring and jointDamper values might not be possible to use on all parts, therefore need to be toggable trough config files.

Also, don't know how much part config files were changed from old IR plugin, some things may work in different way now and it is no longer possible to make it work like it was before due to changes to fix other bugs.

Link to comment
Share on other sites

1 hour ago, kcs123 said:

Desired effect from this is when wheels jumps in air, for whatever reason, spring forces would pushing back sets of wheels on pivotron to 65 degree.

yes ok... but this was not what I considered to be "uncontrolled" ... for me it was "no motor... motion is free" ... and you are talking about some shock absorber like behaviour. ... I could create both parts... the only question now is, what and how do we want it to be.

Should an uncontrolled pivotron have the possibility to become a shock absorber? In this case it needs a position to where it returns without forces applied to it. The uncontrolled parts how I built them now do not have such a thing like a "default position" ... and when I add the friction-like damping, they won't return, but simply stop the rotation after a while in whatever position it is

 

Link to comment
Share on other sites

12 minutes ago, Rudolf Meier said:

Should an uncontrolled pivotron have the possibility to become a shock absorber? In this case it needs a position to where it returns without forces applied to it. The uncontrolled parts how I built them now do not have such a thing like a "default position" ... and when I add the friction-like damping, they won't return, but simply stop the rotation after a while in whatever position it is

Exactly. Easy to test such new part would be to copy existing free moving rotatron and pivotron and add new features trough new module.

Position where to return can be set in part config file, but would be much better if default position can be determinated in SPH/VAB.
That, and ability to set spring/damper forces and possible friction force would make quite handy rotational shock absorber.

Later on, it would be possible for Zodiusinfuser or some other modder who like to create parts, to create new visual parts that would be easier to spot in SPH/VAB, but for testing purposes, existing parts should be enough untile whole system is created and tested.

Link to comment
Share on other sites

6 minutes ago, kcs123 said:

Exactly. Easy to test such new part would be to copy existing free moving rotatron and pivotron and add new features trough new module.

Position where to return can be set in part config file, but would be much better if default position can be determinated in SPH/VAB.
That, and ability to set spring/damper forces and possible friction force would make quite handy rotational shock absorber.

Well that's the question isn't it, are uncontrolled parts just normal parts that don't let you adjust their default position? Certainly in old IR that's how they were. The cfg flag for freeMoving just told the GUI to not let you change the default position. I guess in IR Next uncontrolled parts are different from normal parts? Unless there is a specific code or joint reason for this, having uncontrolled parts be the same as normal parts (to me anyway) makes logical sense.

2 minutes ago, kcs123 said:

Later on, it would be possible for Zodiusinfuser or some other modder who like to create parts, to create new visual parts that would be easier to spot in SPH/VAB, but for testing purposes, existing parts should be enough untile whole system is created and tested.

It would need to be decided which parts would need Variable Elastic Actuator variants. My preference would be to keep it short and maybe just make three, a rotatron, a pivotron, and an extendatron (although maybe in this case having all current extendatrons with this ability would make more sense). In any case, I agree that specific parts should exist for this added functionality, as that makes them easy to identify from the other parts.

Link to comment
Share on other sites

5 minutes ago, ZodiusInfuser said:

I guess in IR Next uncontrolled parts are different from normal parts?

In IR uncontrolled was "enormously weak spring between motor and moving part" and in IR Next it is "motor has no force ... or isn't there" ... IR Next is modeling the uncontrolled joints more the way it is intented in unity... but, if you don't have a valid target position/force/spring, then you cannot have dampers... but "uncontrolled" for me is not a shock absorber... so... I thought thats fine

but I could still add some sort of "break" ... which is simply slowing down every movement ... but... what is the idea here? that uncontrolled = no motor but a "breaking module" ? ... would they then also be lockable?

Link to comment
Share on other sites

4 minutes ago, ZodiusInfuser said:

maybe just make three, a rotatron, a pivotron, and an extendatron (although maybe in this case having all current extendatrons with this ability would make more sense). In any case, I agree that specific parts should exist for this added functionality, as that makes them easy to identify from the other parts.

Those three parts should suffice. Current extendatron is good enough, but, something that looks like piston (mentioned earlier in thread) might visualy fit better. Have yet to try new features on extendratron.

Have no idea how much IR next parts behave in different way internaly from old IR plugin and what is possible to accomplish now and what not.

Link to comment
Share on other sites

19 minutes ago, Rudolf Meier said:

In IR uncontrolled was "enormously weak spring between motor and moving part" and in IR Next it is "motor has no force ... or isn't there" ... IR Next is modeling the uncontrolled joints more the way it is intented in unity... but, if you don't have a valid target position/force/spring, then you cannot have dampers... but "uncontrolled" for me is not a shock absorber... so... I thought thats fine

Yes that is fine, after all uncontrolled joints are more like bearings IRL so have no motor to stop them.

24 minutes ago, Rudolf Meier said:

but I could still add some sort of "break" ... which is simply slowing down every movement ... but... what is the idea here? that uncontrolled = no motor but a "breaking module" ? ... would they then also be lockable?

I guess the idea would be to slow spinning things down over time. I can see this being useful for fairground recreations which have things that spin uncontrolled but do slow down over time. As for lockable, could that be achieved as a high braking force toggle, like when someone applies the breaks on a bicycle to slow them down. So an uncontrolled part would then have a Normal Friction and a Braking Friction slider that you can independently set.

Link to comment
Share on other sites

Meanwhile, I noticed other oversight:

ZI54OTv.jpg

Bearing rotatron rotates over wrong axis.

I think that one of "surface" on angle attach extendratron also have misplaced axes, have yet to check out that one.

EDIT:

Nope, that one work as intended, perhaps I broke something else before.

Edited by kcs123
Link to comment
Share on other sites

Fixed issue with bearing uncontroled:

Whole part config inside spoiler:

Spoiler

PART
{
    // --- General Parameters ---
    name = IR_Rotatron_Bearing_Uncontrolled_v3
    module = Part
    author = Zodius (model) | Meiru (plugin) | Sirkut (gui, early plugin)

    // --- Asset Parameters ---
    //mesh = model.mu
    MODEL
    {
        model = MagicSmokeIndustries/Parts/Rework_Expansion/Probe/Robotic_v3/IR_Rotatron_Bearing_Uncontrolled/model
        texture = IR_Robotic, MagicSmokeIndustries/Parts/Rework_Expansion/Probe/Robotic_v3/IR_Robotic
        texture = IR_Robotic_e, MagicSmokeIndustries/Parts/Rework_Expansion/Probe/Robotic_v3/IR_Robotic_e
    }

    scale = 1
    rescaleFactor = 1

    // --- Node Definitions ---
    node_stack_bottom = 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1

    // --- Editor Parameters ---
    TechRequired = metaMaterials
    entryCost = 7800
    cost = 250
    category = none
    subcategory = 0
    title = Bearing Rotatron - Uncontrolled
    manufacturer = Magic Smoke Industries
    description = Want to spin sections of your craft while keeping the central core stationary? Then you need a Bearing Rotatron! This part mounts on a Bearing Hub, and is able to continuously rotate but cannot be controlled.
    tags = infernal robotic rotatron

    // attachment rules: stack, srfAttach, allowStack, allowSrfAttach, allowCollision
    attachRules = 1,0,1,1,0

    // --- Standard Part Parameters ---
    mass = 0.2
    dragModelType = default
    maximum_drag = 0.2
    minimum_drag = 0.2
    angularDrag = 2
    crashTolerance = 15
    maxTemp = 2000
    breakingForce = 999
    breakingTorque = 999
    bulkheadProfiles = size0, srf

    // --- TweakScale Parameters ---
    MODULE
    {
        name = TweakScale
        type = Rework_Standard
    }

    // --- Robotics Parameters ---
    MODULE
    {
        name = ModuleIRServo_v3
        servoName = <Uncontrolled>

        //axis = 1, 0, 0
        axis = 0, 1, 0
        pointer = 0, 1, 0

        fixedMesh = Base
        movingMesh = Joint

        isRotational = True

        hasMinMaxPosition = False
        minPosition = -360
        maxPosition = 360

        isFreeMoving = True

        electricChargeRequired = 0

        isInverted = False
        isLocked = False

        canHaveLimits = False

        hasPositionLimit = False
        minPositionLimit = -360
        maxPositionLimit = 360
    }
}

 

Changed values:

Quote

 // --- Robotics Parameters ---
    MODULE
    {
        name = ModuleIRServo_v3
        servoName = <Uncontrolled>

        //axis = 1, 0, 0  // old wrong value
        axis = 0, 1, 0   // new correct value

Possible same issue might be on powered parts too, have to check them yet.

Link to comment
Share on other sites

1 minute ago, kcs123 said:

Fixed issue with bearing uncontroled

You need to set the pointer to a value perpendicular to the axis. It should point towards the attached part or in this case into the rotation plane. But if you have it pointing along the axis, the angle calculations will freak out :P ... a pointer of 1, 0, 0 or 0, 0, 1 or even 1, 0, 1 should work

Link to comment
Share on other sites

2 hours ago, Rudolf Meier said:

But if you have it pointing along the axis, the angle calculations will freak out :P ... a pointer of 1, 0, 0 or 0, 0, 1 or even 1, 0, 1 should work

Have no idea about pointers, didn't found info about it in old configuration file for same part, I just copied axis parameters, at least how it looked like. Haven't encountered anything wrong, but better to change pointer too, before kraken wakes up.

Link to comment
Share on other sites

5 minutes ago, kcs123 said:

Have no idea about pointers, didn't found info about it in old configuration file ...

You cannot find it anywhere. That's a new value. On a joint today you have an axis and a pointer.

For rotational parts, the axis defines how the joint rotates and the pointer defines where the 0 position is. It must be perpendicular to the axis. Or in unity terms it is the "secondaryAxis". It affects also the BuildAid (that's why you can today specify this in a cfg file... we don't expect that up is the 0 position anymore).

For translational parts, the axis defines how the joint translates and the pointer simply needs to be perpendicular to this. It doesn't have any other meaning.

 

Link to comment
Share on other sites

5 minutes ago, kcs123 said:

Have no idea about pointers, didn't found info about it in old configuration file for same part, I just copied axis parameters, at least how it looked like. Haven't encountered anything wrong, but better to change pointer too, before kraken wakes up.

Pointer i'm guessing is what defines the "Up" of the IR Build Aid, so that should be changed to either 1,0,0 or 0,0,1 (or their -1 equivalents) to get the right the overlay to display correctly.

Link to comment
Share on other sites

Updated craft files and output log.  I have added 2 new craft files with swept wing mechanizm. Need to edit uncontroled bearring rotatron as discused in previous post.

I found something new that is broken, or I broke something else, whatever. Anyhow, mechanizm that should move wings works as intended without wings. But as soon as I add wings like on second picture, I no longer can move extendratrons.

D4kqFlz.jpg

 

Moves back without issues too.

cQxtV12.jpg

But with wings attached, it no longer can move. And whole purpose is to move wings.

5bppSEi.jpg

 

I suspect on ineraction with KJR or something similar. Tweakscale, IR next and stock parts only for craft is required. I didn't noticed anything odd in log, I hope that provided crafts would be enough.

 

Link to comment
Share on other sites

41 minutes ago, kcs123 said:

I suspect on ineraction with KJR or something similar. Tweakscale, IR next and stock parts only for craft is required. I didn't noticed anything odd in log, I hope that provided crafts would be enough.

Yes, it's because of KJR... I've one question:

How did you create this? Which link is the one that's not normally possible? I guess it's the one at the Extendatron... between Extendatron and uncontrolled Pivotron? right? ... did you use a mod?

almost every part seems to be connected with the ground... that shouldn't happen with KJR... but... I never looked into this code (the one responsible for making ground connections) ...

can you move the wings, after releasing it from the clamp?

Edited by Rudolf Meier
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...