Phân loại chuyển động cho người dùng thiết bị hỗ trợ đi lại có hai bánh trước
Tóm tắt - Cảm biến quán tính (Inertial Measurement Unit – IMU)
hiện đang được sử dụng rất rộng rãi trong nhiều lĩnh vực của kỹ thuật
và đời sống. Bài báo này đề xuất một thuật toán để phát hiện và phân
loại chuyển động cho người dùng thiết bị hỗ trợ đi lại (walker) có 2
bánh trước bằng cách kết kết hợp việc phát hiện chuyển động liên
quan đến việc nhấc walker lên sử dụng cảm biến quán tính và phát
hiện chuyển động liên quan đến việc lăn walker trên mặt đất sử dụng
encoder. Việc phát hiện và phân loại chuyển động là rất cần thiết
trong việc ước lượng các thông số bước đi cũng như đánh giá tình
trạng sức khỏe của người già, người cần hỗ trợ đi lại. Các kết quả
phân tính về định tính và định lượng thông qua thí nghiệm thực tế
cho thấy thuật toán hoạt động ổn định và đạt độ chính xác cho phép.
Tóm tắt nội dung tài liệu: Phân loại chuyển động cho người dùng thiết bị hỗ trợ đi lại có hai bánh trước
ISSN 1859-1531 - TẠP CHÍ KHOA HỌC VÀ CÔNG NGHỆ ĐẠI HỌC ĐÀ NẴNG, SỐ 11(132).2018, QUYỂN 2 19 PHÂN LOẠI CHUYỂN ĐỘNG CHO NGƯỜI DÙNG THIẾT BỊ HỖ TRỢ ĐI LẠI CÓ HAI BÁNH TRƯỚC MOVEMENT CLASSIFICATION FOR USERS OF TWO FRONT-WHEEL WALKERS Phạm Duy Dưởng, Trần Thanh Hà, Nguyễn Anh Duy Trường Đại học Sư phạm Kỹ thuật - Đại học Đà Nẵng; naduy@ute.udn.vn Tóm tắt - Cảm biến quán tính (Inertial Measurement Unit – IMU) hiện đang được sử dụng rất rộng rãi trong nhiều lĩnh vực của kỹ thuật và đời sống. Bài báo này đề xuất một thuật toán để phát hiện và phân loại chuyển động cho người dùng thiết bị hỗ trợ đi lại (walker) có 2 bánh trước bằng cách kết kết hợp việc phát hiện chuyển động liên quan đến việc nhấc walker lên sử dụng cảm biến quán tính và phát hiện chuyển động liên quan đến việc lăn walker trên mặt đất sử dụng encoder. Việc phát hiện và phân loại chuyển động là rất cần thiết trong việc ước lượng các thông số bước đi cũng như đánh giá tình trạng sức khỏe của người già, người cần hỗ trợ đi lại. Các kết quả phân tính về định tính và định lượng thông qua thí nghiệm thực tế cho thấy thuật toán hoạt động ổn định và đạt độ chính xác cho phép. Abstract - The Inertial Measurement Unit (IMU) is now widely used in many areas of technology and life. This paper proposes a detection and classification algorithm for users of two front-wheel walkers via a combination of movement detection related to walker lifting using an IMU with movement detection related to walker rolling by means of encoders. Movement detection and classification are very important in walking parameters estimation and health evaluation for the elderly. We implemented an experiment to evalue the accuracy of the proposed algorithm in quality and quantity. The result of the experiment shows that the proposed algorithm is good and reaches an acceptable accuracy. Từ khóa - cảm biến quán tính; IMU; phân loại chuyển động; walker; phát hiện chuyển động. Key words - Inertial sensor; IMU; movement classification; walker; movement detectiton. 1. Đặt vấn đề Chăm sóc sức khỏe là việc chuẩn đoán, điều trị và phòng ngừa bệnh tật, thương tích, suy yếu về thể chất và tinh thần [1]. Trong đó, việc chuẩn đoán và đánh giá tình trạng sức khỏe của bệnh nhân là bước quan trọng đầu tiên. Việc ước lượng các thông số bước đi (ví dụ: độ dài bước đi, tốc độ và thời gian bước) rất quan trọng trong quá trình phục hồi chức năng cũng như chăm sóc sức khỏe [2-3]. Hiện nay, có nhiều bài kiểm tra để đánh giá các thông bước đi (ví dụ: 6-minutes walk test [4], 50-foot walk test [5], 30-seconds chair stand test [5] và the timed up and go [6]). Tuy nhiên việc này mới chỉ thực hiện được cho người có khả năng đi lại bình thường mà không cần công cụ hỗ trợ dưới sự quan sát, đánh giá của bác sĩ. Với một hệ thống walker đề xuất với 2 bánh trước có gắn một cảm biến quán tính và 2 encoder nhằm thực hiện các bài kiểm tra các thông số bước đi cho người gặp khó khăn trong quá trình đi lại (ví dụ: người già, người bị yếu hoặc bị thương ở chân), người bệnh có thể thực hiện các bài tập và kiểm tra tại nhà mà không cần sự giám sát của bác sĩ. Tùy theo thói quen và tình trạng sức khỏe mà người dùng sử dụng walker theo các cách khác nhau. Ví dụ: đẩy đi liên tục, đẩy đi từng bước, nhấc lên và đẩy tới, nhấc hoàn toàn walker lên và đặt tới trước hoặc hoạt động chuyển hướng di chuyển. Việc nhận dạng và phân biệt chuyển động của walker sử dụng encoder cho các chuyển động liên quan đến việc đẩy walker trên mặt đất là chuyện đơn giản. Tuy nhiên, việc này không thể thực hiện được trong trường hợp liên quan đến việt nhấc walker lên. Và ngược lại, việc nhận dạng và phân biệt chuyển động của walker sử dụng cảm biến quán tính cho các chuyển động liên quan đến việc nhấc walker cũng có thể thực hiện dễ dàng. Nó rất khó thực hiện cho các chuyển động liên quan đến việc đẩy walker đi trên mặt đất. Một số hệ thống liên quan đến việc phân tích, đánh giá hoạt động của người dùng sử dụng hệ thống walker đã được đề xuất. Các tác giả trong bài báo [7-9] đã đề xuất một hệ thống walker thông minh (loại 4 bánh) phục vụ mục đích chăm sóc sức khỏe sử dụng Dopper rada, cảm biến khoảng cách dùng laser, cảm biến gia tốc, các cảm biến lực và thậm chí là cảm biến từ trường sử dụng hiệu ứng Hall. Các cảm biến này được gắn trên walker nhằm xác định các thông tin cơ bản về bước đi và dáng đi của người dùng. Nhược điểm lớn nhất của các hệ thống trên là chỉ có thể áp dụng cho loại walker 4 bánh mà không thể trực tiếp áp dụng cho loại walker chuẩn hoặc walker có 2 bánh trước. Trong khi đó, loại walker chuẩn và walker có 2 bánh trước mới là loại walker được sử dụng phổ biến nhất. Trong bài báo này, tác giả đề xuất hệ thống và thuật toán để phát hiện và phân loại các hoạt động của người dùng liên quan đến việc sử dụng walker có 2 bánh trước với sự kết hợp cảm biến quán tính và encoder. Với việc đề xuất hệ thống cho walker có 2 bánh trước, chúng ta có thể dễ dàng áp dụng cho hệ thống walker chuẩn bằng các bỏ đi các encoder. 2. Tổng quan về hệ thống Hệ thống đề xuất được thể hiện trong Hình 1, bao gồm 01 cảm biến quán tính (Mti-1, công ty Xsens) và 02 encoder (loại 1024 xung/vòng) được gắn vào một walker. Trong đó, cảm biến quán tính có thể được gắn tại 1 vị trí bất kỳ trên khung walker trong khi mỗi encoder được gắn vào mỗi bánh và đo độ dịch chuyển của mỗi bánh walker. Cảm biến quán tính bao gồm cảm biến gia tốc và cảm biến vận tốc góc theo 3 trục với tần số lấy mẫu là 100 Hz. Một bản mạch được thiết kế để thu thập và đồng bộ dữ liệu của cảm biến quán tính và các encoder. Trong đó, Arduino Uno R3 được sử dụng để đọc dữ liệu từ các cảm biến và lưu vào thẻ nhớ Micro SD. 20 Phạm Duy Dưởng, Trần Thanh Hà, Nguyễn Anh Duy Hình 1. Tổng quan hệ thống đề xuất Hình 2. Các hệ trục tọa độ sử dụng Trong bài báo này, chúng tôi sử dụng hệ trục tọa độ gắn liền với cảm biến quán tính (ICS – IMU Coordinate System), hệ trục tọa độ gắn liền với walker (BCS – Body Coordinate System) và hệ trục tọa độ toàn cầu (WCS – World Coordinate System) (Hình 2). Trong đó, ICS gắn liền với hệ trục tọa độ vật lý của cảm biến quán tính. Gốc tọa độ của BCS là trung điểm của đoạn thẳng nối 2 điểm tiếp xúc của 2 bánh walker với mặt đất. Phương 𝑥 của BCS trùng với hướng thẳng tới trước của walker, trong khi phương 𝑦 của BCS nằm trên đường nối 2 điểm tiếp xúc giữa 2 bánh với mặt đất và có phương hướng từ bánh phải sang bánh trái nhìn từ phía trước của walker. Phương 𝑧 của BCS hướng thẳng lên trên khi walker được đẩy đi trên mặt đất. WCS được chọn sao cho phương 𝑧 hướng lên trên trùng với phương gia tốc trọng trường, trong khi phương 𝑥 và 𝑦 có thể được chọn ngẫu nhiên sao cho 3 trục tọa độ vuông góc với nhau. Trên thực tế, để đơn giản trong tính toán, WCS được chọn trùng với BCS tại vị trí ban đầu của quá trình chuyển động. Để phân biệt tọa độ đang xét trong hệ trục tọa độ nào trong trường hợp dễ xảy ra hiểu nhầm, bài báo này sử dụng chỉ số dưới. Ví dụ: [𝑝]𝑏(ℎ𝑎𝑦 [𝑝]𝑤) được sử dụng để thể hiện vector 𝑝 ∈ 𝑅3 được biểu diễn trong hệ tọa độ BCS (hay trong hệ tọa độ WCS). Việc xác định mối quan hệ giữa các hệ tọa độ cảm biến quán tính và walker không dễ dàng đo được bằng thước dài hoặc thước góc, mà cần phải được hiệu chỉnh thông qua thuật toán để đem lại giá trị chính xác. Thuật toán để xác định mối quan hệ này (gồm vector tịnh tiến và ma trận quay từ ICS sang BCS) được thể hiện trong Phần 4. 3. Giải pháp phần cứng và đồng bộ dữ liệu Về giải pháp phần cứng, chúng tôi sử dụng 01 cảm biến quán tính Mti-1 của hãng Xsens và 02 encoder 1024 xung/vòng của hãng LS. 01 vi điều khiển Arduino Uno R3 được sử dụng để đọc và đồng bộ dữ liệu giữa cảm biến quán tính và các encoder. Các dữ liệu này sẽ được lưu trữ vào 01 thẻ nhớ Micro SD. Để tiện cho việc sử dụng, chúng tôi bố trí 1 nút nhấn tại vị trí tay cầm để bắt đầu hoặc kết thúc quá trình đọc dữ liệu. Việc kết nối các thành phần của hệ thống được thể hiện trong Bảng 1. Trong đó, việc truyền nhận dữ liệu giữa cảm biến quán tính và arduino được thực hiện qua cổng UART với 2 dây Rx, Tx. Các encoder được sử dụng cả dây A và B để xác định chiều quay của bánh xe. Các chân ngắt của arduino (INT0 và INT1) được sử dụng trong mục đích này để việc đọc encoder được thực hiện một cách nhanh chóng và kịp thời, đảm bảo không bỏ lỡ 1 xung encoder nào. Điều này là cần thiết khi tốc độ di chuyển lớn và độ phân giải của encoder cao. Bảng 1. Đấu nối cảm biến với arduino Arduino Uno R3 Chân/Cảm biến Rx Tx/ Mti-1 Tx Rx/ Mti-1 Digital 6 Trig In/ Mti-1 INT 0 (Digital 2) A/ Encoder 1 Digital 4 B/ Encoder 1 INT 1 (Digital 3) A/ Encoder 2 Digital 5 B/ Encoder 2 Digital 7 Nút nhấn record Digital 11 SCK/ mô đun Micro SD Digital 12 MISO/ mô đun Micro SD Digital 13 MOSI/ mô đun Micro SD Để đồng bộ dữ liệu giữa cảm biến quán tính và các encoder chúng tôi sử dụng ngắt timer của arduino. Do cảm biến quán tính có tần số hoạt động là 100 Hz, nên timer được cấu hình để xảy ra ngắt trong mỗi 10 ms (thời gian lấy mẫu 𝑇 = 0,01 giây). Khi xảy ra ngắt timer, chúng tôi kích hoạt chân Trig In của Mti-1 để cảm biến quán tính gửi 1 dữ liệu lên arduino qua cổng UART. Để làm điều này, Mti-1 được cấu hình để gửi 1 dữ liệu cuối cùng ra cổng UART khi có xung vào chân Trig In. Các xung encoder ở mỗi bánh cũng được cộng tổng đại số (có xét đến chiều quay) trong mỗi thời gian lấy mẫu và được đồng bộ với dữ liệu cảm biến quán tính mỗi khi có ngắt timer. Do việc đọc dữ liệu qua cổng UART khá mất thời gian trong khi thời gian lấy mẫu là 10 ms nên Mti-1 được cấu hình không sử dụng dữ liệu của cảm biến từ trường để giảm số byte dữ liệu đọc về. Cấu trúc của một khung dữ liệu lưu trữ vào thẻ nhớ SD có dạng như Bảng 2 gồm 32 byte. Trong đó, phần đầu khung gồm các byte báo hiệu bắt đầu 1 khung dữ liệu mới và số lượng byte dữ liệu đi kèm. Gia tốc và vận tốc góc gồm 3 thành phần theo 3 phương 𝑥, 𝑦, 𝑧. Dữ liệu của mỗi thành phần là một số thực nên được mã hóa bằng 4 byte dữ liệu. Mặc dù độ phân giải của encoder lớn (1024 xung/vòng), tuy nhiên do thời gian lấy mẫu rất nhanh (10 ms) nên số lượng xung encoder trong thời gian lấy mẫu tối khoảng tầm 20 xung. Do vậy, mỗi dữ liệu về số xung encoder chỉ được mã hóa bằng 1 byte dữ liệu. Số thứ tự của dữ liệu được sử dụng để đảm bảo ISSN 1859-1531 - TẠP CHÍ KHOA HỌC VÀ CÔNG NGHỆ ĐẠI HỌC ĐÀ NẴNG, SỐ 11(132).2018, QUYỂN 2 21 không bị mất dữ liệu trong quá trình đọc và ghi dữ liệu. Bảng 2. Khung dữ liệu đóng gói Đầu khung Gia tốc Vận tốc góc Xung encoder 1 Xung encoder 2 Số thứ tự dữ liệu 4 byte 12 byte 12 byte 1 byte 1 byte 2 byte Do việc ghi dữ liệu vào thẻ nhớ mất nhiều thời gian và thời gian ghi cũng không ổn định. Thực tế đây là một vấn đề rất khó do kích thước khung dữ liệu lớn trong khi tần số lên đến 100 Hz. Tác giả đã sử dụng phương pháp đặc biệt để ghi dữ liệu vào thẻ nhớ SD. Trong đó, tác giả sử dụng 2 bộ nhớ đệm của arduino, mỗi bộ nhớ có kích thước 512 byte và chứa được 8 khung dữ liệu. 2 bộ nhớ đệm này được sử dụng luân phiên nhau. Khi ghi 8 khung dữ liệu trong bộ nhớ đệm thứ nhất vào thẻ nhớ SD thì các khung dữ liệu mới đọc được sẽ được đóng gói vào bộ nhớ đệm thứ 2 và ngược lại. Việc đóng khung và lưu trữ vào thẻ nhớ SD được minh họa trong Hình 3. Cảm biến quán tính Khung dữ liệu (32 byte) Bộ đệm 1 (512 byte) Encoder Bộ đệm 2 (512 byte) Thẻ nhớ Micro SD Đóng khung dữ liệu Đóng gói bộ đệm Ghi dữ liệu vào SD Cảm biến quán tính Khung dữ liệu (32 byte) Bộ đệm 2 (512 byte) Encoder Bộ đệm 1 (512 byte) Thẻ nhớ Micro SD Hoàn thành đóng khung 8 dữ liệu Đóng gói bộ đệm Ghi dữ liệu vào SD Hoàn thành đóng khung 8 dữ liệu Đóng khung dữ liệu Hình 3. Sơ đồ đóng khung và lưu trữ dữ liệu 4. Thuật toán ước lượng mỗi quan hệ giữa ICS và BCS Đặt 𝑇𝑏 𝐼 và 𝐶𝑏 𝐼 là vector tịnh tuyến và ma trận quay từ BCS sang ICS. Lúc này, 𝑇𝑏 𝐼 là vị trí của cảm biến quán tính trong BCS. Theo định nghĩa của BCS thì 𝑇𝑏 𝐼 có thể đo được dễ dàng bằng thước. 𝐶𝑏 𝐼 chính là các vector của hệ trục ICS trong BCS. Lúc này 𝐶𝑏 𝐼 = [𝑥𝐼 𝑦𝐼 𝑧𝐼] với 𝑥𝐼 ∈ 𝑅 3×1, 𝑦𝐼 ∈ 𝑅 3×1 và 𝑧𝐼 ∈ 𝑅 3×1 là các trục của ICS. Các trục này không thể đo đươc bằng thước. Trong phần này, nhóm tác giả đề xuất phương pháp ước lượng 𝐶𝑏 𝐼 . Cần chú ý rằng vector tịnh tiến và ma trận quay là cần thiết để tìm vận tốc góc quay, gia tốc tịnh tiến của walker theo các trục thông qua dữ liệu của cảm biến quán tính như trình bày ở Mục 5.2 cũng như tìm quỹ đạo chuyển động của walker thông qua quỹ đạo chuyển động của cảm biến quán tính như trình bày ở Mục 6 (xem công thức (10)). Thí nghiệm để ước lượng 𝐶𝑏 𝐼 được thực hiện bằng cách đặt và đẩy walker đi theo đường thẳng hướng về trước trên sàn nhà một khoảng cách ngắn (trong khoảng 1 m) trong một chuyển động. Bằng cách này, hướng di chuyển của walker trong BCS [𝑑]𝑏 được tính toán sử dụng 2 encoder. Ngoài ra hướng di chuyển này trong ICS [𝑑]𝐼 cũng có thể ước lượng được sử dụng cảm biến quán tính. Theo cách định nghĩa của BCS thì 𝑧𝑏 thẳng đứng và hướng lên trên trùng phương với gia tốc trọng trường trong trường hợp walker di chuyển trên sàn nằm ngang. Tại thời điểm ban đầu (trước khi đẩy walker tới trước) thì walker đang đứng yên trên mặt phẳng nằm ngang. Lúc này giá trị gia tốc 𝑦𝑎 mà cảm biến quán tính đo được chính là gia tốc trọng trường và có hướng từ dưới lên trên. Như vậy ta có: [𝑧𝑏]𝐼 = 𝑦𝑎1 ‖𝑦𝑎1‖ (1) Trong đó, 𝑎𝑖 là dữ liệu thứ 𝑖 của vector 𝑎 và ‖𝑎‖ là độ lớn của vector 𝑎. Hướng di chuyển 𝑑 của walker có thể không trùng với trục 𝑥𝑏. Do vậy, việc xác định [𝑥𝑏]𝐼 được xác định bằng cách quay [𝑑]𝐼 quanh trục [𝑧𝑏]𝐼 một góc đúng bằng góc 𝜃 giữa [𝑑]𝑏 và [𝑥𝑏]𝑏. Với 𝜃 được xác định như sau: cos 𝜃 = 𝑑𝑥 ‖𝑑‖ sin 𝜃 = 𝑑𝑦 ‖𝑑‖ (2) Trong đó 𝑑 = [𝑑𝑥 𝑑𝑦 𝑑𝑧]𝑇. Việc thực hiện phép quay vector [𝑑]𝐼 quay trục [𝑧𝑏]𝐼 để tìm [𝑥𝑏]𝐼 được thực hiện thông qua 5 bước liên tiếp bao gồm: Việc quay quanh trục 𝑥𝐼 để đưa [𝑑]𝐼 về mặt phẳng 𝑂𝑥𝐼𝑧𝐼, quay quanh trục 𝑦𝐼 để đưa [𝑑]𝐼 về trùng với 𝑧𝐼, quay quanh trục 𝑧𝐼 một góc 𝜃, quay ngược lại theo trục 𝑦𝐼 , quay ngược lại theo trục 𝑥𝐼 . Kết quả của việc này được tóm tắc như sau: [𝑥𝑏]𝐼 = 𝐶(𝑥𝐼 , −𝛼)𝐶(𝑦𝐼 , −𝛽)𝐶(𝑧𝐼 , 𝜃)𝐶(𝑦𝐼 , 𝛽)𝐶(𝑥𝐼 , 𝛼)[𝑑]𝐼 (3) Trong đó: 𝐶(𝑥𝐼 , 𝛼) = [ 1 0 0 0 cos𝛼 − sin 𝛼 0 sin 𝛼 cos𝛼 ], 𝐶(𝑦𝐼 , 𝛽) = [ cos𝛽 0 sin 𝛽 0 0 0 −sin 𝛽 0 cos𝛽 ], 𝐶(𝑧𝐼 , 𝜃) = [ cos 𝜃 0 −sin 𝜃 0 0 0 sin 𝜃 0 cos 𝜃 ] Với { 𝑙 = √𝑧𝑏𝑦 2 + 𝑧𝑏𝑧 2 cos 𝛼 = 𝑧𝑏𝑧 𝑙 sin 𝛼 = 𝑧𝑏𝑦 𝑑 cos 𝛽 = 𝑙 sin 𝛽 = −𝑧𝑏𝑥 Theo định nghĩa về ma trận quay thì 𝐶𝑏 𝐼 được tính như sau: 𝐶𝑏 𝐼 = [[𝑥𝑏]𝐼 [𝑧𝑏]𝐼 × [𝑥𝑏]𝐼 [𝑧𝑏]𝐼] 𝑇 (4) 5. Thuật toán phát hiện và phân loại chuyển động của walker 5.1. Định nghĩa ... • Đối hướng: đây là chuyển động thường được sử dụng khi người dùng đổi hướng chuyển động, lúc này người dùng đứng trên 2 chân sau đó nhấc walker lên và quay một góc trước khi đặt walker trở lại mặt đất. 5.2. Thuật toán phát hiện chuyển động Về nguyên tắc encoder chỉ có thể phát hiện được chuyển động đối với những chuyển động liên quan đến việc bánh walker lăn trên mặt đất. Cảm biến quán tính có thể phát hiện được mọi chuyển động của các vật cũng như con người dựa vào việc phát hiện gia tốc tịnh tiến và vận tốc góc quay theo các hướng. Tuy nhiên, trường hợp walker lăn trên mặt đất có nhiều điểm khó khăn do các nguyên nhân sau: • Gia tốc thay đổi chủ yếu theo hướng di chuyển và không rõ ràng do vậy việc sử dụng sự thay đổi gia tốc để phát hiện khoảng chuyển động là không chính xác. • Vận tốc góc quay thường không hoặc rất ít thay đổi theo các hướng do vậy không thể sử dụng vận tốc góc để phát hiện chuyển động. Như vậy, trong phần này tác giả đề xuất giải pháp phát hiện và phân loại chuyển động sử dụng kết hợp thông tin từ encoder và cảm biến quán tính. Với hệ thống đề xuất chúng tôi lấy mẫu cảm biến là 100 Hz (thời gian lấy mẫu T=0,01 s). Việc chuyển động của walker liên quan đến việc lăn trên mặt đất được phát hiện thông qua việc lăn của bánh xe hay encoder. Thời điểm 𝑘 được xem là thuộc khoảng thời gian chuyển động của bánh xe nếu một trong 2 điều kiện sau được thỏa mãn: |𝑝𝑡| ≥ 𝐵𝑝, 𝑘 − 𝑁𝑝 2 ≤ 𝑖 ≤ 𝑘 + 𝑁𝑝 2 |𝑝𝑝| ≥ 𝐵𝑝, 𝑘 − 𝑁𝑝 2 ≤ 𝑖 ≤ 𝑘 + 𝑁𝑝 2 (5) Trong đó, 𝑝𝑡 (𝑝𝑝) là xung encoder ở bánh trái (phải) tại thời điểm 𝑖, 𝐵𝑝 là ngưỡng đặt của giá trị này và 𝑁𝑝 là một số nguyên đại diện cho khoảng thời gian đủ lớn để xem là một chuyển động. Các chuyển động liên quan đến việc nhấc walker lên ảnh hưởng đến góc quay quanh phương 𝑦𝑏 của BCS, trong khi chuyển động liên quan đến đổi hướng vừa liên quan đến góc quay quanh phương 𝑦𝑏 và 𝑧𝑏 của BCS. Như vậy, để xác định khoảng chuyển động sử dụng cảm biến quán tính, ta sẽ xét các tín hiệu của cảm biến quán tính theo các phương nêu trên để việc phát hiện chuyển động chính xác và hiệu quả hơn. Vận tốc góc quay theo phương 𝑦𝑏 tại thời điểm 𝑖 của cảm biến quán tính được tính như sau 𝑦𝑔𝑦,𝑖 = 𝑦𝑔,𝑖𝐶𝑏 𝐼[0 1 0]𝑇 (6) Vận tốc góc quay theo phương 𝑧𝑏 tại thời điểm 𝑖 của cảm biến quán tính được tính như sau 𝑦𝑔𝑧,𝑖 = 𝑦𝑔,𝑖𝐶𝑏 𝐼[0 0 1]𝑇 (7) Thời điểm 𝑘 được xem là thuộc khoảng thời gian chuyển động liên quan đến việc nhấc walker lên nếu điều kiện sau được thỏa mãn 𝑦𝑔𝑦,𝑖 ≥ 𝐵𝑦 , 𝑘 − 𝑁𝑦 2 ≤ 𝑖 ≤ 𝑘 + 𝑁𝑦 2 (8) Trong đó, 𝐵𝑦 là ngưỡng của vận tốc góc quay theo phương 𝑦𝑏 mà walker bị nhấc lên, 𝑁𝑦 là số nguyên đại cho khoảng thời gian đủ lớn để xem là một chuyển động. Tương tự, thời điểm 𝑘 được xem là thuộc khoảng thời gian chuyển động liên quan đến việc quay walker lên nếu điều kiện sau được thỏa mãn 𝑦𝑔𝑧,𝑖 ≥ 𝐵𝑧 , 𝑘 − 𝑁𝑧 2 ≤ 𝑖 ≤ 𝑘 + 𝑁𝑧 2 (9) Trong đó, 𝐵𝑧 là ngưỡng của vận tốc góc quay theo phương 𝑧𝑏 mà walker bị nhấc lên, 𝑁𝑧 là số nguyên đại cho khoảng thời gian đủ lớn để xem là một chuyển động. Như vậy, các khoảng chuyển động của walker là tổng hợp của các khoảng chuyển động do encoder và cảm biến quán tính phát hiện ra. 5.3. Thuật toán phân loại chuyển động Chuyển động sử dụng encoder Chuyển động quanh y Đ T chuyển động > T bước (Tb) S Lăn đi liên tục Đ Lăn đi từng bước S Nhấc 2 chân sau Đ Chuyển động quay quanh y Chuyển động quay quanh z Nhấc hoàn toàn Quay đổi hướng Chuyển động quay quanh z S Đ S ĐS S Không chuyển động Đ Tìm các khoảng chuyển động: - Sử dụng encoder (dùng (5)) - Quay quanh trục y (dùng (8)) - Quay quanh trục z (dùng (9)) Đ: Đúng S: Sai Hình 4. Lưu đồ thuật toán phân loại chuyển động Thuật toán phân loại chuyển động được thể hiện trong Hình 4. Trong đó, các khoảng chuyển động được phát hiện dựa vào encoder và IMU theo các công thức (5), (8) và (9). Chuyển động lăn liên tục được xác định bởi chuyển động do encoder phát hiện ra nhưng không có sự quay theo phương 𝑦 của walker và thời gian của chuyển động là đủ ISSN 1859-1531 - TẠP CHÍ KHOA HỌC VÀ CÔNG NGHỆ ĐẠI HỌC ĐÀ NẴNG, SỐ 11(132).2018, QUYỂN 2 23 dài (lớn hơn thời gian chuyển động của 1 bước chân 𝑇𝑏). Nếu thời gian chuyển động trong trường hợp này là nhỏ, tương ứng với thời gian của 1 bước chân thì đó là chuyển động lăn từng bước. Chuyển động nhấc 2 chân sau được xác định bằng việc phát hiện chuyển động của encoder và chuyển động quay quanh trục 𝑦 của walker. Chuyển động nhấc hoàn toàn walker được xác định bằng việc có chuyển động quanh trục 𝑦 nhưng không có chuyển động do encoder phát hiện ra và không có chuyển động quay quanh trục 𝑧 của walker. Chuyển động quay đổi hướng được xác định bằng việc phát hiện chuyển động quay quanh phương 𝑦 và phương 𝑧 của walker nhưng không có chuyển động quay của encoder. 6. Thí nghiệm và kết quả Hệ thống walker thực nghiệm để kiểm chứng độ chính xác cho thuật toán đề xuất được thể hiện như trong Hình 5. Trong đó chúng tôi sử dụng cảm biến quán tính của hãng Xsens (Mti-1) và encoder có độ phân giải là 1024 xung/vòng. Hình 5. Hệ thống đo xa dùng trong thì nghiệm Một thí nghiệm được tiến hành với 5 người dùng có khả năng đi lại bình thường sử dụng walker đi dọc một hành lang dài 20 m. Những người dùng này đã được hướng dẫn cách sử dụng walker theo cách của người già, người gặp vấn đề đi lại. Trong mỗi lượt đi, người dùng sử dụng cách lăn liên tục cho 5 m đầu tiên, lăn đi từng bước cho 5 m đi tiếp theo sau đó là 5 m đi theo kiểu nhấc 2 chân sau và cuối cùng là 5 m đi với cách đi nhấc hoàn toàn walker. Kết quả phát hiện và phân loại chuyển động theo thời gian được thể hiện trong Hình 6. Trong đó, Hình 6a thể hiện tín hiệu xung encoder thu được trong một chu kỳ lấy mẫu. Hình 6b là các khoảng thời gian chuyển động mà encoder phát hiện ra được khi sử dụng thuật toán phát hiện chuyển động thể hiện trong công thức (5). Rõ ràng chúng ta có thể thấy rằng sử dụng encoder không thể phát hiện được chuyển động nhấc hoàn toàn walker lên và không thể phân biệt được giữa chuyển động lăn đi từng bước hay chuyển động nhấc 2 chân sau của walker. Hình 6c, thể hiện tín hiện vận tốc góc quay quanh phương 𝑦 của walker được tính từ tín hiệu của cảm biến quán tính áp dụng công thức (6). Hình 6d, thể hiện các khoảng chuyển động của walker sử dụng thông tin vận tốc góc quanh phương 𝑦 của walker sử dụng thuật toán trong công thức (8). Rõ ràng chúng ta có thể thấy, sử dụng thông tin từ cảm biến quán tính không thể phát hiện chính xác khoảng chuyển động trong trường hợp lăn liên tục và lăn từng bước. Ngoài ra, khi chỉ sử dụng riêng cảm biến quán tính thì không thể phân biệt rõ ràng được chuyển động nhấc 2 bánh sau và nhấc hoàn toàn walker. Hình 6. Phát hiện và phân loại chuyển động Hình 6e, thể hiện việc phân loại chuyển động sử dung thuật toán đề xuất kết hợp thông tin của encoder và cảm biến quán tính. Trong hình này, chuyển động lăn liên tục được thể hiện trong khoảng từ 0 đến 12 giây tương ứng với 5 m đi đầu tiên của chặng đường 20 m thí nghiệm. Chuyển động lăn đi từng bước được thể hiện từ giây thứ 12 đến giây 42 tương ứng với 5 m đi thứ hai. Chuyển động nhấc 2 chân sau walker thể hiện từ giây thứ 42 đến giây thứ 78 tương ứng với 5 m đi thứ ba. Cuối cùng là phần thể hiện cho chuyển động nhấc hoàn toàn walker tương ứng với 5 m đi cuối cùng của chặng đường 20 m thí nghiệm. Để kiểm chứng độ chính xác về mặt định lượng, nhóm tác giả tiến hành ước lượng khoảng cách di chuyển của người dùng. Trong trường hợp chuyển động lăn, sử dụng encoder để ước lượng quỹ đạo chuyển động như trong bài báo [13, 14]. Trong trường hợp chuyển động liên quan đến việc nhấc walker lên thì sử dụng cảm biến quán tính để ước lượng quỹ đạo chuyển động bằng thuật toán định vị quán tính cơ bản như trong bài báo [15]. Tuy nhiên, trong trường hợp này, quỹ đạo di chuyển là quỹ đạo của cảm biến quán tính chứ không phải quỹ đạo của walker. Quỹ đạo của walker có thể được tính từ quỹ đạo của cảm biến quán tính bằng công thức 𝑟𝑖 = 𝑟𝐼𝑀𝑈,𝑖 − (𝐶𝐼 𝑏𝐶𝑊,𝑖 𝐼 ) 𝑇 𝑇𝐼 𝐵 (10) Trong đó, 𝑟𝑖 , 𝑟𝐼𝑀𝑈,𝑖 lần lượt là vị trí của walker (gốc tọa độ của BCS) và vị trí của cảm biến quán tính (gốc tọa độ của ICSS) trong WCS tại thời điểm 𝑖. 𝐶𝑊,𝑖 𝐼 là ma trận quay từ WCS sang ICS tại thời điểm 𝑖. Kết quả của việc ước lượng khoảng cách di chuyển so với giá trị thực được thể hiện trong Bảng 3. Trong đó giá trị lớn nhất của RMSE là 0,266 m trong 5 m di chuyển và 0,317 m cho 20 m di chuyển. Một bước đi trung bình A a b c d d e c 24 Phạm Duy Dưởng, Trần Thanh Hà, Nguyễn Anh Duy khoảng 0,6 m, nếu ta xét trong khoảng cách 20 m thì có khoảng 33 bước chân. Như vậy, khi xét về sai số trung bình cho việc ước lượng độ dài của mỗi bước đi là khoảng 1 cm tương đương với độ chính xác là 98,3%. Đây là sai số rất nhỏ cho phép được trong trường hợp sử dụng cảm biến quán tính để ước lượng chuyển động. Bảng 3. Kết quả 5 người dùng walker đi thẳng 20 m Người dùng Tiêu chuẩn đánh giá Thông số ước lượng Lăn liên tục Lăn từng bước Nhấc 2 chân sau Nhấc hoàn toàn Tổng hợp 1 M 5,019 4,953 4,893 4,992 19,80 STD 0,025 0,033 0,108 0,112 0,136 RMSE 0,029 0,055 0,144 0,101 0,235 2 M 4,958 4,989 5,125 5,099 20,14 STD 0,018 0,016 0,113 0,078 0,187 RMSE 0,045 0,018 0,161 0,121 0,221 3 M 4,981 5,012 4,966 5,109 20,02 STD 0,019 0,010 0,125 0,098 0,141 RMSE 0,025 0,015 0,117 0,140 0,128 4 M 5,002 4,965 5,093 5,231 20,29 STD 0,016 0,019 0,044 0,114 0,153 RMSE 0,015 0,039 0,101 0,252 0,317 5 M 4,992 4,975 5,237 4,982 2,15 STD 0,074 0,015 0,134 0,189 0,238 RMSE 0.066 0,029 0,266 0,170 0,262 M 4,990 4,979 5,063 5,083 20,08 STD 0,040 0,028 0,159 0,146 0,231 RMSE 0,040 0,034 0,168 0,165 0,168 M: giá trị trung bình kết của ước lượng, STD: Sai lệch chuẩn của sai số, RMSE: căn của trung bình bình phương sai số 7. Kết luận và hướng phát triển Bài báo đã đề xuất thuật toán nhằm phát hiện và phân loại chuyển động của người dùng sử dụng walker có hai bánh trước. Thuật toán này kết hợp việc phát hiện các khoảng chuyển động sử dụng encoder cho các chuyển động liên quan đến việc đẩy walker trên mặt đất và việc phát hiện chuyển động của cảm biến quán tính cho các chuyển động liên quan đến việc nhấc walker lên. Về mặt phần cứng, chúng tôi sử dụng một hệ thống tương đối đơn giản bao gồm: một cảm biến quán tính gắn lên vị trí bất kì trên khung của một walker và hai encoder gắn liền với trục quay của hai bánh walker. Các tín hiệu từ cảm biến được thu thập và đồng bộ dữ liệu bởi một vi điều khiển arduino. Dữ liệu này sau khi được đóng gói sẽ được lưu trữ vào thẻ nhớ Micro SD. Một thuật toán ước lượng mối quan hệ giữa cảm biến quán tính và walker bao gồm vector tịnh tiến và ma trận quay giữa ICS và BCS đã được đề xuất nhằm quy các đại lượng gia tốc, vận tốc góc theo các trục của cảm biến quán tính về hệ các trục của hệ tọa độ của walker. Mối quan hệ này cũng rất cần thiết cho việc tính quỹ đạo chuyển động của walker thông qua quỹ đạo chuyển động của cảm biến quán tính. Trong phần thí nghiệm để minh chứng cho thuật toán, chúng tôi tiến hành làm thí nghiệm với 5 người dùng. Mỗi người dùng đi dọc hành lang 20 m với các cách thức sử dụng walker khác nhau mô phỏng hoạt động đi lại của người già, người gặp vấn đề đi lại. Thông qua đánh giá định tính và định lượng, kết quả cho thấy thuật toán hoạt động ổn định và đạt được độ chính xác cho phép. Một hạn chế của bài báo là không xây dựng thuật toán ước lượng quỹ đạo chuyển động của walker mà sử dụng kết hợp 2 chuyển động do encoder ước lượng được và chuyển động do cảm biến quán tính ước lượng được. Chúng tôi hướng đến xây dựng một thuật toán mới để ước lượng quỹ đạo chuyển động của walker sử dụng thuật toán định vị quán tính, trong đó chúng tôi dự kiến sử dụng thông tin từ các encoder để xây dựng các phương trình cập nhật quỹ đạo cho bộ lọc Kalman được sử dụng trong thuật toán định vị quán tính này. Lời cảm ơn: Nghiên cứu này được tài trợ bởi Quỹ phát triển tiềm lực Khoa học Công nghệ của Trường Đại học Sư phạm Kỹ thuật – Đại học Đà Nẵng trong đề tài có mã số T2018-06-88. TÀI LIỆU THAM KHẢO [1] Wikipedia, Chăm sóc sức khỏe, Online: https://vi.wikipedia.org/wiki/Y_t%E1%BA%BF [2] N. M. Peel, S. S. Kuys, and K. Klein, “Gait speed as a measure in geriatric assessment in clinical settings: A systematic review”, The Journals of Gerontology Series A: Biological Sciences and Medical Sciences, 2012, pp. 39–46. [3] B. AM, B. RW, and G. W, “Gait speed is a responsive measure of physical performance for patients undergoing short-term rehabilitation”, Gait Posture, vol. 36, no. 1, 2012, pp. 61-64. [4] C. Casanova, et al. “The 6-min walking distance: long-term follow up in patients with copd”, European Respiratory Journal, vol. 29, no. 3, 2007, pp. 535–540. [5] A. B. Jackson et al., “Outcome measures for gait and ambulation in the spinal cord injury population”, The journal of spinal cord medicine, vol. 31, no. 5, 2008, p. 487. [6] D. Podsiadlo and S. Richardson, “The timed up & go: a test of basic functional mobility for frail elderly persons”, Journal of the American geriatrics Society, vol. 39, no. 2, 1991, pp. 142–148. [7] O. Postolache, P. Girao, J. D. Pereira, J. Pincho, C. Moura, and G. Postolache, “Smart walker for pervasive healthcare”, in Proc. 5th Int. Conf. Sens. Technol. (ICST), 2011, pp. 482–487 [8] M. Martins, A. Frizera, R. Ceres, and C. Santos, “Legs tracking for walker-rehabilitation purposes”, in Proc. 5th IEEE RAS EMBS Int. Conf. Biomed. Robot. Biomechatronics, Aug. 2014, pp. 387–392 [9] A. D. Chan and J. R. Green, “Smart rollator prototype”, in Proc. IEEE Int. Workshop Med. Meas. Appl., May 2008, pp. 97–100. [10] MedlinePlus. (2015). Using a Walker. [Online]. Available: https://www.nlm.nih.gov/medlineplus/ency/patientinstructions/000342.htm [11] W. R. Frontera, J. K. Silver, and T. D. Rizzo, Jr., Essentials of Physical Medicine and Rehabilitation, 2nd ed. Philadelphia, PA, USA: Elsevier,2008. [12] BJC HealthCare. How to Use a Walker Safely. Accessed: Aug. 10, 2017. [Online]. Available: Homemedicalequipment/Walkingaids/Howtouseawalkersafely.aspx [13] K. Lee, C. Jung, and W. Chung, “Accurate calibration of kinematic parameters for two wheel differential mobile robots”, J. Mech. Sci. Technol., vol. 25, no. 6, 2011, pp. 1603–1611. [14] T. Wang et al., “Walking analysis of young and elderly people by using an intelligent walker ANG”, Robot. Auto. Syst., vol. 75, Jan. 2016, pp. 96–106. [15] Duy Duong Pham and Young Soo Suh, “Pedestrian Navigation Using Foot-Mounted Inertial Sensor and LIDAR”, Sensors, Volume 16(1), 2016, pp. 120-136. (BBT nhận bài: 21/9/2018, hoàn tất thủ tục phản biện: 16/10/2018)
File đính kèm:
- phan_loai_chuyen_dong_cho_nguoi_dung_thiet_bi_ho_tro_di_lai.pdf