Gyroscope là gì? Đo vận tốc góc, không sợ trượt bánh
Atlasbot · 18/8/2026 · 11 phút đọc
Nếu accelerometer (đã học ở bài trước) trả lời câu hỏi "robot đang nghiêng bao nhiêu", thì gyroscope (con quay hồi chuyển) trả lời câu hỏi khác: "robot đang quay nhanh cỡ nào, quanh trục nào" — bằng cách đo trực tiếp vận tốc góc, không cần suy luận qua trọng lực như accelerometer.
Khái niệm chính
Gyroscope đo tốc độ thay đổi góc theo thời gian (đơn vị độ/giây hoặc radian/giây) quanh cả 3 trục X, Y, Z. Ví dụ robot quay tại chỗ 90° trong 1 giây thì gyroscope trên trục thẳng đứng (thường là trục Z, gọi là yaw) đo được vận tốc góc khoảng 90°/giây.
Nguyên lý hoạt động
Muốn biết robot đã quay tổng cộng bao nhiêu độ (không phải đang quay nhanh cỡ nào), cần tích phân vận tốc góc theo thời gian:
góc_hiện_tại = góc_trước + vận_tốc_góc × Δt
Đây là lý do gyroscope đặc biệt hữu ích cho odometry robot: nó đo chuyển động quay thực của thân robot, hoàn toàn độc lập với việc bánh xe có tiếp xúc tốt với mặt sàn hay không. Encoder bánh xe có thể đếm sai khi bánh trượt trên sàn trơn hoặc va chạm vật cản, nhưng gyroscope vẫn phản ánh đúng robot đang quay bao nhiêu.
Vì phải tích phân liên tục để ra góc quay tổng, một sai số đo rất nhỏ ở mỗi lần đo (do nhiễu cảm biến) sẽ cộng dồn dần theo thời gian — sau vài phút, góc tính được có thể lệch đáng kể so với thực tế dù robot đứng yên hoàn toàn. Hiện tượng này gọi là drift, là nhược điểm cố hữu của mọi gyroscope giá rẻ (MEMS).
Kiến thức kỹ thuật
Công thức
Tốc độ trôi (drift rate) là thông số datasheet quan trọng, cho biết sai số tích luỹ theo thời gian khi gyroscope đứng yên:
Góc_lệch_tích_luỹ(t) ≈ Drift_rate × t
VD: gyroscope MEMS giá rẻ có drift rate ~0.05°/giây (điển hình khi chưa hiệu chuẩn)
Sau 60 giây đứng yên: góc lệch tích luỹ ≈ 0.05 × 60 = 3°
Sau khi hiệu chuẩn bias (bài tiếp theo), drift rate giảm đáng kể nhưng
không về 0 hoàn toàn — đây là giới hạn vật lý của cảm biến MEMS giá rẻ,
không phải lỗi hiệu chuẩn sai
Thông số
| Dải đo (°/giây) | Độ nhạy tương ứng (MPU6050) | Phù hợp |
|---|---|---|
| ±250 | 131 LSB/(°/s) | Chuyển động quay chậm, cần độ chính xác cao |
| ±1000 | 32.8 LSB/(°/s) | Robot xoay bình thường |
| ±2000 | 16.4 LSB/(°/s) | Xoay nhanh, va chạm |
Ứng dụng thực tế
Đây là lý do gyroscope hiếm khi dùng một mình trong thời gian dài — thường kết hợp với accelerometer (không bị trôi nhưng nhiễu khi rung, bài trước) hoặc magnetometer qua bộ lọc Complementary/Kalman, hoặc định kỳ "sửa lại" bằng dữ liệu từ nguồn khác như LiDAR/camera trong SLAM. Trong kiến trúc AMR thực tế, đây chính xác là cơ chế phát hiện trượt bánh đã học ở bài IMU trong AMR — so sánh vận tốc từ encoder với vận tốc suy ra từ gyroscope/accelerometer để phát hiện khi bánh xe không còn phản ánh đúng chuyển động thực.
Ví dụ thực tế
def tich_phan_goc(goc_truoc, van_toc_goc, dt):
return goc_truoc + van_toc_goc * dt
goc = 0.0
dt = 0.02 # 50Hz
# Mo phong robot xoay voi van toc goc 45 do/giay trong 2 giay
van_toc_goc = 45.0 # do/giay
for i in range(100): # 100 buoc x 0.02s = 2s
goc = tich_phan_goc(goc, van_toc_goc, dt)
print(f"Goc sau 2 giay xoay lien tuc 45 do/giay: {goc:.1f} do")
Output:
Goc sau 2 giay xoay lien tuc 45 do/giay: 90.0 do
Kết quả khớp lý thuyết (45°/s × 2s = 90°) — nhưng đây là mô phỏng lý tưởng
không có nhiễu. Với dữ liệu gyroscope thật, mỗi bước tích phân đều mang
một sai số nhỏ, cộng dồn thành drift đã tính ở mục Công thức
Lỗi thường gặp
- Tin tưởng góc tích phân từ gyroscope trong thời gian dài mà không hiệu chỉnh — như tính ở mục Công thức, drift tích luỹ theo thời gian khiến góc sai lệch đáng kể sau vài phút.
- Nhầm lẫn vận tốc góc (đơn vị °/s) với góc tuyệt đối (đơn vị °) — gyroscope đo trực tiếp vận tốc, cần tích phân mới ra góc, đọc nhầm đơn vị dẫn tới tính toán sai hoàn toàn.
- Chọn dải đo quá hẹp cho robot xoay nhanh — giá trị vượt dải bị cắt/bão hoà, mất chính xác đúng lúc cần đo chuyển động xoay mạnh nhất.
- Dùng gyroscope một mình cho ứng dụng cần hướng chính xác dài hạn — bỏ qua việc kết hợp accelerometer/magnetometer hoặc hiệu chỉnh định kỳ bằng SLAM, dẫn tới sai lệch tích luỹ không kiểm soát được.
Kết luận
Gyroscope cho dữ liệu quay chính xác tức thời và không sợ trượt bánh, nhưng tự nó sẽ trôi dần nếu dùng một mình trong thời gian dài. Kết hợp cùng accelerometer là cách phổ biến nhất để cả hai bù trừ nhược điểm cho nhau — nền tảng của hầu hết thuật toán ước lượng hướng (orientation) trong robot. Bài tiếp theo trong chuyên mục đi vào MPU6050 — chip IMU 6 trục phổ biến nhất kết hợp cả hai cảm biến vừa học.