Issue exporting Onboard Waypoints mission to KMZ. No gimbal pitch settings.

Mark Pinnuck

Steps to Reproduce:

  1. Create a Virtual Stick waypoints mission with POIs
  2. Convert it to a DJI Waypoints mission
  3. Export to KMZ → gimbal pitch settings are present

vs.

  1. Click "Create an Onboard Waypoints Mission"
  2. Export to KMZ → gimbal pitch settings are absent

Expected behaviour: Both export paths should include gimbal pitch settings in the waypoints.

Actual behaviour: The Onboard Waypoints export omits gimbal pitch settings.


  1. "Is this by design?" — good question to include, but frame it as: "Is this intentional, or a bug?" so it's unambiguous.
  2. KMZ files copies below — Note the first wpml has gimbal pitch settings that are not in the second wpml
            <!-- Gimbal Pitch -->
            <wpml:actionGroup>
              <wpml:actionGroupId>6</wpml:actionGroupId>
              <wpml:actionGroupStartIndex>4</wpml:actionGroupStartIndex>
              <wpml:actionGroupEndIndex>5</wpml:actionGroupEndIndex>
              <wpml:actionGroupMode>parallel</wpml:actionGroupMode>
              <wpml:actionTrigger>
                <wpml:actionTriggerType>betweenAdjacentPoints</wpml:actionTriggerType>
              </wpml:actionTrigger>
              <wpml:action>
                <wpml:actionId>0</wpml:actionId>
                <wpml:actionActuatorFunc>gimbalEvenlyRotate</wpml:actionActuatorFunc>
                <wpml:actionActuatorFuncParam>
                  <wpml:payloadPositionIndex>0</wpml:payloadPositionIndex>
                  <wpml:gimbalPitchRotateAngle>-15</wpml:gimbalPitchRotateAngle>
                </wpml:actionActuatorFuncParam>
              </wpml:action>
            </wpml:actionGroup>
            <!-- Gimbal Pitch -->
            <wpml:actionGroup>
              <wpml:actionGroupId>6</wpml:actionGroupId>
              <wpml:actionGroupStartIndex>4</wpml:actionGroupStartIndex>
              <wpml:actionGroupEndIndex>5</wpml:actionGroupEndIndex>
              <wpml:actionGroupMode>parallel</wpml:actionGroupMode>
              <wpml:actionTrigger>
                <wpml:actionTriggerType>betweenAdjacentPoints</wpml:actionTriggerType>
              </wpml:actionTrigger>
              <wpml:action>
                <wpml:actionId>0</wpml:actionId>
                <wpml:actionActuatorFunc>gimbalEvenlyRotate</wpml:actionActuatorFunc>
                <wpml:actionActuatorFuncParam>
                  <wpml:payloadPositionIndex>0</wpml:payloadPositionIndex>
                  <wpml:gimbalPitchRotateAngle>-15</wpml:gimbalPitchRotateAngle>
                </wpml:actionActuatorFuncParam>
              </wpml:action>
            </wpml:actionGroup>

 

converter_and_exported_from_vs_waylines.wpml

