First of all, I guess that the major difference between the BlueROV1 and 2 in terms of control is the autopilot board, right?
The BlueROV1 was sold as a developer kit, it was just the ROV frame and thrusters, the electronics and software were all up to the user.
For use with QGroundControl, we flashed the Pixhawk controller with the PX4 stack. I’m beginning to think that perhaps to use the ROS control package, I might need to reflash the controller with the APM package. I’m really a beginner in this, so I don’t fully understand the relation between the ArduSub and the controller stacks
There are two mainstream flight stacks used on the Pixhawk: These are PX4 and APM. The difference is that they are two separate pieces of software, both designed to accomplish the same (in general) thing. It’s kind of like the difference between Internet Explorer and Firefox, they’re two different applications that do the same thing, and both will run on Windows Operating Systems.
Both PX4 and APM support different vehicle types and frames, but only APM has support for ROVs. This is ArduSub, aka APM: Sub. In the APM flight stack, using different vehicles requires you to load different firmware files on the Pixhawk. You will need to flash the Pixhawk with the ArduSub-specific APM firmware file found here (BlueROV2 frame firmware, firmware files are sometimes further separated according to the different supported frames for a specific vehicle).
Otherwise, could you please confirm what is the correct procedure for launching control with the ROS package? Apart of launching the *.launch files that I listed in my first post, what are the operations that I have to carry out in order to get control of the ROV? Is there any other command that I have to issue by hand or push buttons or call services? I would be obliged if you point me in the right direction, as I haven’t found the right info yet.
I think that the .launch files do not need to be launched in any particular order. It should work once everything has been launched, but ArduSub has been incompatible with the bluerobotics ROS package for some time.
As I mentioned, it has been a long time since I have used ROS, and the ArduSub firmware has undergone a LOT of changes since we have maintained the ROS packages. Features like the joystick button actions, camera tilt, and lights were not even in ArduSub at the time. The ROS package at the time was provided as a bare-bones example of the api, with the expectation that people interested in using ROS would be able to develop on top of this. We have moved away from the use of ROS, as it was overly complex for the majority of our customers. We do not have the resources to maintain the ROS packages at this moment, but I would be happy to review any pull requests you might want to make after working with the packages.