Keyword: MPU9250, RF24, IMU algorithm, Communication protocl, Arduino
This project is basically about using IMU to detect the orientation of the wristband where the IMU is embedded in the wristband
The IMU algorithm takes 6 degree of freedom data (data from accelerometer and gyroscope) and uses rotational matrix to calculate the roll, pitch angle of the wristband. Also it takes 9 degree of freedom data (accelerometer, gyroscope and magnetometer) into quaternion to calculate yaw angle (accelrometer and gyroscope are used for tilt compensation for the compass)
Kalman filter and complementery filter are used to smooth the raw data
Both wristband side and car side have radio module while the wristband serves as transimitter and the car board serves as receiver. A communication protocol is designed to send steering and throttling data from the wristband. The protocol is optimized to ensuare the car can be operated in the range of 20 meter radius with very stable communication.
The real engineering problem for this project is that there are 27 rotational matrix (rpy,ryp, ypr and so on...) and there is no specific rotational matrix which can be generalized for using. Also, there is considerable linear acceleration created by user moving the wristband, which can cause inaccuracy in orientation calculation. The solution to the first problem is to limit the working range of the IMU, this working range is acquired by large amount of tests. Linear acceleration can be get rid of by normalizing the accelerations measured on all three axis, and then we do z = sqrt(1-x^2-y^2), assuming z is the acceleration on z-axis and the linear components in it has been removed.
Go BackCredit: This website is based on a theme created by Start Bootstrap