Skip to content

WhyCon/SwarmCon

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

What is SwarmCon ?

SwarmCon is a minimalistic version of the WhyCon localization system intended for swarm applications. While the core of the SwarmCon system is the same as the WhyCon one, it was designed to have as least dependencies as possible. Moreover, the SwarmCon is especially intended for external localization of ground-robot swarms. Thus, unlike WhyCon, SwarmCon can distinguish between individual robots and calculate their heading.

WhyCon was first presented on ICRA2013 conference and later in the JINT journal. If you use this software for your publication it is mandatory to cite WhyCon using the references in the provided cite.bib file. Full URL to this file is: https://raw.github.com/lrse/whycon/master/cite.bib.

To use it

To start with the software:

  1. Install the SDL libraries.
  2. Download the software from GitHub and go to the src directory.
  3. Adjust the camera resolution in the main/swarmcon.cpp.
  4. Compile the software - just type make.
  5. Download, resize and print one circular pattern.
  6. Try a test run - you need to run the binary from the bin directory. Type ./swarmcon /dev/videoX 1, where X is the number of the camera and 1 tells the system to track one pattern.
  7. You should see the image with some numbers below the circle. Pressing D shows the segmentation result.
  8. Open your browser to view localhost:6666. You should see the circle position.

To setup a coordinate system and use more robots:

  1. Calibrate your camera using the MATLAB (or Octave) calibration toolbox and put the Calib_result.m in the etc directory.
  2. Go to the etc directory and call create.sh N M to generate patterns for NxM robots.
  3. Print the generated file pattern_n_m.pdf, put the eliptical markers on your robots and place the remaining four circular markers at the corners of their operation space.
  4. Modify the dimensions of the operation space in the main/swarmcon.cpp.
  5. Adjust the circle diameter in the main/swarmcon.cpp, default diameter is 30 mm.
  6. Call make to recompile, put your camera facing down and overhead the your swarm.
  7. Go to bin directory and run ./swarmcon /dev/videoX Y, where X is the number of your camera and Y is the number of patterns you want to track, i.e. Y=NxM+4.
  8. Once all the patterns are found, press a and the four outermost patterns will be used to calculate the coordinate system.
  9. Each pattern will have four numbers - ID, heading and x,y in mm.

For postprocessing :

  1. Processing a saved video rather than the camera feed is likely to provide more precise results.
  2. To create a video, simply create an output directory in the place where you run the swarmcon.
  3. If your camera supports MJPEG, then the system will create a video in the output directory.
  4. You can run swarmcon videofile Y to process that video in the same way as when using the camera.
  5. If your camera does not support MJPEG, it will save the video feed as a serie of bitmaps, that you can process later as well.

Furhermore:

  1. Running the system as ./swarmcon /dev/videoX Y nogui causes text-only output.
  2. h displays help.
  3. Pressing h displays help.
  4. Pressing +,- changes the number of localized patterns.

Dependencies

All the following libraries are probably in your packages.

  • libSDL-1.2 for graphical user interface.
  • libSDL_ttf-2.0 to print stuff in the GUI
  • libncurses5-dev to print stuff on the terminal

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published