For a hands on tutorial, check out the jupyter notebook tutorials:
Simple controller simulation
Building a custom controller