Jump to content

The Kerbal Space Agency - Flight Tracker v3 w/Better ground plots, telemetry, navigation & more!


Recommended Posts

After the first unsuccessful test flight of the Mk1.3 Kerboljet, a second iteration of the aircraft was constructed. It featured improvements to help address the problems that were uncovered in the first version after a lengthy crash investigation. The main issue investigators found was the landing gear were too wide, causing uneven compression while steering during the take off roll. One of the gear buckled under the strain and steered the craft off the runway. Since the KSA's most experienced pilot FO Kirk was back to active duty after recovering from injuries sustained on a previous mission, he was tapped to pilot the Mk1.3 Kerboljet II on its maiden flight.

COc5gFw.png

Q73YUsh.jpg

TyZvIcg.png

9lzagNs.png

3ZCLLDr.png

Wf8E6CG.png

CYutg8V.png

NCeJ2P6.png

Pb9MzdB.png

87A7rCt.png

2l2bErL.png

aYN9S5J.jpg

v1yuYs3.png

Link to comment
Share on other sites

Just prior to receiving two new astronauts into the program (see the updated Roster in the OP), the KSA launches its first mapping satellite into orbit around Kerbin to test new technology to gather surface data on planets from space. The instruments on board measure terrain altitude and slope, as well as vegetation and land surface to create a biome map. Future missions to Mun and other planets in the Kerbol system depend largely on the success of the technology deployed by K-SCAN.

qZ2bGeW.png

Z6bNveI.png

0rnVObY.png

rVxdw8l.jpg

09aZmDI.png

SqbWbzi.png

U4iEJ4U.png

SMckJwM.png

su37PzB.png

DY9JNQn.jpg

PvIqHzl.png

Wr3ZmC0.png

u6FDcAC.png

Bj26wHT.png

y8OX0tn.png

Oj6BXWj.png

JxhWDyG.png

igCKsS2.png

xHSFEea.png

mOSNqao.png

0y7rcuU.png

mPOqoHs.png

WYTZULJ.png

SHYc32i.png

Fj30lVf.png

64CDbvE.png

msusWAf.png

EHzcmuD.png

yOa6tV4.png

cAbuCSh.png

IfP10Ya.jpg

NhhKBng.png

taCsSPQ.png

WcXVon7.png

FiIVawQ.png

toCd9Se.png

XKbahOk.png

SaX7wXh.jpg

bvrz7Tb.png

h8fzpST.jpg

83v339m.png

A6RBOo9.jpg

t05FOIT.png

il7aVko.png

phoetap.png

uNE38sa.png

VGPDgRN.png

2PIUYcr.png

kRV6MO8.png

2hPDpr2.png

IwA83Pi.png

PQ3aeYR.png

RMPjzgp.png

hSs4mHN.png

Edited by Gaiiden
Link to comment
Share on other sites

It is now late May and the KSA has a daunting task ahead of it. Of the three Low-Kerbin Orbit communication satellites (LKO ComSats) that were successfully lofted into orbit the prior few weeks, two were in need of servicing in order to become fully operational. Not only did this require a kerbed flight with limited communication support, but two spacecraft had to be navigated to within mere meters of each other, 100+km up into space while traveling at speeds close to or exceeding 2km/s. As the last available astronaut, Captain Bob had no choice but to take on this difficult mission...

This summary takes place after the events of Mission Dispatch #20, and covers Dispatches #21, #22 and #23.

Because orbital rendezvous had never before been attempted, and scientists were not entirely sure it was even possible, it was decided that Capt Bob would first target the

Kerbin III orbital debris to remove all risk of potentially damaging a ComSat with a bad encounter. Removing this debris from orbit has been something the KSA wanted to do at some point anyway, so this seemed a perfect opportunity. The rocket constructed was of a new, twin engine design featuring rockets from KW Rocketry, and Simon was glad to be able to re-attach the escape tower to the nose so the unproven rocket could be flown right away. Launch of the Kerbin De-Orbiter (KDO) took place at 13:12 UTC on 5/26, attempting for a direct surface-to-orbit rendezvous with the debris. This however proved to be much more complex then initially thought and Capt Bob ended up in the completely wrong orbit with no hope of attaining an intercept using the fuel remaining. The remainder of the mission was scrubbed and Capt Bob, the 3rd kerbal in space, successfully returned to Kerbin after spending time in orbit performing visual observations with remaining life support.

IFyLadG.jpg

The first KDO vessel on the pad awaiting launch

Before the next attempt could be made, Lead Engineer Simon had to task his team to redesign the lift rocket. More thrust was needed in the lower atmosphere to boost the main engines higher prior to throttle-up as they both showed minor overheating during ascent. To make double-sure however the KW Rocketry engines were replaced with the proven NovaPunch Bearcat series that had always been KSA's main lift engine. The second rendezvous attempt would also use a much more gradual approach, attaining orbit and then adjusting as needed to catch up/slow down and match inclination to the debris. Capt Bob went up for his second try on June 3rd, clearing the pad at 9:21am local time with ComSat III overhead to provide signal bounce over the horizon. There were no issues during ascent, and after attaining orbit a rendezvous was successfully plotted by the flight computer. The actual encounter, however, turned out to be during a communications gap as ComSat III set prior to the KDO rising, so it was tense waiting in mission control before Bob finally came back to report that the encounter had come close but ultimately failed. It just so happened the second stage fuel ran out during the burn to match velocities and although there was fuel left in the orbital engine, staging to activate it initially failed. Bob sailed past, and not enough fuel remained for a second attempt. After some more orbital observations, Bob was recovered from the ocean once again.

xYQQBks.jpg

The new KDO blasts off from the pad with 6 SRBs

The third attempt to reach the Kerbin III debris was carried out on June 11th, with Capt Bob launching while the KSC was underneath the ascending node of the debris orbit. This gave Bob the opportunity to match orbital inclination while ascending to orbit, which he managed to do despite an issue with offset thrust that caused the spacecraft to want to pitch up under throttle once the main lift engine with large vectoring capability was dropped. It was determined however the vessel was controllable enough to go for the rendezvous and after attaining a record orbital height over Kerbin to set up the approach, Capt Bob was finally able to match velocities on close encounter thanks to a simplified rocket configuration to remove any chance of staging issues.

VRQzAU5.jpg

A successful intercept is plotted and carried out at last!

Once hooked to the debris Bob was able to transfer out the remaining fuel from Kerbin III and rotate the combined craft retrograde to burn his orbit into the atmosphere and cut the debris loose. However during the burn asymmetric thrust/CoM problems intensified and radio contact was lost as Bob was forced to use all control authority possible in his torque wheels to maintain control and thus drained his batteries despite the engine alternator. Several tense minutes of no contact went by before Bob was back online after going on EVA to reposition the solar panels on his dead craft, which ended up facing away from the sun. The debris was successfully cut away and Bob's orbital velocity restored. The fuel in his second stage now exhausted, the plan was to use the extra fuel gained from Kerbin III to move into a better orbit for observations, but when the second stage was dropped and the orbital engine ignited, the offset CoM issue became bad enough to make the craft almost impossible to orient properly while under thrust. Bob wasted too much fuel attempting to maintain control and burn for his target orbit and the flight had to be aborted. Upon return to Kerbin, Bob finally managed to bring his capsule down on land for the first time!

bqy8hYq.jpg

Captain Bob, after 4 flights, finally gets to place a flag on Kerbin

Now that Bob had proven orbital rendezvous to be possible, plans were already being drawn up for the two missions that would send him up to take care of ComSats I and II in order to finally make the LKO network fully operational.

Link to comment
Share on other sites

The KSA is looking to clean up two spent stages floating in space, and it has two astronauts fresh out of the Academy to prove their mettle on individual missions to de-orbit the debris. Capt Desson, by virtue of alphabetical order, is launching first atop a revised version of the craft Capt Bob used to perform the first-ever orbital rendezvous earlier this year. After a range clearance issue forces the launch later into the day, Desson carries out his mission, but not without problems. Don't forget you can view Desson's profile in the OP roster to see his new ribbons and mission stats.

mSGe2mU.png

6gD3lxk.png

