Both V-rep and Webots simulator says that they can simulate multiple robots. Is these simulators are capable for simulate swarm robots? Can I simulate the swarm intelligence algorithms like ACO, BeeClust algorithm, Stick pulling Algorithm, Occlusion Based Collective pushing etc. on these simulators? Which robot I have to select for implementing above algorithms? For implementing these algorithms which simulator will be better? Any suggestions is appreciated.
-
$\begingroup$ Thank you. Edited question with more explanations. I saw some projects on Github which is integrated these simulators with ROS. That is why I think these simulators are not alone capable enough to do that job. That is why asked so. $\endgroup$– Arun K SCommented Jan 8, 2019 at 18:53
-
$\begingroup$ try contacting the two companies that publish the software and check their forums $\endgroup$– jsotolaCommented Jan 8, 2019 at 19:03
-
$\begingroup$ i wonder if you may be able to do the same with Processing .... processing.org/examples/flocking.html $\endgroup$– jsotolaCommented Jan 9, 2019 at 21:08
3 Answers
It's important to separate between simulation and artificial intelligence. An environment for simulating hundreds of robots on the screen is called a game engine. It can be realized with standard programming languages for example Python/pygame. The user creates an array of objects and each objects has a position and a speed value. The graphics engine displays all the objects on the screen. This is called a realtime simulation.
The other part is the artificial intelligence to control the objects. Without an AI, the robots in the simulation has to be controlled manually or by a random generator. They are displayed at the screen with smoothly 60 frames per second, but it's unknown how to move them right so that robots are solving a task. In general, a simulator for displaying hundreds of objects is easy to realize. The more advanced part is to create the AI which drives the objects autonomously.
Simulators like Webots, V-Rep, Gazebo, pygame or Unity3D are the environment in which a robotics controller is developed. They are providing the graphics and the underlying physics engine. They are working as a game construction set in which the user can script a game.
-
$\begingroup$ Could you please explain, are you saying I have to use Pygame and Python instead of Webots or V-rep? $\endgroup$– Arun K SCommented Jan 9, 2019 at 8:07
-
$\begingroup$ @ArunKS Most simulators are very equal. They are providing the same functionality and allowing to test out robotics controllers. $\endgroup$ Commented Jan 9, 2019 at 8:28
Any general purpose robot simulator like V-REP or Webots can get your task done, though with not the best support for swarm robots in particular. ARGoS is a good platform for swarm robot simulation, maintained well enough with active contributors and shall allow you to inherently have support for centralized/de-centralized control.
The most common swarm robots are the Kilobots and the Khepera and ARGoS supports both of them.
The ARGoS simulator specifically targets swarm robotics development. There is also a really awesome swarm robotics programming language, Buzz, that plugs into ARGoS. There is even a ROSBuzz version. Lastly, I recently discovered this fantastic repo named TensorSwarm for reinforcement learning of robot swarms that plugs into ARGoS.