<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2" xmlns:wpml="http://www.dji.com/wpmz/1.0.6">
  <Document>
    <!-- Mission Configuration -->
    <wpml:missionConfig>
      <wpml:flyToWaylineMode>safely</wpml:flyToWaylineMode>
      <wpml:finishAction>goHome</wpml:finishAction>
      <wpml:exitOnRCLost>executeLostAction</wpml:exitOnRCLost>
      <wpml:executeRCLostAction>goBack</wpml:executeRCLostAction>
      <wpml:globalTransitionalSpeed>4.4704</wpml:globalTransitionalSpeed>
      <wpml:droneInfo>
        <!-- Drone Model -->
        <wpml:droneEnumValue>68</wpml:droneEnumValue>
        <wpml:droneSubEnumValue>0</wpml:droneSubEnumValue>
      </wpml:droneInfo>
    </wpml:missionConfig>
    <!-- Waypoint Template -->
    <Folder>
      <wpml:templateId>0</wpml:templateId>
      <wpml:executeHeightMode>relativeToStartPoint</wpml:executeHeightMode>
      <wpml:waylineId>0</wpml:waylineId>
      <wpml:distance>0</wpml:distance>
      <wpml:duration>0</wpml:duration>
      <wpml:autoFlightSpeed>4.4704</wpml:autoFlightSpeed>
      <Placemark>
        <Point>
          <coordinates>151.08917516971127,-33.71324568132842</coordinates>
        </Point>
        <wpml:index>0</wpml:index>
        <wpml:executeHeight>30.47999999666748</wpml:executeHeight>
        <wpml:waypointSpeed>2.1834135060893916</wpml:waypointSpeed>
        <wpml:waypointHeadingParam>
          <wpml:waypointHeadingMode>smoothTransition</wpml:waypointHeadingMode>
          <wpml:waypointHeadingAngle>106.37548717363957</wpml:waypointHeadingAngle>
          <wpml:waypointHeadingPathMode>followBadArc</wpml:waypointHeadingPathMode>
        </wpml:waypointHeadingParam>
        <wpml:waypointTurnParam>
          <wpml:waypointTurnMode>toPointAndPassWithContinuityCurvature</wpml:waypointTurnMode>
        </wpml:waypointTurnParam>
        <wpml:useStraightLine>0</wpml:useStraightLine>
        <!-- Initial Gimbal Pitch -->
        <wpml:actionGroup>
          <wpml:actionGroupId>0</wpml:actionGroupId>
          <wpml:actionGroupStartIndex>0</wpml:actionGroupStartIndex>
          <wpml:actionGroupEndIndex>0</wpml:actionGroupEndIndex>
          <wpml:actionGroupMode>parallel</wpml:actionGroupMode>
          <wpml:actionTrigger>
            <wpml:actionTriggerType>reachPoint</wpml:actionTriggerType>
          </wpml:actionTrigger>
          <wpml:action>
            <wpml:actionId>0</wpml:actionId>
            <wpml:actionActuatorFunc>gimbalRotate</wpml:actionActuatorFunc>
            <wpml:actionActuatorFuncParam>
              <wpml:payloadPositionIndex>0</wpml:payloadPositionIndex>
              <wpml:gimbalHeadingYawBase>north</wpml:gimbalHeadingYawBase>
              <wpml:gimbalRotateMode>absoluteAngle</wpml:gimbalRotateMode>
              <wpml:gimbalPitchRotateEnable>1</wpml:gimbalPitchRotateEnable>
              <wpml:gimbalPitchRotateAngle>-21</wpml:gimbalPitchRotateAngle>
              <wpml:gimbalRollRotateEnable>1</wpml:gimbalRollRotateEnable>
              <wpml:gimbalRollRotateAngle>0</wpml:gimbalRollRotateAngle>
              <wpml:gimbalYawRotateEnable>1</wpml:gimbalYawRotateEnable>
              <wpml:gimbalYawRotateAngle>0</wpml:gimbalYawRotateAngle>
              <wpml:gimbalRotateTimeEnable>0</wpml:gimbalRotateTimeEnable>
              <wpml:gimbalRotateTime>0</wpml:gimbalRotateTime>
            </wpml:actionActuatorFuncParam>
          </wpml:action>
        </wpml:actionGroup>
        <!-- Gimbal Pitch -->
        <wpml:actionGroup>
          <wpml:actionGroupId>1</wpml:actionGroupId>
          <wpml:actionGroupStartIndex>0</wpml:actionGroupStartIndex>
          <wpml:actionGroupEndIndex>1</wpml:actionGroupEndIndex>
          <wpml:actionGroupMode>parallel</wpml:actionGroupMode>
          <wpml:actionTrigger>
            <wpml:actionTriggerType>betweenAdjacentPoints</wpml:actionTriggerType>
          </wpml:actionTrigger>
          <wpml:action>
            <wpml:actionId>0</wpml:actionId>
            <wpml:actionActuatorFunc>gimbalEvenlyRotate</wpml:actionActuatorFunc>
            <wpml:actionActuatorFuncParam>
              <wpml:payloadPositionIndex>0</wpml:payloadPositionIndex>
              <wpml:gimbalPitchRotateAngle>-19</wpml:gimbalPitchRotateAngle>
            </wpml:actionActuatorFuncParam>
          </wpml:action>
        </wpml:actionGroup>
        <!-- Start Automatic Capture -->
        <wpml:actionGroup>
          <wpml:actionGroupId>2</wpml:actionGroupId>
          <wpml:actionGroupStartIndex>0</wpml:actionGroupStartIndex>
          <wpml:actionGroupEndIndex>0</wpml:actionGroupEndIndex>
          <wpml:actionGroupMode>sequence</wpml:actionGroupMode>
          <wpml:actionTrigger>
            <wpml:actionTriggerType>reachPoint</wpml:actionTriggerType>
          </wpml:actionTrigger>
          <wpml:action>
            <wpml:actionId>0</wpml:actionId>
            <wpml:actionActuatorFunc>startRecord</wpml:actionActuatorFunc>
            <wpml:actionActuatorFuncParam>
              <wpml:payloadPositionIndex>0</wpml:payloadPositionIndex>
              <wpml:fileSuffix/>
              <wpml:useGlobalPayloadLensIndex>0</wpml:useGlobalPayloadLensIndex>
            </wpml:actionActuatorFuncParam>
          </wpml:action>
        </wpml:actionGroup>
      </Placemark>
      <Placemark>
        <Point>
          <coordinates>151.08911429674475,-33.71319908293604</coordinates>
        </Point>
        <wpml:index>1</wpml:index>
        <wpml:executeHeight>30.47999999666748</wpml:executeHeight>
        <wpml:waypointSpeed>2.1834135060893916</wpml:waypointSpeed>
        <wpml:waypointHeadingParam>
          <wpml:waypointHeadingMode>smoothTransition</wpml:waypointHeadingMode>
          <wpml:waypointHeadingAngle>108.23359312642116</wpml:waypointHeadingAngle>
          <wpml:waypointHeadingPathMode>followBadArc</wpml:waypointHeadingPathMode>
        </wpml:waypointHeadingParam>
        <wpml:waypointTurnParam>
          <wpml:waypointTurnMode>toPointAndPassWithContinuityCurvature</wpml:waypointTurnMode>
        </wpml:waypointTurnParam>
        <wpml:useStraightLine>0</wpml:useStraightLine>
        <!-- Gimbal Pitch -->
        <wpml:actionGroup>
          <wpml:actionGroupId>3</wpml:actionGroupId>
          <wpml:actionGroupStartIndex>1</wpml:actionGroupStartIndex>
          <wpml:actionGroupEndIndex>2</wpml:actionGroupEndIndex>
          <wpml:actionGroupMode>parallel</wpml:actionGroupMode>
          <wpml:actionTrigger>
            <wpml:actionTriggerType>betweenAdjacentPoints</wpml:actionTriggerType>
          </wpml:actionTrigger>
          <wpml:action>
            <wpml:actionId>0</wpml:actionId>
            <wpml:actionActuatorFunc>gimbalEvenlyRotate</wpml:actionActuatorFunc>
            <wpml:actionActuatorFuncParam>
              <wpml:payloadPositionIndex>0</wpml:payloadPositionIndex>
              <wpml:gimbalPitchRotateAngle>-18</wpml:gimbalPitchRotateAngle>
            </wpml:actionActuatorFuncParam>
          </wpml:action>
        </wpml:actionGroup>
      </Placemark>
      <Placemark>
        <Point>
          <coordinates>151.08905009142924,-33.713150994580495</coordinates>
        </Point>
        <wpml:index>2</wpml:index>
        <wpml:executeHeight>30.47999999666748</wpml:executeHeight>
        <wpml:waypointSpeed>2.949832959945109</wpml:waypointSpeed>
        <wpml:waypointHeadingParam>
          <wpml:waypointHeadingMode>smoothTransition</wpml:waypointHeadingMode>
          <wpml:waypointHeadingAngle>110.17931466196296</wpml:waypointHeadingAngle>
          <wpml:waypointHeadingPathMode>followBadArc</wpml:waypointHeadingPathMode>
        </wpml:waypointHeadingParam>
        <wpml:waypointTurnParam>
          <wpml:waypointTurnMode>toPointAndPassWithContinuityCurvature</wpml:waypointTurnMode>
        </wpml:waypointTurnParam>
        <wpml:useStraightLine>0</wpml:useStraightLine>
        <!-- Gimbal Pitch -->
        <wpml:actionGroup>
          <wpml:actionGroupId>4</wpml:actionGroupId>
          <wpml:actionGroupStartIndex>2</wpml:actionGroupStartIndex>
          <wpml:actionGroupEndIndex>3</wpml:actionGroupEndIndex>
          <wpml:actionGroupMode>parallel</wpml:actionGroupMode>
          <wpml:actionTrigger>
            <wpml:actionTriggerType>betweenAdjacentPoints</wpml:actionTriggerType>
          </wpml:actionTrigger>
          <wpml:action>
            <wpml:actionId>0</wpml:actionId>
            <wpml:actionActuatorFunc>gimbalEvenlyRotate</wpml:actionActuatorFunc>
            <wpml:actionActuatorFuncParam>
              <wpml:payloadPositionIndex>0</wpml:payloadPositionIndex>
              <wpml:gimbalPitchRotateAngle>-17</wpml:gimbalPitchRotateAngle>
            </wpml:actionActuatorFuncParam>
          </wpml:action>
        </wpml:actionGroup>
      </Placemark>
      <Placemark>
        <Point>
          <coordinates>151.08898639757436,-33.713101824017606</coordinates>
        </Point>
        <wpml:index>3</wpml:index>
        <wpml:executeHeight>30.47999999666748</wpml:executeHeight>
        <wpml:waypointSpeed>3.3343797165108153</wpml:waypointSpeed>
        <wpml:waypointHeadingParam>
          <wpml:waypointHeadingMode>smoothTransition</wpml:waypointHeadingMode>
          <wpml:waypointHeadingAngle>111.93679696671614</wpml:waypointHeadingAngle>
          <wpml:waypointHeadingPathMode>followBadArc</wpml:waypointHeadingPathMode>
        </wpml:waypointHeadingParam>
        <wpml:waypointTurnParam>
          <wpml:waypointTurnMode>toPointAndPassWithContinuityCurvature</wpml:waypointTurnMode>
        </wpml:waypointTurnParam>
        <wpml:useStraightLine>0</wpml:useStraightLine>
        <!-- Gimbal Pitch -->
        <wpml:actionGroup>
          <wpml:actionGroupId>5</wpml:actionGroupId>
          <wpml:actionGroupStartIndex>3</wpml:actionGroupStartIndex>
          <wpml:actionGroupEndIndex>4</wpml:actionGroupEndIndex>
          <wpml:actionGroupMode>parallel</wpml:actionGroupMode>
          <wpml:actionTrigger>
            <wpml:actionTriggerType>betweenAdjacentPoints</wpml:actionTriggerType>
          </wpml:actionTrigger>
          <wpml:action>
            <wpml:actionId>0</wpml:actionId>
            <wpml:actionActuatorFunc>gimbalEvenlyRotate</wpml:actionActuatorFunc>
            <wpml:actionActuatorFuncParam>
              <wpml:payloadPositionIndex>0</wpml:payloadPositionIndex>
              <wpml:gimbalPitchRotateAngle>-16</wpml:gimbalPitchRotateAngle>
            </wpml:actionActuatorFuncParam>
          </wpml:action>
        </wpml:actionGroup>
      </Placemark>
      <Placemark>
        <Point>
          <coordinates>151.08892459567807,-33.71305102214429</coordinates>
        </Point>
        <wpml:index>4</wpml:index>
        <wpml:executeHeight>30.47999999666748</wpml:executeHeight>
        <wpml:waypointSpeed>3.5659805821982298</wpml:waypointSpeed>
        <wpml:waypointHeadingParam>
          <wpml:waypointHeadingMode>smoothTransition</wpml:waypointHeadingMode>
          <wpml:waypointHeadingAngle>113.56319493434714</wpml:waypointHeadingAngle>
          <wpml:waypointHeadingPathMode>followBadArc</wpml:waypointHeadingPathMode>
        </wpml:waypointHeadingParam>
        <wpml:waypointTurnParam>
          <wpml:waypointTurnMode>toPointAndPassWithContinuityCurvature</wpml:waypointTurnMode>
        </wpml:waypointTurnParam>
        <wpml:useStraightLine>0</wpml:useStraightLine>
        <!-- Gimbal Pitch -->
        <wpml:actionGroup>
          <wpml:actionGroupId>6</wpml:actionGroupId>
          <wpml:actionGroupStartIndex>4</wpml:actionGroupStartIndex>
          <wpml:actionGroupEndIndex>5</wpml:actionGroupEndIndex>
          <wpml:actionGroupMode>parallel</wpml:actionGroupMode>
          <wpml:actionTrigger>
            <wpml:actionTriggerType>betweenAdjacentPoints</wpml:actionTriggerType>
          </wpml:actionTrigger>
          <wpml:action>
            <wpml:actionId>0</wpml:actionId>
            <wpml:actionActuatorFunc>gimbalEvenlyRotate</wpml:actionActuatorFunc>
            <wpml:actionActuatorFuncParam>
              <wpml:payloadPositionIndex>0</wpml:payloadPositionIndex>
              <wpml:gimbalPitchRotateAngle>-15</wpml:gimbalPitchRotateAngle>
            </wpml:actionActuatorFuncParam>
          </wpml:action>
        </wpml:actionGroup>
      </Placemark>
      <Placemark>
        <Point>
          <coordinates>151.08886668328404,-33.71299718010907</coordinates>
        </Point>
        <wpml:index>5</wpml:index>
        <wpml:executeHeight>30.47999999666748</wpml:executeHeight>
        <wpml:waypointSpeed>3.721059896406335</wpml:waypointSpeed>
        <wpml:waypointHeadingParam>
          <wpml:waypointHeadingMode>smoothTransition</wpml:waypointHeadingMode>
          <wpml:waypointHeadingAngle>115.1825468447818</wpml:waypointHeadingAngle>
          <wpml:waypointHeadingPathMode>followBadArc</wpml:waypointHeadingPathMode>
        </wpml:waypointHeadingParam>
        <wpml:waypointTurnParam>
          <wpml:waypointTurnMode>toPointAndPassWithContinuityCurvature</wpml:waypointTurnMode>
        </wpml:waypointTurnParam>
        <wpml:useStraightLine>0</wpml:useStraightLine>
        <!-- Gimbal Pitch -->
        <wpml:actionGroup>
          <wpml:actionGroupId>7</wpml:actionGroupId>
          <wpml:actionGroupStartIndex>5</wpml:actionGroupStartIndex>
          <wpml:actionGroupEndIndex>6</wpml:actionGroupEndIndex>
          <wpml:actionGroupMode>parallel</wpml:actionGroupMode>
          <wpml:actionTrigger>
            <wpml:actionTriggerType>betweenAdjacentPoints</wpml:actionTriggerType>
          </wpml:actionTrigger>
          <wpml:action>
            <wpml:actionId>0</wpml:actionId>
            <wpml:actionActuatorFunc>gimbalEvenlyRotate</wpml:actionActuatorFunc>
            <wpml:actionActuatorFuncParam>
              <wpml:payloadPositionIndex>0</wpml:payloadPositionIndex>
              <wpml:gimbalPitchRotateAngle>-14</wpml:gimbalPitchRotateAngle>
            </wpml:actionActuatorFuncParam>
          </wpml:action>
        </wpml:actionGroup>
      </Placemark>
      <Placemark>
        <Point>
          <coordinates>151.08882047260389,-33.712936275268234</coordinates>
        </Point>
        <wpml:index>6</wpml:index>
        <wpml:executeHeight>30.47999999666748</wpml:executeHeight>
        <wpml:waypointSpeed>3.8322286712681883</wpml:waypointSpeed>
        <wpml:waypointHeadingParam>
          <wpml:waypointHeadingMode>smoothTransition</wpml:waypointHeadingMode>
          <wpml:waypointHeadingAngle>117.08011393720801</wpml:waypointHeadingAngle>
          <wpml:waypointHeadingPathMode>followBadArc</wpml:waypointHeadingPathMode>
        </wpml:waypointHeadingParam>
        <wpml:waypointTurnParam>
          <wpml:waypointTurnMode>toPointAndPassWithContinuityCurvature</wpml:waypointTurnMode>
        </wpml:waypointTurnParam>
        <wpml:useStraightLine>0</wpml:useStraightLine>
        <!-- Gimbal Pitch -->
        <wpml:actionGroup>
          <wpml:actionGroupId>8</wpml:actionGroupId>
          <wpml:actionGroupStartIndex>6</wpml:actionGroupStartIndex>
          <wpml:actionGroupEndIndex>7</wpml:actionGroupEndIndex>
          <wpml:actionGroupMode>parallel</wpml:actionGroupMode>
          <wpml:actionTrigger>
            <wpml:actionTriggerType>betweenAdjacentPoints</wpml:actionTriggerType>
          </wpml:actionTrigger>
          <wpml:action>
            <wpml:actionId>0</wpml:actionId>
            <wpml:actionActuatorFunc>gimbalEvenlyRotate</wpml:actionActuatorFunc>
            <wpml:actionActuatorFuncParam>
              <wpml:payloadPositionIndex>0</wpml:payloadPositionIndex>
              <wpml:gimbalPitchRotateAngle>-13</wpml:gimbalPitchRotateAngle>
            </wpml:actionActuatorFuncParam>
          </wpml:action>
        </wpml:actionGroup>
      </Placemark>
      <Placemark>
        <Point>
          <coordinates>151.088797315673,-33.712866912636926</coordinates>
        </Point>
        <wpml:index>7</wpml:index>
        <wpml:executeHeight>30.47999999666748</wpml:executeHeight>
        <wpml:waypointSpeed>3.9152814241207063</wpml:waypointSpeed>
        <wpml:waypointHeadingParam>
          <wpml:waypointHeadingMode>smoothTransition</wpml:waypointHeadingMode>
          <wpml:waypointHeadingAngle>119.6075134881486</wpml:waypointHeadingAngle>
          <wpml:waypointHeadingPathMode>followBadArc</wpml:waypointHeadingPathMode>
        </wpml:waypointHeadingParam>
        <wpml:waypointTurnParam>
          <wpml:waypointTurnMode>toPointAndPassWithContinuityCurvature</wpml:waypointTurnMode>
        </wpml:waypointTurnParam>
        <wpml:useStraightLine>0</wpml:useStraightLine>
        <!-- Gimbal Pitch -->
        <wpml:actionGroup>
          <wpml:actionGroupId>9</wpml:actionGroupId>
          <wpml:actionGroupStartIndex>7</wpml:actionGroupStartIndex>
          <wpml:actionGroupEndIndex>8</wpml:actionGroupEndIndex>
          <wpml:actionGroupMode>parallel</wpml:actionGroupMode>
          <wpml:actionTrigger>
            <wpml:actionTriggerType>betweenAdjacentPoints</wpml:actionTriggerType>
          </wpml:actionTrigger>
          <wpml:action>
            <wpml:actionId>0</wpml:actionId>
            <wpml:actionActuatorFunc>gimbalEvenlyRotate</wpml:actionActuatorFunc>
            <wpml:actionActuatorFuncParam>
              <wpml:payloadPositionIndex>0</wpml:payloadPositionIndex>
              <wpml:gimbalPitchRotateAngle>-13</wpml:gimbalPitchRotateAngle>
            </wpml:actionActuatorFuncParam>
          </wpml:action>
        </wpml:actionGroup>
      </Placemark>
      <Placemark>
        <Point>
          <coordinates>151.0887911244368,-33.71280049628996</coordinates>
        </Point>
        <wpml:index>8</wpml:index>
        <wpml:executeHeight>30.47999999666748</wpml:executeHeight>
        <wpml:waypointSpeed>3.8879002996465832</wpml:waypointSpeed>
        <wpml:waypointHeadingParam>
          <wpml:waypointHeadingMode>smoothTransition</wpml:waypointHeadingMode>
          <wpml:waypointHeadingAngle>122.29664138668544</wpml:waypointHeadingAngle>
          <wpml:waypointHeadingPathMode>followBadArc</wpml:waypointHeadingPathMode>
        </wpml:waypointHeadingParam>
        <wpml:waypointTurnParam>
          <wpml:waypointTurnMode>toPointAndPassWithContinuityCurvature</wpml:waypointTurnMode>
        </wpml:waypointTurnParam>
        <wpml:useStraightLine>0</wpml:useStraightLine>
        <!-- Gimbal Pitch -->
        <wpml:actionGroup>
          <wpml:actionGroupId>10</wpml:actionGroupId>
          <wpml:actionGroupStartIndex>8</wpml:actionGroupStartIndex>
          <wpml:actionGroupEndIndex>9</wpml:actionGroupEndIndex>
          <wpml:actionGroupMode>parallel</wpml:actionGroupMode>
          <wpml:actionTrigger>
            <wpml:actionTriggerType>betweenAdjacentPoints</wpml:actionTriggerType>
          </wpml:actionTrigger>
          <wpml:action>
            <wpml:actionId>0</wpml:actionId>
            <wpml:actionActuatorFunc>gimbalEvenlyRotate</wpml:actionActuatorFunc>
            <wpml:actionActuatorFuncParam>
              <wpml:payloadPositionIndex>0</wpml:payloadPositionIndex>
              <wpml:gimbalPitchRotateAngle>-12</wpml:gimbalPitchRotateAngle>
            </wpml:actionActuatorFuncParam>
          </wpml:action>
        </wpml:actionGroup>
      </Placemark>
      <Placemark>
        <Point>
          <coordinates>151.08879091690446,-33.71273419833963</coordinates>
        </Point>
        <wpml:index>9</wpml:index>
        <wpml:executeHeight>30.47999999666748</wpml:executeHeight>
        <wpml:waypointSpeed>3.6937951881136084</wpml:waypointSpeed>
        <wpml:waypointHeadingParam>
          <wpml:waypointHeadingMode>smoothTransition</wpml:waypointHeadingMode>
          <wpml:waypointHeadingAngle>125.15407420161728</wpml:waypointHeadingAngle>
          <wpml:waypointHeadingPathMode>followBadArc</wpml:waypointHeadingPathMode>
        </wpml:waypointHeadingParam>
        <wpml:waypointTurnParam>
          <wpml:waypointTurnMode>toPointAndPassWithContinuityCurvature</wpml:waypointTurnMode>
        </wpml:waypointTurnParam>
        <wpml:useStraightLine>0</wpml:useStraightLine>
        <!-- Gimbal Pitch -->
        <wpml:actionGroup>
          <wpml:actionGroupId>11</wpml:actionGroupId>
          <wpml:actionGroupStartIndex>9</wpml:actionGroupStartIndex>
          <wpml:actionGroupEndIndex>10</wpml:actionGroupEndIndex>
          <wpml:actionGroupMode>parallel</wpml:actionGroupMode>
          <wpml:actionTrigger>
            <wpml:actionTriggerType>betweenAdjacentPoints</wpml:actionTriggerType>
          </wpml:actionTrigger>
          <wpml:action>
            <wpml:actionId>0</wpml:actionId>
            <wpml:actionActuatorFunc>gimbalEvenlyRotate</wpml:actionActuatorFunc>
            <wpml:actionActuatorFuncParam>
              <wpml:payloadPositionIndex>0</wpml:payloadPositionIndex>
              <wpml:gimbalPitchRotateAngle>-12</wpml:gimbalPitchRotateAngle>
            </wpml:actionActuatorFuncParam>
          </wpml:action>
        </wpml:actionGroup>
      </Placemark>
      <Placemark>
        <Point>
          <coordinates>151.0887894694084,-33.71271745071681</coordinates>
        </Point>
        <wpml:index>10</wpml:index>
        <wpml:executeHeight>30.47999999666748</wpml:executeHeight>
        <wpml:waypointSpeed>3.3899782387433555</wpml:waypointSpeed>
        <wpml:waypointHeadingParam>
          <wpml:waypointHeadingMode>smoothTransition</wpml:waypointHeadingMode>
          <wpml:waypointHeadingAngle>125.91826087721715</wpml:waypointHeadingAngle>
          <wpml:waypointHeadingPathMode>followBadArc</wpml:waypointHeadingPathMode>
        </wpml:waypointHeadingParam>
        <wpml:waypointTurnParam>
          <wpml:waypointTurnMode>toPointAndPassWithContinuityCurvature</wpml:waypointTurnMode>
        </wpml:waypointTurnParam>
        <wpml:useStraightLine>0</wpml:useStraightLine>
        <!-- Stop Automatic Capture Video -->
        <wpml:actionGroup>
          <wpml:actionGroupId>12</wpml:actionGroupId>
          <wpml:actionGroupStartIndex>10</wpml:actionGroupStartIndex>
          <wpml:actionGroupEndIndex>10</wpml:actionGroupEndIndex>
          <wpml:actionGroupMode>sequence</wpml:actionGroupMode>
          <wpml:actionTrigger>
            <wpml:actionTriggerType>reachPoint</wpml:actionTriggerType>
          </wpml:actionTrigger>
          <wpml:action>
            <wpml:actionId>0</wpml:actionId>
            <wpml:actionActuatorFunc>stopRecord</wpml:actionActuatorFunc>
            <wpml:actionActuatorFuncParam>
              <wpml:payloadPositionIndex>0</wpml:payloadPositionIndex>
            </wpml:actionActuatorFuncParam>
          </wpml:action>
        </wpml:actionGroup>
      </Placemark>
    </Folder>
  </Document>
