Skip to content

Commit 790d03b

Browse files
committed
Initial Corridor Scan support
1 parent 8bf441a commit 790d03b

32 files changed

+2393
-16
lines changed

UnitTest.qrc

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,10 @@
99
<file alias="MavCmdInfoVTOL.json">src/MissionManager/UnitTest/MavCmdInfoVTOL.json</file>
1010
<file alias="MissionPlanner.waypoints">src/MissionManager/UnitTest/MissionPlanner.waypoints</file>
1111
<file alias="OldFileFormat.mission">src/MissionManager/UnitTest/OldFileFormat.mission</file>
12-
<file alias="GoodPolygon.kml">src/MissionManager/UnitTest/GoodPolygon.kml</file>
13-
<file alias="MissingPolygonNode.kml">src/MissionManager/UnitTest/MissingPolygonNode.kml</file>
14-
<file alias="BadXml.kml">src/MissionManager/UnitTest/BadXml.kml</file>
15-
<file alias="BadCoordinatesNode.kml">src/MissionManager/UnitTest/BadCoordinatesNode.kml</file>
12+
<file alias="PolygonAreaTest.kml">src/MissionManager/UnitTest/PolygonAreaTest.kml</file>
13+
<file alias="PolygonGood.kml">src/MissionManager/UnitTest/PolygonGood.kml</file>
14+
<file alias="PolygonMissingNode.kml">src/MissionManager/UnitTest/PolygonMissingNode.kml</file>
15+
<file alias="PolygonBadXml.kml">src/MissionManager/UnitTest/PolygonBadXml.kml</file>
16+
<file alias="PolygonBadCoordinatesNode.kml">src/MissionManager/UnitTest/PolygonBadCoordinatesNode.kml</file>
1617
</qresource>
1718
</RCC>

