Skip to content

[TASK] FSM for docking task using YASMIN #474

@Andeshog

Description

@Andeshog

Description of task

Continue to explore and learn how the YASMIN library works. Do so by developing a demo for the docking task at TACC. The demo should be similar to how we (auto) will handle the task in a real run, but since we cant yet rely on data from Perception you can use timers in the demo. The flow of the demo can be as follows:

  • Start by looking for the dock. This can be done by performing a search maneuver like the rectangular search for a set amount of seconds (for example 15).
  • When the dock is found go into a converging state where the drone will get to a certain distance to the dock. Starting off this can also be done with timer, but in the actual demo you will use the Velocity Controller for this state.
  • When close enough to the dock go into a setup state which will align the drone over the dock, such that it is ready to dock. This maneuver will be done by the DP Controller.
  • When the setup is right, go into docking state where the drone will perform the docking maneuver.
  • When the drone has landed on the dock go into the docked state.
  • (Bonus) Add a returning home state which will take the drone back to the starting point.

The demo will be tested in the simulator at the office.

Suggested Workflow

  • Outline the whole process with all necessary states with a drawing/figure. Figure out what actions to be done in each state and requirement for transition.
  • Discuss with the team on how to communicate states and transitions for the demo.
  • Implement and test that the state transitions work as intended.

Specifications

Specification for the demo

  • The starting position for the drone is (x ,y, z) = (29, 6, 0)
  • The dock is located at (x, y, z) = (5, 5, 10)
  • The distance to the dock to trigger transition from converging to setup can be set to 3 meters.
  • The dimensions for the pool in the simulator is 30x12x10 (L x W x H)

Contacts

@Andeshog

Code Quality

  • Every function in header files are documented (inputs/returns/exceptions)
  • The project has automated tests that cover MOST of the functions and branches in functions (pytest/gtest)
  • The code is documented on the wiki (provide link)

Metadata

Metadata

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions