I was wondering if there is any way of implementing an ardusub simulation (software in the loop)? I’m working on a custom configuration/application ROV with the hope of having some autonomous functionality down the track - a software simulation for testing the control system would be really useful!
It is possible, no one has done it yet for ArduSub that I know of. I would start by looking at the ArduCopter and ArduPlane implementations, and from there look at what needs to be done for ArduSub.
Thanks for the reply and info Jacob! I’ll definitely jump on the gitter when/if I end up having a go at it. Just wanted to see if anyone out there was thinking about or working on it yet.
Hey did you figure out how to simulate a rover? I plan on doing the same thing with a custom rover and It would be great if I could simulate it before I try any autonomous programs on a rover.
Hi @jwalser ,
Is the ROV simulation now running? Is there some documentation somewhere saying what it can do yet and how it is going? I am trying to simulate an ROV in Gazebo, probably with ArduSub.
Thank you for the info!
You can check this simple documentation, is something very new, but it works.
If you need more information about the SITL, you can check this or here to see more information about the gazebo sitl.
Why did you use the freebuoyancy plugin instead the default plugin that comes from gazebo? The plugin’s git repo gave me little information about it’s advantages.
The freebuoyancy is based over freefloating_gazebo, the actual buoyancy have some limitations that freefloating solves, like: damping, force based on distance to surface, different surface plane… You can check some parts here. The results of freefloating seems pretty realistic.
Hi @patrickelectric,
freebuoyancy is not working for me when I tried the example with the sphere and also the bluerov2 model. I downloaded it from your repo. made a build folder in it. Used cmake… and them sudo make install. I see the .so file in gazebo plugins folder. Am I missing something.
@patrickelectric The sitl is not working for me. I was able to run the quadcopter sitl along with gazebo using the add_link ardupilot plugin from BR repo. But when I run Ardusub sitl it gets stuck at this.
Telemetry log: mav.tlog
MAV> Waiting for heartbeat from tcp:127.0.0.1:5760
And this happens only when I use the gazebo-bluerov2 frame. The default frame works fine though well without the gazebo part.
[Err] [InsertModelWidget.cc:302] Missing model.config for model "/home/mlbots/model_editor_models/model"
[Err] [InsertModelWidget.cc:302] Missing model.config for model "/home/mlbots/model_editor_models/worlds"
[Err] [ArduPilotPlugin.cc:538] [BlueRov2] Please specify a jointName, where the control channel is attached.
[Err] [ArduPilotPlugin.cc:547] [BlueRov2] Couldn't find specified joint []. This plugin will not run.
cd bluerov_ros_playground
source gazebo.sh
source ~/.bashrc
gazebo --verbose worlds/underwater.world -u
got the following error
[Err] [ArduPilotPlugin.cc:538] [BlueRov2] Please specify a jointName, where the control channel is attached.
[Err] [ArduPilotPlugin.cc:547] [BlueRov2] Couldn't find specified joint []. This plugin will not run.
That was the issue. Its working now. I have one last question though. In order to get the sitl working with a custom frame will it be enough to update the Frame_Vectored.h file in ardupilot/libraries/SITL ?
Sorry about this, I’ll update the documentation to make it more explicit.
If you want to contribute with ArduSub and our new SITL environment, the best choice is to create a new file with your frame in this same repository, we’ll be happy to have more options to simulate ArduSub in SITL. I and @jwalser can continue this in personal message to help with this approach.