T S Dahl
STUDENT PROJECTS

Project Areas of Interest

Robots for Telecare

Providing services and social interaction for people in their own homes through telerobotics is becoming an increaingly attractive. The proportion of people in the world requiring care is predicted to increase over the coming decades as life exepctancy increases. By providing services through telerobotic platforms, the quality of the services provided can be increased. Currently, a care receiver may be visited by a large number of different care providers in a short period of time due to the transience of the care provider work force. This can lead to anxiety and low levels of service quality.

I'm interested in any project related to robots for telecare, so feel free to make suggestions. I am prticularly interested in Internet abd web-based control and in novel client-side interfaces, e.g., using motion capture technologies. I'm also very interested in the transfer and delegation of skills from an operator to a tele-operated platform. See more explicit projects below.

Robot Football

Robot football provides time-constrained, semi-structured problem that allows us to study how new algorithms and technologies perform when they are taken out of a lab environment, without exposing them to completely unstructured environments such as a human home or a busy street. It is also great fun to compete in the international robot football competitions.

Like for telecare, I'm interested in supervising any project related to robot football. However, I'm a software engineer, not an electronics or mechanical engineer, so I cannot supervise the development of new robot, sensor or actuator hardware. If you can do your project using the Nao robot, which is the RoboCup standard platform, or the simulator used in the RoboCup 3DSimulation League, I'm happy to consider your project idea. For some specific project ideas related to game analysis, architectures and control, see the proposals I have listed below.

Methodology and Architecture Projects

Phylogenetic Robotics

Phylogenetic robotics or evolution-inspired robotics is different from evlutionary robotics in that it seeks inspiration from the products of the evolutionary process, i.e., the tree of life, rather than the process of evolution. The idea is that evolutionary history can indicate whether some capabilities have physiological and cognitive prerequisites that should be put in place before those capabilities can be replicated.

I'm interested in any project that studies robotics from this point of view, including the evolution-based analysis of physiology, behaviour, cognition or environment.

Biology-inspired Learning Algorithms

Many existing learning algorithms are based on biologically implausible mechanisms, e.g., back-propagation of errors, and structures, e.g., fully connected networks. Biologically plausible solutions often turn out to have unexpected levels of performance (often due to being naturally parallel) or other unexpected benefits. As such, the study of biologically plausible learning algorithms is an interesting area that promises to improve our understanding of both biological and computational learning mechanisms.

I'm interested in projects that study new, biologically plausible, learning algorithms or architectures. Iam also interested in projects that modify existing learning systems in order to make them more biologically plausible.

Web-based Telerobotics

The ubiquity of the Internet is making it possible to consider basing telecare delivery on commonly available web technologies.

This project will develop a web interface that allows an operator to perform tasks such as navigation and object handling using a remote robot platform. The UI can be based on basic widgets, but should contain a video stream from the server showing the view through the robot's camera or another camera observing the robot. It should also be able to make the robot move by setting e.g., joint/wheel angles/velocities and/or 2D/3D target locations. It should also be possible to read and visualise data from the robot's sensors.

The project should make use of the latest browsers and JavaScript libraries including the Robot Web tools for ROS. The project will also have to run a ROS server under Linux. The programming will be mainly in JavaScript.

Asynchronous Robot Behaviour Elements

One of the main challenges in developing complex multi-skill controllers, e.g., for robot football, is the structuring of the code and the execution of the many sensor and motor skills involved. Due to monolithic or poorly structured controll software, many robot football teams have a very complex process for updating code elements or integrating new capabilities into their existing contorllers. Another consequence of poor software structure is that they waste precious CPU cycles executing code that doesn't need to be executed, e.g., looking for team mates in a camera image when all they should do it is to shoot the ball into the goal. Finally, monolithic processes also struggle to take advantage of multiple CPUs and/or CPU cores to increase their performance.

This project will develop a new controlarchitecture based on independent behaviour elements. It will study a basic set of robot capabilities and divide these into separate processes for sensing, acting and choosing between behaviours. The project will develop methods that will allow the behaviour elements run asynchronously and to communicate with each other. This can be simulated initially using a collection of objects in a single program, but should then be extended to support execution of different behaviour elements in different threads and/or processes.

