Meadville Space Center
Welcome, Guest. Please login or register.
October 30, 2020, 08:36:00 PM

Login with username, password and session length
Search:     Advanced search
Gemini 060615 released!
25068 Posts in 2094 Topics by 2266 Members
Latest Member: twa517
* Home Help Search Login Register
+  Meadville Space Center
|-+  Project Apollo - NASSP
| |-+  Project Apollo - NASSP Development (Moderators: movieman, Tschachim, Swatch, lassombra)
| | |-+  Virtual AGC
« previous next »
Pages: 1 [2] 3 4 ... 52 Print
Author Topic: Virtual AGC  (Read 166395 times)
x15
Project Team Member
Full Member
****
Posts: 65


View Profile
« Reply #15 on: August 13, 2005, 02:31:39 PM »

Quote from: Tschachim

Ron and I already did a slightly improved version, there was a bug in the MINC and DINC instruction, so that for example the "dirty gravity cheating" you already marked with MUSTFIX is no longer necessary. It's a very small fix, I'll do later.



BTW

what about this bug, is it a fix in the virtual AGC (which has just been updated by Movieman) or do we still need some more fixes
thanks
Logged
Tschachim
Project Apollo - NASSP
Administrator
Hero Member
****
Posts: 3700


nassp.sf.net


View Profile WWW
« Reply #16 on: August 13, 2005, 02:37:28 PM »

It's also necessary to change the PulsePIPA function in the IMU: We have to use the CounterPINC/MINC functions of the yaAGC instead of setting the value to the PIPA registers directly. I was still not able to take a look at the current sources, so I don't know if this is fixed, but hopefully I can check it in a few days...

Cheers
Tschachim
Logged

Tschachim
Project Apollo - NASSP
Administrator
Hero Member
****
Posts: 3700


nassp.sf.net


View Profile WWW
« Reply #17 on: August 14, 2005, 12:51:57 PM »

OK, after my hopefully now properly working "LM excursions" I finally was able to try Apollo 11 earth orbit insertation. The basic functionallity of the Virtual AGC was fine, but the AGC orbit parameters were horrible wrong... (negative periapsis altitude -> crashing in the ground  Wink )

I'll take a closer look to figure out the problems...

Cheers
Tschachim

PS: I made this topic sticky and removed the Virtual Apollo announcement, I think we can fix the remaining bugs soon and then Virtual Apollo is finally obsolete.
Logged

LazyD
Project Admin
Sr. Member
*****
Posts: 412


View Profile Email
« Reply #18 on: August 15, 2005, 04:13:16 PM »

Hi Tschachim & movieman,

I started learning about virtual AGC - now that it is in the LM, I'm really interested.

I have a question you may know the answer to.  Can you tell me how the FDAI pitch, roll and yaw angles were defined WRT the local vertical coord system?  I want to get it right for the C++ AGC so things will correspond.

After my first look, it seems we will really need some sort of MCC analog for VAGC - even more than we need it now.

This is amazing stuff, running the actual AGC code!

D.
Logged
movieman
Moderator
Hero Member
****
Posts: 1710



View Profile
« Reply #19 on: August 15, 2005, 04:40:42 PM »

BTW, there's a bug in the Virtual AGC right now which prevents it running Luminary properly: apparently it's using some obscure undocumented instruction which isn't in Colossus and was never intended to be used in the real world, so no-one's really quite sure what the instruction is meant to do Happy. Hopefully they'll figure it out for the next release.

Also the current version is the Apollo 13 LEM software, so we won't get the '1201' and '1202' alarms when landing Apollo 11: that bug was fixed in this version. We may get the Apollo 11 version later, people are trying to track down a printout.

I never figured out the FDAI stuff myself, so Tschachim is probably a better bet for that one.
Logged
Tschachim
Project Apollo - NASSP
Administrator
Hero Member
****
Posts: 3700


nassp.sf.net


View Profile WWW
« Reply #20 on: August 15, 2005, 05:58:45 PM »

