logo logo
Home arrow Robotics Studio... arrow Robotics Studio Services arrow Simulated SONAR Service
Monday, 12 May 2008
 
 
English English  Español Español  
Tag Cloud
Architectures Artificial Associations Books Brain Conscious Consciousness Forums Howto Machine Machines Microsoft Neuroscience Projects Publications Research Researchers Reviews Robot Robotics Robots Services Spanish Studio
Simulated SONAR Service Print E-mail
Written by Raúl Arrabales Moreno   
Thursday, 02 August 2007

Image
Simulated frontal SONAR array
The Simulated SONAR Service provides access to a simulated SONAR array. It uses Robotics Studio Simulator raycasting to simulate SONAR transducers. Using this service you are able to test SONAR object detection and distance measurement in the MSRS Visual Environment.

Background:

ARCOS based robots (like the Pioneer P3-DX) can integrate up to four SONAR rings, each with eight transducers. These sensors provide object detection and distance information. The Robotics Studio platform doesn’t include a simulated SONAR service that could be use in the Visual Environment. However, there exists a generic contract for SONAR that I wanted to implement for the specific case of my SIMULATED P3-DX frontal SONAR array.

NOTE: A real (not simulated) ARCOS SONAR service is available at:
http://www.conscious-robots.com/en/robotics-studio/robotics-studio-services/arcos-sonar-service.html

 I asked Microsoft and I got the following answer:

"you can make a reasonable simulated sonar sensor by doing something similar to the simulated laser rangefinder.  Instead of casting hundreds of rays in a scanline pattern like the laser rangefinder does, cast a handful of rays in a  cone that matches the aperture of the sonar sensor you want to simulate.  In  your code, look at the distance results returned by each ray and then set the sonar return value to be the closest intersection."

Trying to follow these instructions I wrote a service called SimulatedSonar – Source code is available in the download section.

NOTE: Current version of SimulatedSonar don't generate a 3D cone using raycasting, instead a 2D pie is generated and used to calculate the closest intersection. Therefore, the robot only sees in a 2D plane (situated at the height of the SONAR device pose). In order to build a more realistic SONAR, this needs to be fixed. Additionally, noise should be added in the simulation in order to get as closest as possible to a real SONAR.

You can subscribe to this SimulatedSonar service from your application and easily get SONAR readings in your MSRS code (I think this code will be valid for any simulated robot, you just need to add the SimulatedSonar entity to your robot).

 

Service Download:

 

Installation instructions (for source code zip archive):

SimulatedSonar is a small Robotics Studio Service (DSS Service) that allows you to access a simulated SONAR array. The zip file contains the source code and Visual Studio project.

Decompress the contents of the file under MSRS home directory. Note that the service source code is located under Apps directory. Build it using Visual Studio.

See the readme.txt file included in the distribution package for detailed instructions and version history. It is important that you install the service in a machine with the same version of MSRS that is indicated in the readme.txt file. I always try to update the distribution file with the latest available version of MSRS, please check regularly for updates.



Service Details:

Service Contract Identifier:
    http://www.conscious-robots.com/2007/07/simulatedsonar.html

Implements generic contract:
    Microsoft.Robotics.Services.Sonar

Service partners:
    Subscription Manager

Allow Susbscriptions:
    Yes.

Service State:
    Microsoft.Robotics.Services.Sonar.Proxy.SonarState

Image
Simulation Raycasting
 


Description:

Each Pioneer 3 DX SONAR ring is composed of eight transducers arranged at angles -90, -50, -30, -10, 10, 30, 50, and 90 degrees. They are polled sequentially at a configurable rate (usually 25 Hz – 50 ms per transducer per array).

The SimulatedSonar service aims to simulate a real SONAR by using the raycasting facility of the MSRS simulator. P3DX front ring sonar is 180 degress. But lateral transducers are centered at 90 degrees, so I consider: 196 degrees. I considered the aperture of one transducer is 16 degrees (real hardware transducers have an aperture of 15 degrees). Therefore,

_state.AngularRange = 196;  // 180 plus two halfs of lateral transducers.

Using the raycasting facility, I generate one ray per degree forming a 2D pie of rays. Then I only consider the rays that fall within the angles covered by each SONAR transducer (the measures obtained from the rest are discarded as the fall in the blind spots between transducers), and for each transducer I retrieve the closest intersection (minimum distance). See figure: blue rays represent discarded measurements. Red rays correspond to measures taken for sonar transducers. The yellow spot is the simulates sonar pose (origin of all rays).

Whenever a substantial change occurs in the raycasting readings that correspond to the simulated SONAR transducers the SimulatedSonar service issue a replace message to all its subscribers notifying a state change.

Within the SonarState object, an eight position array of double values is created. This array (called DistanceMeasurements[]) contains the distance readings corresponding to the simulated SONAR transducers.

 


Related Items:

  1. Microsoft Robotics Studio Pages
  2. Finding papers about consciousness and robotics
  3. Cognitive Robotics
  4. Polymorphic Robotics
  5. Microsoft Robotics Studio October 2006 CTP
  6. Microsoft Robotics Studio November 2006 CTP
  7. Robotics Studio 1.0 Released
  8. RoboCup Simulator for Robotics Studio
  9. Robotics Studio 1.5 May 2007 CTP
  10. Robotics Studio 1.5 Released

Add as favourites (49) | Quote this article on your site | Views: 2520 | E-mail

  Comments (2)
RSS comments
 1 Simulated Sonar Update 5
Written by This e-mail address is being protected from spam bots, you need JavaScript enabled to view it website, on 14-11-2007 11:25
I just uploaded an updated version of the SimulatedSonar service. A bug was detected (thanks Nerea) in the initialization of the service which caused the service not to start correctly is some situations. This is now fixed. The update 5 can be downloaded from our donloads section.
 2 Simulated Sonar Update 4
Written by This e-mail address is being protected from spam bots, you need JavaScript enabled to view it website, on 21-09-2007 11:56
SimulatedSonar Update 4 is available for download. Sonar transducer cone aperture has been changed to 15 degrees to match the real angular aperture of Pioneer 3 DX Sonar transducers. Therefore, total angular range of the sonar ring is 195 degrees (180 plus two cone halves). Note that there are blind spots between sonar transducers.

Only registered users can write comments.
Please login or register.

Powered by AkoComment Tweaked Special Edition v.1.4.4

Last Updated ( Thursday, 02 August 2007 )
 





Lost Password?
No account yet? Register
Categories
Last Posts in Forum
Last comments
Poster Session Pictures
Some pictures of the poster sessio...
08/04/08 13:17 More...
By Raúl

Final Announcement and Conference Overvi
Final Announcemen...
07/02/08 12:45 More...
By Raúl

Discussion about test for consciousness
More information a...
29/01/08 15:01 More...
By Raúl

Robots with Linux under MSRS
The MSRS runtime itself run u...
27/12/07 17:24 More...
By Raúl

How do I run robots with Linux under MSRS?
27/12/07 15:47 More...
By north by northeast

Some pictures from the event
Some pictures of the event ca...
18/12/07 08:08 More...
By Raúl

ExplorerSimSonar version 12
I\'ve just published a new ver...
14/11/07 11:59 More...
By Raúl

Simulated Sonar Update 5
I just uploaded an updated versio...
14/11/07 11:25 More...
By Raúl

Requires SimulatedDifferentialDriveTT
(Thanks Ben for the ...
21/09/07 12:30 More...
By Raúl

Simulated Sonar Update 4
SimulatedSonar Update 4 is availa...
21/09/07 11:56 More...
By Raúl

 
Top! Top!