resilient-swarms / argos-sferes

An interface to using the ARGoS robot swarm simulator with the Sferes evolutionary algorithm framework
3 stars 0 forks source link

cant put on correct position #17

Closed bossdm closed 5 years ago

bossdm commented 5 years ago

I notice that sometimes the agents cannot be placed on the correct position, cf baseloop_functions.cpp l.421

throw std::runtime_error("cant put on correct position");

This seems to be especially when using more agents.

bossdm commented 5 years ago

Now that I have disabled this runtime_error, I am seeing what is going on. After around 1000 generations, you can see between 0-100 statements like this, depending on the run, in the output file:

terminate called after throwing an instance of 'argos::CARGoSException' what(): [FATAL] CGrid::GetEntitiesAt() : Position <4.00641,4.01115,0.03> out of bounds X -> 0:4 Y -> 0:4 Z -> 0:1 [FATAL] CGrid::PositionToCell() : Position <4.00641,4.01115,0.03> out of bounds X -> 0:4 Y -> 0:4 Z -> 0:1

this appears to be a sporadic phenomenon, and the initial setup is fixed so that is strange. maybe some bug in the distribute function ?

bossdm commented 5 years ago

Hi, In the issue mentioned on https://www.argos-sim.info/forum/viewtopic.php?f=3&t=185&hilit=out+of+bounds , Carlo mentioned that robots can actually escape the walls if they go fast enough, and they seemed to have similar settings to us. There increasing the wall size did the trick.

I haven't had the running time to verify it solves the second post, but I think it should.

I was however able to confirm that the first posts's observed condition does not occur when using increased wall size whilst in the usual configuration it does.

Let's wait to close until next long runs do not result in any errors of type two.