Relevant technologies for this project is network-based robot communication framworks such as ROS as well as real Nao robots and/or freely available simulators such as the SimSpark RoboCup Soccer simulator or the Webots robot simulator. The programming should be done in C++, Java or Python.

Dynamic Robot Skill Transfer and Task Delegation

In order to avoid repetitive tasks, it is important to allow operators to train remote robots and to enable them to delegate tasks when appropriate.

This project will use a robot controller based on independent behavior elements (see above), and develop an interface that allows an operator to develop skills and define tasks on the fly. This will include user specification of trigger and goal states as well as user evaluation and acceptance of performance levels. Initially, this project will ignore the actual learning process and use pre-programmed capabilities to study the live transfer and delegation process. The project also need not consider networking issues, but can work locally with the relevant user interface and robot technologies.

The project will make use of traditional user interface technologies, e.g., widgets (buttons and menus) with textual or graphical feedback. The interface should present the existing robot controller to the user and allow them to dynamically add behaviour elements, e.g., an improved object recognition, obstacle avoidance or reaching skill. The project should use a real robot such as the ePuck or Nao or a freely available simulator such as the Gazeebo, Webots or iCub simulators. The programming will be in C++, Java, Python or JavaScript using a standard GUI technology such as wxWidgets, Swing or HTML/CSS/JavaScript.

Analysis, Algorithm and Technology Projects

Comparative Studies of Reinforcement Learning Algorithms

A new generation of reinforcement learning (RL) algorithms have emerged recently, making it possible to use RL for complex real-world problems such as robot control.

This project will design and perform experiments to compare the prformance of a number of novel RL algorithms for learning problems with hidden states, i.e., partially observable Markov decision problems (POMDPs). The project will make use of new and existing benchmarks and will study existing off-the-shelf algorithms and potentially 'get hold of' or implement published algorithms that are not in the public domain, e.g., Andrew McCallum's 'nearest sequence memory' and 'utile distinction tree' algorithms. The framework will be used in the future to evaluate new RL algorithm developed at Plymouth University.

This project will use off-the-shelf RL algorithms from libraries such as the Approximate POMDP Planning Toolkit. The project should make use of traditional RL benchmarks such as RL-Glue but will also use real ePuck or Nao robots, or freely available simulators to reproduce, or define new, benchmark problems that can be studied using RL. The programming will be done in Matlab, C++ or Python.

Teleoperation through Motion-capture

It is far from clear how to support teleoperation of a robot in order to make it an intuitive task that can be done by tele-carers including informal carers such as untrained family members. This project will explore new user interface technologies and develop new control interfaces that can be used to operate remote robot platforms to achieve tasks such as navigation, reaching and/or object handling. Of particular interest is motion capture technologies such as the Kinect, but other off-the-shelf game technologies such as gamepads or Wee remotes could also be used.

The project should focus on robot control using the native APIs or real robots, such as the ePuck or Nao, or freely available simulators such as the iCub simulator, the Gazeebo simulator (standard for the ongoing DARPA grand challenge) or the Webots simulator. The project need not consider networking issues. The programming will be done in C++ or Python.

Implementation of imporant reinforcement learning algorithms

A number of published reinforcement learning (RL) algorithms are not available to run, i.e., their inventors have not published their code. This makes it difficult to compare those algorithms with new algorithms being developed at Plymouth University.

This project will 'get hold of' and/or implement important RL algorihmss and integrate them into standard RL evaluation frameworks such as RL-Glue. The project could also produce a Matlab re-implementation of a novel SOM-based reinforcement learning algorithm developed at Plymouth University, but currently existing only as a C++ implementation. Re-inplementations of algorithms is important for error-checking and a Matlab implementation is also easier to expand and integrate into other software (such as robot controllers)

Cuda Parallelisation of SOM-based Reinforcement Learning Algorithm

A number of published reinforcement learning (RL) algorithms are not available to run, i.e., their inventors have not published their code. This makes it difficult to compare those algorithms with new algorithms being developed at Plymouth University.

This project will 'get hold of' and/or implement important RL algorihmss and integrate them into standard RL evaluation frameworks such as RL-Glue. The project could also produce a Matlab re-implementation of a novel SOM-based reinforcement learning algorithm developed at Plymouth University, but currently existing only as a C++ implementation. Re-inplementations of algorithms is important for error-checking and a Matlab implementation is also easier to expand and integrate into other software (such as robot controllers)

