-
Posts
334 -
Joined
-
Last visited
Content Type
Profiles
Forums
Developer Articles
KSP2 Release Notes
Everything posted by MAFman
-
Realistic torque curves for the turboprops
MAFman replied to MAFman's topic in Breaking Ground Discussion
So, it'd be more realistic to have a torque limiter curve as a function of throttle, with the RPM limiter locked at 460 RPM? -
I read engines usually output a changing amount of torque at different rotational speeds. What would a realistic torque vs. RPM curve look like for the turboprop engine?
-
Is there a way to add sounds to the motors, especially the turboprops, maybe via ModuleManager?
-
How would I add sounds to the Breaking Ground motors, especially the turboprop engines?
-
Lunokhod-style Rover Delivery
MAFman replied to MAFman's topic in KSP1 Gameplay Questions and Tutorials
Ok, after that redesign, it's not wobbling anymore. Perhaps before when I was using reaction wheels instead of RCS for orientation, the wheels were too strong. -
Lunokhod-style Rover Delivery
MAFman replied to MAFman's topic in KSP1 Gameplay Questions and Tutorials
I have the craft file here: https://drive.google.com/file/d/1IWudqkGAxj_mIdb4x-02q-lICZoiwL2D/view?usp=sharing -
Lunokhod-style Rover Delivery
MAFman replied to MAFman's topic in KSP1 Gameplay Questions and Tutorials
I'll post some tomorrow when I go to rebuild my design. -
Using the Breaking Ground DLC, how would I design a sort-of-realistic Lunokhod lander and rover system? When I tried it using the 2 meter steel plates and hinges, the hinges started to wobble due to the acceleration of the landing engines.
-
Could you make some fuel tank and engine parts for this mod as well? I find it hard to fit the stock "Oscar" fuel tank and "Ant" engine in the chassis.
-
I built, launched, and deployed a fully stock Nova-C lander with all three cubesat sub-payloads into orbit and onto the surface of the Mun!
-
Whenever I've attempted a MESSENGER-style Moho mission, using mostly gravity assists to lower my velocity relative to Moho, I've always come up way short on delta-V, always requiring about 7 km/s even after 10 years of gravity assists to circularize. What am I doing wrong?
-
Why is the universe noticeably jittering?
MAFman replied to MAFman's topic in KSP1 Technical Support (PC, modded installs)
Thanks, that fixed it! -
I'm experiencing frequent crashes both before when I had lots of mods, and now that I've uninstalled all mods. The game really doesn't like it when I revert to launch more than about twice, as it immediately crashes when I do.
-
How would one make an Eve lander using the default CommNet since the only antennas capable of reaching Kerbin from Eve would snap in the high density atmosphere?
-
Can docking ports of different sizes dock together?
-
I'm trying to make a quadcopter that's actually flyable intuitively, and to that end I'm developing a kOS script to control it. I'm using the Breaking Ground rotors and controlling them using their max RPM fields. Here's the code: // Fly-by-wire for a quadcopter // Declare variables representing the four motors, which are tagged set frontLeft to ship:partsTagged("front left")[0]. set frontRight to ship:partsTagged("front right")[0]. set rearLeft to ship:partsTagged("rear left")[0]. set rearRight to ship:partsTagged("rear right")[0]. // Use setField(rpmLimit) set frontLeftThrottle to frontLeft:getModule("ModuleRoboticServoRotor"). set frontRightThrottle to frontRight:getModule("ModuleRoboticServoRotor"). set rearLeftThrottle to rearLeft:getModule("ModuleRoboticServoRotor"). set rearRightThrottle to rearRight:getModule("ModuleRoboticServoRotor"). set motors to list("frontLeft", "frontRight", "rearLeft", "rearRight"). function throttleMotor { parameter motor, throt. // throt is a float between 0 and 1 if motor = "frontLeft" { frontLeftThrottle:setField(throt * 460). } else if motor = "frontRight" { frontRightThrottle:setField(throt * 460). } else if motor = "rearLeft" { rearLeftThrottle:setField(throt * 460). } else if motor = "rearRight" { rearRightThrottle:setField(throt * 460). } else { // Catch-all, this should never happen print("Error: invalid motor!"). } } function calcMotorSpeed { // Make the speed of each motor proportional to the main throttle plus the input from steering set rotorSpeed to 230 * pilotMainThrottle. set speedOffset to rotorSpeed * 0.25. // Pitch: If negative, front rotors slow down and rear rotors speed up // If positive, front rotors speed up and rear rotors slow down // This happens until the measured pitch is +/- 15 degrees, // at which point the four motors briefly change speed to stop the pitch // If zero, reverse pitch until forward speed is zero set pitchOutput to list(0, 0, 0, 0). if pilotPitch = -1 { set pitchOutput[0] to -speedOffset. set pitchOutput[1] to -speedOffset. set pitchOutput[2] to speedOffset. set pitchOutput[3] to speedOffset. } else if pilotPitch = 1 { set pitchOutput[0] to speedOffset. set pitchOutput[1] to speedOffset. set pitchOutput[2] to -speedOffset. set pitchOutput[3] to -speedOffset. } else { // Reverse outputs until measured forward speed is zero, then set all input offsets to 0. } // Yaw: If negative, front left and rear right rotors speed up, and rear left and front right rotors slow down // If positive, front right and rear left rotors speed up, and rear right and front left rotors slow down // If zero, set all rotors to equal speed. set yawOutput to list(0, 0, 0, 0). if pilotYaw = -1 { set pitchOutput[0] to -speedOffset. set pitchOutput[2] to -speedOffset. set pitchOutput[1] to speedOffset. set pitchOutput[3] to speedOffset. } else if pilotYaw = 1 { set yawOutput[0] to speedOffset. set yawOutput[2] to speedOffset. set yawOutput[1] to -speedOffset. set yawOutput[3] to -speedOffset. } else { set yawOutput[0] to 0. set yawOutput[1] to 0. set yawOutput[2] to 0. set yawOutput[3] to 0. } // Roll: If positive, left rotors speed up and right rotors slow down // If negative, left rotors slow down and right rotors speed up // This happens until the measured roll is +/- 15 degrees, // at which point the rotors briefly change speed to stop the roll // If zero, reverse roll until lateral speed is zero set rollOutput to list(0, 0, 0, 0). if pilotRoll = -1 { set rollOutput[0] to -speedOffset. set rollOutput[2] to -speedOffset. set rollOutput[1] to speedOffset. set rollOutput[3] to speedOffset. } else if pilotPitch = 1 { set rollOutput[0] to speedOffset. set rollOutput[2] to speedOffset. set rollOutput[1] to -speedOffset. set rollOutput[3] to -speedOffset. } else { // Reverse outputs until measured forward speed is zero, then set all input offsets to 0. } // Total: Sum all inputs and that's the final output. set totalOutput to list(0, 0, 0, 0). for element in pitchOutput { set totalOutput[element] to pitchOutput[element] + yawOutput[element] + rollOutput[element] + rotorSpeed. } for m in motors { throttleMotor(m, totalOutput[indexOf(m)]). } } I have yet to implement the auto-leveling, which I have no idea how to do. How do real drones pull it off?
-
How do you get the Crater Crawler rover to anywhere but Kerbin? It's too big to fit in any rocket I can think of.
-
How do you measure the efficiency of an ascent profile in terms of gravity and aerodynamic losses?
-
Yep!
-
I built a replica of the James Webb Space Telescope using the Breaking Ground parts and put it into a 1/4 year Kerbin orbit!