GE 423 – Ipod Group



Steven Bettenhausen

Wei Qin

Ben Ellis


            Our project is to create an iPod application using Xcode that interacts with the robot.  Our specific application will show a map of the course with the robot in it and allow the user to touch a portion of the map to send the robot to that point.  Also, our application will show the video feed from the camera on the iPod screen.

            The first step was to learn how to use Xcode to create an application with buttons and text.  Using these simple interface objects, we then proceeded to programmatically create a communication socket to stream data to and from the robot.  The first screen of the application allows the user to select the port and the IP address of a robot in order to communicate with it.

The second step is to receive four float numbers from the robot, the first three being the x position, y position, and angle of the robot.  These three numbers are used to place the image of the car in the correct position and orientation on the grid shown on the iPod’s second tab. 

The third step is to send information back to the robot.  Because Xcode does not recognize the extended character table, we had to make changes in the Linux code so that the start and stop characters were not char 253 and 255, but char 94 (^) and 95(_).  Using this new communication method, we could send values to the robot.  When the user touches the iPod map, the X and Y coordinates of the touch are calculated and sent to the robot.  In the DSP code, the robot is then commanded to travel to the new X, Y coordinates.

The fourth step is to display the camera data on the iPod’s third tab.  The camera data is 76,032 bytes of data and is sent in packets of 10,000 at a time.  The image only updates when a full 76,032 byte image is received.  Otherwise, the image is not updated.  The camera is fast on the simulator, but slow when loaded onto the iPod.

Future work would include finding a way to make the data transfer from the camera faster and also combining the Linux programs so that only one Linux program would need to be run when doing both the camera image and the map.

Additionally, we created an iPod app using Adobe’s Flash Professional CS5. It had similar functionality to the completed Xcode, except that it lacked the Touch and Go functionality and lost video data due to different char encodings. However, it provided an alternative for iPod app creation with a shallower learning-curve than Xcode.


Tutorials Used:

Socket creation:


Tab Controller:


Getting Started:


Flash Tutorial Book:

Grover, Chris. Flash CS5: The Missing Manual, 4th Edition.


Group Contact Information:

Ben Ellis:

Wei Qin:

Steven Bettenhausen: