Companion 0.0.28 features in DVL branch

Can vehicles with the Water Linked version of Companion upgrade?

1 Like

As far as I’m aware there isn’t a Water Linked specific version of Companion - all our companion software since 0.0.18 has the Water Linked driver functionality (wldriver service). This update doesn’t remove that support, so I believe it should be fine, but I’ve asked the software team just in case and will get back to you tomorrow once they’ve responded :slight_smile:

1 Like

Will the DVL companion software get updated too?

There are no changes affecting the dvl support for now. We rebased the branch on top of these changes for the bugfixes, but this will only affect new installs.

2 Likes

Can you help me understand where the Water-Linked companion page resides? I’m trying to get my head around how it will still exist after the upgrading Companion to 0.0.28? Is it some type of plug-in that resides along side Companion in the Pi? Or, is it a standard part of 0.0.28 and everyone will see the Water Linked page, even if they don’t have the USBL or DVL?

Companion has a waterlinked page in the web interface that’s part of the standard image, which enables connecting specifically to the Underwater GPS. Companion 0.0.28 fixes an issue that was caused by the default hostname not working correctly.

That same waterlinked page has been modified in our dvl branch to include DVL integration. I had a meeting with the software team today and was told DVL integration/support is still a beta feature (experimental), so it isn’t in any official releases. If that’s what you were asking about then my apologies for missing that - I didn’t know the details of it until the meeting. As per Willian’s comment

Essentially, the bug fixes from this update are now also available in the dvl branch, but the installation process for it is the same as before (can’t use the standard release buttons). I believe you should be able to get the updated version using the dvl install instructions.

I’m unsure if our pre-built image has been updated yet (Option 1), so if you’re wanting to use that instead of git you may need to wait until tomorrow.

Hopefully that clears things up :slight_smile:

Following up on this, the pre-built dvl image has now been updated, and is available at the link in the dvl install instructions :slight_smile:

I got this when i tried to update from 0.0.24 to 0.0.28 the DVL branch in git.

Please be patient and DO NOT REMOVE POWER FROM THE ROV!
adding lock
skipping backup…
stashing local changes
No local changes to save
tagging revert-point as 33651de023931b941d1e36ba3d9a70b5412056e1
Check for local changes to save.
No local changes to save
using branch reference
error: object file .git/objects/19/72e134416bc600e06be1bc899e488d29d5343b is empty
error: object file .git/objects/19/72e134416bc600e06be1bc899e488d29d5343b is empty
fatal: loose object 1972e134416bc600e06be1bc899e488d29d5343b (stored in .git/objects/19/72e134416bc600e06be1bc899e488d29d5343b) is corrupt
fatal: The remote end hung up unexpectedly
moving to 1972e134416bc600e06be1bc899e488d29d5343b
error: object file .git/objects/19/72e134416bc600e06be1bc899e488d29d5343b is empty
error: object file .git/objects/19/72e134416bc600e06be1bc899e488d29d5343b is empty
fatal: loose object 1972e134416bc600e06be1bc899e488d29d5343b (stored in .git/objects/19/72e134416bc600e06be1bc899e488d29d5343b) is corrupt

How can I fix this?

I may be incorrect, but I’d guess that this means you lost internet connection while updating. Does the web interface still work if you restart the companion? If so I’d suggest trying to update again.

If it’s not working at all then I’d suggest you try flashing the latest dvl image from the install instructions, which should already include the updates :slight_smile:

I was hoping not to do that, my internet connection is fine.

I installed the 0.0.24 dvl img on another ROV and updated it to 0.0.28 with no problem. But to day on the main ROV with the same 0.0.24 DVL img was not so easy.

I wasn’t suggesting your wifi itself is dodgy or dropping out - I was thinking the Raspberry Pi might have briefly lost the connection given you have an error saying ā€˜the remote end hung up unexpectedly’.

