Jump to content
  • Advertisement
Sign in to follow this  

AI for Space Nav computer

This topic is 4765 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

Heres something to think about. (just a challange). You have one camera, that is looking strait ahead. From that, and a star map, work out where you are, your direction and heading. (given that you can use multiple frames). Star map, can be abything you want. As long as it is smaller then 500Mb, and you don't use a large amount of processing power when computing your position. (large, as in, you have maybe a second to come back with your answer. On a 1ghz arm). let the thinking Begin! From, Nice coder

Share this post


Link to post
Share on other sites
Advertisement
As a second task: Make a path from two points, which would use the least energy. (ie. No going from gravity well to gravity well, ect.) and use your cource information to follow it well.

From,
Nice coder

Share this post


Link to post
Share on other sites
Guest Anonymous Poster



Sounds nice an vague/incomplete -- kind of like 'ideas' that marketing people usually give.


Star Map data can be anything I want ??

OK my map data has spectrum frequencies accurate enuf to be able to discern each star uniquely and the 'camera' can register that info.

I was gonna say my map has 1 star on it, but that would have been too easy.

You need to be a bit more specific (and clear) in your 'challenges'.

Share this post


Link to post
Share on other sites
Ok.

Challange 1:

Determine velocity, position and orientation, from a continuous series of images ftaken from the front of your spacecraft.

Challange 2:

Create a path from two points, using the lowest amount of thrust.

Challange 3:
Use the first two challanges to develop an algorithm that will stick to the path.


All chalanges are to be done on a memory budget of 500mb, and a processing budget of 1 sec on a 1ghz arm processor.

From,
Nice coder

Share this post


Link to post
Share on other sites
The under 1 second bit is a killer.

My star map contains sets of statistically unique star combinations used for navigational aid.

i.e. A set of stars that form a 3-D 'Cross' in space, (-X-), a cluster of stars that differ in magnitude in a 'binary' style (bright, dim, bright, dim), a set of stars that radiate at unique wavelengths, a set of pulsars and their periods, etc...

Lets just say I have 300 different 'fingerprints' to look for. All I need to do is identify three of them to determine where I am.

Images taken using my camera get converted in to a series of vectors, where each star gets represented as a list of normalized vectors to the other stars in the field of view.

I could probably then compare the normalized vectors to the features in my star map.


Navigation is simply a heading at that point.

Will

Share this post


Link to post
Share on other sites
You still have one billion ops for searching.

What would happen if the time limit was raised, to say.... 5 secs?

What i would do, is splat every star onto a sphere that is about the orbit of pluto. (a bit over that).

Without any planets, of cource.

Now, for every star, i remove those that are too similar in colour and position so that i couldn't be seeing two of the same stars.

Now, once that is done, i simply do some image processing to find the intensities and relitive positions of all the stars, before processing it into a set of numbers, and searching the databank for them.

Once i find a few stars, i take the angle that i am with them. (basically where they are in the picture dictates where it is as an angle to where i am going), then from that, and there positions i triangulate my position. (i know where they are (in the sphere), and i have the angle between them and me, and i have heaps of them, so i should be able to work out my position quickly).

I ignore any stars that i do not know.

I do this with a few hundred stars to accurity figure out my position to within a few meters.

Once i have that, i take another photograph, and compare the two positions, and from the two positions and the time between them, i work out my velocity vector.

I can also work out spin, ect. By where they are rotationally.

From,
Nice coder

Share this post


Link to post
Share on other sites
Nice Coder:

The way we solve this problem with telescopes (of the backyard variety) is to calibrate an instrument (like a camera on a mount) against a know set of stars (Polaris, Alderbaran, etc..) and the time. If you know the time of day (GMT) and can tell the telescope what it's pointed at, you can know exactly where you are and exactly what your heading is at all times.

I imagine you could do the same thing with the space ship.





Share this post


Link to post
Share on other sites
It's not such a simple problem as it sounds (and in fact is an active research topic).

Consider this scenario:

You have a database of constellations, which are projections of sets of points in space onto a plane surface of finite size. We have a (roughly) fixed set of constellations on Earth because the great distances to the stars in the constellations means motion effects translate into almost insignificant angular displacements.

Now, the problem faced by the Nav Computer is that it needs to consider an infinite number of possible plane surfaces, one for each possible camera position it could have within the known space. What this equates to is the ability to look at a star field captured by the camera and determine the transformation required to have it match exactly one constellation in the data base. This can be done using Bayesian techniques, although computationally you're not likely to achieve it within 1 second on a 1GHz machine.

The other solution method is to solve the inverse problem: given a 2D projection of a set of points embedded in 3D space, determine the most likely 3D embedding. Clearly though, this problem is under-determined unless you impose further constraints. Typical constraints are to assume the same luminosity of sources, so that luminosity differences in the camera image can be attributed to distance. You're in trouble though if there is intervening dust that decreases luminosity in the image. Basically, unless many over-simplifying assumptions are made, this method isn't practical.

The third idea would be to use triangulation methods, however given the distances to stars in space relative the the distances spacecraft can travel (even at light speed), there would be large errors in triangulation estimates of position, due to the errors in estimation of angular change. One *might* be able to combine triangulation with the inverse problem to triangulate the relative position of stars.

The final method is to use parallax to estimate the distance to each star (for use in the inverse problem). The only problem here is that you need to assume an exactly known focal length of a lens and be able to measure extremely accurately the distance to the image from the lens.

Personally, I'd go with the first method, since it equates to the problem faced in current research of context sensitive image retrieval. A good example of this sort of problem is, given an MRI of a patients brain, find an MRI scan in a database of other patients that most closely matches this scan. You face the same transformation problems and the same inference problems as well, so I suggest you read up on the literature in this field if you're serious about finding a solution to your problem.

Cheers,

Timkin

Share this post


Link to post
Share on other sites
There are still a lot of unkowns, how far am I traveling for one?

Lets assume I'm just traveling in this solor system.

My star map consists of a SDSS(Sloan digital sky survey) on much smaller scale and a dsiplacemnt map of the solar system. The star map is updated periodically by an algorithim that use known data to calculate steller drift. The camera converts the image into a comparable format and uses the ships last known position to compare the camera image to the ships assumed posistion in the starmap and then determines the ships current position. A comparison with the last known posistion reveals speed, heading, and acceleration.

With the ships position detetermined, the course plotting algorthim uses the density map to plot the path of least resistance to the destination.

The ship follows the course by comparing its current position to its assumed position on the path and uses the ships thrusters to adjust velocity and heading when its current position deviates from the assumed position.

Share this post


Link to post
Share on other sites
1 or even 5 seconds is not sufficent time to calculate a flight path for a space ship, since you're forgetting a key factor in astronmoical travel and that is time. When you plot a course in space you plot the course not for where your destination is but where it will be when you arrive.

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

Participate in the game development conversation and more when you create an account on GameDev.net!

Sign me up!