This page contains various tips, tricks and experiences for working with ERSP. It should be noted that we are currently recommending that you use Player/Stage/Gazebo instead of ERSP.
ERSP is a software platform for developing robotics applications. In general, the documentation is quite good, so do not be afraid to read it. In particular, the Doxygen generated documentation is very helpful during development. It is possible to use ERSP with The Scorpion robots at DIKU, although we recommend Player/Stage/Gazebo.
You can (somewhat simplistically) approach ERSP development from two view points:
- Top-down: ERSP comes with a set of predefined 'behaviours' that solves fairly high-level tasks, such as obstacle avoidance. These behaviours can be combined into larger programs using the graphical 'composer' tool. If you are missing certain behaviours, new ones can be implemented in C++.
- Bottom-up: ERSP is a layered platform, meaning that you can also communicate directly with the hardware. This allows for development with greater control of robot behaviour. It should be noted that the API for the hardware layer is somewhat convoluted since it is designed for top-down usage.
In general, the top-down approach allows you to get the most out of ERSP. Sadly, this strategy isn't very flexible, so you often have to implement quite a lot of things in C++ anyway.
The ERSP documentation is actually quite good. In particular, the Doxygen documentation is very helpful. On DIKU's UNIX system, you can find this in
and on the robot laptops, you can find them in
Sadly, we cannot publish the documentation here as Evolution (the company behind ERSP) doesn't allow us.
ERSP Example Programs
The following pages contains a few simple examples of ERSP usage.
- ERSP Templates. A couple of simple templates that can be helpful when learning to use the platform.
- Fin Fejebakkef?lger. A simple program that makes the robot follow a colourful object. The program uses the ERSP image processing system, which complicates things quite a bit.
- Converting between ERSP and OpenCV. A simple piece of code that shows how to use OpenCV and the ERSP image processing system simultaneous. If you are only using the ERSP hardware layer, then you can use OpenCV without any difficulties; all problems appear when you also wish to use the ERSP image processing system.
To get the most out of ERSP, it is recommended to use the graphical composer.sh tool. A short introduction to this tool can be found at Media:Composer.sh_vejledning.pdf. It is also recommended that you study the tutorials from Evolution as they give quite a bit of details.
In Section 2.8 of the tutorial a function called 'handle_new_landmark' is described. It is declared as follows:
void SLAMCorrection::handle_new_landmark(const Landmark *landmark)
but according to the ERSP API is should be declared as
void handle_new_landmark (Landmark *landmark)
i.e. no 'const'. To use the examples in the tutorial, you need to erase the 'const' qualifiers. Otherwise you will not overload the functions that you need to overload.