## Daniel Sykes

I am involved in research on highly dynamic, self-adaptive software systems comprising: behaviour synthesis from abstract goals; declarative, decentralised assembly of software architecture; and more recently machine learning techniques for overcoming the limitations of design-time knowledge. Such research has found application in pervasive, military and robotic domains. I undertook my doctorate at Imperial College and have since spent time at INRIA Paris-Rocquencourt.

If necessary, my email address can be purloined from a paper or from the department.

### Publications

- Controller Synthesis: From Modelling To Enactment, Victor Braberman, Nicolas D'Ippolito, Nir Piterman, Daniel Sykes, Sebastian Uchitel. ICSE 2013, May 2013, San Francisco, USA. (teaser video)
- Learning Revised Models For Planning In Adaptive Systems, Daniel Sykes, Domenico Corapi, Jeff Magee, Jeff Kramer, Alessandra Russo, Katsumi Inoue. ICSE 2013, May 2013, San Francisco, USA. (teaser video, slides)
- Satisfying Requirements For Pervasive Service Compositions, Luca Cavallaro, Pete Sawyer, Daniel Sykes, Nelly Bencomo, Valérie Issarny. MRT 2012, October 2012, Innsbruck, Austria.
- Machine Learning For Emergent Middleware, Amel Bennaceur, Falk Howar, Malte Isberner, Valérie Issarny, Richard Johansson, Alessandro Moschitti, Bernhard Steffen, Daniel Sykes. JIMSE 2012, August 2012, Montpellier, France.
- Machine Learning For Automatic Classification Of Web Service Interface Descriptions, Amel Bennaceur, Valérie Issarny, Richard Johansson, Alessandro Moschitti, Daniel Sykes, Romina Spalazzese. ISOLA 2011, October 2011, Vienna, Austria.
- Automatic Service Categorisation Through Machine Learning In Emergent Middleware, Amel Bennaceur, Richard Johansson, Alessandro Moschitti, Romina Spalazzese, Daniel Sykes, Valérie Issarny. FMCO 2011, October 2011, Turin, Italy.
- Probabilistic Rule Learning In Non-Monotonic Domains, Domenico Corapi, Daniel Sykes, Katsumi Inoue, Alessandra Russo. CLIMA 2011, July 2011, Barcelona, Spain.
- FlashMob: Distributed Adaptive Self-Assembly, Daniel Sykes, Jeff Magee, Jeff Kramer. 2011 International Symposium on Software Engineering for Adaptive and Self-Managing Systems (SEAMS 2011), May 2011, Hawaii, USA.
- Inferring Affordances Using Learning Techniques, Amel Bennaceur, Richard Johansson, Alessandro Moschitti, Romina Spalazzese, Daniel Sykes, Rachid Saadi, Valérie Issarny. FET 2011, May 2011, Budapest, Hungary.
- A State Machine-Based Approach For Reliable Adaptive Distributed Systems, Leonardo Mostarda, Daniel Sykes, Naranker Dulay. EASE 2010, March 2010, Oxford, UK.
- Exploiting Non-Functional Preferences In Architectural Adaptation For Self-Managed Systems, Daniel Sykes, William Heaven, Jeff Magee, Jeff Kramer. SAC 2010, March 2010, Sierre, Switzerland.

PhD thesis, Autonomous Architectural Assembly And Adaptation, February 2010, Imperial College, London.

- A Case Study In Goal-Driven Adaptable Software Architecture For UAVs, William Heaven, Daniel Sykes, Jeff Magee, Jeff Kramer. 4th SEAS DTC Technical Conference, July 2009, Edinburgh, UK.
- A Case Study In Goal-Driven Architectural Adaptation, William Heaven, Daniel Sykes, Jeff Magee, Jeff Kramer. Software Engineering for Self-Adaptive Systems, LNCS 5525, 2009.
- Goal-Driven Adaptable Software Architecture For UAVs, William Heaven, Daniel Sykes, Jeff Magee, Jeff Kramer. 3rd SEAS DTC Technical Conference, June 2008, Edinburgh, UK.
- From Goals To Components: A Combined Approach To Self-Management, Daniel Sykes, William Heaven, Jeff Magee, Jeff Kramer. 2008 International Workshop on Software Engineering for Adaptive and Self-Managing Systems (SEAMS 2008), May 2008, Leipzig, Germany.
- Plan-Directed Architectural Change For Autonomous Systems, Daniel Sykes, William Heaven, Jeff Magee, Jeff Kramer. Sixth International Workshop on Specification and Verification of Component-Based Systems (SAVCBS 2007), September 2007, Dubrovnik, Croatia.
- Self-Managed Adaptable Software Architecture For UAVs : A Testbed, William Heaven, Daniel Sykes, Jeff Magee, Jeff Kramer. 2nd SEAS DTC Technical Conference, July 2007, Edinburgh, UK.

### Demonstrations

- Simple demonstration of plan-directed configuration change.
- Further demonstration of plan-directed configuration change.
- A thrilling video of ball manipulation with multiple robots.
- A dramatic video of an adaptive search for the arm.
- Simple obstacle avoidance in simulation.
- A series of exciting arm-centric videos: throwing, writing and drawing.
- A soldier is saved by way of policy-based management.
- A demonstration of controller synthesis.
- A demonstration of controller synthesis, for the production cell.
- A demonstration of controller synthesis, for the Nao (performing trilateration).

### Koala, Korebot, Katana, Nao Software

- Using the Nao in Java: nao.jar - library for accessing the Nao remotely (requires jnaoqi.jar and jnaoqi.dll) (see documentation).
- Using the Koala in Java:
  - koala.jar - interface to the Koala on the Java side (see documentation, debugging hints)
  - libjkoala.so - JNI library which bridges the gap between Koala.class and libkorebot. Copy libjkoala.so to `/usr/lib` on the Korebot and add `/usr/lib` to `LD_LIBRARY_PATH`
  - The Koala can alternatively be controlled via a serial cable from the desktop, which requires RXTX
- JVM on the Korebot:
  - jamvm.tar - JamVM cross-compiled for the Korebot
  - classpath.tar - Classpath cross-compiled for the Korebot (excluding glibj.zip)
  - glibj.zip - glibj with some classes deleted to make it smaller
- Using the Katana arm in Java:
  - koala.jar - interface to the Katana on the Java side (documentation)
  - jkatana.dll - JNI library which talks directly to the Katana (Windows only)
- Camera motors (KoreMotorLE): KoreMotorLE.knc - must be copied onto the KoreBot in `/etc/libkorebot` to access the camera's pan (`KoreMotorLE:PriMotor1`) and tilt (`KoreMotorLE:PriMotor2`) motors using libkorebot or KoalaCamera.class (which ultimately calls libkorebot).
- The camera itself requires an updated spca5xx driver - must be copied onto the Korebot in `/lib/modules/2.4.19-kb11/kernel/drivers/usb`. The driver can then be loaded by doing `modprobe spca5xx`, followed by `ln -s /dev/v4l/video0 /dev/video0`. Then the camera can be accessed as an ordinary Video4Linux device, for example with spca.exe.
- Successfully exporting an object for RMI from the Korebot requires a modified version of gnu.java.rmi.server.UnicastConnectionManager.
- List of planning actions/conditions: terms.txt.
- A picture of a robot.
- Not atypical.