https://medium.com/@kashifshafiq567/robotics-101-an-introduction-to-mathematical-manipulation-2448dd563720