MATLAB Answers

Simulating multiple robots in Gazebo through MATLAB/Simulink

조회 수: 7(최근 30일)
Sanyam Vyas
Sanyam Vyas 2020년 9월 24일
답변: Gaurav Bhosale 2021년 6월 29일
I am new to matlab/simulink and gazebo and am looking to set up a multiple robot gazebo environment. The examples provided in the website go through the multiple robot simulations (in warehouse environment) in simulink, but the simulations were not on Gazebo.
Any help would be highly appreciated.. Thank you

답변(2개)

Amrtanshu Raj
Amrtanshu Raj 2020년 9월 28일
Hi,
You can use gazebo co-simulation to get the desired Implementation. This document explains how to setup gazebo co-sim. This example shows how to simulate a Differential Drive Robot in Gazebo via Simulink
You can refer to this document for the functions and examples related to gazebo co-sim.
Hope this helps !!
  댓글 수: 3
Antonio Bono
Antonio Bono 2021년 6월 18일
Hello everyone!
I tried to use 6 robots in one single simulink sheet as @Amrtanshu Raj suggested but unfortunately only one robot moves (all can move if simulated alone so I don't think the problem is in my code). I can read the the poses of all the robots ( except for the moving robot, they remain in their initial position...) therefore I suppose the problem is in the actuation commands. I am using the same torque commands and wheel speed and pose measurements of the example Control a Differential Drive Robot in Gazebo with Simulink (see the attached figs of the general scheme and the one relative to a single robot).
Has anyone managed to run a simulation with multiple robots using this simulink gazebo co-simulation?
Any help would be highly appreciated.. Thank you!
P.S. Attached you can also find the gazebo world thet I use to spawn the robots.

댓글을 달려면 로그인하십시오.


Gaurav Bhosale
Gaurav Bhosale 2021년 6월 29일
Hi Antonio,
There is command overriding issue associated with few apply command in multiple robot scenario. We worked on this issue in new releases but this problem exist in older release.
There is workaround that you can do,
1] You have added models <r1> <r2> and so on. This is fine. But, you kept link and joint names same for all models.
e.g. <r1> has <link name='chassis'> and <r2> also has <link name='chassis'>
2] Instead of same link name, if you keep link names different, then there will not be overriding issue.
e.g. <r1> can have <link name='chassisR1'> and <r2> can have <link name='chassisR2'>
This should apply for each joint and link, such that link and joint names should be unique.
With this way, you can use apply/set command for multiple robots. Let me know, if this issue still exist.
Thanks

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by