You mean EDRUPT as discussed in the mailing list? Yes, hopefully Ron or x15 can fix it soon. AFAIK the fact that x15 gets the bug means he already has enabled the attitude hold mode in the LM... Happy

LazyD, I'm not sure if I understand your question right, if you mean how the LM spacecraft axes are defined, I don't know, but I can dig out some documentation (I'm more a CSM guy), if you like.
In the CSM the FDAI can show the IMU total attitude or the GDC attitude and a couple of other things, but it's no "artificial horizon" showing the pitch, roll and yaw angles like in an aircraft (The IMU uses different Euler angles).

Cheers
Tschachim
Logged

x15
Project Team Member
Full Member
****
Posts: 65


View Profile
« Reply #21 on: August 16, 2005, 11:52:14 AM »

D

Have you read this document ?

http://www.ibiblio.org/apollo/NARA-SW/R-567-sec3-rev4.pdf


it is the absolute bible for the lm autopilot design

this link come from the virtual AGC links page (thanks Ron  Very Happy )


cheers

x15
Logged
LazyD
Project Admin
Sr. Member
*****
Posts: 412


View Profile Email
« Reply #22 on: August 16, 2005, 05:45:12 PM »

x15,

Thanks!  Now I can make noun 18 display something sensible.

D.
Logged
x15
Project Team Member
Full Member
****
Posts: 65


View Profile
« Reply #23 on: August 17, 2005, 11:20:05 AM »

I am sorry to inform you that the LM software team is fighting hard to solve the infamous EDRUPT problem but it is not solved at this time.

so I recommend that we fly the next apollo flight to the moon without the LM (given that the LM is too heavy to fly to the moon with two software engineers hidden behind the DSKY)

all my best wishes to the CCSM team (especially Markus and Movieman honorary members of the Courageous CSM  devpt team)

Signed :
x15
apprentice member of the proud LLM team (new acronym meaning
Lazy Lunar Module devpt team to pay tribute to our respected "not so lazy" software engineer named D)
Logged
Tschachim
Project Apollo - NASSP
Administrator
Hero Member
****
Posts: 3700


nassp.sf.net


View Profile WWW
« Reply #24 on: August 17, 2005, 03:33:20 PM »

Quote from: x15
so I recommend that we fly the next apollo flight to the moon without the LM (given that the LM is too heavy to fly to the moon with two software engineers hidden behind the DSKY)

LOL!  :lol:  :lol:  :lol:

Thanks for your kind words!
And please don't give up, problems like this are normally if you're doing "computer archeology" like this is. It took me 6 month last year to figure out the CSM stuff and most of the time was needed for reading AGC code or pointing out memory locations for pad loads and things like this.
I still hope Ron or Hugh can fix EDRUPT, it's only a matter of time...

BTW: I'm still fixing things to get the CSM stuff running in Project Apollo, but it's looking good, hopefully I can reproduce the "Virtual Apollo" results in a few days and then we can look at the next steps (perhaps the DAP).

Cheers
Tschachim
Logged

LazyD
Project Admin
Sr. Member
*****
Posts: 412


View Profile Email
« Reply #25 on: August 18, 2005, 09:23:46 AM »

Tschachim or movieman,

I'm getting a build error for lmpkd - seems the dsky function is short one argument?  I don't understand enough C++ to know how to fix it.

D.
Logged
movieman
Moderator
Hero Member
****
Posts: 1710



View Profile
« Reply #26 on: August 18, 2005, 09:48:35 AM »

Weird: didn't that change get checked in?

Put '015' as the second parameter and it should all work. Or change the definition to default to 015.

Note that you need the 0 at the start as it's an octal value.
Logged
LazyD
Project Admin
Sr. Member
*****
Posts: 412


View Profile Email
« Reply #27 on: August 18, 2005, 10:05:57 AM »

movieman, Thanks!  That fixed it - I think you meant tthe third parameter?

I'll update it.

D.
Logged
x15
Project Team Member
Full Member
****
Posts: 65


View Profile
« Reply #28 on: August 18, 2005, 03:24:59 PM »

Tschachim,

I prepare myself to debugging sessions on the virtual AGC in the lem

so I am adding the possibility to work with Ron's YAAGC connected by sockets (because it has a cool source level debugger now)

I have a functional DSKY, but i see some direct access to the agc erasable memory  in the IMU part

I know that you are working on it presently, does the new version
work with i/o channels ?(and is it very different from the one in the cvs ?)

thanks

x15
Logged
Tschachim
Project Apollo - NASSP
Administrator
Hero Member
****
Posts: 3700


nassp.sf.net


View Profile WWW
« Reply #29 on: August 19, 2005, 09:45:44 AM »

I just committed a couple of small fixes regarding the Virtual AGC integration (Config, Textures, Scenarios and Source folder). I had only to do very small fixes, movieman did already a great job integrating this stuff! Happy Happy

* Lamp test (V35) is fixed, the RESTART and STBY lights are controlled by the test alarm bit of channel 013 in that case.

* The KEY REL and OP ERR lights are now flashing like the real thing.

* Releasing the PRO key was buggy.

* I fixed the missing display element on the DSKY, now only the bitmaps for the pressed keys are missing (Moonwalker... ?)

* I did the right FDAI, it only displays IMU total attitude at the moment.

* I disabled the "AGC cycle limitation" in ApolloGuidance::GenericTimestep for the moment, because if I have a long timestep during test flights and the cycles get limited, the AGC loses time synchronisation and everything is messed up. Movieman, if you really want to have that in, we should perhaps do a scenario file flag for that?

* I did a warning using DebugString in case you forgot to enable nonspherical gravity sources because this is necessary for the Virtual AGC and not settable by code.

* I changed the IMU cage switch slightly: After the IMU is turned on by disabling caging it's working like the real IMU switch and just cages the IMU (instead of turning it off). Hopefully Moonwalker will do panel 100, then we could use the correct G/N power switch...

* In debug configuration the IMU logs it's status in "ProjectApollo IMU.log". This is important for me because of testing.

* The Virtual AGC scenarios are now in a subfolder and use a different earth which has a slightly different size, because the AGC calculates with pad radius instead of mean radius. These scenarios already uses Orbiterfan's new KSC, but the mesh alignment is messed up at the moment. Hopefully we get the new and better ML/LUT soon, then we can fix this.

* The IMU now uses the new fictitious channels 0174-0177.

* PIPA pulsing now uses the MINC/DINC instructions by using the UnprogrammedIncrement function, this fixes the -0/1 transitions in 1's-complement arithmetic.

x15, if you want to use the socket interface, you have to foreward the received data to IMU::ChannelOutput and to change ApolloGuidance::PulsePIPA so that it uses the TCP connection instead of calling UnprogrammedIncrement directly. And you have to change IMU::DriveGimbal so that it uses MCDU/PCDU via UnprogrammedIncrement and the TCP connection instead of changing the erasable memory directly, then it should work with a standalone AGC.

BTW: I still cannot hear the DSKY click sound, did you already commit your change?


* The perhaps biggest fix is in the AGC itself because of coarse align, the Virtual AGC mailing list people know what I mean. I committed my fix in agc_engine.c until Ron released a new version with his solution of that problem.


Using the Virtual Apollo instructions (but the new IMU power on) I get quite good results. I'll do some further testing and post the results of earth orbit insertation soon.

But I noticed something strange: After SII/SIVB separation the LV begins to roll, do we have a guidance problem with the IU? I had no time to check the non-Virtual AGC mode with nonspherical gravity sources disabled.

But I'll be on vacation next week so I had to hurry a little bit, hopefully I didn't mess up anything. And since I won't have much internet access on vacation, I'll continue with the ECS and try to understand the water-gycol cooling, so movieman and x15: The Virtual AGC/DSKY are yours again!

Cheers
Tschachim
Logged

Pages: 1 [2] 3 4 ... 52 Print 
« previous next »
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.10 | SMF © 2006-2009, Simple Machines LLC Valid XHTML 1.0! Valid CSS!