6nFBMkX.jpg

w48AugF.png\

QioVT8F.png

Gj91wZg.png

aKq9djH.jpg

i7zvSOj.png

4GZdJ1B.png

NduXUMA.png

Kz91qCf.png

QpgsPZC.png

ZYMwTUR.png

UFYRsIB.png

mdhziSJ.png

4lQo4GR.png

xsbgwZC.png

jYs0vyl.png

0nc0Y0e.png

hflAIGr.png

orDyznR.png

2sdauev.png

wWGrnr5.jpg

aGYQkBh.png

M1CVuuK.png

DcsgwqL.png

tMshyMg.jpg

BmC6pCS.png

PhOK5gL.png

tpMUax8.png

w5K3JsD.png

DRRe137.png

b0YJNx8.jpg

4O1Kdzh.png

vJW2o6H.png

weSnihO.png

UDkwovB.jpg

yMsbMs9.png

KaQChhd.png\

feNYUY0.png

oDPRbM1.png

XYUt05n.png

23RyI10.png

3n25gBA.png

LWyHrf3.png

8WW7DuN.png

zrIP83s.jpg

xs75HZ7.png

JrmnFNl.png

wZi4sYB.png

MNxsUXS.png

jvBKFjq.png

clLMHsj.png

pkrFbL2.png

Ff8pqGg.png

E9zv3hF.jpg

L1Et6JY.png

KC2Ueb6.jpg

o4WJZ7K.png

Edited by Gaiiden
Link to comment
Share on other sites

It is now "fly or die" time for the Aerospace Group and their highly-experimental jet/propeller fueled/electric hybrid aircraft design. The previous crash of the Kerboljet was investigated and determined to be from lack of lift and thrust - upon reaching the end of the runway the aircraft was producing maximum thrust, however it failed to achieve any lift. Engineers knew they had to decrease the weight, but for now the only option was to simply load less fuel for the test flight. In addition, flight surfaces were tweaked for slightly better L/D qualities and the engines were re-tuned to provide slightly more thrust. The third (and final) prototype aircraft was test flown once again by Flight Officer Kirk.

q73AdSu.png

Ifrsvmp.png

1xxtufE.png

u8csQqz.png

LPj7T2s.png

BzQlmqS.jpg

Zhv0IkY.png

CWoTMuJ.png

AZPemLg.png

gjEpZ52.png

tC77VeP.jpg

xLciQTj.png

mr5blCk.png

EYuSPAe.png

nBf4rJH.png

ZnF9kyB.png

nXptzai.png

enC1ETu.png

bnlXqnM.png

LbvTXuw.png

Link to comment
Share on other sites

The recently-unveiled Mk1-2 capsule has spent its first few weeks undergoing recovery trials to ensure that it can safely return astronauts to the ground/water after passing through re-entry. Three tests were designed to put the Mk1-2 systems through their paces as well as test automated functions that will be used for its first orbital flight, which will be unkerbed.

sumBkVf.png

BEZaNrE.jpg

CTwO4n5.png

T0s8F1P.png

vbl3Il7.png

PJFPLBQ.png

RsunFBs.png

XtVEkYA.jpg

hOfekfN.png

tPhoeic.jpg

hm24sz1.png

Cxgmmks.png

WOqHYhT.png

Q6ehnLR.png

6jDgrc7.png

vOlJP9f.png

v6UXoWG.png

NeP6C2D.jpg

gpguIu0.png

euhgnTj.png

XYaxuvO.png

OGZMd5X.png

bhPZVvB.png

6jpaw3V.png

Oe87m09.jpg

MbAg1A7.png

lSnmDp2.png

6RkJJil.png

rM4ooDC.png

jKyP2W2.png

LAahFVv.png

awB9pbL.png

LnIAXn5.png

uWqKBTR.png

zdHVYkN.png

2NGNGeD.jpg

D0Yf4ZA.png

wuV3oKk.png

Link to comment
Share on other sites

I scratched another itch I've had for a while now, which was being able to display information on flights that are currently operational. It was mostly made possible by the little pop-up window trick I devised for my crew roster, but then there's also the fact that I've learned how to properly import orbital data into Universe Sandbox (with planet/moon textures!) and Kronal Vessel Viewer let me create renders of my spacecraft without having to try to find some good lighting conditions of the actual craft in space. Then of course Mission Architect gave me all sorts of accurate orbital data to list. Also thanks to TriggerAu and his KSP Alternate Resource Panel for the resource icons. I nabbed the comms icons from Google images and I also snagged the KSP forums favicon out of my browser cache - for craft that have kerbals I will have an icon for each kerbal and you can hover over them to see who is on board. The comms icons tell you what the craft is communicating with and the resource icons tell you how much is remaining. The main craft picture also includes a description that pops up when you hover over it. Then too there are the flag maps. I made those with the Image Map Tool.

And if that all wasn't good enough, I've talked to Arrowstar (Mission Architect author) and he's told me it'd be a worthwhile project to convert

Orbit Viewer to the Kerbol system. It's the same program JPL and other websites use to show orbits. I probably won't tackle that for another month or so, though.

Anyways, I had these orbits all plotted out in Universe Sandbox it seemed a waste not to animate them into short videos, which led me to create a YouTube channel for the KSA. I have a few more small clips scheduled for the coming weeks. Don't expect any length launch videos or anything like that... yet. Busy with other stuff for now. But as with the rest of things I'm doing the YouTube channel will grow more prominent over time.

Auto-scheduling Updates Added!

Ok so a major problem I had burning in the back of my mind when I made this was having to maintain it. Especially during an active mission, a craft state is constantly changing. Now, I know I don't have to make this system near real-time because let's be honest I doubt anyone will sit around with a craft window open hitting F5 during a mission to see how its doing. But, on the other hand that would be so cool. The problem is, of course, pushing the updates would be a pain in the ass to do manually. Solution? Automate it, of course! And so I did, with some ASP script:


<html>
<body>
<%
dim UTlist()
redim UTlist(0)

'calculate the time in seconds since epoch 0 when the game started
fromDate = "16-Feb-2014 00:00:00"
UT = datediff("s", fromdate, now())

