-
Posts
1,352 -
Joined
Content Type
Profiles
Forums
Developer Articles
KSP2 Release Notes
Everything posted by ZodiusInfuser
-
[WIP] Infernal Robotics - Next
ZodiusInfuser replied to Rudolf Meier's topic in KSP1 Mod Development
Most robotics actuators do not have any shock absorbing capabilities, but there is a new breed of actuators called Variable Stiffness Actuators that are able to adjust their stiffness on the fly. Big spring shocks would be cool, but there would be no way of animating the compression of them, as A) I don't know how to do deformation animations in Blender, and B) IR does not have any way to control animations to follow the motion of its joint. It seems to me that at minimum there would need to be parts to cover the three main types, rotatron, pivotron, and extendatron. If good enough reference images can be found for those then I am sure I can come up with some cool models. -
[WIP] Infernal Robotics - Next
ZodiusInfuser replied to Rudolf Meier's topic in KSP1 Mod Development
It depends whether the greatest player flexibility is wanted or whether readability is wanted. Personally, I strive for readability with the Model Rework, so that you can look at an image and can identify a craft's rough capabilities based on which parts they use. As such my preference would be to add the ability to a subset of existing parts, such as extendatrons like you suggest, and make new variants of other parts as needed. This could also be where changing the emissive color of parts could come in handy, to indicate if spring mode is activated or not. -
[WIP] Infernal Robotics - Next
ZodiusInfuser replied to Rudolf Meier's topic in KSP1 Mod Development
Does this mean I should plan to model rotational and linear shock absorbers in the near future? Or would people rather this functionality be available on all existing parts? -
I'm familiar with them, they're not very accurate and have a minimum range of at least 30cm, not to mention they don't report the distance of the point directly in front of them (it's more like a cone). You may get better results with one of these: https://www.sparkfun.com/products/242 but they again are not super accurate and also are affected by different materials. So in general you cannot rely on measuring the height of the ground IRL. P.S I'll reply to the rest tonight.
-
That is one impressive terrain adaptation algorithm you've got there! Am I right in thinking you check the height of the leg relative to the ground on each update rather than just on contact? I as because if you were to translate this to IRL getting that height value won't be possible so another approach to terrain adaptation would be required, which is something I'm currently looking in to. Good luck tackling steering, especially if you want to combine translation/strafing with turning. Not impossible, but to do it well is likely to require a lot of maths and may not fit in with your current circular striding approach.
-
[WIP] Infernal Robotics - Next
ZodiusInfuser replied to Rudolf Meier's topic in KSP1 Mod Development
Maybe you can have a setting for rotational parts that lets these values be set if no limits are specified in their config, as I see the value of having both controlled and uncontrolled versions (and adjustable ingame). I remember Ziw doing the code you mention and not getting great results, so I doubt having them for translational parts is viable. -
[WIP] Infernal Robotics - Next
ZodiusInfuser replied to Rudolf Meier's topic in KSP1 Mod Development
Those values in original IR control the internal spring of the joint. By default we only ever used values that meant the spring was at it's extreme (so the servo always matched its target) or at its minimum (so it became uncontrolled). Members did do tested thought of other values and it made things like shock absorbers possible. One idea kcs123 and I discussed was variable elastic actuators, which are special servos IRL that can dynamically adjust their stiffness, hence his suggestion of having the spring values exposed in the VAB (either for all parts or a specific subset) -
[WIP] Infernal Robotics - Next
ZodiusInfuser replied to Rudolf Meier's topic in KSP1 Mod Development
If you want this mechanism then the two uncontrolled pivotron variants placed back-to-back would achieve that, and I'm sure could be adapted to a single part if the functionality exists. -
Awesome! I find funny that since I was made aware of your efforts (and a friend for completely unrelated reasons asked me about walker motion), I've been looking back at my 5+ year old notes and arrived at completely different solutions for steering and terrain adaptation. I actually did some code over the weekend for the latter that I think would work well, but need to do more analysis to be sure.
-
If you're talking about tracking robots, then this is something I've been very keen to get: https://www.triadsemi.com/product/ts3633-cm1/ Would let a robot know its exact position within a "vive field" and could get around the lack of joint angle feedback if many were positioned correctly.
-
Oh yes, I've used Bluetooth as a COM port before from a C++ application, just never from C# or Unity. Writing a custom protocol would not be too hard from my experience, just requires a bit of forethought as to what you may want to support in the future. Because most servos can be hacked to get their internal potentiometer value out, or you buy Dynamixels and be done with it :P. You are right that photodiodes and a reflective disc could also be used to get absolute position, but this can get really complex if done DIY, or be very expensive if not.
-
Arduino would definitely be my go-to for such a project, as I've used them (and even designed my own) for other projects in the past. In fact my hexapod has one but not as the main servo driver unfortunately; that is a custom thing that accepts serial commands. So at minimum, if Unity can output serial data over bluetooth then it could remote control real hardware quite easily. Having things run on-board as you point out would require porting from C# to C++, which shouldn't be too hard as long as not too many libraries are used. Indeed, that's what I like about KSP and IR, that a lot of the knowledge and ideas can be transferred to IRL. In this case, if an algorithm could be designed and verified with KSP, that would be a lot faster than having to deal with real hardware, plus you get a physics engine with it too!
-
If you're wanting a cheap kit then check out the Hexy for around $300. I won't say how much mine cost to build but it was more than that... Being able to fly is certainly an advantage KSP has over IRL, although I'm sure some kind of drone + walker could be made. The only potential issue I could foresee is that IRL servos often don't give you any angle back, meaning that the PID would not be able to compensate for weight due to gravity for instance. I guess a virtual model could be used to compensate for that though. Ah good, you've abstracted the IK from the walking to become moving points around. This matches my mindset, in that the kinematics are "just" an animation on top of a gait generator that moves a set of points around according to some rules set out. I've been working on an idea for a while now of how to deal with lots of target points with different stride lengths to get full 2D motion control, like in a First Person Shooter. Also, something that supports (omni-)wheels too. I'm nowhere near having something useable yet though, although the code I've been writing is in C#. I'm curious what you mean by rotating the target around an anchor. Is this related to the motion path you are wanting the body to take, such as turning on the spot? Also, this may be of interest to you (https://youtu.be/RjAyq2kmGT8?t=59s). It's a trailer from a game that never got released, that has by far the best Quadruped IK and target control I've seen in a game. I hope to be able to replicate this one day.
-
1.1.2 Magic Smoke Industries Infernal Robotics 2.0.2
ZodiusInfuser replied to sirkut's topic in KSP1 Mod Releases
@VR_Dev I can't believe I didn't know about this before you posted. This is amazing!! I love how you've got the two skeletons overlaid in the view showing the intended and actual position of the robot. My question now is, could this be used separate from / in addition to KSP, to control lets say this real robot that is collecting dust in my flat? https://www.youtube.com/watch?v=sR4aj7tOwko -
Now this is exciting!! I've been wanting a simulation environment for testing out the mechanics of walking robots for ages, but never thought that KSP could be it, much less with my own parts!! I'm unfamiliar with unity programming but have done C#. What would it take to implement a custom algorithm with this? I am thinking this would be a great tool for designing and verifying my various walking robot designs before spending IRL money to actually build them!
-
Anyone care to make some simple models?
ZodiusInfuser replied to whale_2's topic in KSP1 Modelling and Texturing Discussion
Cool! Is the locking mechanism a standalone plugin from the collision changes? I can definitely see it having a place as part of the IR rework if you are interested, either within the mod or as a part that works when your mod is installed, like the existing IR-themed KAS Magnet. We can discuss privately if you wish. I still cannot picture how the rails and bumpers would fit in though. Are they just special parts that have collision enabled, so that you don't have to set a toggle on normal parts? -
Anyone care to make some simple models?
ZodiusInfuser replied to whale_2's topic in KSP1 Modelling and Texturing Discussion
Very cool!! For that part in the video are you able to restrict the alignment angle or does it just lock based on if the colliders touch? Have you got any other example uses for such a part? I am just thinking that if you're primary use-case for the part is with Infernal Robotics, I could be persuaded to do a Rework style model for it if Tokamak doesn't come back with something. I already have a reference in mind (based on my own work on robotic connectors): https://naturalrobotics.group.shef.ac.uk/publications/2014-iros-parrott.pdf Also, what's the rail part meant to be? -
1.1.2 Magic Smoke Industries Infernal Robotics 2.0.2
ZodiusInfuser replied to sirkut's topic in KSP1 Mod Releases
Maybe try comparing your install to the one I posted here: -
Hi, I've been away from KSP for a while (a few years) and would like to update my pre-KSP 1.1 wheel parts to 1.3 using KSPWheel. I was wondering if there was a tutorial somewhere on how to set up parts both on the config side and on the model side for KSPWheel? My old wheels no longer work in the game so will need re-rigging, particularly the multi-collider ones. Also, is there a module that lets me flip the orientation of a wheel rather than have two separate parts? Previously I used a mirror module within Kerbal Foundries, but that doesn't look to be a thing any more. Also, also, is there a guide for making tracks? Thanks
-
Nice that it worked! As I am not a coder for KSP there is no way for me to add adjustable spring values in to the game, but I agree that it would be useful. Seeing that the IR plugin isn't actively being developed that is unlikely to happen any time soon though. Limiting rotation angle (in respect of preventing it going over a set limit) is not possible. The current limits you set are only for the powered input and have no way to limit how far the spring stretches. Hmm, not sure why the extendatron isn't behaving. Maybe create a fully free moving one first? Have you tired applying a load to it? Or maybe your spring values need to be different for translation versus rotation. The free moving flag won't affect anything as that just tells IR to hide the part from the window so it can't be controlled.
-
Actually it would be easier to create a rotational shock absorber! And indeed copying the existing uncontrolled rotatrons / bearings and changing those two values would work. You may also need to set freeMoving to false though if you want to have some IR control over the joint, otherwise it will always try and return to a default angle. Have a play around if you get chance. Saying this reminds me of a motor type I saw a few years ago at a conference that I'd completely forgot about: Variable Stiffness Actuators / Series Elastic Actuator. They are essentially two motors that connect to an output via springs, allowing them to adjust their tension on the fly. So if there is demand for a solution within the realms of what is already possible with IR (the variableness would need to be modded in), I could certainly make a custom rotational part for it.
-
The idea of shock absorbers that you can attach to makes a lot of sense, but as you point out the challenge is the plugins. Have you ever wondered why the free moving parts are designed the way they are? It is because when you change the value from that needed to have the joint be powered the joint stops abiding by its limits. You can try this yourself by taking an extendatron and modifying those values the more mushy it is, the more likely it will end up coming out of or going through itself along the direction of travel. I recall that @Ziw actually tried to tackle this problem for IR but unfortunately was never able to get a usable solution. Using a wheel to get the effect would be difficult because they rely on raycasts with objects, so even if you could attach something to it, making the internal spring register forces from that part would be difficult. I could quite easily make a shock absorber model though I was actually thinking about ideas last night and came up with these three categories of parts to work on: Station Parts Rail & Gantry Parts Misc Utility Parts What goes in to those categories is open to discussion. I'm sure I have some model files for them already but it's been so long that I can't remember . I swear @V8jester posted a list the last time I popped by
-
Thanks, I came across the new KerbalFoundries today and saw that it uses KSPWheel under the hood. That definitely seems like the better way to go for fixing all 6 of the wheels, particularly considering they got tracks working again by the looks of it. The bit I enjoy about modding for IR is creating the parts, so I will probably visit some unfinished stuff before tackling wheels. IIRC I had a whole rail set I never finalised. Is there anything else I may have forgotten about?