ilpincy / argos3

A parallel, multi-engine simulator for heterogeneous swarm robotics
http://www.argos-sim.info/
268 stars 121 forks source link

bugfix(#14): dynamics3d init failure #131

Closed jharwell closed 4 years ago

jharwell commented 4 years ago
allsey87 commented 4 years ago

Hi John, thanks for the pull request! In future, I think it would be best though if you were to split these requests across two commits, one with the code clean ups and one with the actual changes to the code.

Now regarding the initialization failure. The <boundaries> feature is not currently supported by the dynamics3d engine, mostly because it is quite complicated to implement. In contrast to the dynamics2d engine where most robots are normally one or two shapes, robots in the dynamics3d engine have multiple bodies and are connected by various types of joints. All of these objects have complicated state information that would need to be carefully transferred between the two instances as a robot crosses a boundary. I think it is doable, but it takes time and a lot of testing to make sure everything is working correctly.

So I think there are two issues here, (1) the initialization failure is simply because boundaries are not supported by the dynamics3d engine and (2) if they were to be supported, it is entirely possible that they would be implemented as a class that inherits from CDynamics3DPlugin...

jharwell commented 4 years ago

Ah I see. I can update my pull request to instead be an update to the result of argos3 -q dynamics3d to reflect that multiple dynamics3d engines are not supported?

As an additional question, does the pointmass3d supported with multiple engines? I've been using it with the foot-bot and haven't had any issues with it, but I also have not done extensive testing (i.e. just launching ARGoS with multiple pointmass3d engines, seeing that it does not crash or throw an exception, and then seems to give OK results).

allsey87 commented 4 years ago

You can update the description of the Dynamics3D engine to mention that for now. I am not sure about PointMass3D engine, I am only using a single instance for the moment. @ilpincy and I had plans to clean it up at some stage but that hasn't happened yet.