[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Orekit Developers] Status of the Android application -- 2



Hi

Le 11/08/2011 16:48, Alexis ROBERT a écrit :
On Thu, Aug 11, 2011 at 11:57 AM, Orekit <orekit@c-s.fr> wrote:
Hi Alexis,

I'm Pascal from the Orekit team.
Hi Pascal,

I've tested this last snapshot, and it looks fine to me, you're doing an
impressive job.
Thanks :)

I don't get used to Android (I have no smartphone, no tablet ...), I just
run the app in the emulator on my Linux desktop and I can't test the
rotating use case this way (I let this task to Luc with his tablet), but I
trust you :)
I think you can rotate the emulator by pressing 7 or 9 on the
numerical keypad with "Num lock" disabled. If you don't have a
numerical keypad, Ctrl+F11/Ctrl+F12 may work (it's written in the
documentation here :
http://developer.android.com/guide/developing/tools/emulator.html with
all the other available shortcuts, but it doesn't work for me).

OK, RTFM myself ...
The emulator doesn't work well this way ! (But it doesn't matter now for our stuff ...)

      
The uncaught exceptions are unchecked RunTimeException, so you'll have to
also catch Exception at the end of the try/catch, not only those declared by
Orekit, this avoids the Force Close dialog (I've tested on a bad TLE, it
ends with an Error Dialog and you can go back to the app).
Thanks, this worked :)

About the bad TLE, I don't know how I had this exception, I've entered
the TLE available on Wikipedia by hand twice (one on the emulator, and
one on my Nexus One) and I always got the same crash. I couldn't
reproduce it after this.

* I've tweaked the fields which require to enter double value to show
a numerical keypad (if you use a virtual keyboard) instead of the full
alphabetical keyboard, which could save some time entering the values.
OK (it looks better after I changed from Japan in the Settings ...).
Some double values can be pretty huge (the Central Coefficient Attraction
for the Earth is about 4.e+14), is there a way to access some scientific
notation ?
(I don't understand why they put a Japanese virtual keyboard by
default on the emulator images :) )

That's the issue. I don't know if it's possible to act on the keyboard
in such a way (it's possible to change little things like the "OK"
button to a "Next" or "Search" button, but I don't know if it's
possible to go further than that). I'll search later but I think this
would be a dilemna between entering all the values slowly on an
alphabetical keyboard with a "e" or entering the values faster but
with no "e" key.

OK, I've got it.

      
* By default, there is some TLE data when you want to enter the
details of a TLE orbit, but that's temporary, it's just because
entering a TLE orbit by hand on the virtual keyboard is *very*
annoying. (it's the ISS orbit data I found on celestrak :) ). A known
issue is that when you rotate, you'll have the same sample TLE data
again, that's because I put this hack a line too far on
TLESelector.java :)
Yes, TLE format is a nightmare.
In a sense, it is not a bad idea to have a kind of guideline to enter it,
maybe a line by line, field by field entries with some format control, is it
possible ?
Hmm, yes. However I thought we were going to add a button to download
TLE data from the web, so this nightmare would be reduced but why not
:) I'll deal with all the UI stuff when I've finished implementing the
features.
You're right, let's go with the features ...
By the way, I'm currently implementing impulse maneuver support and
I'm having some troubles with TLE orbits. In fact as soon as I use a
TLE orbit (I got by t = new TLE(line1, line2); and orbit =
TLEPropagator.selectExtrapolator(t).propagate(date).getOrbit() -- so
if I understood correctly this should now be a "normal" orbit
independent from the TLE propagation model) and I feed it to
KeplerianPropagator with an ImpulseManeuver event, I get an
OrekitException :

W/System.err(  364): org.orekit.errors.OrekitException$1: frame
EME2000 does not match frame TEME
W/System.err(  364):    at
org.orekit.propagation.SpacecraftState.checkConsistency(Unknown
Source)
W/System.err(  364):    at
org.orekit.propagation.SpacecraftState.<init>(Unknown Source)
W/System.err(  364):    at
org.orekit.forces.maneuvers.ImpulseManeuver.resetState(Unknown Source)
W/System.err(  364):    at
org.orekit.propagation.events.EventState.reset(Unknown Source)
W/System.err(  364):    at
org.orekit.propagation.AbstractPropagator.acceptStep(Unknown Source)
W/System.err(  364):    at
org.orekit.propagation.AbstractPropagator.propagate(Unknown Source)
W/System.err(  364):    at
org.orekit.propagation.AbstractPropagator.propagate(Unknown Source)
W/System.err(  364):    at
org.orekit.android.maneuver.ManeuverComputeActivity$BackgroundTask.doInBackground(ManeuverComputeActivity.java:157)

The only track of EME2000 I found was on Orekit's
ImpulseManeuver.java, in resetState(). Also, if I understood
correctly, this exception would be raised when the SpacecraftState's
attitude is expressed in a different frame than the orbit but I didn't
managed to get further than that.

Am I doing things wrong ? (by the way, I'm using the latest git
version of Orekit)

You don't need to extract an orbit to feed a KeplerianPropagator (which is inappropriate), you will rather use the TLEPropagator on its own by adding the ImpulseManeuver event to it and then propagate the same way you did with the KeplerainPropagator.
You're lucky, with the last Orekit versions, for about a month, the TLEPropagator is a full propagator with all those nice features ...

Thanks :)

Alexis

bye
--
Pascal PARRAUD

CS Systèmes d'Information - Division Espace & Renseignement
Département Dynamique du Vol et Simulation
Parc de la Grande Plaine - 5, Rue Brindejonc des Moulinais - BP 15872
31506 Toulouse Cedex 05 - FRANCE
Tel : +33 561 17 65 15
Email : pascal.parraud@c-s.fr