What's new? | Help | Directory | Sign in
Google
sentience
A 3D volumetric perception system for mobile robots
  
  
  
  
    
Search
for
Updated Oct 13, 2007 by fuzzgun
GettingStarted  
How to compile and run the code

Firstly it should be noted that this is not yet a complete system, since it is so far untested on an actual mobile robot. However, it is possible to compile and run some programs.

System Requirements

The system has been written with the intention that it should run on any reasonably modern computer hardware - even fairly minimal processors. Until recently most development has been done on a system having a 1.8GHz single core processor and 512MB RAM, which should probably be regarded as a minimum specification.

Obviously the better the hardware specification the more smoothly everything will run, and multi-threading code is being used to ensure that it should be scalable as more computational power becomes available in the coming years.

On a Microsoft Windows system you'll need to have Visual C# 2005 (or later) installed. On GNU/Linux systems you'll need to install Mono and the MonoDevelop IDE.

For visualisation of 3D occupancy grids you'll also need to install IFrIT, which runs on both Windows and GNU/Linux systems.

You'll also need a subversion client of some description in order to be able to check out the code. I'm presently using RapidSVN.

Checkout

Create a directory called /home/<myusername>/develop/sentience (or c:\\develop\sentience on Microsoft Windows systems), then use your preferred subversion client to check out the source code to that directory.

The location of the project to be checked out is

http://sentience.googlecode.com/svn/trunk/

Test Routines

Program location: sentience/applications/testFunctions

The test routines are primarily intended for development and debugging purposes. They allow the user to visualise certain key functions within the Sentience system, such as path planning, motion modeling and probabilistic sensor models. For the casual user who is perhaps mildly interested in the algorithms but doesn't want to get involved with the messy practicalities of building robots or stereo cameras this is a good place to begin.

Some suggested experiments:

Note that because the sensor models are calculated in detail at high resolution it can take some time for these to be completed. For actual usage on a mobile robot much lower resolution versions computed and inserted into a lookup table.

Example Stereo Image Sequences

Location: sentience/testdata

Some example image sequences can be used to help test and develop the system. These were gathered laboriously by hand from measured known positions.

Create a subdirectory called seq1 within the testdata directory, then unzip the contents of sequence1.zip into this directory. Each sequence contains images from the left and right cameras, together with a stereo camera calibration file, robot design file and simulation file which contains the known positions from which the images were taken.

Stereo Vision Workbench

Program Location: sentience/applications/stereocorrespondence

The stereocorrespondence program can be used to help develop and test new stereo algorithms and view the results together with benchmark timings.

You can view the depth maps corresponding to stereo image sequences by using the stereocorrespondence program. Make sure that you have some image sequence data unzipped, then run the program and click next or previous to step through the sequence. On the menu you can select the level of detail you wish the depth maps to be calculated at. The lowest detail depth maps can be run at 20Hz and would be suitable for real time obstacle avoidance.

Simulation

Program Location: sentience/applications/mapping

In order to be able to test the performance of the mapping and localisation without having to use an actual robot a simulation environment has been developed. This is not terribly elaborate, but it does allow viewing of the map as it is created in a 2D overhead view, together with the evolution of the tree-based search strategy. Benchmark timings are also displayed which give some indication as to whether the overall system would be suitable for real time operations.

Ensure that some stereo image sequences have been unzipped, then from the menu bar choose File/Open and select the simulation xml file. On the next tab you may then run the simulation and observe the map which is created. Note that the system keeps track of multiple mapping hypotheses which become increasingly refined over time.

Some suggested experiments:

Note that you'll need to re-load the simulation file in order for changes to the robotdesign file to take effect.


Comment by robin.ha...@xnet.co.nz, Apr 05, 2008

HI, Great project you have here.

Would you be able to offer some guidance on compiling & running your software under Linux. I've loaded the mono development environment and had a bit of a look around and found some project under the source tree which compile. Unfortunatly when I try to run them I get errors about things being undefined.

I'm guessing it's something to do with not building the complete tree.

I've never used the c# environment before so it's probably just a case of knowing where to start in the tree.

Any pointers greatly appreciated.

Regards, Robin


Sign in to add a comment