Browse Source

Rover land detection (#13769)

* Land Enabled

* Declared Subscriptor in header as originally intended.

In the header it caused SIGSEGV in my machine so that's why it was moved
to .cpp

* Code Style fixed

* Removed confusing comments

* Comment update

Co-authored-by: Julian Oes <julian@oes.ch>
sbg
ealdaz-seesai 5 years ago committed by GitHub
parent
commit
efa0e1bf0f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 11
      src/modules/land_detector/RoverLandDetector.cpp
  2. 5
      src/modules/land_detector/RoverLandDetector.h

11
src/modules/land_detector/RoverLandDetector.cpp

@ -44,6 +44,7 @@ @@ -44,6 +44,7 @@
namespace land_detector
{
bool RoverLandDetector::_get_ground_contact_state()
{
return true;
@ -51,7 +52,15 @@ bool RoverLandDetector::_get_ground_contact_state() @@ -51,7 +52,15 @@ bool RoverLandDetector::_get_ground_contact_state()
bool RoverLandDetector::_get_landed_state()
{
return !_actuator_armed.armed;
_vehicle_status_sub.update(&_vehicle_status);
if (_vehicle_status.nav_state == vehicle_status_s::NAVIGATION_STATE_AUTO_LAND) {
return true; // If Landing has been requested then say we have landed.
} else {
return !_actuator_armed.armed; // If we are armed we are not landed.
}
}
} // namespace land_detector

5
src/modules/land_detector/RoverLandDetector.h

@ -42,6 +42,7 @@ @@ -42,6 +42,7 @@
#pragma once
#include "LandDetector.h"
#include <uORB/topics/vehicle_status.h>
namespace land_detector
{
@ -56,7 +57,11 @@ protected: @@ -56,7 +57,11 @@ protected:
bool _get_ground_contact_state() override;
bool _get_landed_state() override;
private:
// Program crashes when Subscriptor declared here
uORB::Subscription _vehicle_status_sub{ORB_ID(vehicle_status)};
vehicle_status_s _vehicle_status{}; /**< vehicle status */
};

Loading…
Cancel
Save