Menu

Exhibiting my work was very interesting, as it allowed me to communicate with other people who seemed to be enthusiastic about my project.

In addition to the rover and the control station, I made some museum exhibition style information boards that I thought might make things more interesting.

As it turned out, people had difficulty working out that the rover was an actual real robot that they were controlling until they saw the thing itself. I therefore definitely think that if this was to be exhibited in a museum that I would allow people to see the rover driving. Perhaps not at the same time as they are controlling it however.

Another thing that was suggested was the inclusion of goals for the driver to achieve. I initially wanted this too, with the purpose of the goals to be the delivery of the information, but as discussed in a previous post, this was a whole new project unto itself. I had also thought about the inclusion of fun goals such as finding little aliens that would be fun for younger users, but i decided that this was unscientific.

My project is currently in a prototype form, however I am feeling confident about the final outcome. Even though it is not as smooth as I had initially planned it especially in terms of the control of the rover and the delivery of information, i still feel that it works correctly and achieves most of what I wanted it to do in the beginning.

To complete the project I plan to recreate the rover body in a better looking, sturdier material and add detail to make the rover resemble those that have already been sent to Mars more closely. I also plan to complete the redesign of the user interface and add more facts to the information delivery. Finally, once the terrain is in place I will add a thin layer of unglued sound and rocks to add a level of realism.

After spending large periods of time researching various methods of image and colour recognition in various environments including PureData, Quartz Composer and JavaScript, most of my trials were unsucessful. PureData and Quartz Composer were both unable to recognise the MJPEG stream coming from the Raspberry Pi in order to import it. Even though I found many working examples of JavaScript tracking colours and doing various things once the colour was detected, I could not manage to get it to work with the stream from the Pi either. The following videos demonstrate this.

The main issue seemed to be that they are working with a video, and the MJPEG stream outputs images and writes them to the canvas. I found an example that detected a red ball in an image on the JavaScript canvas, however that had specific checks for the size of the ball, and i could not compile the two scripts together without causing the stream to cease being displayed.

I have had to settle for a working but less interesting alternative, which is different to the other contingency plans that I initially thought up, as it is more reliable.

On the left hand side of the main viewing screen I have created a script that will randomly redirect the user from the iframe with the telemetry .gif inside of it to one of a number of different facts about Mars. The user will then be redirected after a period back to the telemetry. I have also added a flashing warning triangle .gif and alert noise to draw the user’s attention.

The warning .gif which animates for a short period of time when the page loads

The user interface and controls are both web based due to the ease of customisation and wide range of functions that can be achieved via the various web languages such as HTML, JavaScript and PHP.

Main Screen

For the main viewing screen I have decided that the central focus should of course be the camera’s video feed. I decided to centre this, and then overlay a clear .png image of the same size in a separate ‘div’ on the page to create the ‘artificial horizon’ overlay on the camera. I found however that when the screen resolution is changed, it moved the png from the correct position. This is mainly an issue when moving it from the computer that I am developing it on to the projector or other monitor that might be of a different resolution. I solved this by leaving one page with the video feed and png overlay, and creating a new page with an iframe in the centre of it.

Similarly, I decided that to make the main page as simple and flexible as possible that everything should be in iframes, so the code for the main page only consists of three iframes, each aligned to a spate part of the page.

For the telemetry and satellite displays I decided that they should occasionally change to reflect new data coming in. I looked into JavaScript’s random function for this, and I decided that it would require a too high of a refresh rate to achieve the effect that I wanted. I therefore opted to create looping .gif images instead. For the telemetry, I decided to use two separate .gifs on two separate pages, and have a JavaScript function that occasionally refreshes the page to the other one.

Control Interface

My Initial draft of the control interface.

For the first draft of the controls I have stuck to the triangular design for the buttons, and I have redesigned the .gif on the ‘waiting’ page that is called when using some of the controls so that it incorporates the font and feel that is used on the main viewer page.

Additionally, it only runs through once before returning to the previous page as opposed to the old gif that was on a loop.

Note that the wheel direction triangles change colour depending on what the current direction is.

Original .gif

For the final design I want to smarten up the interface and make the buttons resemble what they are more clearly. I want to keep the triangle theme, but I also would like to make it feel more like a professional user interface, whilst retaining some of the brightness to engage younger users.

For the web elements of my project I think Google Fonts is a useful resource as the fonts can be downloaded so that I can use them in images, but also they can be linked in the stylesheet for the web pages so that any written text can be in a matching font.

Looking at NASA and ESA telemetry data, they tend to prefer monospaced fonts such as courier for the distinctiveness of each letter and number so that there is no confusion.

Based on this, I looked at the fonts in the monospace category on Google Fonts. I wanted something that was reasonably clear to read, but I also wanted it to be interesting from a design point of view (so Courier was not an option).

I decided upon the font ‘VT323’, because it looks slightly pixelated and I thought this looked interesting especially at large font sizes, and makes it seem as though it is part of a text-based computing system.

I would like the user’s interaction with the project to simulate a job working with NASA or another space agency driving the rover. Therefore I want the environment to simulate a control room, with a large projection or screens showing the video feed and other data, and another monitor where the main user will sit to control the rover. This will allow watchers to view what is going on, but only allow one user to use the controls.

I would like there to be the possibility that users could see the rover in action on the terrain, and so I would allow them to go past the curtain once they had finished in the ‘control room’ aspect of the piece.

For the main viewing screen I want to include several things. Over the video feed I would like to have an artificial horizon to show the orientation of the camera/rover. I would like to include various graphic displays including perhaps satellite location, and I would also like to include telemetry data from the rover itself.

The design of the control interface has had to change due to the actions occurring directly after the button being clicked, rather than on the click of an execute button. The three different directions that the wheels can turn to also require buttons therefore, however I still want it to stay simple. The design I have chosen for the buttons is triangular as this infers direction without having to use arrows. Therefore, even without the text it would not be incredibly difficult to guess what the buttons do.

My initial design was to have the rover inside of a sandbox construction that was enclosed by walls which were painted green so that a chroma key or greenscreen effect could be applied. After much consideration I have decided that should make a few changes to the design for the following reasons:

Cost of the materials

Time available

Weight of the materials for transportation purposes

Looseness of the sand for transportation purposes

Difficulty in making the greenscreen work with current video solution

The sand and the weight of the wood would probably mean that it would have to be assembled on site and then left assembled for the duration. The walls on each edge serve no purpose if the greenscreen effect is not present and only unnaturally box the rover in. I have decided to amend the design to feature much lighter materials that can easily be transported in pieces and put together easily on site. I have also decided to make the boundaries of the terrain feel more natural, and so intend to create ‘rocks’ out of readily available and relatively lightweight materials which creates an impasse at the edges of the terrain. The sand will be glued onto the board in a thin layer.