Monday, March 2, 2009

In to the Mars – Neck breaking Opportunity.

:-)

Since the Imagine Cup Robotics & Algorithm competition Round 1 deadline is extended till April 1st I had decided to go and give a try on the Robochamps previous challenges. So I decided to give a try in the Mars Challenge which seems to be very interesting.

The sample kit is provided only with a VPL solution. However it is not a big deal converting a VPL diagram to C# code I first converted the VPL diagram into a C# solution and started developing an entry.

The environment and the robot recreates a scenario experienced by Opportunity, one of NASA’s real rovers in the Endurance Crater. There are 6 Navigation points that we should visit and finally we must reach the heat shield to complete the mission.smile_nerd

The obstacles are the rocks that are scattered over the terrain and safely maneuvering into the crater. The sensors available are A Navigation camera, Panoramic camera and two hazard avoidance cameras in front and rear. There is also a GPS data from the Communication link. So as an start I designed a solution which uses only the GPS data and travels the navigation points in sequence. The problem with this is the rower may hit a rock or stuck in the crater forever.

Following is the video footage of test run. Well fortunately there wasn’t any rocks on the path and even though the rover rolled into the crater in a neck breaking way finally it landed on correctly.smile_tongue

Hmm I think I should be bit more careful with a multi million dollar scientific robot like this.smile_wink Well let’s see how we can improve this more later..

[Posted using Windows Live Writer on Windows 7 Beta]

6 comments:

ChApRrO said...

hi, in school we are having a contest with the robochamps competitions as a part of the robot programing class, we allready pass the sumo, and the amazed competitions, and now we are with the marsrover, i have it working now fairly good, but i want to improve it, so i have a question, is there a way of getting the positions of the zones from the MarsComLink?? i have tried all i can imagine but i can't, right now i created some constants with the values, but i think it can work better and be more robust, in case the coordinates change if i can get them from there, so is this posible, and if it is how can y manage it???

it would be so good if you can help me, i you want you can email me at A00786752(at)itesm.mx

tanks in advance

Pramuditha Aravinda said...

Target Zone informations are broadcasted in MarsComLink messages. See message.Body in public RunHandler(marscomlink.Replace message) inside class OnMarsComLinkReplaceBetaHandler : HandlerBase (Generated by compiling the VPL as a service.)

Ludovic BONNET said...

Hi :)

I have a question about this sentence : "So as an start I designed a solution which uses only the GPS data and travels the navigation points in sequence"

How did you do this ?

Because you have your position, the point where you want to go, but after only wheel drive power (-1,1) and you are not face to your destination. I see also Yaw, Pitch and Roll but I don't understand how to make the thing you said !

Help me a little please :)

Pramuditha Aravinda said...

Ludovic,
That's where an advanced degree in astrophysics comes handy. ;-)
Well what you need to understand is the principle behind is closed loop feedback control. So you must observe that you can set the wheel power as a function of error in your pose. This is the basic theory behind almost everything you see from HDD arm controller, Elevator controller and even in heat-seeking missile.
Mind me this was a bit more difficult in previous mars challenge (which is described in this post not the one above this) as you did not have a sensor for the rover orientation on comlink.
Happy coding!

Ergys Ristani said...

Hi Aravinda,

Can you give some more information on your hill climbing technique? I'm surprised to see how your rover managed to get from waypoint 3 to 4 following the shortest path :D There is not so much friction and the inclination is way too high. I'm using a 3-2-4 path instead, seems more reliable.

Thanks in advance

Pramuditha Aravinda said...

Ergys,
Please note that this post and the video is based on the Robochamps Mars challenge. Yes in that it is possible to manure from 3 to 4 directly as friction is considerably high.
Yes for the time being in Imagine cup mission I use a similar trick as you do until I finish up my dynamic path finding algorithm. In fact I do even have problems going straight from 3->2 so I use middle point between 1 & 2 instead.
Happy Exploring!