As far as I’m aware the dvl image hasn’t changed since @williangalvani rebased it to sit on 0.0.28 a few days ago, so I’d expect the process that worked for you a couple of days ago should also work now. I’d recommend you try again if possible, as mentioned.

Unfortunately I don’t have a system that’s on the previous version of the dvl branch so can’t test that update process. For what it’s worth I tried going from my normal system (which was on 0.0.28) to the dvl branch, and that worked without issues. I’ve just downgraded to the normal 0.0.24 release (not dvl), and am updating to the dvl branch again now, which also seems to be working fine. I’ll confirm in ~20 minutes once it’s finished building the updated mavlink.

But it also says it is corrupt? I have cable connection down to the ROV and a stable ping to google. So i think something happen in the pi. I was only wondering if someone have had the same problem. But thanks for the info, Im gonna install the image on Monday.

I also go a ā€œlockā€ symbol on the ā€œorigin (GitHub - bluerobotics/companion: Companion computer startup scripts and examples) :lock:ā€
if that mby have something to say? It says I need to enter a username if i click on it.

Thanks for the fast feedback @EliotBR, much appreciated

Yeah, I’m not sure why that’s the case unfortunately, which is why I was trying to reproduce the problem on my end. The update from normal 0.0.24 to latest dvl also worked fine, so I think something may have just gone unexpectedly wrong in your update process. Definitely a frustrating situation.

The software team is currently working on a major rewrite of companion, which should significantly improve the robustness and ease of use/modification of several components, including the update system. We’re all keen to have fewer companion-related issues in future :slight_smile:

Fair enough, hope that goes well :slight_smile:

