Roboficial > Green Mars (Image Processing)
    Register for the Event



    Coding for a image processing event takes a lot of time, and shows you the hell if the code you wrote doesn't work. In the event of green mars, we decided to check your thinking and algorithm than your capability to search net for code snippets ;) .Since coding is a major part of any automated robotics/IP event, you can't really escape it. But to save you time, we have provided a few functions that you might use in your code. 


    If you guys are having trouble testing the bot again and again, you can now use a simulator to test your algorithm and image processing before testing it on a real bot. Unfortunately, the simulator provided is written in C++ using opencv, so participants using matlab or other language have to write their own code. The code is short and just uses some mathematical equations, so it should be easy to understand and rewrite. Still, if you have any problem, feel free to contact us. Participants using C can use it and compile their code in C++ instead of C, because Code written in C is compatible with C++.

    (To view files, right click and save link as )

    Details about Simulator

    Simulator: differential

    Simulator: fourtags

    Example video of simulator at work. 


    10 years after the Mars Rover successfully landed on Mars, NASA has started efforts to colonise the planet. The most difficult task is of the Terra-forming Unit. Since the artificial atmosphere is not entirely breathable and the operation is of a huge scale, all efforts have to be done exclusively by satellite imaging and autonomous robots, which are trained extensively before deployment.

    The ‘Seeder’ is an autonomous robot capable of dispersing large amounts of seed, water, and fertilisers as it explores the surface of Mars. If deployed at very specific areas, the Seeder will lay a framework of green plants capable of producing oxygen, resulting in a breathable atmosphere, putting the human race one step closer to colonisation.

    With your efforts, humans can make Mars a second Earth! Can you help the human race reach the stars ?


    For complete details about the event, kindly download the Problem Statement.



    Create an autonomous robot that can traverse straight line 'paths' on an arena and visit specific nodes from any starting position.


    First Round

    An arena,with an overhead camera,will be provided to the participants where a few line segments (representing paths) are missing from the physical arena. These missing paths will be provided in a digital image of equal scale.
    The participants have to combine the two images to get the complete path.
    The robot will have to traverse the entire path and stop after doing so to obtain maximum possible scores.

    Second round

    Participants will be provided a different arena(as per the round 2 specifications).
    A digital image of equal scale, marking specific nodes with RED, BLUE and GREEN coloured tags will be provided.
    The robot will have to visit these marked points and blink an LED. Bonus points will be awarded if the points are visited in the order RED, BLUE and GREEN.



    1. The arenas will be consist of two colors only (only black and white color will be present).

    2. The paths will have width 5 cm AND only consists of 90 degree turns.

    3. The paths will never extend to the edges of the arena.

    4. The paths on arena will be in the form of a tree (graph with no cycles).

    5. Teams must come to the tournament prepared to calibrate their robots based on the lighting conditions at the venue. Every effort will be made by organizers to place the arena(s) in a way that the influence by external light is as low as possible.

    Arena 1

    The arena will consist of fragmented straight black paths on a white background.

    Arena 2

    1. The arena will consist of rectangular regions of alternating backgrounds (black or white) with black paths on white backgrounds and white paths on black backgrounds.

    2. The robot will always start on a black path on a white background.



    1. To start with, the bot will be placed on a black path on a white background.

    2. The maximum time for the run will be 10 min for each round.

    3. The bot must not stray out of the path for more than 5 seconds, but MUST be on the path when visiting the specified nodes.

    4. The bot must not skip consecutive nodes on the path (that is, it cannot skip one segment and reach another).

    5. The information about the nodes that need to be visited must be extracted from the digital image. The node, which is geometrically closest to the colored pixels, will be considered as the required node to be visited.

    6. When visiting the node : the bot must STOP and blink an LED for atleast 3 seconds.

    7. The LED that will be glowed has to be informed to the organizers beforehand

    8. In case of a violation of any of the rules during the run by the participating team or their bot, the team will be asked to restart the run and the round score reset to zero.

    9. A Maximum of 3 Runs will be allowed. The best score of the three will be considered.