</kml>

created_onboard_then_export_waylines.wpml

<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2" xmlns:wpml="http://www.dji.com/wpmz/1.0.6">
  <Document>
    <!-- Mission Configuration -->
    <wpml:missionConfig>
      <wpml:flyToWaylineMode>safely</wpml:flyToWaylineMode>
      <wpml:finishAction>goHome</wpml:finishAction>
      <wpml:exitOnRCLost>executeLostAction</wpml:exitOnRCLost>
      <wpml:executeRCLostAction>goBack</wpml:executeRCLostAction>
      <wpml:globalTransitionalSpeed>4.4704</wpml:globalTransitionalSpeed>
      <wpml:droneInfo>
        <!-- Drone Model -->
        <wpml:droneEnumValue>68</wpml:droneEnumValue>
        <wpml:droneSubEnumValue>0</wpml:droneSubEnumValue>
      </wpml:droneInfo>
    </wpml:missionConfig>
    <!-- Waypoint Template -->
    <Folder>
      <wpml:templateId>0</wpml:templateId>
      <wpml:executeHeightMode>relativeToStartPoint</wpml:executeHeightMode>
      <wpml:waylineId>0</wpml:waylineId>
      <wpml:distance>0</wpml:distance>
      <wpml:duration>0</wpml:duration>
      <wpml:autoFlightSpeed>4.4704</wpml:autoFlightSpeed>
      <Placemark>
        <Point>
          <coordinates>151.0896246575015,-33.71345452503279</coordinates>
        </Point>
        <wpml:index>0</wpml:index>
        <wpml:executeHeight>30.48</wpml:executeHeight>
        <wpml:waypointSpeed>4.4704</wpml:waypointSpeed>
        <wpml:waypointHeadingParam>
          <wpml:waypointHeadingMode>smoothTransition</wpml:waypointHeadingMode>
          <wpml:waypointHeadingAngle>99.3497666176237</wpml:waypointHeadingAngle>
          <wpml:waypointHeadingPathMode>followBadArc</wpml:waypointHeadingPathMode>
        </wpml:waypointHeadingParam>
        <wpml:waypointTurnParam>
          <wpml:waypointTurnMode>toPointAndPassWithContinuityCurvature</wpml:waypointTurnMode>
        </wpml:waypointTurnParam>
        <wpml:useStraightLine>0</wpml:useStraightLine>
        <!-- Initial Gimbal Pitch -->
        <wpml:actionGroup>
          <wpml:actionGroupId>0</wpml:actionGroupId>
          <wpml:actionGroupStartIndex>0</wpml:actionGroupStartIndex>
          <wpml:actionGroupEndIndex>0</wpml:actionGroupEndIndex>
          <wpml:actionGroupMode>parallel</wpml:actionGroupMode>
          <wpml:actionTrigger>
            <wpml:actionTriggerType>reachPoint</wpml:actionTriggerType>
          </wpml:actionTrigger>
          <wpml:action>
            <wpml:actionId>0</wpml:actionId>
            <wpml:actionActuatorFunc>gimbalRotate</wpml:actionActuatorFunc>
            <wpml:actionActuatorFuncParam>
              <wpml:payloadPositionIndex>0</wpml:payloadPositionIndex>
              <wpml:gimbalHeadingYawBase>north</wpml:gimbalHeadingYawBase>
              <wpml:gimbalRotateMode>absoluteAngle</wpml:gimbalRotateMode>
              <wpml:gimbalPitchRotateEnable>1</wpml:gimbalPitchRotateEnable>
              <wpml:gimbalPitchRotateAngle>0</wpml:gimbalPitchRotateAngle>
              <wpml:gimbalRollRotateEnable>1</wpml:gimbalRollRotateEnable>
              <wpml:gimbalRollRotateAngle>0</wpml:gimbalRollRotateAngle>
              <wpml:gimbalYawRotateEnable>1</wpml:gimbalYawRotateEnable>
              <wpml:gimbalYawRotateAngle>0</wpml:gimbalYawRotateAngle>
              <wpml:gimbalRotateTimeEnable>0</wpml:gimbalRotateTimeEnable>
              <wpml:gimbalRotateTime>0</wpml:gimbalRotateTime>
            </wpml:actionActuatorFuncParam>
          </wpml:action>
        </wpml:actionGroup>
        <!-- Start Automatic Capture -->
        <wpml:actionGroup>
          <wpml:actionGroupId>1</wpml:actionGroupId>
          <wpml:actionGroupStartIndex>0</wpml:actionGroupStartIndex>
          <wpml:actionGroupEndIndex>0</wpml:actionGroupEndIndex>
          <wpml:actionGroupMode>sequence</wpml:actionGroupMode>
          <wpml:actionTrigger>
            <wpml:actionTriggerType>reachPoint</wpml:actionTriggerType>
          </wpml:actionTrigger>
          <wpml:action>
            <wpml:actionId>0</wpml:actionId>
            <wpml:actionActuatorFunc>startRecord</wpml:actionActuatorFunc>
            <wpml:actionActuatorFuncParam>
              <wpml:payloadPositionIndex>0</wpml:payloadPositionIndex>
              <wpml:fileSuffix/>
              <wpml:useGlobalPayloadLensIndex>0</wpml:useGlobalPayloadLensIndex>
            </wpml:actionActuatorFuncParam>
          </wpml:action>
        </wpml:actionGroup>
      </Placemark>
      <Placemark>
        <Point>
          <coordinates>151.08929383277547,-33.71273309942202</coordinates>
        </Point>
        <wpml:index>1</wpml:index>
        <wpml:executeHeight>30.48</wpml:executeHeight>
        <wpml:waypointSpeed>4.4704</wpml:waypointSpeed>
        <wpml:waypointHeadingParam>
          <wpml:waypointHeadingMode>smoothTransition</wpml:waypointHeadingMode>
          <wpml:waypointHeadingAngle>139.37891496901193</wpml:waypointHeadingAngle>
          <wpml:waypointHeadingPathMode>followBadArc</wpml:waypointHeadingPathMode>
        </wpml:waypointHeadingParam>
        <wpml:waypointTurnParam>
          <wpml:waypointTurnMode>toPointAndPassWithContinuityCurvature</wpml:waypointTurnMode>
        </wpml:waypointTurnParam>
        <wpml:useStraightLine>0</wpml:useStraightLine>
      </Placemark>
      <Placemark>
        <Point>
          <coordinates>151.08966497998364,-33.71265395064863</coordinates>
        </Point>
        <wpml:index>2</wpml:index>
        <wpml:executeHeight>30.48</wpml:executeHeight>
        <wpml:waypointSpeed>4.4704</wpml:waypointSpeed>
        <wpml:waypointHeadingParam>
          <wpml:waypointHeadingMode>smoothTransition</wpml:waypointHeadingMode>
          <wpml:waypointHeadingAngle>157.06784942439054</wpml:waypointHeadingAngle>
          <wpml:waypointHeadingPathMode>followBadArc</wpml:waypointHeadingPathMode>
        </wpml:waypointHeadingParam>
        <wpml:waypointTurnParam>
          <wpml:waypointTurnMode>toPointAndPassWithContinuityCurvature</wpml:waypointTurnMode>
        </wpml:waypointTurnParam>
        <wpml:useStraightLine>0</wpml:useStraightLine>
        <!-- Stop Automatic Capture Video -->
        <wpml:actionGroup>
          <wpml:actionGroupId>2</wpml:actionGroupId>
          <wpml:actionGroupStartIndex>2</wpml:actionGroupStartIndex>
          <wpml:actionGroupEndIndex>2</wpml:actionGroupEndIndex>
          <wpml:actionGroupMode>sequence</wpml:actionGroupMode>
          <wpml:actionTrigger>
            <wpml:actionTriggerType>reachPoint</wpml:actionTriggerType>
          </wpml:actionTrigger>
          <wpml:action>
            <wpml:actionId>0</wpml:actionId>
            <wpml:actionActuatorFunc>stopRecord</wpml:actionActuatorFunc>
            <wpml:actionActuatorFuncParam>
              <wpml:payloadPositionIndex>0</wpml:payloadPositionIndex>
            </wpml:actionActuatorFuncParam>
          </wpml:action>
        </wpml:actionGroup>
      </Placemark>
    </Folder>
  </Document>
