Uploaded image for project: 'Data Management'
  1. Data Management
  2. DM-28339

Fix the Signal of Movement's Completion in Low-level Controller

    XMLWordPrintable

    Details

      Description

      Fix the signal of movement's completion in low-level controller. The related telemetry are flags_pt2pt_move_complete or flags_slew_complete. After this is done, check with Russell for the behavior of MTRotator CSC. This is to fix the bug in LVV-18471.

        Attachments

        1. moveCompleteForTwoPositions.png
          moveCompleteForTwoPositions.png
          90 kB
        2. moveCompleteForTwoPositionSetsButSingleMove.png
          moveCompleteForTwoPositionSetsButSingleMove.png
          87 kB
        3. moveCompleteOfPt2Pt.png
          moveCompleteOfPt2Pt.png
          97 kB
        4. moveOfPt2PtStopInMoving.png
          moveOfPt2PtStopInMoving.png
          88 kB
        5. moveSuccessFlagInPt2Pt.png
          moveSuccessFlagInPt2Pt.png
          78 kB
        6. moveSuccessPointToPointMovement.png
          moveSuccessPointToPointMovement.png
          93 kB
        7. pt2ptMoveCompletePointToPointMovement.png
          pt2ptMoveCompletePointToPointMovement.png
          90 kB
        8. scopeOfPt2PtFlag.png
          scopeOfPt2PtFlag.png
          160 kB
        9. trackAndStopInMoving.png
          trackAndStopInMoving.png
          105 kB
        10. trackingSuccessFlagAfterRemoveHoldTime.png
          trackingSuccessFlagAfterRemoveHoldTime.png
          95 kB
        11. trackingSuccessUpdate.png
          trackingSuccessUpdate.png
          94 kB
        12. trackSucess.png
          trackSucess.png
          94 kB

          Issue Links

            Activity

            Hide
            ttsai Te-Wei Tsai added a comment - - edited

            I realized the hold time in tracking success is needed. Therefore, I rewrite the logic of this flag determination:

            Show
            ttsai Te-Wei Tsai added a comment - - edited I realized the hold time in tracking success is needed. Therefore, I rewrite the logic of this flag determination:
            Show
            ttsai Te-Wei Tsai added a comment - Please help to review the PRs: 1.  https://github.com/lsst-ts/ts_mt_hexRot_simulink/pull/15 2.  https://github.com/lsst-ts/ts_rotator_controller/pull/17 Thanks!
            Hide
            rowen Russell Owen added a comment -

            My understanding of the results of these changes:

            • Flags_moveSuccess is true if a point to point move is done and is sufficiently close to the commanded position. It can only be true if the state is enabled/stationary.
            • Flags_trackingSuccess indicates that the rotator has finished slewing and is now tracking. It can only be true if the state is enabled/tracking_or_slewing.

            These are the flags that the CSC should use to indicate "in position".

            I am puzzled why Flags_pt2ptMoveComplete only stays true for 1 second. Is this necessary? Why not treat it like Flags_moveSuccess (but without the "position is close enough" criterion): leave it true until another move begins or some other state change occurs? But it's not very important as long as the CSC can ignore it and use Flags_moveSuccess instead.

            Show
            rowen Russell Owen added a comment - My understanding of the results of these changes: Flags_moveSuccess is true if a point to point move is done and is sufficiently close to the commanded position. It can only be true if the state is enabled/stationary. Flags_trackingSuccess indicates that the rotator has finished slewing and is now tracking. It can only be true if the state is enabled/tracking_or_slewing. These are the flags that the CSC should use to indicate "in position". I am puzzled why Flags_pt2ptMoveComplete only stays true for 1 second. Is this necessary? Why not treat it like Flags_moveSuccess (but without the "position is close enough" criterion): leave it true until another move begins or some other state change occurs? But it's not very important as long as the CSC can ignore it and use Flags_moveSuccess instead.
            Hide
            rowen Russell Owen added a comment -

            Reviewed on github

            Show
            rowen Russell Owen added a comment - Reviewed on github
            Hide
            ttsai Te-Wei Tsai added a comment -

            This Flags_pt2ptMoveComplete is used as a simulink internal event that will trigger multiple parts of code such as the state machine. It is not really the same as the Flags_moveSuccess, which reports to the outside world only. Actually, I tried to put the Flags_pt2ptMoveComplete to be the same as the Flags_moveSuccess and realized I could not do this unless I want to rewrite the Simulink model, which I thought Tekniker will do it.

            Show
            ttsai Te-Wei Tsai added a comment - This Flags_pt2ptMoveComplete is used as a simulink internal event that will trigger multiple parts of code such as the state machine. It is not really the same as the Flags_moveSuccess , which reports to the outside world only. Actually, I tried to put the Flags_pt2ptMoveComplete to be the same as the Flags_moveSuccess and realized I could not do this unless I want to rewrite the Simulink model, which I thought Tekniker will do it.

              People

              Assignee:
              ttsai Te-Wei Tsai
              Reporter:
              ttsai Te-Wei Tsai
              Reviewers:
              Russell Owen
              Watchers:
              Russell Owen, Te-Wei Tsai
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

                Dates

                Created:
                Updated:
                Resolved:
                Start date:
                End date:

                  Jenkins Builds

                  No builds found.