logo logo
Home arrow Forums...
Saturday, 11 February 2012
 
 
Main Menu
Home
Conscious Machines...
AI Techniques...
Neuroscience...
Researchers...
Publications...
Reviews...
MC Bibliography
Robotics Studio...
Forums...
Blog...
Frontpage
Upcoming Events
22.Feb. 2012

CogSys 2012
Vienna, Austria
04.Apr. 2012

TSC 2012
Tucson, Arizona
17.May. 2012

EAIS 2012
Madrid, Spain
05.Jun. 2012

Cognition & Consciousness
Menorca. Spain
02.Jul. 2012

ASSC 16
Brighton, UK
02.Jul. 2012

Revisiting Turing and his Test
Birmingham, UK
31.Oct. 2012

BICA 2012
Palermo. Italy
Tag Cloud
Associations Books Conferences Conscious Conscious Machines Consciousness Developer Documentación Documentation Español Machine Machine Consciousness Machines Neuroscience Positions Publications Research Researchers Reviews Robotics Robots Spanish Studio VPL
Spotlight
More
Reader's Preferred
MCexperts List
FAQs
Glossary
Site Map
 
Conscious-Robots.com Forum  


chuycepeda
User

Senior Boarder
Posts: 14
graphgraph
Karma: 4  
Multi-Robot SLAM - 2010/02/28 04:35 Hi, I've modified ExplorerSimService from Trevor, which is pretty similar to Raul's one using sonars; and now I've loaded an environment from an XML together with 3 Pioneers, which I created using SPL from HelloApps.

The question is, how computational cost is increased by triplicating that operations ? Can this be optimized ?....I don't really know if the answer is just: "It Triplicates, and maybe..."

Below is basically what I've done and when using the 3 LRFs for doing the map, the FPS go really bad to about 15 or less...I'm using a Core 2 Duo running at 2.20Ghz...how much you think could be enough?

--Changes into Start() Method:
(I use lrfenableX for referring which LRF data is considered in the map)
Code:

  if (lrfenable)             {                 MainPortInterleave.CombineWith(                   Arbiter.Interleave(                        new TeardownReceiverGroup(),                        new ExclusiveReceiverGroup(                            Arbiter.Receive<LaserRangeFinderResetUpdate>(true_mainPortLaserRangeFinderResetUpdateHandler),                            Arbiter.Receive<LaserRangeFinderUpdate>(true_mainPortLaserRangeFinderUpdateHandler)                        ),                        new ConcurrentReceiverGroup()                    )                     );             }             if (lrfenable2)             {                 MainPortInterleave.CombineWith(                   Arbiter.Interleave(                        new TeardownReceiverGroup(),                        new ExclusiveReceiverGroup(                            Arbiter.Receive<LaserRangeFinderResetUpdate>(true_mainPort2LaserRangeFinderResetUpdateHandler2),                            Arbiter.Receive<LaserRangeFinderUpdate>(true_mainPort2LaserRangeFinderUpdateHandler2)                        ),                        new ConcurrentReceiverGroup()                    )                     );             }             if (lrfenable3)             {                 MainPortInterleave.CombineWith(                   Arbiter.Interleave(                        new TeardownReceiverGroup(),                        new ExclusiveReceiverGroup(                            Arbiter.Receive<LaserRangeFinderResetUpdate>(true_mainPort3LaserRangeFinderResetUpdateHandler3),                            Arbiter.Receive<LaserRangeFinderUpdate>(true_mainPort3LaserRangeFinderUpdateHandler3)                        ),                        new ConcurrentReceiverGroup()                    )                     );             }             MainPortInterleave.CombineWith(                 Arbiter.Interleave(                     new TeardownReceiverGroup(),                     new ExclusiveReceiverGroup(),                     new ConcurrentReceiverGroup(                         Arbiter.Receive<sicklrf.Reset>(true_lrfNotifyPortLaserResetNotification),                         Arbiter.Receive<sicklrf2.Reset>(true_lrfNotifyPort2LaserResetNotification2),                         Arbiter.Receive<sicklrf3.Reset>(true_lrfNotifyPort3LaserResetNotification3)                     )                 )             );             Activate(                 Arbiter.ReceiveWithIterator<sicklrf.Replace>(false_lrfNotifyPortLaserReplaceNotification),                 Arbiter.ReceiveWithIterator<sicklrf2.Replace>(false_lrfNotifyPort2LaserReplaceNotification2),                 Arbiter.ReceiveWithIterator<sicklrf3.Replace>(false_lrfNotifyPort3LaserReplaceNotification3)             );

  The administrator has disabled public write access. Please, register to participate in the forum.
Raúl
Moderator

Moderator
Posts: 590
graph
Karma: 10  
Re:Multi-Robot SLAM - 2010/03/02 17:42 Please, see my former answer here.

Apart from lowering the resolution or changing the SLAM algorithm, I don't see other obvious way to optimize the code.

Maybe the application is going too slow due to the raycasting processing done in the simulator (for the 3 simulated LRFs). Probably, if you had 3 real robots with real LRFs and not having to run the simulation in the same computer, the SLAM algorithm for the 3 LRF sensors wouldn't be that CPU demanding...
Raúl Arrabales Moreno. conscious-robots.com/raul
  The administrator has disabled public write access. Please, register to participate in the forum.





Lost Password?
No account yet? Register
 Conscious Robots RSS FeedConscious Robots RSS Feed

Find us on Facebook

Follow us on TwitterFollow us on twitter
Spotlight

Machine Consciousness Bibliography Database

 

ConsScale
The Cognitive Machine Consciousness Scale

 
Last Posts in Forum
 
CR
miel continental