</kml>

 

0

Comments

16 comments

  • Comment author
    Mark Pinnuck

    I wrote some software to move each waypoint gimble angle from action to the gimble heading parameter and I can use CREATE Onboard Waypoints as the starting point of a kmz mission

    <wpml:actionActuatorFuncParam>
    <wpml:gimbalPitchRotateAngle>-3</wpml:gimbalPitchRotateAngle>
    <wpml:gimbalRollRotateAngle>0</wpml:gimbalRollRotateAngle>
    <wpml:payloadPositionIndex>0</wpml:payloadPositionIndex>
    </wpml:actionActuatorFuncParam>

    To
    <wpml:waypointGimbalHeadingParam>
    <wpml:waypointGimbalPitchAngle>0</wpml:waypointGimbalPitchAngle>
    <wpml:waypointGimbalYawAngle>0</wpml:waypointGimbalYawAngle>
    </wpml:waypointGimbalHeadingParam>
     
    0
  • Comment author
    Mark Pinnuck

    FYI
    view kmz's and patches gimble angles 
    https://github.com/mpinnuck/KmzViewer.git

    I also have an app which I move my Dronelink kmz files to the DJI RC-2 controller
    https://github.com/mpinnuck/DJI_RC2_KMZsync.git

     

    0
  • Comment author
    Mark Pinnuck

    Forget the previous post there is no gimbal information in an exported to kmz for a CREATE -> Onboard Waypoint mission see below.
    The gimble action comes from virtual stick missions converted then exported.
    Move the actions to the waypoint gimble angle eliminates some waypoints being seen as manual gimble in the RC-2

    <?xml version="1.0" encoding="UTF-8"?>
    <kml xmlns="http://www.opengis.net/kml/2.2" xmlns:wpml="http://www.dji.com/wpmz/1.0.6">
      <Document>
        <!-- Mission Configuration -->
        <wpml:missionConfig>
          <wpml:flyToWaylineMode>safely</wpml:flyToWaylineMode>
          <wpml:finishAction>goHome</wpml:finishAction>
          <wpml:exitOnRCLost>executeLostAction</wpml:exitOnRCLost>
          <wpml:executeRCLostAction>goBack</wpml:executeRCLostAction>
          <wpml:globalTransitionalSpeed>4.4704</wpml:globalTransitionalSpeed>
          <wpml:droneInfo>
            <!-- Drone Model -->
            <wpml:droneEnumValue>68</wpml:droneEnumValue>
            <wpml:droneSubEnumValue>0</wpml:droneSubEnumValue>
          </wpml:droneInfo>
        </wpml:missionConfig>
        <!-- Waypoint Template -->
        <Folder>
          <wpml:templateId>0</wpml:templateId>
          <wpml:executeHeightMode>relativeToStartPoint</wpml:executeHeightMode>
          <wpml:waylineId>0</wpml:waylineId>
          <wpml:distance>0</wpml:distance>
          <wpml:duration>0</wpml:duration>
          <wpml:autoFlightSpeed>4.4704</wpml:autoFlightSpeed>
          <Placemark>
            <Point>
              <coordinates>151.08971901579383,-33.7134565822946</coordinates>
            </Point>
            <wpml:index>0</wpml:index>
            <wpml:executeHeight>30.48</wpml:executeHeight>
            <wpml:waypointSpeed>4.4704</wpml:waypointSpeed>
            <wpml:waypointHeadingParam>
              <wpml:waypointHeadingMode>smoothTransition</wpml:waypointHeadingMode>
              <wpml:waypointHeadingAngle>104.3031482570866</wpml:waypointHeadingAngle>
              <wpml:waypointHeadingPathMode>followBadArc</wpml:waypointHeadingPathMode>
            </wpml:waypointHeadingParam>
            <wpml:waypointTurnParam>
              <wpml:waypointTurnMode>toPointAndPassWithContinuityCurvature</wpml:waypointTurnMode>
            </wpml:waypointTurnParam>
            <wpml:useStraightLine>0</wpml:useStraightLine>
            <!-- Initial Gimbal Pitch -->
            <wpml:actionGroup>
              <wpml:actionGroupId>0</wpml:actionGroupId>
              <wpml:actionGroupStartIndex>0</wpml:actionGroupStartIndex>
              <wpml:actionGroupEndIndex>0</wpml:actionGroupEndIndex>
              <wpml:actionGroupMode>parallel</wpml:actionGroupMode>
              <wpml:actionTrigger>
                <wpml:actionTriggerType>reachPoint</wpml:actionTriggerType>
              </wpml:actionTrigger>
              <wpml:action>
                <wpml:actionId>0</wpml:actionId>
                <wpml:actionActuatorFunc>gimbalRotate</wpml:actionActuatorFunc>
                <wpml:actionActuatorFuncParam>
                  <wpml:payloadPositionIndex>0</wpml:payloadPositionIndex>
                  <wpml:gimbalHeadingYawBase>north</wpml:gimbalHeadingYawBase>
                  <wpml:gimbalRotateMode>absoluteAngle</wpml:gimbalRotateMode>
                  <wpml:gimbalPitchRotateEnable>1</wpml:gimbalPitchRotateEnable>
                  <wpml:gimbalPitchRotateAngle>0</wpml:gimbalPitchRotateAngle>
                  <wpml:gimbalRollRotateEnable>1</wpml:gimbalRollRotateEnable>
                  <wpml:gimbalRollRotateAngle>0</wpml:gimbalRollRotateAngle>
                  <wpml:gimbalYawRotateEnable>1</wpml:gimbalYawRotateEnable>
                  <wpml:gimbalYawRotateAngle>0</wpml:gimbalYawRotateAngle>
                  <wpml:gimbalRotateTimeEnable>0</wpml:gimbalRotateTimeEnable>
                  <wpml:gimbalRotateTime>0</wpml:gimbalRotateTime>
                </wpml:actionActuatorFuncParam>
              </wpml:action>
            </wpml:actionGroup>
            <!-- Start Automatic Capture -->
            <wpml:actionGroup>
              <wpml:actionGroupId>1</wpml:actionGroupId>
              <wpml:actionGroupStartIndex>0</wpml:actionGroupStartIndex>
              <wpml:actionGroupEndIndex>0</wpml:actionGroupEndIndex>
              <wpml:actionGroupMode>sequence</wpml:actionGroupMode>
              <wpml:actionTrigger>
                <wpml:actionTriggerType>reachPoint</wpml:actionTriggerType>
              </wpml:actionTrigger>
              <wpml:action>
                <wpml:actionId>0</wpml:actionId>
                <wpml:actionActuatorFunc>startRecord</wpml:actionActuatorFunc>
                <wpml:actionActuatorFuncParam>
                  <wpml:payloadPositionIndex>0</wpml:payloadPositionIndex>
                  <wpml:fileSuffix/>
                  <wpml:useGlobalPayloadLensIndex>0</wpml:useGlobalPayloadLensIndex>
                </wpml:actionActuatorFuncParam>
              </wpml:action>
            </wpml:actionGroup>
          </Placemark>
          <Placemark>
            <Point>
              <coordinates>151.08939348706846,-33.71292789338833</coordinates>
            </Point>
            <wpml:index>1</wpml:index>
            <wpml:executeHeight>30.48</wpml:executeHeight>
            <wpml:waypointSpeed>4.4704</wpml:waypointSpeed>
            <wpml:waypointHeadingParam>
              <wpml:waypointHeadingMode>smoothTransition</wpml:waypointHeadingMode>
              <wpml:waypointHeadingAngle>136.36030350340258</wpml:waypointHeadingAngle>
              <wpml:waypointHeadingPathMode>followBadArc</wpml:waypointHeadingPathMode>
            </wpml:waypointHeadingParam>
            <wpml:waypointTurnParam>
              <wpml:waypointTurnMode>toPointAndPassWithContinuityCurvature</wpml:waypointTurnMode>
            </wpml:waypointTurnParam>
            <wpml:useStraightLine>0</wpml:useStraightLine>
          </Placemark>
          <Placemark>
            <Point>
              <coordinates>151.08910339644373,-33.713134957530784</coordinates>
            </Point>
            <wpml:index>2</wpml:index>
            <wpml:executeHeight>30.48</wpml:executeHeight>
            <wpml:waypointSpeed>4.4704</wpml:waypointSpeed>
            <wpml:waypointHeadingParam>
              <wpml:waypointHeadingMode>smoothTransition</wpml:waypointHeadingMode>
              <wpml:waypointHeadingAngle>116.0051144061704</wpml:waypointHeadingAngle>
              <wpml:waypointHeadingPathMode>followBadArc</wpml:waypointHeadingPathMode>
            </wpml:waypointHeadingParam>
            <wpml:waypointTurnParam>
              <wpml:waypointTurnMode>toPointAndPassWithContinuityCurvature</wpml:waypointTurnMode>
            </wpml:waypointTurnParam>
            <wpml:useStraightLine>0</wpml:useStraightLine>
          </Placemark>
          <Placemark>
            <Point>
              <coordinates>151.08948225708292,-33.71344062377193</coordinates>
            </Point>
            <wpml:index>3</wpml:index>
            <wpml:executeHeight>30.48</wpml:executeHeight>
            <wpml:waypointSpeed>4.4704</wpml:waypointSpeed>
            <wpml:waypointHeadingParam>
              <wpml:waypointHeadingMode>smoothTransition</wpml:waypointHeadingMode>
              <wpml:waypointHeadingAngle>0</wpml:waypointHeadingAngle>
              <wpml:waypointHeadingPathMode>followBadArc</wpml:waypointHeadingPathMode>
            </wpml:waypointHeadingParam>
            <wpml:waypointTurnParam>
              <wpml:waypointTurnMode>toPointAndPassWithContinuityCurvature</wpml:waypointTurnMode>
            </wpml:waypointTurnParam>
            <wpml:useStraightLine>0</wpml:useStraightLine>
            <!-- Stop Automatic Capture Video -->
            <wpml:actionGroup>
              <wpml:actionGroupId>2</wpml:actionGroupId>
              <wpml:actionGroupStartIndex>3</wpml:actionGroupStartIndex>
              <wpml:actionGroupEndIndex>3</wpml:actionGroupEndIndex>
              <wpml:actionGroupMode>sequence</wpml:actionGroupMode>
              <wpml:actionTrigger>
                <wpml:actionTriggerType>reachPoint</wpml:actionTriggerType>
              </wpml:actionTrigger>
              <wpml:action>
                <wpml:actionId>0</wpml:actionId>
                <wpml:actionActuatorFunc>stopRecord</wpml:actionActuatorFunc>
                <wpml:actionActuatorFuncParam>
                  <wpml:payloadPositionIndex>0</wpml:payloadPositionIndex>
                </wpml:actionActuatorFuncParam>
              </wpml:action>
            </wpml:actionGroup>
          </Placemark>
        </Folder>
      </Document>
    </kml>

    0
  • Comment author
    Jim McAndrew Dronelink Staff

    Not sure I completely understand what you are asking for. Could you summarize it?

    0
  • Comment author
    Mark Pinnuck

    I use the following to create waypoint missions for an air3s.
    The workflow that works is
    1. Create a "Waypoints" mission (normal virtual stick)
    2. Convert to "DJI Waypoints"
    3. Export to kmz
    These mission have gimbal control actions attached to waypoints and fly controlling gimbal pitch.

    A simpler workflow is
    1. Create a "Onboard Waypoints" mission
    2. Exports to kmz
    These mission have no gimbal actions. The mission does not alter the gimbal pitch during the flight.

    The "Onboard Waypoints" 3d simulator has all the correct gimbal angles.
    I would be good if the gimbal actions could be included when exporting an "Onboard Waypoints" mission to kmz

    0
  • Comment author
    Mike (Arizona Wyldwest) Dronelink Expert Dronelink Expert

    I think sending all the code just made it much more complex than what was needed. Basically creating a virtual stick plan, then converting to a DJI Waypoints plan and exporting the DJI KMZ works. If creating a DJI Waypoints plan then exporting the DJI KMZ then the gimbal commands don’t. Maybe with this simplified info Jim can answer why. I know that when using a DJI Waypoints plan there are always limitations compared to a virtual stick plan.

    0
  • Comment author
    Mark Pinnuck

    Thanks Mike your right, can’t see the wood for the trees
    Litchi has the same problem, build a waypoint mission export to DJI kmz, no gimbal info.
    Dronelink works well, but it would be a lot easier if exporting a “onboard waypoint” mission had gimbal action in the kmz.
    With drones like air3s Dronelink is best way to prepare an Rc lost continue waypoint mission.

    0
  • Comment author
    Jim McAndrew Dronelink Staff

    We created the feature specifically for people that already had Dronelink format (virtual stick) mission plans and wanted to do conversions which the gimbal pitch works for right? Is there a reason not to just do it that way?

    0
  • Comment author
    Mark Pinnuck

    Create “Onboard Waypoints” -> export kmz, is fewer steps.
    I was surprised to see no gimbal info in the kmz.
    Create “Waypoints” -> convert to onboard -> export, works ok. I will keep doing it this way, it’s the only way that works. It would be easier if the simpler “create Onboard Waypoints”workflow worked. Thanks for taking the time to reply.

    0
  • Comment author
    Jim McAndrew Dronelink Staff
    • Edited

    The idea behind how we implemented it was that people prefer to “think” in Dronelink style missions (by definition, because otherwise why not just plan it directly in DJI’s interface), which offer much more capability than DJI’s basic waypoint implementation. Then Dronelink takes care of the brain damage of down-converting it to the less capable format while trying to preserve as much of the enhanced functionality as possible. This often results in a DJI waypoint mission that would be arduous or complex to create by hand, but is no sweat for the converter.

    0
  • Comment author
    Mark Pinnuck

    Exactly I understand you are making Dronelink waypoint planner available to drones link the Air3S. But I don’t know in what scenario you would use the CREATE “Onboard waypoints” feature. The kmz has no gimbal info. The CREATE “Waypoints” workflow does, so that makes sense

    0
  • Comment author
    Mark Pinnuck

    In the CREATE “Waypoints” workflow the original Virtual Stick mission is discarded and the converted Onboard mission the main mission and kmz source. The converted is a little fiddle having to get the optimum waypoint separation. If the CREATE “Onboard Waypoints” export kmz had gimbal info there would be no discarded mission and no ideal waypoint separation in the workflow.

    0
  • Comment author
    Mike (Arizona Wyldwest) Dronelink Expert Dronelink Expert

    Hi Mark. Your question, (“But I don’t know in what scenario you would use the CREATE “Onboard waypoints” feature.”) The onboard waypoints in the DL app was designed for the older Legacy drones like the Phantoms or Mavic which have onboard capability. This way you could fly the onboard mission using the DL mobile app. I don’t believe it was never intended to be used for the newer drones and converted. It does say in the DL article it does not support exporting a KMZ. Maybe Jim can remove the ability to export the DJI KMZ to save any further confusion.

    Also the original plan is not discarded so maybe it’s in a different folder, (Repo). I just tried and still have original plans, not discarded.

    https://support.dronelink.com/hc/en-us/articles/41225655534867-Onboard-DJI-Waypoints-Legacy-Drones-Converting-and-Running-Missions

    0
  • Comment author
    Jim McAndrew Dronelink Staff
    • Edited

    I think what he is referring to is the onboard waypoints menu option in the create dialog. It is true that this option exists, and that it lets someone plan a DJI waypoints mission directly, but the fact that this option exists is a bit misleading relative to our intention. The only reason we exposed the DJI waypoints component type directly in the mission planner was so that we had a UI to confirm that the converter was behaving correctly - so it was more of an afterthought that was focused on our own internal QA process. He is now attempting to use it for something it wasn't really designed for and wants enhancements, which is fair, but my original point still stands, which is: why would anyone really prefer to do this vs my prescripted workflow.

    0
  • Comment author
    Mike (Arizona Wyldwest) Dronelink Expert Dronelink Expert

    I use the virtual stick plan for my Air 3 and convert which has worked well. I’ve tried just to see how the DJI onboard would work but it’s no where as easy and full of limitations and headaches. The simple and quick step from a virtual stick takes no extra time. This is what is was made for. Simplify it.

    0
  • Comment author
    Mark Pinnuck

    What I mean by discard original vsc mission, is once converted and have set distance between waypoints on the onboard, future edits to the mission are done on the onboard mission not the vs mission which I do not use after the initial creation . I hear what you are saying that the CREATE onboard waypoints in the expert section was an internal tool and not complete. The vs mission workflow works for onboard only drones. I used the create onboard path because creating 1 mission is simpler than 2. Especially when you have 100s of missions, the vs workflow means you manage 200s

    0

Please sign in to leave a comment.