Tôi đang làm việc trên Magnetometer AK8975 là một phần của IMU. Mà dường như là rất khó khăn cho tôi. Con chip này cung cấp một vectơ 3D dưới dạng đầu ra mô tả từ trường của trái đất tại bất kỳ nơi nào trên trái đất hoặc gần nó.
Tôi đã thử hai loại thuật toán tính toán tiêu đề: Một loại đơn giản arctan(-y/x)
và một loại khác là nghiêng (sân) và ngân hàng (cuộn) toán học bị hủy như được đề cập dưới đây. Cả về độ nghiêng và ngân hàng đều cho đầu ra sai.
Tôi có thể có được tiêu đề chính xác khi viết trái đất (sử dụng các tài nguyên nghiên cứu mở có sẵn đơn giản) khi nó được xoay giữ cho kế hoạch mặt đất nằm ngang bằng cách sử dụng bất kỳ thuật toán nào trong hai thuật toán.
Tôi đã thử hiệu chuẩn cho các lỗi sắt mềm và cứng. Tôi có thể vẽ nó trong 3D và hiển thị một hình cầu 3D hoàn hảo. Vẫn không làm việc về độ nghiêng hoặc giảm.
Bất kỳ con trỏ sẽ hữu ích.
Mã và các triển khai của nó như sau:
void Compass_Heading()
{
double MAG_X;
double MAG_Y;
double cos_roll;
double sin_roll;
double cos_pitch;
double sin_pitch;
cos_roll = cos(roll);
sin_roll = sin(roll);
cos_pitch = cos(pitch);
sin_pitch = sin(pitch);
//// Tilt compensated Magnetic filed X:
MAG_X = magnetom_x*cos_pitch + magnetom_y*sin_roll*sin_pitch + magnetom_z*cos_roll*sin_pitch;
//// Tilt compensated Magnetic filed Y:
MAG_Y = magnetom_y*cos_roll-magnetom_z*sin_roll;
//// Magnetic Heading
MAG_Heading = atan2(-MAG_Y, MAG_X) ;
}
Trong đó magnetom_x
, #_y
và #_z
là thành phần của một vectơ 3D thực sự là các giá trị RAW từ Từ kế. cuộn và cao độ là từ một đầu ra bộ lọc Kalman bí ẩn từ gia tốc kế và con quay hồi chuyển trên tàu. Ba cảm biến này nằm trong ATAVRSBIN1 . Các cuộn và cao độ là ok cho đến giai đoạn này.
Bây giờ, một phép tính tiêu đề đơn giản theo tạp chí_of_sensors_renaudin et al_2010c.pdf nên có MAG_Heading = atan2(-magnetom_y, magnetom_x) ;
và với mức bồi thường như trên.
Mã tổng thể chỉ đơn giản là từ MỞ AHRS .
Dữ liệu ở định dạng Roll, Pitch và Yaw. Tôi chỉ xoay thiết bị bằng tay. Ba người đầu tiên chỉ tập trung vào Roll, Pitch và Yaw tương ứng. Hai phần còn lại trước tiên được xoay thiết bị quanh 45 độ dọc theo X (Được cuộn) sau đó xoay dọc theo Z cục bộ của Magnetomet. Sau đó, điều tương tự đã được lặp lại với xoay 45 độ dọc theo Y (được đặt) sau đó xoay dọc theo Z cục bộ của Magnetomet.
Các biểu đồ được vẽ trong phạm vi từ -180 đến 180 độ.
Các góc độ trong một tệp Các đặc điểm YAW trên Roll.
Các góc độ trong một tệp Các đặc điểm YAW trên Sân.
Các góc độ trong một tệp Các đặc điểm YAW trên chính Yaw.
Các góc độ trong một tệp Các đặc điểm YAW trên Yaw với 45 độ cuộn.
Các góc độ trong một tệp Các đặc điểm YAW trên Yaw với độ nghiêng 45 độ.
Lưu ý: Đối với 2 hình ảnh cuối cùng: Đầu tiên được giữ ở vị trí nhà, điều này giống nhau cho tất cả (tham khảo các tệp txt). Sau đó, cuộn 45 độ sau đó sử dụng thiết bị máy bay (có từ kế) đã được xoay dọc theo trục Z của Magnetomet.
Tương tự như vậy đối với hình ảnh cuối cùng, thiết bị đã được đặt 45 độ sau đó dọc theo trục Z của Magnetomet.
Tôi hy vọng những điều này sẽ giúp giải quyết vấn đề của tôi.
Những phát triển mới như sau:
Tôi đã làm việc một số trên Heading. Tôi đã nhận đầu ra sau. csv