'get the files in our folder
thefolder=server.mappath("\") &"/images/KSA/Flights/Mu-SCAN"
set fs = server.createobject("Scripting.FileSystemObject")
set f = fs.getfolder(thefolder)
set fl = f.files

'iterate through the files, identify craft files and extract the UT
for each strfile in fl
if instr(strfile.name, "craft") then
craftUT = Mid(strfile.name, 6, instr(strfile.name, ".")-6)
UTlist(ubound(UTlist)) = clng(craftUT)
redim preserve UTlist(ubound(UTlist)+1)
end if
next

'find out which UT to use
For Each item In UTlist
if item and UT > item then
useUT = item
end if
Next

'load the proper craft file for this time
Response.Redirect "http://www.blade-edge.com/images/KSA/Flights/Mu-SCAN/craft" & useUT & ".asp?refresh"

set fs = nothing
set f = nothing
set fl = nothing
%>
</body>
</html>
<!DOCTYPE html>

So to use this, I name my pages "craftUT.htm" where UT is the time in seconds after which this page is supposed to go live. The beauty is that the file system will automatically sort these into ascending order, so I just have to iterate through them until I hit one that's beyond the current time, and then just use the last one before. Now, I still have to create the various craft pages to show various states, but then I can sit back and let the script do the work of serving up the proper vessel situation at the proper time.

So yea - all craft in the flight tracker will now represent near real-time information.

MET, help cursors, imgur hosting

I've done some more tweaking to the flight data displays. The major update was now you can see the Mission Elapsed Time by hovering over the text telling you when the craft was launched or created (created in the case of debris or separation from a main ship). The code for that is


fromDate = "13-Sep-2014 21:35:45"
MET = datediff("s", fromdate, now())

years = 0
days = 0
hours = 0
minutes = 0

if MET >= 86400 then
days = int(MET / 86400)
MET = MET - (days * 86400)
end if

if days >= 365 then
years = int(MET / 365)
days = days - (years * 86400)
end if

if MET >= 3600 then
hours = int(MET / 3600)
MET = MET - (hours * 3600)
end if

if MET >= 60 then
minutes = int(MET / 60)
MET = MET - (minutes * 60)
end if

seconds = MET
'calculate the time since the start of the mission

Obviously fromDate needs to be set for each craft individually, and is derived from the lct parameter in the SFS file. It's then displayed with some ASP magic included within a <span> tag:

<%response.write("title='MET: " & years & "y " & days & "d, " & hours & "h:" & minutes & "m:" & seconds & "s'")%>

the other minor changes are the cursor turning into a help arrow when you hover over certain images and text, so that people notice and hopefully pause to reveal the title pop-ups that show additional information. I've also moved all the images to my KSA imgur account for better loading since my server was being a bit overloaded.

I have a few more tweaks yet to make. I want to do some CSS pop-up image captions for the main craft image so the description is found more easily and I want to add to all Electric Charge fields the max solar output possible from panels on the craft.

My work here is done

Found the perfect CSS image caption to use, managed to extend it a bit so that part of it would stick up and then pull the rest up when you moused over the image. Slick!? Slick! Added the solar/generator charge production to the Electric Charge pop-ups. Also added a link to the bottom since I can directly reference these windows and thus want to let people know more flight status can be found here in the OP.

And that's pretty much all I had planned for this feature. Oh right - Orbit Viewer. Still not going to tackle that for a couple of weeks, I have enough to work with right now and can easily integrate that at a later date.

I also wish I could have pop-ups for the craft links in the OP to display some immediate data as well...

Oh look more stuff - Auto updates!

A new feature I just added allows the tracking window to update itself a set number of seconds. Here is the code:


'only bother if we still have not got to the next update
QueryString = Request.ServerVariables("QUERY_STRING")
if UT < 22605540 then
if QueryString = "refresh" then
Response.AddHeader "Refresh", "60;URL=http://www.blade-edge.com/images/KSA/Flights/Lupek%20Test%20Drive%204/default.asp"
end if
else
QueryString = ""
end if
'are we auto-refreshing the page?

So in this case every minute the page is reloaded, but it does so by calling the "default.asp" file, which means that if there's some new data to display, the newer page will pop up on reload. I've updated the "default.asp" code listing above to reflect the changes.

In case users want to toggle this feature on and off, I added the following code to the bottom of the tracker craft pages:


if QueryString = "refresh" then
response.write("<a target='_blank' href='http://forum.kerbalspaceprogram.com/threads/82506-The-Kerbal-Space-Agency-Flights-in-Progress-Tracker!'>More Flights In Progress</a> | <a href='http://" & Request.ServerVariables("SERVER_NAME") & Request.ServerVariables("URL") & "'>Disable 1min auto-fresh</a>")
else
response.write("<a onclick='window.close()' target='_blank' href='http://forum.kerbalspaceprogram.com/threads/82506-The-Kerbal-Space-Agency-Flights-in-Progress-Tracker!'>More Flights In Progress</a> | <a href='http://" & Request.ServerVariables("SERVER_NAME") & Request.ServerVariables("URL") & "?refresh'>Enable 1min auto-fresh</a>")
end if
%>
<%

It just reloads the current page with or without the query string depending on whether it is there or not already.

Yes, this is eventually going to be used to display ascent data!

The next logical step - Databases

Well, obviously if I'm going to be doing ascent data then I need and much easier way to input that data than having to create a whole individual craft file for each state. So I took the time over these last 2-3 days to re-learn how to make and access a database with ASP, something I haven't done in over 10 years. It all came together a lot nicer than I had hoped too. To make things even easier on me, I designed the database so that I only have to include updates to the various tables. This means that if values don't change from one update to another, I don't have to create a duplicate record. Here's what the craft.asp page looks like:


<html>
<head>
<link href="style.css" rel="stylesheet" type="text/css" media="screen" />
</head>
<body>
<%
'open craft database
db = "..\..\..\..\..\database\db" & request.querystring("db") & ".mdb"
Dim conn, sConnection
Set conn = Server.CreateObject("ADODB.Connection")
sConnection = "Provider=Microsoft.Jet.OLEDB.4.0;" & _

"Data Source=" & server.mappath(db) &";" & _

"Persist Security Info=False"
conn.Open(sConnection)

'calculate the time in seconds since epoch 0 when the game started
fromDate = "16-Feb-2014 00:00:00"
UT = datediff("s", fromdate, now())

'what UT are we looking to pull from the DB?
if request.querystring("ut") then
dbUT = request.querystring("ut") * 1
else
dbUT = UT
end if

'get the craft tables
set rsCraft = Server.CreateObject("ADODB.recordset")
set rsOrbit = Server.CreateObject("ADODB.recordset")
set rsCrew = Server.CreateObject("ADODB.recordset")
set rsResources = Server.CreateObject("ADODB.recordset")
set rsComms = Server.CreateObject("ADODB.recordset")

rsCraft.open "select * from [craft data]", conn, 2
rsResources.open "select * from [craft resources]", conn, 2
rsOrbit.open "select * from [flight data]", conn, 2
rsCrew.open "select * from [crew manifest]", conn, 2
rsComms.open "select * from [craft comms]", conn, 2

'then point to the relevant record for this UT
if not rsCraft.eof then
rsCraft.MoveLast
do until rsCraft.fields.item("id") <= dbUT
rsCraft.MovePrevious
Loop
end if

'get the next and previous event times/descriptions
nextevent = 0
prevevent = 0
rsCraft.movenext
if not rsCraft.eof then
nextevent = rsCraft.fields.item("id")
nexteventdesc = rsCraft.fields.item("CraftDescTitle")
end if
rsCraft.moveprevious

rsCraft.moveprevious
if not rsCraft.bof then
prevevent = rsCraft.fields.item("id")
preveventdesc = rsCraft.fields.item("CraftDescTitle")
end if
rsCraft.movenext

'are we auto-refreshing the page?
if request.QueryString("r") then
'if there is a future event, go to it. Otherwise, await the next update
if nextevent and UT > nextevent then
Response.AddHeader "Refresh", rsCraft.fields.item("RefreshRate") & ";URL=http://" & Request.ServerVariables("SERVER_NAME") & Request.ServerVariables("URL") & "?db=" & request.querystring("db") & "&r=true" & "&ut=" & nextevent
else
Response.AddHeader "Refresh", rsCraft.fields.item("RefreshRate") & ";URL=http://" & Request.ServerVariables("SERVER_NAME") & Request.ServerVariables("URL") & "?db=" & request.querystring("db") & "&r=true"
end if
end if

'calculate the time since the start of the mission
MET = datediff("s", rsCraft.fields.item("LaunchDate"), now())

'is it prior to launch?
if MET <= 0 then
MET = MET * -1
msg = "T-"
else
msg = "MET: "
end if

'redo if the mission is over
if rsCraft.fields.item("EndTime") and UT >= rsCraft.fields.item("EndTime") then
msg = rsCraft.fields.item("EndMsg")
MET = datediff("s", rsCraft.fields.item("LaunchDate"), rsCraft.fields.item("EndDate"))
end if

years = 0
days = 0
hours = 0
minutes = 0

if MET >= 86400 then
days = int(MET / 86400)
MET = MET - (days * 86400)
end if

if days >= 365 then
years = int(MET / 365)
days = days - (years * 86400)
end if

if MET >= 3600 then
hours = int(MET / 3600)
MET = MET - (hours * 3600)
end if

if MET >= 60 then
minutes = int(MET / 60)
MET = MET - (minutes * 60)
end if

seconds = MET
%>
<center>
<h3><%response.write rsCraft.fields.item("CraftName")%></h3>
<table style="width:100%">
<tr>
<td>
<table style="width:100%">
<tr>
<td style="width:64%">
<div id="mainwrapper">
<div id="box-1" class="box">
<img id="image-1" <%response.write("src='" & rsCraft.fields.item("CraftImg") & "'")%>/>
<span class="caption simple-caption">
<center><b>Craft Information - <%response.write rsCraft.fields.item("CraftDescTitle")%></b></center>
<%response.write rsCraft.fields.item("CraftDescContent")%>
</span>
</div>
</div>
</td>
<td style="width:36%" valign="top">
<table border="1" style="width:100%;">
<tr><td><b>Launch:</b> <span style="cursor:help" <%response.write("title='" & msg & years & "y " & days & "d, " & hours & "h:" & minutes & "m:" & seconds & "s'")%>><u><%response.write rsCraft.fields.item("LaunchDateUTC")%> UTC</u></span></td></tr>
<%
'check if we have any orbital data to display
if not rsOrbit.eof then
'point to the relevant record for this UT
rsOrbit.MoveLast
do until rsOrbit.fields.item("id") <= dbUT
rsOrbit.MovePrevious
if rsOrbit.bof then exit do
Loop

'only execute further if we found a record earlier than this UT
if not rsOrbit.bof then
response.write("<tr><td><b><span style='cursor:help' title='Periapsis: ")
if rsOrbit.fields.item("VelocityPe") < 0 then
response.write("N/A")
else
response.write rsOrbit.fields.item("VelocityPe")
response.write("km/s")
end if
response.write("
Apoapsis: ")
if rsOrbit.fields.item("VelocityAp") < 0 then
response.write("N/A")
else
response.write rsOrbit.fields.item("VelocityAp")
response.write("km/s")
end if
response.write("'><u>Avg Velocity</u><span>:</b> ")
if rsOrbit.fields.item("Avg Velocity") < 0 then
response.write("N/A")
else
response.write rsOrbit.fields.item("Avg Velocity")
response.write("km/s")
end if
response.write("</td></tr><tr><td><b>Periapsis:</b> ")
if rsOrbit.fields.item("Periapsis") < 0 then
response.write("N/A")
else
response.write rsOrbit.fields.item("Periapsis")
response.write("km")
end if
response.write("</td></tr><tr><td><b>Apoapsis:</b> ")
if rsOrbit.fields.item("Apoapsis") < 0 then
response.write("N/A")
else
response.write rsOrbit.fields.item("Apoapsis")
response.write("km")
end if
response.write("</td></tr><tr><td><b>Eccentricity:</b> ")
if rsOrbit.fields.item("Eccentricity") < 0 then
response.write("N/A")
else
response.write rsOrbit.fields.item("Eccentricity")
end if
response.write("</td></tr><tr><td><b>Inclination:</b> ")
if rsOrbit.fields.item("Inclination") < 0 then
response.write("N/A")
else
response.write rsOrbit.fields.item("Inclination")
response.write("°")
end if
response.write("</td></tr><tr><td><b>Orbital Period:</b> ")
if rsOrbit.fields.item("Orbital Period") < 0 then
response.write("N/A")
else
response.write rsOrbit.fields.item("Orbital Period")
response.write("s")
end if
response.write("</td></tr>")
end if
end if

'check if we have crew data to display
if not rsCrew.eof then
'point to the relevant record for this ut
rsCrew.movelast
do until rsCrew.fields.item("id") <= dbUT
rsCrew.MovePrevious
if rsCrew.bof then exit do
Loop

'only execute further if we found a record earlier than this ut
if not rsCrew.bof then
response.write("<tr><td><b>Crew:</b> ")
for x = 1 to rsCrew.fields.count - 1
if isnull(rsCrew.fields.item(x)) then
if x = 1 then response.write("None")
exit for
end if
response.write("<span style='cursor:help'><img src='http://www.blade-edge.com/images/KSA/Flights/favicon.ico' title='")
response.write rsCrew.fields.item(x)
response.write("'></span> ")
next
response.write("</td></tr>")
else
response.write("<tr><td><b>Crew:</b> None</td></tr>")
end if
end if

'check if we have resource data to display
if not rsResources.eof then
'point to the relevant record for this ut
rsResources.movelast
do until rsResources.fields.item("id") <= dbUT
rsResources.MovePrevious
if rsResources.bof then exit do
Loop

'only execute further if we found a record earlier than this ut
if not rsResources.bof then
response.write("<tr><td><b><span style='cursor:help' title='Total Δv: ")
response.write rsResources.fields.item("DeltaV")
response.write("km/s
Total mass: ")
response.write rsResources.fields.item("TotalMass")
response.write("t
Resource mass: ")
response.write rsResources.fields.item("ResourceMass")
response.write("t'><u>Resources</u><span>:</b> ")
for x = 4 to rsResources.fields.count - 1 step 2
if isnull(rsResources.fields.item(x)) then
if x = 4 then response.write "None"
exit for
end if
response.write("<span style='cursor:help'><img src='http://www.blade-edge.com/images/KSA/Flights/")
response.write rsResources.fields.item(x)
response.write(".png' title='")
response.write rsResources.fields.item(x+1)
response.write("'></span> ")
next
response.write("</td></tr>")
end if
end if

'check if we have comms data to display
if not rsComms.eof then
'point to the relevant record for this ut
rsComms.movelast
do until rsComms.fields.item("id") <= dbUT
rsComms.MovePrevious
if rsComms.bof then exit do
Loop

'only execute further if we found a record earlier than this ut
if not rsComms.bof then
response.write("<tr><td><b><span style='cursor:help' title='Signal delay: ")
response.write rsComms.fields.item("SignalDelay")
response.write("s'><u>Comms</u><span>:</b> ")
for x = 2 to rsComms.fields.count - 1 step 2
if isnull(rsComms.fields.item(x)) then
if x = 1 then response.write "None"
exit for
end if
response.write("<span style='cursor:help'><img src='http://www.blade-edge.com/images/KSA/Flights/")
response.write rsComms.fields.item(x)
response.write(".png' title='")
response.write rsComms.fields.item(x+1)
response.write("'></span> ")
next
response.write("</td></tr>")
end if
end if
%>
<tr><td><b>Last Update:</b> <%response.write rsCraft.fields.item("LastUpdate")%> UTC</td></tr>
<tr><td><center>
<%
'there a previous event?
if prevevent then
'reload the page and force an earlier UT
response.write("<a href='http://")
response.write(Request.ServerVariables("SERVER_NAME") & Request.ServerVariables("URL"))
response.write("?db=" & request.querystring("db") & "&ut=" & prevevent)
response.write("'><img src='http://www.blade-edge.com/images/KSA/Flights/prev.png' title='")
response.write preveventdesc
response.write("'></a> ")
else
response.write("<span style='cursor:help'><img src='http://www.blade-edge.com/images/KSA/Flights/prev.png' title='No previous events'></span> ")
end if

'whether we need to close the window when going to an external link
close = " "
if request.querystring("r") then close = " onclick='window.close()' "

'what is the current status of the mission?
if rsCraft.fields.item("MissionReport") then
response.write("<b><a" & close & "target='_blank' href='")
response.write rsCraft.fields.item("MissionReport")
response.write("' title='")
response.write rsCraft.fields.item("MissionReportTitle")
response.write("'>Mission Report</a></b> ")
elseif UT >= rsCraft.fields.item("EndTime") then
response.write("<b><a" & close & "target='_blank' href='https://twitter.com/KSA_MissionCtrl' title='Mission report coming soon
Updates on twitter'>Mission Concluded</a></b> ")
else
response.write("<b><a" & close & "target='_blank' href='https://twitter.com/KSA_MissionCtrl' title='Updates on twitter'>Mission Ongoing</a></b> ")
end if

'is there a future event?
if nextevent then
'are we at the next event yet?
if UT >= nextevent then
response.write("<a href='http://")
response.write(Request.ServerVariables("SERVER_NAME") & Request.ServerVariables("URL"))
response.write("?db=" & request.querystring("db") & "&ut=" & nextevent)
response.write("'><img src='http://www.blade-edge.com/images/KSA/Flights/next.png' title='")
response.write nexteventdesc
response.write("'></a> ")
else
response.write("<span style='cursor:help'><img src='http://www.blade-edge.com/images/KSA/Flights/next.png' title='")
response.write rsCraft.fields.item("NextEventTitle")
response.write("'></span>")
end if
else
response.write("<span style='cursor:help'><img src='http://www.blade-edge.com/images/KSA/Flights/next.png' title='No future events'></span>")
end if
%>
</center></td></tr>
</table>
</td>
</tr>
</table>
</td>
</tr>
<%response.write rsCraft.fields.item("ImgDataCode")%>
</table>
<%
if request.querystring("r") then
response.write("<a target='_blank' href='http://forum.kerbalspaceprogram.com/threads/82506-The-Kerbal-Space-Agency-Flights-in-Progress-Tracker!'>More Flights In Progress</a> | <a href='http://" & Request.ServerVariables("SERVER_NAME") & Request.ServerVariables("URL") & "?db=" & request.querystring("db"))
if request.querystring("ut") then response.write("&ut=" & request.querystring("ut"))
response.write("'>Disable auto-refresh</a>")
else
response.write("<a onclick='window.close()' target='_blank' href='http://forum.kerbalspaceprogram.com/threads/82506-The-Kerbal-Space-Agency-Flights-in-Progress-Tracker!'>More Flights In Progress</a> | <a href='http://" & Request.ServerVariables("SERVER_NAME") & Request.ServerVariables("URL") & "?db=" & request.querystring("db") & "&r=true")
if request.querystring("ut") then response.write("&ut=" & request.querystring("ut"))
response.write("'>Enable auto-refresh (" & rsCraft.fields.item("RefreshRate") & "s)</a>")
end if

conn.Close
Set conn = nothing
%>
</center>
</body>
</html>
<!DOCTYPE html>

I've currently only tested it completely on one craft, but everything worked out perfectly after some tweaks and now I just have to convert the remaining active missions over to the DB format - the ones that have already expired and won't be receiving additional updates can remain static.

Craft database for viewing everything in the same window

I got a request on reddit for a way to view all the craft in one window rather than having to close and open them. I agreed this was a good idea and got to work today banging it out. It took me all afternoon into the early evening - mostly because I spent a while trying to debug a really stupid mistake I was making opening a database (damn copy paste!! Why do I always do that to myself?!). Anyways my initial idea was to add some images to the bottom that people could scroll through to select another craft. But I realized the window is already almost too tall for my 1050 display, even if that resolution is pretty main stream these days. But I had plenty of width, so I decided to have a tree listing to the right side that could be able to categorize the vessels by SOI. Finding the CSS code was as easy as typing "CSS tree" into Google - the real problem was creating a database to hold a tree structure. Here's what I came up with:

KTLu3yU.png

and here is the code:


<center><h3>All Active Vessels</h3></center>
<%
'open craft database
db = "..\..\..\..\database\dbCrafts.mdb"
Dim connBodies
Set connBodies = Server.CreateObject("ADODB.Connection")
sConnection2 = "Provider=Microsoft.Jet.OLEDB.4.0;" & _

"Data Source=" & server.mappath(db) &";" & _

"Persist Security Info=False"
connBodies.Open(sConnection2)

'get the tables
set rsPlanets = Server.CreateObject("ADODB.recordset")
set rsMoons = Server.CreateObject("ADODB.recordset")
set rsCrafts = Server.CreateObject("ADODB.recordset")

rsPlanets.open "select * from planets", connBodies, 2
rsMoons.open "select * from moons", connBodies, 2
rsCrafts.open "select * from crafts", connBodies, 2

response.write("<ol class='tree'>")

'loop through all the planets
do while not rsPlanets.eof
bPlanet = False

'check for moons
do while not rsMoons.eof
if rsMoons.fields.item("ref") = rsPlanets.fields.item("id") then

'check for vessels in moon SOI
'corresponding to this UT
bVessels = false
do while not rsCrafts.eof
ref = -1
for x = 4 to rsCrafts.fields.count - 1 step 2
if rsCrafts.fields.item(x) <= dbUT then
ref = rsCrafts.fields.item(x+1)
else
exit for
end if
next

if ref = rsMoons.fields.item("id") then
if not bVessels then
if not bPlanet then
response.write("<li> <label for='" & rsPlanets.fields.item("body") & "'>" & rsPlanets.fields.item("body") & "</label> <input type='checkbox' id='" & rsPlanets.fields.item("body") & "' /> <ol>")
bPlanet = true
end if
response.write("<li><label for='" & rsMoons.fields.item("body") & "'>" & rsMoons.fields.item("body") & "</label> <input type='checkbox' id='" & rsMoons.fields.item("body") & "' /> <ol>")
end if
bVessels = true
response.write("<li class='" & rsCrafts.fields.item("type") & "'><a title='" & rsCrafts.fields.item("desc") & "' href='http://www.blade-edge.com/images/KSA/Flights/craft.asp?r=true&db=" & rsCrafts.fields.item("id") & "'>" & rsCrafts.fields.item("vessel") & "</a></li>")
end if
rsCrafts.movenext
loop
rsCrafts.movefirst

if bVessels then response.write("</ol> </li>")
end if
rsMoons.movenext
loop
rsMoons.movefirst

'check for vessels in planet SOI
'corresponding to this UT
do while not rsCrafts.eof
ref = -1
for x = 4 to rsCrafts.fields.count - 1 step 2
if rsCrafts.fields.item(x) <= dbUT then
ref = rsCrafts.fields.item(x+1)
else
exit for
end if
next

if ref = rsPlanets.fields.item("id") then
if not bPlanet then
response.write("<li> <label for='" & rsPlanets.fields.item("body") & "'>" & rsPlanets.fields.item("body") & "</label> <input type='checkbox' id='" & rsPlanets.fields.item("body") & "' /> <ol>")
bPlanet = true
end if
response.write("<li class='" & rsCrafts.fields.item("type") & "'><a title='" & rsCrafts.fields.item("desc") & "' href='http://www.blade-edge.com/images/KSA/Flights/craft.asp?r=true&db=" & rsCrafts.fields.item("id") & "'>" & rsCrafts.fields.item("vessel") & "</a></li>")
end if
rsCrafts.movenext
loop
rsCrafts.movefirst

if bPlanet then response.write("</ol> </li>")

rsPlanets.movenext
loop
response.write("</ol> *Inactive vessels can be found via the Historical Archives link at bottom</div> </div>")

connBodies.Close
Set connBodies = nothing
%>
<div style="margin-left: 845px; font: 12pt normal Arial, sans-serif;"> 

So the moons reference the planets and the spacecraft reference either the planets or the moons. The beauty of this setup is the fact that it is extremely easy to add new moons and planets should I choose to do so (I'm considering numerous dwarf planet mods and of course Star Systems in the future). Additionally, the UT/Ref fields in the craft table can be duplicated as much as necessary, so I am able to actually schedule when certain craft are supposed to appear in certain SOIs. This is basically so I can "set it and forget it" as I play my game ar least a month in advance of real time, I don't have to remember to come back a month later and update the database with a new SOI for the vessel. I may tweak this some more later down the road, but for now it gets the job done.

The next day... I realized how dumb it was to make people click open all the bodies in the solar system to see if there were actually any craft there to check out. My first idea was to make it so that numbers would appear by the names to show if anything was there. However due to the recursive nature of the way the tree is constructed, it's impossible to know this information before hand. The best I could do was slightly re-arrange the code so the branch for the body wasn't actually created until it was confirmed there was a vessel in its SOI (or the SOI of a moon within the planet's SOI). So now the list only displays bodies that have craft in their SOI.

Edited by Gaiiden
added ability to switch between craft in the same window
Link to comment
Share on other sites

With the spectacular failure of the Mk1.3 program, the Aerospace Group was scaled down but allowed to continue development of a re-usable and cheaply-operated aircraft capable of ascending higher than 5km and hovering to allow cameras a platform to document rocket launches. The first design to be tested used 4 electric engines with numerous batteries and capacitors to run them. Although re-charging the craft would take days after a flight, this was deemed acceptable thanks to the fact that days, if not weeks, commonly exist between rocket launches. Electrical power was cheap compared to jet fuel as well. RCS thrusters were included as well to help with lateral positioning.

BkDAp1G.png

9jOzBcP.jpg

JGwR1vX.png

mA67e2v.png

aFo4zRg.png

hTJ9KbZ.png

HoqSVXV.png

h1IZKTK.png

HeShWC4.png

HgVCTtU.png

HYB52XG.png

q6Qb2M4.png

Link to comment
Share on other sites

The first extra-planetary goal of the rover program was Mun, a close neighbor that would provide minimal signal lag and 24/7 communication thanks to the established satellite network around both Mun and Kerbin. However rather than sending a rover directly to Mun, the team knew they had to test a version here on Kerbin first to make sure the design was capable of handling lower Mun gravity. They also wanted to begin working towards a completely automated drive capability, despite the low signal lag allowing for manual control. This first phase of development looks at the design of the rover, the first delivery vehicle concept, and the beginnings of automated drive software.

tgOULAc.png

Ag6A6l2.png

D9o9XjL.jpg

bsAlczb.png

78KWZM5.jpg

rSH8kxd.png

5tOIBGL.png

Akqr92J.jpg

eWQ4TUQ.png

R0ApweB.jpg

qgdcpdU.png

mF63PKj.png

DIJeO5u.jpg

ebWLdtT.png

BxF1dN9.png

LW9xA9z.png

KDxdWJt.png

6tjJdTr.jpg

y7dV4Xs.png

CGiqemb.png

7Cvswqg.png

tGtvdag.jpg

1ccpiti.png

j7jvutT.png

df0xSpc.png

KVvVwHG.png

tIZIrt1.png

ggp0njg.png

0GEtbZo.png

nFonw3j.jpg

KbdzljV.png

kUahVF4.jpg

3MLlvDe.png

iZG6mtF.png

jjc72xI.png

UC0KA6w.png

HQ3z9Yt.jpg

UCCBK2l.png

BA0mW43.png

D4VyY4b.jpg

vxE449J.png

kQh9fii.png

kkb1RXc.png

VnBrSvb.png

Link to comment
Share on other sites

After proving that the technology to map planets from orbit was proven with the earlier K-SCAN mission, a new probe was assembled to make the journey to Mun to perform the same task. Here it would be much more important to obtain surface data for use in future missions, both kerbed and unkerbed. The Mu-SCAN probe also carried along a gravioli and radiation detector for a secondary mission of gathering new scientific data around Mun.

tH3bi5i.png

lddrgXu.png

z7dX4Ha.png

2SUZByE.jpg

HhTc7cZ.png

STEOhCu.png

ytlQuMr.png

zX7oU4Y.png

wBEdUJP.png

quT5Pjg.png

GM26szH.png

f12epr2.jpg

XpHzoDO.png

yNuLfb6.png

T4tJH1H.png

rC3bslM.png

JyR4opV.jpg

Ve2Xllp.png

rT2tCeO.png

sohC7fN.png

ZnUex9N.png

POINvlW.png

ZoWG0bH.png

az1nvOT.png

zC3nhSk.png

5uuoilz.png

NMDLK0I.png

NZ9oT4D.png

BWsj14A.png

GgAcIeM.jpg

mWmbV3w.png

rn6wkTc.png

RozFgyq.jpg

YvO3z0S.png

qJAK5zP.png

YCBEtpi.jpg

Nzk1t4s.png

UHVrIEe.png

EmYPV58.jpg

X46xu8c.png

G5r8Y89.jpg

7kqCW1s.png

eFgpt4S.png

CcU20Cv.png

KCTjW8r.png

ljI4zJG.png

mpUMW0c.jpg

brQuYi1.png

LL9rX5G.png

kIKtxCL.png

n9ZyAYL.png

lKPgFfh.png

9vcxJFv.png

ePtw91o.png

RKKs6Qc.png

wX21j3I.png

SEikkQT.jpg

eg4pCux.png

R8tayOC.png

bDPQecB.png

4XXHGQ9.jpg

5MB4ryo.png

0UHMhTz.png

Lwe2Vnr.jpg

tWAz66s.png

qGm4psO.png

YYrYlB3.jpg

BQqDL0F.png

Y3UCnil.png

vVNG7FH.png

VtGVAHj.png

4shd9Qw.png

VcEWrQr.png

FztoYxY.png

qJKqsXX.png

Hq28k3J.png

dPlV60O.png

kuaC0Jn.png

2suOynm.png

m6cTbqk.png

OT3H4T9.jpg

j421Cez.png

ny2FgdF.png

7O8bSSS.jpg

HVd87qZ.png

UqmCMhG.png

zS3czGI.jpg

Link to comment
Share on other sites

After the successful removal of orbital debris earlier in the month, the final piece of orbital debris awaits removal by the KSA's second new astronaut, Captain Wehrtop Kerman. This mission will serve him well to apply all the training and skills he acquired during his 6 months training as a kadet, including overcoming any unforeseen obstacles during execution. The debris being removed was part of the rocket that took Captain Bob into orbit where he was finally able to successfully rendezvous for the first time with another craft in space.

YQpw2hP.png

3uzRhTA.png

B9brBQ8.png

R2u54z0.jpg

m7Hr1qW.png

mavhrq0.png

JbhPuZ8.jpg

wkAu27K.png

QfALYH5.png

ZgIcW8y.png

KUfXeZP.png

WX0BOE9.png

LdhJ6nG.png

ayN8E3x.png

Fz9fxaE.png

kySa23g.png

biWqcVX.png

oiop0Ko.png

lBfDMLk.png

wBX8raa.png

6VHDCHg.png

UcarZ6Y.png

N0PhygF.png

jbpwAZa.jpg

lJuR4kU.png

wgvcfG9.png

G5HmcIH.jpg

HqGYZjm.png

nHbRS9s.png

ub06A7d.png

eK6ZtDa.jpg

V6Hoh13.png

aEfKVhR.png

zeWeD9u.png

cSF8Q0j.png

9rJGkN4.png

E7nor8N.png

4xoy5AX.png

yC2gJ7Y.png

X1lgTs0.png

W5GmFK9.png

xoPufsr.png

8yF2UcY.jpg

Xg5TsZi.png

niEFfnC.png

XlgB8lN.jpg

hXLYKqs.png

HYVV33K.png

LA6HrEt.jpg

l772wvO.png

jYhZbSj.png

0kRzBrG.png

7ORcIOh.png

pIoumlh.png

uPJvLbE.png

1Cj7xlX.jpg

HTjmH9r.png

l1yYlMU.jpg

nKAo3bq.png

0En4rnX.png

OdHZqdC.png

Link to comment
Share on other sites

The Aerospace Group is still working to develop a stable airborne platform for getting a better view of rocket launches during the booster ascent stage. Although the overall design is sound and has proven it can reach the proper altitude and maintain flight for the amount of time needed, engineers are still struggling with proper thrust balancing issues to ensure that the craft does not drift towards the airborne exclusion zone around the launch pad. They also discover they did not properly account for all types of landing scenarios...

kc861vx.png

elI9SNg.jpg

RLbSCR9.png

KJYBk3M.png

CTXZzRh.png

AZb9RW7.png

ufyEMYe.png

nIjJeeY.png

lkc7Iy0.png

HFhh45j.jpg

KxgqSzi.png

7s0wxOU.png

Sn6qGTp.png

OabiDzC.png

UvUrKxq.png

y1NyEjb.png

1mtMVXB.png

LeBZshc.jpg

Link to comment
Share on other sites

Budget concerns have had an affect on the Aerial Observation Platform, and the last crash left the prototype badly damaged unable to be repaired swiftly. However the folks from C7 Aerospace had been informed of the AOP development by some Aerospace Group engineers at a recent aerospace conference, and decided to take an interest in the project. C7 put up the money to get the AOP repaired and negotiated a contract for joint-use of the platform should it prove viable in the next test.

hqBpQGj.png

PT78hes.jpg

ECIe60q.png

awdv9yD.png

fkatFVR.jpg

ZLD2paq.png

TlfQ0Y0.jpg

ok1NLuH.png

4RnO34r.png

28mlGEs.png

nbcy8Mu.png

znWOos1.png

bjnPc1X.png

Link to comment
Share on other sites

With the Duna I mission undergoing final construction this month for launch at the beginning of December, the KSA is using the time to put in place two new communications satellites around Kerbin that will provide links to any craft operating in interplanetary space. The R&D department recently rolled out their largest dish yet, capable of communicating as far as Eeloo. This was to be the first of two satellites orbiting high over Kerbin's poles, and is also the first rocket to incorporate recoverable boosters.

FvglTKV.png

wLVzyu8.png

A9YabOi.png

f7vxCYq.png

iE1nwpi.png

xESK5SB.jpg

Yw6XjoJ.png

NYmJD6q.png

pYatpYV.png

mIRd0ao.png

OQngtsu.png

3rFaWbW.png

YxG1yev.jpg

ENKjsaM.png

GRmkWvu.png

nLYoA0l.png

8fPHcfd.png

Q0lIgi1.png

Link to comment
Share on other sites

With the upgrades to the VAB complete, the KSA now has the ability to construct larger 2.5m craft in addition to any 1.25m rockets already under construction. Before they can launch their first 2.5m rocket, there are two new engines to test. The main lifter cluster is actually using the Bearcat engine that has been the lifter engine of choice for the KSA mostly since day one. However it has only before been clustered in pairs. A new orbital engine to replace the 1.25m RMA-3 workhorse is also in need of testing. Once the tests have proven successful, the teams can assemble a 2.5m test vehicle to put the new Mk1-2 capsule through an unkerbed orbital mission to ensure it can return safely.

4dyBtIf.png

SkVHCLf.png

5vQdPal.png

wqiu3BW.jpg

34tCPSU.png

wackoP1.png

PgLf6Bp.png

WZd9QO2.jpg

gBotNJv.png

V14yTTw.png

KMGAMOY.png

KIAQorl.jpg

qMCZ2Sq.png

Z75Kbn0.png

qVjNuXt.png

Uh7Qlku.jpg

hScWXPk.png

ArUSrlu.png

b04RGoJ.png

EFALMs2.jpg

yW4l8nE.png

WLturzf.png

i5bQEqX.png

i2uIHyT.png

hLR9d7p.png

tt2si9y.jpg

eUw6TJY.png

wUwM71l.png

e39XvEa.png

BxgL2gj.png

2lgXZO4.jpg

awZmfzx.png

HlhggMY.png

sW1PUGd.jpg

6YGZ3wq.png

9oLWanb.png

VkvoTVL.png

jJgHSzw.png

bPgNaN0.png

0KVuxko.png

0z2vp0U.jpg

M7SGHUN.png

Ux6ygxY.png

ixhSO7U.png

3ZGFpHF.png

q7ilfnv.png

iS0Ocu0.png

pJbG81Y.png

ksIRBPV.png

R7IN8xB.png

JbFzQpW.png

ACdHo5w.png

4du1umz.png

HI84VWr.png

Dz1kPfW.png

gNVLvrM.png

pI5wV4s.png

49XkFWF.png

Ir6vuFj.png

IVDRzKh.png

pjax026.png

9EQAGFi.png

YFoqNbE.png

eOKQCUa.png

C6EK5Sc.png

ZY3YMsx.png

9r9FDYf.png

Link to comment
Share on other sites

With the previously-failed launch of IP ComSat I, the second craft already under construction was used for its replacement. The purpose of these satellites is to achieve extremely elliptical polar orbits in order to spend the maximum amount of time above/below Kerbin for best possible line of sight to other planets in the Kerbol system. A dish capable of reaching as far as Eeloo is included on each satellite, as well as two smaller dishes to help connect craft traveling around the Kerbin system. In addition to placing IP ComSat in orbit, some existing hardware up in LKO was re-purposed to help create a more redundant communications network around Kerbin.

7kqBQmN.png

x3UALFb.png

e2DH2qJ.png

1rz0NvL.png

2tgFKlr.png

oxIVeDo.png

lSKhxYG.png

8ZWjyrE.png

jFUmCgh.png

nJ0m1Pf.png

qkrF3l2.png

elAwUlO.png

ejAOQkZ.png

WbZJlb1.png

whQaNo7.png

Keif1UN.png

xZeLjGb.png

3lERbU8.png

ZRBx6Gh.png

2DibHFP.png

3Sh9leN.png

2BRf7dN.png

jEKHAcr.png

S5kyvc6.png

FiFtS3A.png

CLunTQw.png

IlWeba7.png

skTdwQr.png

C6Z62Gj.png

18UCrjS.png

pAS6X0M.png

tWmQTRD.png

uQo7W23.png

tWmQTRD.png

Gnxsp0y.png

eDOqq1O.png

EpkbwzA.png

7roTyXG.png

GdBhep5.png

lRWeFaj.png

cKzyqUH.png

3Mke6Cs.png

Bo36xxo.png

j035p89.png

wYoCJVp.png

ueOgrU0.png

RT7kzlY.png

syDvCjR.png

BYWHpdk.png

xhd9M6q.png

JbqHIQA.png

V2wPIxN.png

5PC9Ex0.png

tntUSSi.png

VmDmkge.png

lUus7na.png

KZpgmzO.png

Link to comment
Share on other sites

The KSA has readied a third satellite for launch into polar orbit to complete the first interplanetary communications network around Kerbin. The first launch failed during ascent, the second launch was successful, and now the Agency hopes to add another good launch to their record. Once in place, the two IP ComSats will allow Mission Control to contact craft anywhere in the Kerbol system, staying both high above and below the orbital plane as much as possible to improve chances of connections.

uLCDUXN.png

Bu55PD6.png

NJwqmdR.png

L2hMIBY.png

w4tMMAG.png

lWMJb64.png

st1cYAm.png

vNrjS7E.png

hn4N3Ws.png

VNt0i76.png

EhtszIk.png

9dxq8gw.png

tvezyKD.png

sqtmugy.png

20dI62v.png

UnNLerd.png

0JhPxz1.png

9se8bpT.png

UucXuHX.png

ydnyCRR.png

6F4aPJu.png

Z1TBhva.png

q7uESpx.png

LcLkUZE.png

GLaukPZ.png

vZ5H7Va.png

Pic0jH2.png

yYELLpk.png

wc6doDM.png

zVwiIY8.png

E8oioHs.png

Liy0M8D.png

ONbIBoP.png

VexTxzO.png

aZ17pBz.png

fZpTJzc.png

fcLQV08.png

ymV3s3Y.png

YZAyOWX.png

JAowavu.png

ytAoMkb.png

TLcAu6K.png

VHW6M6P.png

dWDBHEd.png

G1YNiKi.png

F8w0JEj.png

stxty1w.png

xWGxt05.png

iqU1DNx.png

CLE1WD8.png

lmw3FHd.png

Link to comment
Share on other sites

  • 2 weeks later...

After completing the first phase of rover testing KSA engineers got to work on the software that would help to pilot the rover on other worlds where controllers won't have immediate execution of commands. A stripped-down version of the rover was constructed for testing of waypoint acquisition and navigation, culminating in the first long-distance drive over 150km to the west shore desert.

NOTE: These events take place in late October, which is prior to events in recent Mission Dispatches. It was originally meant to be compiled with other test drives as a Phase 2 Mission Dispatch, but it was decided that would be too long of a dispatch, and has now been broken up into individual drives.

PGJATu4.png

Gwt4LPi.png

eRf4DbU.png

HYRb8bC.png

mnir7wH.png

Y2BR4jb.png

NXJMKO2.png

D3mE7r7.png

R3JYo2D.png

OGmjNdr.png

PAMI8jU.png

XnqpqNP.png

nh8MxCj.png

3vCttL7.png

lkpj4ON.png

8bd6UBe.png

8J2FyQJ.png

oS6R0ka.png

54ZOxaP.png

jzVdGih.png

9upPehl.png

8t5S9cY.png

rr6JIuE.png

wpWxLAO.png

2hnZtNt.png

oYkiZH1.png

V61UPWs.png

LYnyQON.png

Z9gFvOm.png

olmWSph.png

R3NcpQG.png

XCDGlmg.png

uwWD9qu.png

ONE10Gw.png

GGmnuUx.png

np83Fw0.png

0rmLAhU.png

CTA0qCS.png

clsYV9e.png

3JfYWjW.png

pZ3uUkl.png

Gy2xb2P.png

8o7HP4w.png

5bPZUKH.png

2blSrSw.png

Q1jK7qE.png

Link to comment
Share on other sites

It's been asked how these images were created and to be honest it's not that hard to do - the real challenge is that each blueprint requires its own layout, and figuring out what that should be is the hard part. It all depends on what you want to show. So far I've generally taken each of my rockets and broken them down into individual stages. Showing both the fully-staged rocket and the payload means in some cases you are showing parts of the craft more than once, but that's okay because it gives you more options to label things without getting too messy. My personal rules for labeling are that lines pointing to parts shouldn't cross over too much of the craft, or other parts/lines that are also identifying things. You only have to ID a part once if the rocket features multiple instances, unless a different angle would render it unrecognizable on the ship.

For the background, I use

this blueprint paper. (A full-sized download link is below the image). It gets sized down to whatever I need.

To render the ships, I use Kronal Vessel Viewer.

For all the Delta-v and weight information that I include, see the Basic Guide to Mission Planning and Rocket Construction to learn how I derive these numbers.

To put it all together, I use Paint.NET, with the Segoe Print font (included, on Windows 7 at least).

Here is a quick tutorial on how to remove the background from the KVV screenshot you've saved from the game.

Personally I also like to use the Adjustments->Hue/Saturation to make the colors no longer seem bleached out (Saturation=125), as well as the Adjustments->Brightness/Contrast to add some depth (Brightness=-5, Contrast=5).

Pro tip: use as many layers as possible. You're going to want to reorganize things a lot. For me all ship images get their own layer, and for text I group the info box, stats box, and labels into their separate layers, borders have their own layer as well.

And this is how I tell the height of things using stock 1m truss segments (make sure Orthographic setting is enabled in KVV):

Vm2sBVCm.png

Click for full image. Draw a pixel-wide line in Paint.NET (hold Shift for straight line)

you can see the length of the line in the bottom-left of the window

That's really pretty much it. Actually putting it all together is something unique to each blueprint.

Link to comment
Share on other sites

After successfully navigating 169.3km from KSC out to the west shore desert, the rover team got to work planning an even harder route back home that would test the rover's ability to handle a slope it couldn't navigate, as well as refactoring a large portion of the rover driver software to give the team more data to look at while the rover operated.

NOTE: These events take place in late October, which is prior to events in recent Mission Dispatches. It was originally meant to be compiled with other test drives as a Phase 2 Mission Dispatch, but it was decided that would be too long of a dispatch, and has now been broken up into individual drives.

ySOMD0u.png

uQugxYu.png

AD0r40P.png

OJSqyvo.png

aGtrlk7.png

eeftF0g.png

GyDpuo3.png

yRWdL4T.png

9QAbzDD.png

LUW6GKK.jpg?1

SjvNTwj.png

Cv6SuwC.png

4KatugW.png

700yZkV.png

xxiDHSG.png

3SWs4VQ.png

lsGowTF.png

FNpJ98O.png

sqCJdQz.png

4p1ob6h.png

beqSWEd.png

unGAt1Z.png

UpyiwyO.png

XVXvdNJ.png

P9vUAHz.png

jcjcPZS.png

VvFIK2M.png

cPr0Dg1.png

uNYh7gg.png

KF77mT0.png

xTlT4ji.png

J8ImAcM.png

mB0oNFd.png

LX7Kw2n.png

Edited by Gaiiden
Link to comment
Share on other sites

The previous test drive ended in disaster as the rover failed to control its speed as it backed down a steep slope it could not climb, tumbling and wrecking itself. While a new rover body was constructed, engineers used the time to work out what went wrong in the code and corrected the problem. This drive would take the rover straight out to the mountains to make sure the new code behaves as expected.

NOTE: These events take place in late October, which is prior to events in recent Mission Dispatches. It was originally meant to be compiled with other test drives as a Phase 2 Mission Dispatch, but it was decided that would be too long of a dispatch, and has now been broken up into individual drives.

SsrAiuy.png

gM8kRRi.png

HV2caEq.png

ZySklf6.png

XDf8x1S.png

oL1ZkDy.png

gZwJtaX.png

jDl4U1r.png

nzilzid.png

wZXiNLQ.png

35buFTY.png

aXpdjR0.png

dyyoe5n.png

Az2NLAN.png

sH6n7bt.png

OtmB3O8.png

3CC7dyg.png

dq6FCQ1.png

Mg7wGLS.png

mkSUgV3.png

3L0VUyU.png

Edited by Gaiiden
Link to comment
Share on other sites

Previous drives of the rover focused on testing and refining the code the would allow the rover to navigate itself over difficult and unknown terrain. The team is now at the point where they feel confident enough in the rover's abilities to not only go out and drive itself around without a pace vehicle for backup, but also while carrying the full suite of instruments and equipment that will be loaded on it for its actual mission to Mun. Accidents now will not only endanger the rover, but the operability of several delicate science instruments.

NOTE: These events take place in early November, which is prior to events in recent Mission Dispatches. It was originally meant to be compiled with other test drives as a Phase 2 Mission Dispatch, but it was decided that would be too long of a dispatch, and has now been broken up into individual drives.

Lqf1O3I.png

meEldZX.png

JOAMQyI.png

TQh79xR.png

wP6abQ1.png

PQqGOvA.png

V6pm2G5.png

DDG66WI.png

1xgjL5a.png

XEZaVKR.png

etdxKtk.png

nOB7LZB.png

iP36jnb.png

9MeUlHm.png

slVRG49.png

LngIY0h.png

W2Gr0od.png

CtY7QNF.png

bG2jtui.png

lsNesmj.png

gZRbVff.png

Apo5OEN.png

sppaHkS.png

lYpR14a.png

Zjdo3Tl.png

vZcbSYA.png

xtcDbHA.png

Link to comment
Share on other sites

Although the previous drive was ultimately successful, engineers on the rover team were still not satisfied with the damage done to the rover and the inability of the software to properly acquire the next waypoint. Further refinement to the driving parameters and some refactoring of the guidance code gives them high hopes of a clean run from start to finish on this next drive out to the west shore desert. Once again, the rover will be completely on its own and assisted only from mission control at KSC.

NOTE: These events take place in early November, which is prior to events in recent Mission Dispatches. It was originally meant to be compiled with other test drives as a Phase 2 Mission Dispatch, but it was decided that would be too long of a dispatch, and has now been broken up into individual drives.

X9x3IEM.png

2OQgNPK.png

SAn5515.png

XG1VgpG.png

o8tj3xU.png

55tE7mf.png

dYiMKqx.png

CPDrEHT.png

VW99IAV.png

BXrYBp6.png

DlzxzhB.png

Ft3NYDS.png

z6XNXXQ.png

ApXundb.png

GHwP7Up.png

MLqutgq.png

3tK4kVx.png

Rg5Dmv4.png

YzCfpg6.png

GgdEvPK.png

O1HUF8T.png

qyr0HG3.png

Link to comment
Share on other sites

After finishing up maintenance on the rover, which experienced some technical difficulties on the previous drive, the team once again unleashed Lupek out into the wilderness hoping for a clean drive from start to finish. They were also testing out a new feature of the driving software that would allow Lupek to retrace its route back to the start. As Lupek has already proven itself on long voyages, the team decided to only send it out as far as the grasslands and back.

NOTE: These events take place in early November, which is prior to events in recent Mission Dispatches. It was originally meant to be compiled with other test drives as a Phase 2 Mission Dispatch, but it was decided that would be too long of a dispatch, and has now been broken up into individual drives.

guER4Wp.png

Fa1QicA.png

ajHYXiO.png

jGlMHLB.png

WqdSu24.png

MUseKfC.png

080vl5n.png

4533t4v.png

cZRD2Sa.png

AVJI73q.png

le7GlXy.png

Gs4mFqq.png

hB0LkZm.png

PLWjYqC.png

smnSCCc.png

BmgUOfl.png

Py1WZKf.png

bO9pI2D.png

af1kZ0b.png

kMlmmxW.png

W0O0pfW.png

FVAtRKc.png

Wcmumlp.png

lpZWWpk.png

h7NPd8w.png

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
×
×
  • Create New...