0
$\begingroup$

I have been looking to simulate Multi-rotors(mostly quadrotors) in Gazebo. I saw that RotorS framework does it in classic Gazebo (Gazebo 11) and new Gazebo (Ignition-Gazebo) is based on RotorS/CrazyS. I am not sure of the difference in functionality among both of them and It was not clear to me. It would be very helpful if someone can let me know.

My requirement -

  1. Velocity control for multi-rotors ?
  2. Ability to give a trajectory for multi-rotors and following it ?
$\endgroup$
3
  • $\begingroup$ I'm not sure if I'll be the best to answer this, but have you looked through the gazebo documentation already? Like this one: gazebosim.org/api/gazebo/6.7/… $\endgroup$ Commented Apr 10 at 14:52
  • $\begingroup$ @KimberlyMcGuire Yes, I looked into it already. I got a little more understanding of it. Yet, many of the things are unclear to me. One such things in the link is - "Note also that only one MulticopterVelocityControl system is allowed per model." Does this mean that I can have only one multi-rotor ? I have seen people trying many. I did not understand this and many other things in the documentation provided. $\endgroup$
    – vbalaji21
    Commented Apr 10 at 16:31
  • $\begingroup$ I believe the one MulticopterVelocityControl per model makes sense since if you add more controllers then they will start conflicting eachother. Only one body should have a controllable velocity $\endgroup$ Commented Apr 11 at 10:54

1 Answer 1

0
$\begingroup$

Talking about differences between Gazebo Classic and Gazebo (ignition) for aerial vehicles - So Gazebo classic needed a lot of additional plugins and ROS packages that needed to be made in order to Aerial vehicles to be modelled properly. This is I think a main driver of why RotorS was created (CrazyS was just an extension of that project made for the Crazyflie).

With the creation of the new Gazebo (called Ignition a while ago), efforts where made to include those externally made plugins to be part of the standard system classes of Gazebo. These include:

  • MulticopterVelocityControl A velocity controller for linear velocity and yaw rate control of multirotors based on Lee controller (suitable for Twist messages).
  • MulticopterMotorModel To generate thrust based on spinning props on motor.
  • Sensors like IMU, GPS, magnetometer, pressure sensor etc
  • Important physical engines like wind effect and flight dynamics

Of the last two I don't know how much of the RotorS project was included here but perhaps they had an influence.

So for your first requirement, (1) the new Gazebo has support for a velocity control of your aerial vehicle. There is an example called quadcopter.sdf that you should be able to try this out.

For (2), no I don't think this is possible with Gazebo alone. You'll need interface this using ROS(2) packages for that that are able to generate this for the vehicle, like NAV2. Also take a look at this overview of Aerial Autonomy stacks that the aerial robotics ROS community group has made. There are also tutorials made by PX4 and Ardupilot (see this overview of autopilot suites).

All in all, to go back to your first request about the differences between the two Gazebos, if you are not used to working with either of them, choose to focus on the new one as support for Gazebo Classic will stop soon.

Just a disclaimer, I'm neither a maintainer of Gazebo or RotorS/CrazyS so I hope that I didn't say anything that is not correct.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.