Controllers for the CyberSavannah Competition

A number of theories concerning the evolution of intelligence, e.g., Mithen's mind-as-a-cathedral theory, suggest that a general intelligence is build on top of multiple more specific capabilities. The CyberSavannah competition was conceived as a tool to study this idea, by encouraging participants to develop robot controllers addressing different biology-inspired problems simultaneously. It is now distributed as a freely available world in the latest version of the Webots robot simulator.

This project will take a phylogenetic robotics approach to developing one or more controllers for the CyberSavannah competition, using producing a collection of behavioural elements and exploring potential evolutionary paths from simple to more complex behaviours.

The project will use the freely available Webots simulator. The programming will be done using Java.

Piagean Stabilization in Hierarchies of Artificial Neural Networks

Combining multiple artificial neural networks (ANNs) in a single learning architecture is an increasingly popular way of improving the performance of learning systems. The individual ANNs are commonly trained separately and then combined to produce a complete solution. In a more biologically plausible approach, all the ANNs are present from the start, but the ANNs that get their input from other ANNs will in this case not be able to learn until their inputs have stabilised. Piaget, and scientists following his philosophy, have suggested that learning is a stage-wise process where a system must reach a certain point before a sudden and significant improvement in performance can take place.

This project will study hierarchies of ANNs in order to reproduce a stage-wise learning effect where some of the ANNs only start learning when the ANNs providing their inputs have stabilised.

The project will implement the new learning systems and analyse their performance during learning in order to demonstrate stage-wise learning capabilities. The programming will be done using Matlab, C++, Python or Java.

Randomly Connected Artificial Neural Networks

Fully Connected artificial neural networks (ANNs) can be computationally inefficient. A number of more realistic connection distributions, that can also provide more computationally efficient learning, have been suggested by neuroscience.

This project will compare the performance of fully connected ANN architectures, as commonly found in multi-level perceptrons or self-organizing maps, with the performance of ANNs with more randomly distributed connections. Of particular interest are distrbutions where the probability of a connection decreases in proportion with the distance between nodes.

The project will implement the new ANNs and compare their performance to that of off-the-shelf implementations of traditional ANNs using established learning benchmark problems. The programming will be done using Matlab, C++, Python or Java.

Getting Robots to Pass the Ball

Robot football players a quite good at shooting and some can move with the ball doing something that can generously be called 'dribbling'. However, no robot has so far been able to pass the ball reliably (or even unreliably) to another robot.

This project will study one or more Nao humanoid robots in terms of allowing a ball to be passed reliably from one to the other in different sceonarios (in different locations and orientations). This could be in terms of a weighted pass, consider mainly the accuracy of kicking action, but it could also include the actions of the receiving robot potentially reducing required accuracy of the kick. The project should also consider the effect of the ball and the surface on the achievable accuracy.

The project will use real Nao robots and the programming will be done using C++ or Python.

Optic Flow versus Colour for Ball Recognition

Visual recognition of important game features such as the ball, other players and goals, has so far relied largely on colour. However, optical flow has recently become a feasible alternative due to standardised algorithms and fast preocessors.

This project will compare the performance of colour vision and oprical flow for ball recognition (and possibly goal and player recognition). The work will be largely experimental using off-the-shelf algorithms and running them under different experimental scenarios to produce quantitative evidence for their relative performance.

The algorithms will be taken from freely available libraries such as OpenCV and the project will use one of the University's Nao robots or a freely available robot simulator such as Webots or Gazeebo. The programming will be in C++, Java or Python.

Robot Football Game Analysis

Most of the existing robot football controllers have been constructed according to the same philosophy, typically along the lines of three out field players doing 'find the ball' -> 'go to the ball' -> 'find the goal' -> 'shoot at the goal', and one goalkeeper doing 'find the ball' -> 'block the ball'.

This project will analyse robot football video footage from tecent competitions in order to develop novel tactics that can give the University's robot football teams an advantage in upcoming competitions. Particularly relevant issues may include, collaboration, tactical positioning of players in attack/defence, tactical fast-low-accuracy kicking, tactical positioning relative to opponents, relative merit of soft/hard kicks and anything the analysis can come up with.

The findings should be translated into technical requirements and ideally be complemented by corresponding behaviour elements to be added to the University's existing controllers.