There will be a penalty for extra runs (refer to the Scoring section).


    1. There will be only one overhead camera kept at the center of the arena.

    2. The cameras will be model “iBall c8.0”.

    3. The camera will be placed at a height such that only the arena is visible in the feed.


    1. The bot must fit into a cube of 25 x 20 x 20 cm (lxbxh) at all times.

    2. The max potential difference between any two points on the bot should not exceed 24 V.

    3. The bot must be fully independent, with powering and motoring mechanisms self-contained. However, it can communicate only with the computer using wired/ wireless data transfer.

    4. The robotic equipment is to be fully autonomous. Human operators are not permitted to enter any information into the equipment during a run. The human operator should not directly control the motion of their robots with a joystick or by keyboard commands under any circumstances.

    5. It will be the participant's responsibility if there is any data misinterpretation of the arena image taken by the overhead camera due to obstruction by the body of the bot.

    6. The bot cannot be constructed using ready-made Lego kits or any ready-made mechanism. But you can make use of ready made gear assemblies and ready made wireless modules. Violating this clause will lead to the disqualification of the machine.

    7. All the bots have to work on the principle of image processing. Any sort of ambiguity will lead to immediate disqualification. In case of doubt please confirm with the organizers about the validity of your procedure beforehand, via email.

    8. The bots are only allowed to use the overhead cameras feed that will be placed by the organisers, as specified.

    Team Specifications:

    Minimum : 1 members
    Maximum : 4 members

    Judging Criteria


    1. Extra run penalty: 50 pts. for each extra run taken.

    2. For both rounds, if two teams have identical scores, then time will be considered as a deciding factor to rank the participants.
If two teams have identical scores and times (down to the millisecond), then the teams will be given a treat at the night mess, and will have to play a game of stone paper scissors.

    ROUND 1

    Base score : 500


    1. While traversing: 10 * (Number of nodes not reached)

    2. If the bot does not stop after traversal : 5 * (Number of nodes retraced) -- Upto a maximum of 25 points

    3. Beyond which an extra penalty of 50 pts will be imposed. (Adding upto 75 pts)

    Some teams will be eliminated based on their score.

    ROUND 2

    Base Score : 500


    Missing a marked node: 100 pts


    Visiting the nodes in the order RED, BLUE, GREEN: 150 Taking the path with minimum number of nodes: 50 per path


    If you haven't already, have a look at the Problem Statement.


    For those of you who really don’t know where to start, here is a list of things you might want to look at. Depending on what you’re using for image processing (MATLAB/OpenCV/whatever) the implementation will be different.

    While you most certainly don’t need to use these in your code, there’s no harm in being aware of what these are, so if you’ve never even heard of some of these, then you really should look them up. You’re going to have to Google the implementation of these things yourself, but here's a rough framework of things you might want to use in your algorithms.

    -Binary Thresholding and Colour Thresholding.

    -Basic binary operations on images (AND, OR, NOT, XOR etc.)

    -Morphological binary operations

    Here's a nice .pdf that illustrates several common functions on binary images

    -Filters: Mean, Gaussian etc.

    -Edge detection using Canny/ Hough Transforms


    For navigation around the arena, you might want to consider how to represent it in memory.

    -You could represent the arena as a 2D matrix mapping each element to a location on the arena, and fill in this matrix with relevant features (turns, paths etc)

    -You could also represent the arena as a graph, with edges representing straight line paths, and nodes representing intersections.

    You’d have to look up algorithms that can find you paths from one node to the other.  The basic tree exploration algorithms: DFS and BFS, might help you.


    You can also go through THIS presentation from an old workshop that contains A LOT of useful information about image processing robot design. It's really long, but it contains all the basics, and you really should glance through it (At least to pick out keywords and ideas that you're not too familiar with).



    If you have any query, please send an e-mail to [email protected], or get in touch with any one of the Event Managers :

    Jagpreet Singh
    +91 9503363843

    Tushar Nagrajan
    +91 8390233067