Personal tools
You are here: Home News NIFTi developers meeting
About NIFTi
NIFTi is about human-robot cooperation. About teams of robots and humans doing tasks together, interacting together to try and reach a shared goal. NIFTi looks at how the robot could bear the human in mind. Literally. When determining what to do or say next in human-robot interaction; when, and how. NIFTi puts the human factor into cognitive robots, and human-robot team interaction in particular.   Each year, NIFTi evaluates its systems together with several USAR organizations. Rescue personnel teams up with NIFTi robots to carry out realistic missions, in real-life training areas. 
Impressum

This site uses Google Analytics to record statistics on site visits - see Legal information.

 

NIFTi developers meeting

Working out a methodology for continuous integrated S&T development

NIFTi is an integrated project. Our take on integration is that it covers the entire track. From questions, to ideas how to answer them, to the systems that help us explore these answers. 

In other words, we integrate from science to technology to systems. Our systems instantiate the theories we develop about natural human-robot cooperation. We regularly deploy these systems in training areas, to experiment with them, evaluate our theories. Yearly. 

But to bring that about, we need a fairly solid methodology to do so. We need a methodology that enables us to test whether we do the right things -- and whether we do them right. And in doing so, we can develop our theories and systems continuously, in an integrated fashion. 

That turns integration into exploration. It is a discovery process. Of how to explore questions. Ideas. Possible system designs. More often than not, revealing the real questions, at the interfaces between different functionalities of a cognitive system. 

At our first NIFTi developers meeting at Fraunhofer IAIS (March 1-2, 2010) we laid down the basis for such a methodology. We follow a design cycle, in which we closely cooperate with end users. The cycle takes us through requirements, component design, system design, and testing in roughly 4-6 months each time round. So that the lessons learnt in real life can feed back into further theory development. 

 

The NIFTi development cycle

The key components on which we build in NIFTi are the following: 

  • Scenario-based use cases: Together with end users we establish story-based scenarios, and use cases that focus on aspects of these scenarios. This helps us to define acceptance tests -- the “right things” we need to be able to do. 

  • Team-based integration: Integration in general is a team-based effort, and typically 15-20 people are actively involved in system development. In NIFTi, we structure these efforts further. During a development cycle, we dynamically form teams, working off self-defined team charters to solve targeted S&T problems within 3-6 months. We are using advanced web-based tracking & management software to provide the necessary infrastructure. The infrastructure enables us to track activity, and store project experience over time -- so that we have it ready at hand, even when people have moved on. 

  • Test-driven development: Cognitive systems are very difficult to test -- particularly if we first design, then implement, and only then start thinking about testing. Instead, we adopt test-driven development in NIFTi. Development starts with formulating tests for “doing things right.” In development, we then follow test-code-refactor cycles to evolve to better, testable designs. We thus always have a testable system -- and at every time, we have an integrated system with guaranteed functionality. 

  • Quality assurance: We adopt coding- and documentation standards, coupled to code reviewing, to ensure that everybody can read, understand, and use everybody else’s code. We use a continuous build server to perform regular full-scale unit testing, and the construction of virtual machines for an entire system. 

  • Virtual Machine-based distribution: The continuous build server provides a VM with a complete installation of the system. The installation includes all the code, the necessary libraries, and an IDE. The VM runs Ubuntu, and can be run within any major operating system. This way, everybody can work with the same setup. And we avoid spending time on installing software. 

Over the next couple of months, we will be fine-tuning the methodology, and see how it works out in practice ... 

---

 

NIFTi is an IP funded by the EU FP7 ICT programme, ICT-247870 (Cognitive Systems & Robotics unit). Project Officer: Olivier da Costa. Coordinator: Geert-Jan M. Kruijff (DFKI GmbH, gj@dfki.de)

Document Actions