Designing an API at an appropriate abstraction level for programming social robot applications. (April 2017)