I have that too, and it’s been mentioned before. I’m not sure why it’s there, and I got around it by just adding a new remote with the same address (https://github.com/bluerobotics/companion.git), and that seems to work fine. I’ll raise that with the software team though, because it shouldn’t be locked and makes it less intuitive to do the relevant updates.

Out of interest, how were you updating without that origin being available?

No worries :slight_smile:

On this ROV I have not been able to get it updated. But I was able to select the DVL on git origin, but I got the error.

Yesterday I install the 0.0.24 DVL img on a brand new ROV and updated in the git section to 0.0.28 DVL with no problem.

I have the same image on the main ROV so I thought it was easy to update when everything went so well yesterday.

But you should test update from regular companion 0.0.27 or 0.0.26 in git. Than I wasn’t able to get the DVL driver to start after the update to 0.0.28 DVL companion. Same with 0.0.24 DVL companion.

Got this error when I tried to start it manually
pi@rov:~ $ ./companion/services/waterlinked/dvl-a50/main.py
Traceback (most recent call last):
File ā€œ./companion/services/waterlinked/dvl-a50/main.pyā€, line 7, in
from dvl import DvlDriver
File ā€œ/home/pi/companion/services/waterlinked/dvl-a50/dvl.pyā€, line 6, in
from mavlink2resthelper import Mavlink2RestHelper
File ā€œ/home/pi/companion/services/waterlinked/dvl-a50/mavlink2resthelper.pyā€, line 1, in
from companionhelper import request, post
File ā€œ/home/pi/companion/services/waterlinked/dvl-a50/companionhelper.pyā€, line 2, in
import requests
ModuleNotFoundError: No module named ā€˜requests’

Now I have updated i manually and the DVL not working at all…

Im getting these error messages in dvl script

b’Json deserialize error: unknown variant VISION_POSITION_DELTA, expected one of HEARTBEAT, SYS_STATUS, SYSTEM_TIME, PING, CHANGE_OPERATOR_CONTROL, CHANGE_OPERATOR_CONTROL_ACK, AUTH_KEY, LINK_NODE_STATUS, SET_MODE, PARAM_REQUEST_READ, PARAM_REQUEST_LIST, PARAM_VALUE, PARAM_SET, GPS_RAW_INT, GPS_STATUS, SCALED_IMU, RAW_IMU, RAW_PRESSURE, SCALED_PRESSURE, ATTITUDE, ATTITUDE_QUATERNION, LOCAL_POSITION_NED, GLOBAL_POSITION_INT, RC_CHANNELS_SCALED, RC_CHANNELS_RAW, SERVO_OUTPUT_RAW, MISSION_REQUEST_PARTIAL_LIST, MISSION_WRITE_PARTIAL_LIST, MISSION_ITEM, MISSION_REQUEST, MISSION_SET_CURRENT, MISSION_CURRENT, MISSION_REQUEST_LIST, MISSION_COUNT, MISSION_CLEAR_ALL, MISSION_ITEM_REACHED, MISSION_ACK, SET_GPS_GLOBAL_ORIGIN, GPS_GLOBAL_ORIGIN, PARAM_MAP_RC, MISSION_REQUEST_INT, MISSION_CHANGED, SAFETY_SET_ALLOWED_AREA, SAFETY_ALLOWED_AREA, ATTITUDE_QUATERNION_COV, NAV_CONTROLLER_OUTPUT, GLOBAL_POSITION_INT_COV, LOCAL_POSITION_NED_COV, RC_CHANNELS, REQUEST_DATA_STREAM, DATA_STREAM, MANUAL_CONTROL, RC_CHANNELS_OVERRIDE, MISSION_ITEM_INT, VFR_HUD, COMMAND_INT, COMMAND_LONG, COMMAND_ACK, COMMAND_CANCEL, MANUAL_SETPOINT, SET_ATTITUDE_TARGET, ATTITUDE_TARGET, SET_POSITION_TARGET_LOCAL_NED, POSITION_TARGET_LOCAL_NED, SET_POSITION_TARGET_GLOBAL_INT, POSITION_TARGET_GLOBAL_INT, LOCAL_POSITION_NED_SYSTEM_GLOBAL_OFFSET, HIL_STATE, HIL_CONTROLS, HIL_RC_INPUTS_RAW, HIL_ACTUATOR_CONTROLS, OPTICAL_FLOW, GLOBAL_VISION_POSITION_ESTIMATE, VISION_POSITION_ESTIMATE, VISION_SPEED_ESTIMATE, VICON_POSITION_ESTIMATE, HIGHRES_IMU, OPTICAL_FLOW_RAD, HIL_SENSOR, SIM_STATE, RADIO_STATUS, FILE_TRANSFER_PROTOCOL, TIMESYNC, CAMERA_TRIGGER, HIL_GPS, HIL_OPTICAL_FLOW, HIL_STATE_QUATERNION, SCALED_IMU2, LOG_REQUEST_LIST, LOG_ENTRY, LOG_REQUEST_DATA, LOG_DATA, LOG_ERASE, LOG_REQUEST_END, GPS_INJECT_DATA, GPS2_RAW, POWER_STATUS, SERIAL_CONTROL, GPS_RTK, GPS2_RTK, SCALED_IMU3, DATA_TRANSMISSION_HANDSHAKE, ENCAPSULATED_DATA, DISTANCE_SENSOR, TERRAIN_REQUEST, TERRAIN_DATA, TERRAIN_CHECK, TERRAIN_REPORT, SCALED_PRESSURE2, ATT_POS_MOCAP, SET_ACTUATOR_CONTROL_TARGET, ACTUATOR_CONTROL_TARGET, ALTITUDE, RESOURCE_REQUEST, SCALED_PRESSURE3, FOLLOW_TARGET, CONTROL_SYSTEM_STATE, BATTERY_STATUS, AUTOPILOT_VERSION, LANDING_TARGET, FENCE_STATUS, ESTIMATOR_STATUS, WIND_COV, GPS_INPUT, GPS_RTCM_DATA, HIGH_LATENCY, HIGH_LATENCY2, VIBRATION, HOME_POSITION, SET_HOME_POSITION, MESSAGE_INTERVAL, EXTENDED_SYS_STATE, ADSB_VEHICLE, COLLISION, V2_EXTENSION, MEMORY_VECT, DEBUG_VECT, NAMED_VALUE_FLOAT, NAMED_VALUE_INT, STATUSTEXT, DEBUG, SETUP_SIGNING, BUTTON_CHANGE, PLAY_TUNE, CAMERA_INFORMATION, CAMERA_SETTINGS, STORAGE_INFORMATION, CAMERA_CAPTURE_STATUS, CAMERA_IMAGE_CAPTURED, FLIGHT_INFORMATION, MOUNT_ORIENTATION, LOGGING_DATA, LOGGING_DATA_ACKED, LOGGING_ACK, VIDEO_STREAM_INFORMATION, VIDEO_STREAM_STATUS, GIMBAL_MANAGER_INFORMATION, GIMBAL_MANAGER_STATUS, GIMBAL_MANAGER_SET_ATTITUDE, GIMBAL_DEVICE_INFORMATION, GIMBAL_DEVICE_SET_ATTITUDE, GIMBAL_DEVICE_ATTITUDE_STATUS, AUTOPILOT_STATE_FOR_GIMBAL_DEVICE, GIMBAL_MANAGER_SET_TILTPAN, WIFI_CONFIG_AP, PROTOCOL_VERSION, AIS_VESSEL, UAVCAN_NODE_STATUS, UAVCAN_NODE_INFO, PARAM_EXT_REQUEST_READ, PARAM_EXT_REQUEST_LIST, PARAM_EXT_VALUE, PARAM_EXT_SET, PARAM_EXT_ACK, OBSTACLE_DISTANCE, ODOMETRY, TRAJECTORY_REPRESENTATION_WAYPOINTS, TRAJECTORY_REPRESENTATION_BEZIER, CELLULAR_STATUS, ISBD_LINK_STATUS, CELLULAR_CONFIG, RAW_RPM, UTM_GLOBAL_POSITION, DEBUG_FLOAT_ARRAY, ORBIT_EXECUTION_STATUS, SMART_BATTERY_INFO, SMART_BATTERY_STATUS, GENERATOR_STATUS, ACTUATOR_OUTPUT_STATUS, TIME_ESTIMATE_TO_TARGET, TUNNEL, ONBOARD_COMPUTER_STATUS, COMPONENT_INFORMATION, PLAY_TUNE_V2, SUPPORTED_TUNES, WHEEL_DISTANCE, OPEN_DRONE_ID_BASIC_ID, OPEN_DRONE_ID_LOCATION, OPEN_DRONE_ID_AUTHENTICATION, OPEN_DRONE_ID_SELF_ID, OPEN_DRONE_ID_SYSTEM, OPEN_DRONE_ID_OPERATOR_ID, OPEN_DRONE_ID_MESSAGE_PACK at line 9 column 35’
Error in request: http://127.0.0.1:4777/mavlink: HTTP Error 400: Bad Request
b’Json deserialize error: missing field signal_quality at line 31 column 1’

On the /waterlinked site i says ā€œrunningā€ but i cant set it to pos_hold mode…

Do someone have the 0.0.24 DVL img?

I’ve asked the software team to follow up on this error message since I don’t have access to a dvl to test with so can’t replicate it.

The old image is still available at https://s3.amazonaws.com/downloads.bluerobotics.com/Pi/experimental/ardusubdvl0.img.zip

1 Like

Update on this, there’s apparently a compatibility issue between the dvl branch and the mavlink2rest version used by 0.0.28 that fixes the failsafe issue. That will hopefully be sorted out soon - I’ll comment here once the relevant update has been completed and confirmed to work as expected :slight_smile:

1 Like

Confirming this has now been fixed, and the rebased DVL image is now built and confirmed working :slight_smile:

You should be able to update by following the dvl installation instructions, either downloading and flashing the pre-built image, or using git to get the latest code directly.

1 Like

Thanks for the update, im gonna test it later today.

1 Like