Trouble using Simulated LRF - wont respond to orientation setting

Answered Trouble using Simulated LRF - wont respond to orientation setting

  • viernes, 30 de diciembre de 2011 22:15
     
     

    Hi!

    I have a problem with SimulatedLRF.

    In simulation environment i added Sample4x4Vehicle (from samples) and attached 8 lrfs to it in the corners.

    lrfs are placed in right positions, but they dont have orientation i set.

    All of them are looking forward, so only  pair of forward lrfs gives a correct data.

    I`m using Robotics Studio 2008 R3 / Win XP.

Todas las respuestas

  • lunes, 02 de enero de 2012 0:33
    Propietario
     
     

    In the simulator, can you change the orientation of one of the LRFs using the Editor? I am not sure if there is a problem with the LRF entity or your code. If you can re-orient the LRF using the Edit Mode then it must be something in your code.

    Trevor

     

  • sábado, 11 de febrero de 2012 10:33
     
     

    I mean, i don`t write any code, just added sample car and lrf`s to it in simulator environment.

    I`ve set orientation of lrf`s via pose orientation properties, but according to xml output environment ignores orientation vector completely, so rear bumper sensors are looking forward. Position vector works normally.

  • viernes, 23 de marzo de 2012 20:00
    Propietario
     
     
    I can start the MobileRobots.P3DX.Simulation.Manifest, Edit the scene, rotate the LRF entity and see in the dashboard that the LRF is sensing at the new orientation. 
    I'm not sure what you mean by "according to xml output environment ignores orientation vector".  Can provide a simple set of steps using existing samples to reproduce your problem?
  • martes, 10 de abril de 2012 20:43
    Moderador
     
     Respondida

    I haven't seen a response on this thread for a while so I am closing it “Answered”. If you have another question, please open a new thread as this one will continue to appear "Answered" and may not get any attention.

  • sábado, 14 de abril de 2012 15:02
     
      Tiene código

    Sorry, I just was unable to respond in time.


    By the way, I reproduced the same behavior with RDS 4.0.

    How i did it:

    1. Opened Urban simulation scene, added Sample4x4Vehicle

    2. Added lrf sensors. Specified relational positions and orientations within insert dialog. It looked like they all are in right positions.

    All insertions were made within editor.

    I wanted to orient sensors to cover all car surroundings.

    Then i wrote a service to gather info from simulation and control car.

    Interaction with sensor was made with respect of simulation tutorials:

            [Partner("SimulatedLRFService1", Contract = sicklrf.Contract.Identifier, CreationPolicy = PartnerCreationPolicy.UseExistingOrCreate)]
            sicklrf.SickLRFOperations _simulatedLRFServicePort1 = new sicklrf.SickLRFOperations();

    And gathering of raw data is just like in tutorials - polling LRFs by timer.

    Here is code, related to polling process: http://pastebin.com/raw.php?i=hM94zdCc

    After it i`ve made bindings with dss manifest editor, linking services with entities.

    I performed rotations of sensors via editor(changed orientation) and changed pose in "Edit" window, but these operations are made around car center, so rear sensor becomes front

    Is this can be made only by working with joint connection properties?

  • domingo, 15 de abril de 2012 10:44
     
     

    In your case, you could try to insert the car entity programmatically, and extend it so that it contains 8 child entities that you can easily rotate through code just before initializing them.

    I remember trying to do such a thing few weeks ago. I was able to load the urban environment by loading its state through the simulation engine service and insert the car entity. But for some reason I couldn't poll the LRF or webcam services for data. As far as I know the sample environments have some limitations for being reused.


    3D LRF

    However, if you're interested I can provide you with my code for a 3D LRF sensor and an alternate terrain like the one in the picture.

  • lunes, 16 de abril de 2012 16:52
     
     

    Sample urban environment from the box has a trick - some of its resources are packed inside its service, so they are avalaible only when service is started.

    I used simulation services code from tutorials - added their entities into simulation environment and binded them to respective services via dss node editor.

    Alternate terrain model would be great! Have you got them from google warehouse?

  • lunes, 16 de abril de 2012 19:15
     
     
    Another question - are these simulated people are static or logic-driven?
  • martes, 17 de abril de 2012 9:30
     
     

    Concerning the urban environment, for some reason my service partnering wouldn't work even when the urban service would start. I guess there was something wrong in my manifest file.

    My components for the terrain are indeed from the 3D warehouse, and from sketchup pro I export them as obj files.

    As for the people, some of them are static (part of the same mesh as the terrain), while some are inserted as separate entities. I wrote some logic for them to cross the street whenever a simulated traffic light becomes green. I'll try to upload a sample on codeplex when I get some free time.

    Ergys