ERSP

From ImageWiki

(Difference between revisions)
Jump to: navigation, search
m
 
Line 1: Line 1:
[[Category:ERSP]]
[[Category:ERSP]]
-
Denne side er samlingspunktet for erfaringer o.lign. med ERSP. På sigt er det meningen at ERSP skal erstattes af [[Player/Stage/Gazebo]], da det vil v?re fordelagtigt at benytte en mere ?ben platform.
+
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.
-
== Introduktion til ERSP ==
+
== Introducing ERSP ==
-
ERSP er en software platform til udvikling af robotapplikationer. Generelt er dokumentation temmelig god og det anbefales at have denne ved h?nden n?r ERSP benyttes. Specielt er den Doxygen-genererede dokumentation yderst anvendelig. Pt. benyttes ERSP på DIKU's [[The Scorpion robots|Scorpion robotter]]. Der er (noget simplificeret) to tilgange til udvikling med ERSP (beklager terminologimisbruget)
+
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]].
-
* '''Top-down:''' ERSP stiller en r?kke 'behaviors' til r?dighed, der hver l?ser en serie h?j-niveau opgaver. Disse kan s?ttes sammen vha. et grafisk v?rkt?j kaldet 'composer' (se l?ngere nede på siden). Hvis ERSP ikke har de n?dvendige 'behaviors' er det muligt at implementere nye i C++.
+
-
* '''Bottom-up:''' ERSP er lagdelt software, hvilket betyder at det er muligt at starte udviklingen af applikationer fra hardwarelaget. Derved er det muligt at tilgå de enkelte dele af robotten direkte fra C++. Dog er API'en pr?get af at ERSP er designet til Top-down udvikling.
+
-
Generelt f?s det st?rste udbytte af ERSP n?r Top-down strategien v?lges. Desv?rre er denne strategi ikke s?rlig fleksibel, hvorfor det ofte er n?dvendigt at skrive sine egne 'behaviors', hvilket er n?sten lige så besv?rligt som at udvikle programmet udelukkende i C++.
+
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.
-
== Dokumentation ==
+
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.
-
Dokumentationen til ERSP er generelt ganske god. Specielt kan det anbefales at blive fortrolig med den Doxygen genererede dokumentation. DIKU's UNIX system findes dokumentationen i kataloget
+
 
 +
== Documentation ==
 +
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
  ~image/doc/ERSP/
  ~image/doc/ERSP/
-
og på de b?rbare computere til [[the Scorpion robots|Scorpion robotterne]] findes den i kataloget
+
and on the robot laptops, you can find them in
  /opt/evolution-robotics/doc/
  /opt/evolution-robotics/doc/
-
Vi har desv?rre ikke lov til at opbevare dokumentationen offentligt (så som på wiki'en) da Evolution godt kan lide at holde deres kort yderst t?t til kroppen.
+
Sadly, we cannot publish the documentation here as Evolution (the company behind ERSP) doesn't allow us.
-
== ERSP eksempelprogrammer ==
+
== ERSP Example Programs ==
-
Her er et par simple eksempelprogrammer til Scorpion robotterne hvor ERSP benyttes.
+
The following pages contains a few simple examples of ERSP usage.
-
* '''[[ERSP Templates|Skabeloner]].''' Et par skabeloner som det kan v?re hensigtsm?ssigt at tage udgangspunkt i n?r ERSP benyttes for f?rste gang.
+
* '''[[ERSP Templates]].''' A couple of simple templates that can be helpful when learning to use the platform.
-
* '''[[ERSPProgramFFF|Fin Fejebakkef?lger]].''' Et simpelt program, der f?r en robot til at f?lge et objekt med en karakteristisk farve. Programmet benytter ERSP's billedbehandlingssystem, hvilket g?r programmet un?dvendigt komplekst.
+
* '''[[ERSPProgramFFF|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.
-
* '''[[ERSPProgramOpenCV|Konvertering til OpenCV]].''' Et lille eksempel, der viser hvorledes ERSP kan benytte OpenCV. N?r kun ERSP's hardware lag benyttes er der ingen problemer ved at anvende OpenCV -- problemerne opst?r n?r ERSP's billedbehandlingssystemer benyttes.
+
* '''[[ERSPProgramOpenCV|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.
== Composer ==
== Composer ==
-
For at få fuld udbytte af ERSP kan det anbefales at benytte Evolutions grafiske v?rkt?j ''composer.sh''. En kort vejledning i at benytte dette v?rkt?j kan ses [[Media:Composer.sh_vejledning.pdf|her]]. Desuden anbefales det at l?se Evolutions egne tutorials, da disse g?r mere i dybden med v?rkt?jet.
+
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.
-
== Fejl i tutorial ==
+
== Tutorial Errors ==
-
I tutorialen (afsnit 2.8) er der omtalt en funktion der hedder 'handle_new_landmark', den er erkl?ret på f?lgende m?de:
+
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)
   void SLAMCorrection::handle_new_landmark(const Landmark *landmark)
-
men i f?lge ERSP-API'en skal den erkl?res på f?lgende m?de
+
but according to the ERSP API is should be declared as
   void handle_new_landmark (Landmark *landmark)
   void handle_new_landmark (Landmark *landmark)
-
altså ingen 'const'.
+
i.e. no 'const'.
-
For at bruge de eksempler som er med i tutorialen skal man altså slette 'const', ellers overloader man ikke den funktions erkl?ring som er i superclassen (OdometryCorrector).
+
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.

Latest revision as of 09:14, 11 August 2009

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.

Contents

Introducing 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.

Documentation

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

~image/doc/ERSP/

and on the robot laptops, you can find them in

/opt/evolution-robotics/doc/

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.

Composer

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.

Tutorial Errors

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.

Personal tools