ROS Noetic install (from source) chokes on BlueRov2

asked 2023-01-17 15:11:17 -0500

Hugh-B-Rove gravatar image

ROS newbie here

I have installed ROS Noetic desktop-full following directions at http://wiki.ros.org/noetic/Installati...

(This is actually a re-installation; on my first try I did not realize ROS desktop-full includes Gazebo, and installed Gazebo before ROS. After finding the above Wiki page, I realized my mistake and removed it all, including environment variables.)

Things seemed to go without problems, so I tested the gazebo freebouyancy plugin by running gazebo --verbose worlds/freebuoyancy.world -u and it worked. Then I tried testing the BlueRov2 model with Gazebo stand-alone gazebo --verbose worlds/underwater.world -u within a previously installed bluerov_ros_playground. That behaved as I expected, similar to the freebuoyancy demo.

However when I tried to run with ArduSub and QGroundControl, things looked okay until I clicked "play" on Gazebo, and then it started spewing endless errors and warnings:

{Err} [Joint.cc:941] Calling Joint::SetForcewith an index [0] out of range

[Err] [ODEJoint.cc:1153] Something's wrong, joint [BlueRov2::thruster6_joint] index [0] out of range

[Wrn] [ODEFixedJoint.cc:110] ODEFixedJoint: called method SetForceImpl that is not valid for joints of type fixed.

cycling through thrusters 1 to 6 forever.

This was what I saw with the former binary installation, and why I went to install from source, to see if I could glean anything from looking at Joint.cc. But I cannot find any mention of source files with these names.

I also mention that I was able to connect and start flying in QGroundControl, but the controls had no effect, I could not maneuver the vehicle in any way.

BTW I have no requirement to model bluerov2, any underwater vehicle with thrusters would do as a starting point.

Any help would be greatly appreciated.

edit retag flag offensive close merge delete

Comments

Based on reading the source code, I suspected that the errors were triggered by the joints defined in the Ardupilot plugin section of the BlueRov2.sdf model file. I removed the <jointname> declaration in all 6 control channels, leaving only the <linkname>.for each. This eliminated the errors and warning messages from Gazebo, but at start-up it reports two new errors:

[Err] [ArduPilotPlugin.cc:488] [BlueRov2] Please specify a jointName, where the control channel is attached.

[Err] [ArduPilotPlugin.cc:497] [BlueRov2] Couldn't find specified joint []. This plugin will not run.

It appears that Gazebo won't work with the jointNames, and ArdupilotPlugin won't work without them.

In addition, I checked another Ubuntu laptop on which a colleague had installed Gazebo 9 (with ArduSub and QGroundControl, but not by way of ros-desktop-full); in that environment,everything plays together, and the BlueRov2.sdf file does not declare jointNames in the ...(more)

Hugh-B-Rove gravatar image Hugh-B-Rove  ( 2023-01-19 14:30:46 -0500 )edit
  1. A colleague suggested editing the thrusters via the Gazebo model editor. She noticed in another model that “thruster” is the propeller, with joint type "revolute"..
  2. I changed this and added jointName 6x in the plugin. The model editor creates an .sdf file that points to another .sdf file with the info. I got rid of the middleman, and restored the BlueRov2 model name to the .sdf file name, the model name inside the .sdf file, and the model name in the model.config file.
  3. Gazebo startup then complains about thruster1 mass 0. I corrected the mass of thruster1 to be the same as the other thrusters, 1.e-10. (It was 0, I suspect file corruption, probably by yours truly.)
  4. Gazebo next complains it can’t find the model.config file in the model/meshes folder. Our is not to reason why... so I did what it seemed to ask for ...
(more)
Hugh-B-Rove gravatar image Hugh-B-Rove  ( 2023-01-23 16:55:22 -0500 )edit

We have decided that at present Gazebo 11 does not support BlueRov2 and are stepping back to ROS Melodic with Gazebo 9. This decision was reinforced when we discovered that the uuv_simulator plugin which provides the Fossen equations is only available in ROS Kinetic, Lunar, or Melodic. Our understanding is that this plugin is essential for simulating added mass effects. (As mentioned above, we are not married to BlueRov2, as we aim to simulate a slender ROV, but we certainly need to take added mass into account.)

If anyone has reason to believe we have misjudged this, please let us know.

Hugh-B-Rove gravatar image Hugh-B-Rove  ( 2023-02-08 12:11:22 -0500 )edit