qgroundcontrol.pro

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -415,6 +415,7 @@ DebugBuild { PX4FirmwarePlugin { PX4FirmwarePluginFactory { APMFirmwarePlugin {
415415
src/FactSystem/FactSystemTestPX4.h \
416416
src/FactSystem/ParameterManagerTest.h \
417417
src/MissionManager/CameraSectionTest.h \
418+
src/MissionManager/CorridorScanComplexItemTest.h \
418419
src/MissionManager/MissionCommandTreeTest.h \
419420
src/MissionManager/MissionControllerManagerTest.h \
420421
src/MissionManager/MissionControllerTest.h \
@@ -423,6 +424,7 @@ DebugBuild { PX4FirmwarePlugin { PX4FirmwarePluginFactory { APMFirmwarePlugin {
423424
src/MissionManager/MissionSettingsTest.h \
424425
src/MissionManager/PlanMasterControllerTest.h \
425426
src/MissionManager/QGCMapPolygonTest.h \
427+
src/MissionManager/QGCMapPolylineTest.h \
426428
src/MissionManager/SectionTest.h \
427429
src/MissionManager/SimpleMissionItemTest.h \
428430
src/MissionManager/SpeedSectionTest.h \
@@ -452,6 +454,7 @@ DebugBuild { PX4FirmwarePlugin { PX4FirmwarePluginFactory { APMFirmwarePlugin {
452454
src/FactSystem/FactSystemTestPX4.cc \
453455
src/FactSystem/ParameterManagerTest.cc \
454456
src/MissionManager/CameraSectionTest.cc \
457+
src/MissionManager/CorridorScanComplexItemTest.cc \
455458
src/MissionManager/MissionCommandTreeTest.cc \
456459
src/MissionManager/MissionControllerManagerTest.cc \
457460
src/MissionManager/MissionControllerTest.cc \
@@ -460,6 +463,7 @@ DebugBuild { PX4FirmwarePlugin { PX4FirmwarePluginFactory { APMFirmwarePlugin {
460463
src/MissionManager/MissionSettingsTest.cc \
461464
src/MissionManager/PlanMasterControllerTest.cc \
462465
src/MissionManager/QGCMapPolygonTest.cc \
466+
src/MissionManager/QGCMapPolylineTest.cc \
463467
src/MissionManager/SectionTest.cc \
464468
src/MissionManager/SimpleMissionItemTest.cc \
465469
src/MissionManager/SpeedSectionTest.cc \
@@ -508,6 +512,7 @@ HEADERS += \
508512
src/MissionManager/CameraSection.h \
509513
src/MissionManager/CameraSpec.h \
510514
src/MissionManager/ComplexMissionItem.h \
515+
src/MissionManager/CorridorScanComplexItem.h \
511516
src/MissionManager/FixedWingLandingComplexItem.h \
512517
src/MissionManager/GeoFenceController.h \
513518
src/MissionManager/GeoFenceManager.h \
@@ -526,6 +531,7 @@ HEADERS += \
526531
src/MissionManager/QGCFencePolygon.h \
527532
src/MissionManager/QGCMapCircle.h \
528533
src/MissionManager/QGCMapPolygon.h \
534+
src/MissionManager/QGCMapPolyline.h \
529535
src/MissionManager/RallyPoint.h \
530536
src/MissionManager/RallyPointController.h \
531537
src/MissionManager/RallyPointManager.h \
@@ -700,6 +706,7 @@ SOURCES += \
700706
src/MissionManager/CameraSection.cc \
701707
src/MissionManager/CameraSpec.cc \
702708
src/MissionManager/ComplexMissionItem.cc \
709+
src/MissionManager/CorridorScanComplexItem.cc \
703710
src/MissionManager/FixedWingLandingComplexItem.cc \
704711
src/MissionManager/GeoFenceController.cc \
705712
src/MissionManager/GeoFenceManager.cc \
@@ -718,6 +725,7 @@ SOURCES += \
718725
src/MissionManager/QGCFencePolygon.cc \
719726
src/MissionManager/QGCMapCircle.cc \
720727
src/MissionManager/QGCMapPolygon.cc \
728+
src/MissionManager/QGCMapPolyline.cc \
721729
src/MissionManager/RallyPoint.cc \
722730
src/MissionManager/RallyPointController.cc \
723731
src/MissionManager/RallyPointManager.cc \

qgroundcontrol.qrc

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
<file alias="AnalyzeView.qml">src/AnalyzeView/AnalyzeView.qml</file>
1919
<file alias="AppSettings.qml">src/ui/AppSettings.qml</file>
2020
<file alias="BluetoothSettings.qml">src/ui/preferences/BluetoothSettings.qml</file>
21+
<file alias="CorridorScanEditor.qml">src/PlanView/CorridorScanEditor.qml</file>
2122
<file alias="CustomCommandWidget.qml">src/ViewWidgets/CustomCommandWidget.qml</file>
2223
<file alias="DebugWindow.qml">src/ui/preferences/DebugWindow.qml</file>
2324
<file alias="ESP8266Component.qml">src/AutoPilotPlugins/Common/ESP8266Component.qml</file>
@@ -48,6 +49,7 @@
4849
<file alias="QGroundControl/Controls/CameraCalc.qml">src/PlanView/CameraCalc.qml</file>
4950
<file alias="QGroundControl/Controls/CameraSection.qml">src/PlanView/CameraSection.qml</file>
5051
<file alias="QGroundControl/Controls/ClickableColor.qml">src/QmlControls/ClickableColor.qml</file>
52+
<file alias="QGroundControl/Controls/CorridorScanMapVisual.qml">src/PlanView/CorridorScanMapVisual.qml</file>
5153
<file alias="QGroundControl/Controls/DropButton.qml">src/QmlControls/DropButton.qml</file>
5254
<file alias="QGroundControl/Controls/EditPositionDialog.qml">src/QmlControls/EditPositionDialog.qml</file>
5355
<file alias="QGroundControl/Controls/ExclusiveGroupItem.qml">src/QmlControls/ExclusiveGroupItem.qml</file>
@@ -89,6 +91,7 @@
8991
<file alias="QGroundControl/Controls/QGCMapLabel.qml">src/QmlControls/QGCMapLabel.qml</file>
9092
<file alias="QGroundControl/Controls/QGCMapCircleVisuals.qml">src/MissionManager/QGCMapCircleVisuals.qml</file>
9193
<file alias="QGroundControl/Controls/QGCMapPolygonVisuals.qml">src/MissionManager/QGCMapPolygonVisuals.qml</file>
94+
<file alias="QGroundControl/Controls/QGCMapPolylineVisuals.qml">src/MissionManager/QGCMapPolylineVisuals.qml</file>
9295
<file alias="QGroundControl/Controls/QGCMouseArea.qml">src/QmlControls/QGCMouseArea.qml</file>
9396
<file alias="QGroundControl/Controls/QGCMovableItem.qml">src/QmlControls/QGCMovableItem.qml</file>
9497
<file alias="QGroundControl/Controls/QGCPipable.qml">src/QmlControls/QGCPipable.qml</file>
@@ -202,6 +205,7 @@
202205
<file alias="QGCMapCircle.Facts.json">src/MissionManager/QGCMapCircle.Facts.json</file>
203206
<file alias="RTK.SettingsGroup.json">src/Settings/RTK.SettingsGroup.json</file>
204207
<file alias="Survey.SettingsGroup.json">src/MissionManager/Survey.SettingsGroup.json</file>
208+
<file alias="CorridorScan.SettingsGroup.json">src/MissionManager/CorridorScan.SettingsGroup.json</file>
205209
<file alias="StructureScan.SettingsGroup.json">src/MissionManager/StructureScan.SettingsGroup.json</file>
206210
<file alias="Units.SettingsGroup.json">src/Settings/Units.SettingsGroup.json</file>
207211
<file alias="Video.SettingsGroup.json">src/Settings/Video.SettingsGroup.json</file>

src/MissionManager/CameraCalc.h

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,14 @@ class CameraCalc : public CameraSpec
4949
Fact* adjustedFootprintSide (void) { return &_adjustedFootprintSideFact; }
5050
Fact* adjustedFootprintFrontal (void) { return &_adjustedFootprintFrontalFact; }
5151

52+
const Fact* valueSetIsDistance (void) const { return &_valueSetIsDistanceFact; }
53+
const Fact* distanceToSurface (void) const { return &_distanceToSurfaceFact; }
54+
const Fact* imageDensity (void) const { return &_imageDensityFact; }
55+
const Fact* frontalOverlap (void) const { return &_frontalOverlapFact; }
56+
const Fact* sideOverlap (void) const { return &_sideOverlapFact; }
57+
const Fact* adjustedFootprintSide (void) const { return &_adjustedFootprintSideFact; }
58+
const Fact* adjustedFootprintFrontal (void) const { return &_adjustedFootprintFrontalFact; }
59+
5260
bool isManualCamera (void) { return cameraName() == manualCameraName(); }
5361
double imageFootprintSide (void) const { return _imageFootprintSide; }
5462
double imageFootprintFrontal (void) const { return _imageFootprintFrontal; }

src/MissionManager/ComplexMissionItem.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -47,9 +47,9 @@ class ComplexMissionItem : public VisualMissionItem
4747
static const char* jsonComplexItemTypeKey;
4848

4949
signals:
50-
void complexDistanceChanged (double complexDistance);
50+
void complexDistanceChanged (void);
5151
void greatestDistanceToChanged (void);
52-
void additionalTimeDelayChanged (double additionalTimeDelay);
52+
void additionalTimeDelayChanged (void);
5353
};
5454

5555
#endif
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
[
2+
{
3+
"name": "Altitude",
4+
"shortDescription": "Altitude for the bottom layer of the structure scan.",
5+
"type": "double",
6+
"units": "m",
7+
"decimalPlaces": 1,
8+
"defaultValue": 50
9+
},
10+
{
11+
"name": "CorridorWidth",
12+
"shortDescription": "Corridor width. Specify 0 width for a single pass scan.",
13+
"type": "double",
14+
"units": "m",
15+
"min": 0,
16+
"decimalPlaces": 1,
17+
"defaultValue": 50
18+
},
19+
{
20+
"name": "Trigger distance",
21+
"shortDescription": "Distance between each triggering of the camera. 0 specifies not camera trigger.",
22+
"type": "double",
23+
"decimalPlaces": 2,
24+
"min": 0,
25+
"units": "m",
26+
"defaultValue": 25
27+
},
28+
{
29+
"name": "GridSpacing",
30+
"shortDescription": "Amount of spacing in between parallel grid lines.",
31+
"type": "double",
32+
"decimalPlaces": 2,
33+
"min": 0.1,
34+
"units": "m",
35+
"defaultValue": 30
36+
},
37+
{
38+
"name": "TurnaroundDist",
39+
"shortDescription": "Amount of additional distance to add outside the grid area for vehicle turnaround.",
40+
"type": "double",
41+
"decimalPlaces": 2,
42+
"min": 0,
43+
"units": "m",
44+
"defaultValue": 30
45+
}
46+
]

0 commit comments

Comments
 (0)