Since last week, I have started looking into ROS(The Robot Operating System) which is a framework designed for writing robot softwares. ROS is used across various robotic platform to create a collaborative robotic software environment. Take our project as an example, there already exists built packages designated for Crazyflie meaning we don't have to read all the undocumented source code in order to get do certain things(such as get access to sensor data). The package for Crazyflie is documented at https://github.com/whoenig/crazyflie_ros. By reading the documentation, I find we get use the Publisher function from the package to get IMU readings. Another advantage of this package is that the controller(currently a simple PID) is written in C++ that doesn't has any dependency to Crazyflie SDK, allowing us to change the onboard controller purely based on the ROS package.
From last week until now, I have successful installed the ROS(Kinetic Kame) on an ubuntu virtual machine, and I am currently going through the tutorials on ROS.org to get a full understanding of how to use ROS. Above is a list in the ROS.org tutorials, I already finsihed the first three. By next meeting, I will try to finsih all 20 items in the tutorial so that I am able to use the package for Crazyflie.