Gazebo resources: Tutorials | Q&A | Documentation | Blog

Universal robot control plugin


#1

I want to use gazebo for my Third Year project. I plan to do some neural networks for robot control, and I need to be able to scale it for bigger number of robots. This means that I need to be able to control any robot with one framework.

I did a lot of research and I haven’t found any universal solution (I am quite surprised). All I found online was that I can control robot with one of these ways:

  • Robot control plugin in C++ using SDF model
  • ROS plugin using URDF model
    But both solutions need modification for every robot I want to control. Or am I missing something?

I already started implementing my framework. I was thinking that I can use a plugin to load SDF model and get number of joints when loading, and then create a new message type that will send joint number and torque. This plugin will be wrapped in python for easy use (I am not really good with C++ and I want to develop neural networks in python).

I think that the gazebo comunity could benefit from this and it would make simulations more accessible to beginners. So I want to ask for any ideas/advices (or corrections if I am wrong). Let me know what do you think about it.


#2

Hey, you seem to be going in the right direction.
The Neural Network(NN) control thing was a hot topic in robotics this year.
Google brain made some work with Deep Reinforcement Learning (DRL) to control manipulators and other stuff [1], [2], [3], [4]

The problem it is more related to train the NN itself them to the “control” part.
AFAIK, in robotics we have a huge state space and sparse rewards this make things hard to train a NN.
I don’t know if the problem is already solved, but there were some research about one-shot learning and imitation learning.
You may also want to have a look at this: https://github.com/erlerobot/gym-gazebo

You can also make a “not-so-hot” use of NN and directly train a NN without the whole agent-environment interaction thing from reinforcement learning.
In this case, this paper was quite acknowledged last year: End to End Learning for Self-Driving Cars
This work is a “remake” of another a classic work: ALVINN: An Autonomous Land Vehicle In a Neural Network

[1] - https://research.googleblog.com/2017/07/teaching-robots-to-understand-semantic.html?m=1
[2] - Sorry, new users can only put 2 links in a post.
[3] - Sorry, new users can only put 2 links in a post.
[4] - Sorry, new users can only put 2 links in a post.


#3

I know that the problem is NN based, but the control part is mostly relevant to the gazebo community (since it will be definitely open source). I already read about the gazebo gym, however I want to focus on NN controlling joints while receiving simple commands as go forward, turn,… And they skipped this part of control problem.

But thanks a lot for feedback and advices :blush: , I will definitely look at the papers.