How should we represent the thrusters on an AUV?
We're looking to run ROS on an in-house AUV while hopefully bring more support in ROS for AUVs. While we could just use topics to transport thruster information between our device driver and controller using a specialized topics, I'd like to find a better approach. Our nodes consist of a thruster driver, a controller, and a thruster mapper which converts Wrenches to thruster efforts. I'd like for the mapper to be entirely generic, and somehow retrieve the names, positions, orientations, min/max thrust, etc of the thrusters relative to the vehicle's center of mass, then publish a generic thruster effort message that is compatible with thruster drivers besides our own.
It seems like there are a lot of parallels to URDF and joints in a ground vehicle. Could URDF be extended to support thrusters? What would it take to accomplish this, and would it potentially be merged into a future ros release?
It also seems like this could be done in terms of tf static transforms, one for each thrusters. Would this be a better approach instead?