I am trying to implement a functioning SLAM system for an autonomous surface vessel (ASV). I don't have any direct experience with SLAM, and I am therefore researching the topic before I try to implement anything.

I am trying to figure out, if a maritime environment will make this job much harder than if our vessel was in a more static environment.

From my readings, I am getting the impression that you need to have a fair estimate of your location over time, given your inputs. Usually SLAM techniques are described for robots that don't move, if you don't tell it to, and this puts a strong constraint on the possible error between estimated location and actual location.

For ASV's the position moves constantly, depending on waves and currents, both in xyz and in pitch, yaw and roll directions. Will this be a problem for standard SLAM techniques? If I have an IMU, can I potentially correct for these disturbances?

For reference, the ASV I'm working with has a GPS and an IMU, and a lidar and cameras for landmark detection.


One of the central elements of SLAM is the map itself, build from sensor readings. There is a wide range of sensors which can be used, but they all have in common a capability of building a map (2D or 3D). In the case of an ASV, in a generic maritime environment, I doubt that there are features in the surrounding environment which can be picked up by a lidar/cameras and used to create a map. As the map element is unlikely, I would say that SLAM does not make sense.

I am not familiar with sonar and the resolution/performance of sonars. It might be possible to use the ocean floor as a map and then SLAM would make sense (similar to upward facing cameras for robots in environments with ceilings.

Also, if you are near a coastline, which can be detected by sensors, than again, slam does make sense.

  • $\begingroup$ Thanks a lot. Just to be clear I understand what you're suggesting: what would make SLAM difficult in a generic maritime environment is the lack of landmarks and not that the ASV experiences a passive drift due to currents or wave. Is that correct? $\endgroup$ – Simon Bugge Siggaard Jan 29 '20 at 12:38
  • $\begingroup$ Features or Landmarks could correct that drift. That is why SLAM is helpful for mobile robots. There is a drift also there, maybe not as large as for ASVs. SLAM corrects that drift for AGVs. If there was not drift form mobile robots dead reckoning or optical flow IMU would be enough. The need for SLAM comes from the drift. $\endgroup$ – 50k4 Jan 29 '20 at 12:41
  • $\begingroup$ In my understanding, when AGVs drift, it's because the model used for the AGV is imprecise, and the error in estimated location accrues over time due to that fact. Would the drift experienced by an ASV be similar to that phenomenon, and would that mean that feature/landmark detection can correct that drift, if we just explictly model the waves and current? $\endgroup$ – Simon Bugge Siggaard Jan 29 '20 at 12:49
  • $\begingroup$ AGVs can drift because they quite literally drift, as in move in unindented directions or unintended lengths in the intended direction. If the friction on the ground is for some reason compromised (e.g. oil spot) that will cause a drift due to an external factor not necessarily model inaccuracy. SLAM corrects this by estimating the position on map and not just integrating the encoder signals from the wheels. You can add complex models to a SLAM algorithm, but you do not have too. $\endgroup$ – 50k4 Jan 29 '20 at 12:53

Not sure about all the way to SLAM but I know companies like Sonardyne or Teledyne implement inertial navigation systems for their autonomous underwater robots.

Given underwater using GNSS as an aiding sensor is obviously not necessarily possible so instead they use sonar pointed at the ocean floor instead. For this to be possible they obviously need a map of some kind.

I'm not sure if what they do extends all the way to SLAM or just stops at localization.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.