by i-Bot » Sat Nov 26, 2011 11:59 am
by i-Bot
Sat Nov 26, 2011 11:59 am
Accelerometers are usually best for measuring the pitch and roll angle of the robot. The gyro measures angular velocity, but suffers from significant drift. If you integrate the output of the gyro to get angle, the drift is very bad.
Gryo is best for making corrections to robot angle when encountering uneven ground or external forces. The drift however can be a problem if not cancelled, causing the robot to lean.
Reading robot pitch and roll angle from the accelerometer is good for detecting fallen and getting up in the right direction. Accelerometers detect accelerations other than gravity, so are prone to noise when in motion, so not so good for balance.
In higher end IMU, the mutiple sensor outputs are mixed together to give best accuracy and response for measuring both angle and angular velocity. The mixing is usually done with a Kalman or a complimentary filter.
Magnetometer can also be mixed to get an accurate yaw angle, but sensor placement is important due to servo motors.
Both IMU can are I2C, so can use the HUV or similar I2C code, the actual libraries for the gyro and magnetometer will need translating over from existing Arduino libraries. To the CM-5 and Robotask the different sensors usually appear as custom dynamixel memory values for X,Y, and Z, gyro and accelerometer readings.
Accelerometers are usually best for measuring the pitch and roll angle of the robot. The gyro measures angular velocity, but suffers from significant drift. If you integrate the output of the gyro to get angle, the drift is very bad.
Gryo is best for making corrections to robot angle when encountering uneven ground or external forces. The drift however can be a problem if not cancelled, causing the robot to lean.
Reading robot pitch and roll angle from the accelerometer is good for detecting fallen and getting up in the right direction. Accelerometers detect accelerations other than gravity, so are prone to noise when in motion, so not so good for balance.
In higher end IMU, the mutiple sensor outputs are mixed together to give best accuracy and response for measuring both angle and angular velocity. The mixing is usually done with a Kalman or a complimentary filter.
Magnetometer can also be mixed to get an accurate yaw angle, but sensor placement is important due to servo motors.
Both IMU can are I2C, so can use the HUV or similar I2C code, the actual libraries for the gyro and magnetometer will need translating over from existing Arduino libraries. To the CM-5 and Robotask the different sensors usually appear as custom dynamixel memory values for X,Y, and Z, gyro and accelerometer readings.