About Bluerov2_node


I hope I’m not bothering you. I am doing my Master Thesis that is simulation and validation of an underwater system localization, probably a autonomous system in the end. So, i intend use the BlueRov2 and his ROS packages. But seems to me that some things are not implemented yet, like as lights brightness control, right? Depending on my time to do every thing of my thesis, i can contribute, so if you give me some feedback of what was not yet implemented on ROS, i will appreciate.

Best Regards,

Federico Vaz

Yes, the package is in WIP, the idea is to provide a complete access of the system using ROS.

Right now, the only thing that I can remember is:

Let me know if you need any help with the project and contributions.

Ok, good! Why you create a new “package” and din’t “continued” with MAVROS? There are some disadvantages of MAVROS that i don’t know? :thinking:

Ok, but if i understand, RC_CHANNELS_OVERRIDE message only overrides input channels 1-8. So, to overrides above input channels 8 (9-11) it’s necessary change the MAVlink, right?

MAVROS is a generic tool to control any vehicle that uses mavlink. The disadvantages is the overhead of the package, we want to create a simple ROS application to control the ROV with the ROS abstraction layer.

No, they use mavlink messages to provide this others channels, if I’m not mistaken is with manual_control, and channels > 9 is an abstraction with buttons. You can check the code here.

Ok, I understand. I will see better the two options.

It’s seems like as you said. I will organize my thoughts and decide what i will do in my project. I will keep in touch, thanks for your help! :wink:

Hi @patrickelectric,

One quickly question: the topic setpoint_velocity/cmd_vel it’s working for you? There are some pre-requesites to send a cmd_vel?

I did before:
rosrun mavros mavsys mode -c GUIDED

But the result is a timeout. I tested with your BlueROV2 node mavros and not working with real robot.

EDIT: If i run with SITL mode works! But not with a real robot/pixhawk → mavproxy → ROS PC
source: Simulating Manual Control using Mavros - #2 by patrickelectric

Best Regards,

Federico Vaz

Take a look in the mavlink messages, they need to have lat and lon values, check your gps connection and look for GPS_FIX_TYPE > 1. If you solve this, probably you’ll be able to set the guided mode.

You are not able to set speed reference without a position system, the software derivate the position to use it as a velocity reference for the control loop.
Take a look here to check the modes that you can use. Besides that, you can send RC commands using the manual or stabilize mode, but if you want to have velocity or position control you’ll need to create a velocity/position control loop.

The problem is that i don’t have a GPS system, yet, on Robot. My idea is just for testing. It’s possible use the IMU like as the reference of a system position? How can i create the velocity/position control loop?

I tried rosservice call /mavros/cmd/set_home and set

"current_gps: false
latitude: 0.0
longitude: 0.0
altitude: 0.0"

but success: False

Btw, i saw this and for Copter it’s possible use:

rosrun mavros mavsys mode -c GUIDED_NOGPS

In ArduSub didn’t work, so i think wasn’t implemented yet right?

I found the HIL Controls, so, I tried this:

rostopic pub /mavros/hil/gps mavros_msgs/HilGPS "header: auto
fix_type: 2
geo: {latitude: 0.0, longitude: 0.0, altitude: 0.0}
eph: 0                                             
epv: 0                                             
vel: 0                                             
vn: 0
ve: 0
vd: 0
cog: 0
satellites_visible: 0" -1

But without sucess :joy:

You’ll need to create something like NOGPS in ardusub or in ROS, and it’s very hard to accomplish it without errors. Take a look here about position information from inertial systems.

About HIL, I never did any test with it to send velocity commands, but probably will not work without a real position system, you can try to create your own and use HIL or pymavlink to set the GPS fix.

Ok, thanks a lot, i will do more research about that.

With your underwater GPS system works, right? But, if my memory don’t fail, you send the GPS information to ROV with other Tether cable to connect Pixhawk, yes?

Yes, It’ll work with waterlinked system.

Correct, that’s how it works :slight_smile:

So, sending a GPS message (MAVLINK) to ROV by the Tether cable that we able communicate/sending controls allowing to have just one cable, i guess that is a good functionality for the future! :stuck_out_tongue: