Degree Name

Master of Computer Science - Research


School of Computer Science and Software Engineering


Controlling an indoor flying robot through an on-board processor has drawn the attentions of many researchers. While most of them use single rotor conventional helicopter and program their robots with low-level language such as C, we researched a different approach by proposing an on-board computation of sensing, actuator control and communication system for a coaxial helicopter with Java. Once we have developed a robust and time efficient Java control system, then we can research flight control and navigation of the helicopter with the aim of eventually using it in site assessment tasks in urban disaster search and rescue.

The coaxial helicopter has advantages over other aerodynamic structures in indoor flight. So, we choose the Lama X.R.B coaxial helicopter and research how to convert it into a computer controlled helicopter. As Java is a high-level safe language, its object-oriented and safe features can be advantageous when we develop a complicated real-time system.

A series of problems need to be solved in order to develop such system. The problems can be categorized into four main areas: (a) controlling the four actuators that control the helicopter, (b) reading and processing the sensor data, (c) communication with the host over a wireless network, and (d) developing a software architecture to achieve all the above in real-time, with sufficient CPU time left for flight control and navigation in subsequent research projects. Flight control requires both good actuator control and an accurate model of the dynamics. This thesis focuses on actuator control, leaving flight control for future research.

To solve these problems, we have obtained a Sun SPOT for use as an on-board processor to control the helicopter’s actuators and to manage the on-board sensors. Also, one of our colleagues had developed a real-time operating system called JARTOS and we can embed JARTOS into the Sun SPOT to manage this system to make sure the higher priority processes run in real-time. In order to control the helicopter’s actuators, we developed pulse train generation software to simulate the radio control pulse train. For managing the on-board sensors, we developed software I2C protocol to read sensor information. We also redesigned all the software to allow each function running under the management of JARTOS. Finally, all the communication between the remote helicopter and the host Macintosh are done by internal IEEE 802.15.4 software support in the Sun SPOT.

However, we found that incomplete support of the Sun SPOT firmware and uncertain behaviours of the Java virtual machine brought us a series of problems, mainly performance problem. We know that controlling an aerial vehicle’s actuators requires micro second level accuracy. But with the Sun SPOT’s multi layer architecture, time is wasted in inter-board communication. We have provided evidences of possible performance improvement with a proposed new firmware release as reference for future development.

Thus, we have developed a prototype on-board system for the control of a dual rotor helicopter. We have researched the requirements of each area of the software: actuator control, sensor reading, wireless communication and host graphical user interface. First, we wrote standalone programs to experiment in each area. Then we decomposed each program into sets of interacting processes that can run under JARTOS. The result is a working system that is too slow for flight control. The main problem is that the I2C communication is very slow. We are discussing a fix for this with Sun.