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.
6 trang |
Chia sẻ: huongthu9 | Lượt xem: 519 | Lượt tải: 0
Bạn đang xem 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, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
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 chuyển động của walker
Theo hướng dẫn sử dụng walker trong [10-12], trong
đó chuyển động của walker có thể chia thành 5 loại bao
gồm: chuyển động được đẩy đi liên tục (lăn liên tục),
chuyển động được đẩy đi từng bước (lăn từng bước),
chuyển động do nhấc 2 chân sau lên và đẩy tới từng bước
22 Phạm Duy Dưởng, Trần Thanh Hà, Nguyễn Anh Duy
(nhấc 2 chân sau), chuyển động nhấc hoàn toàn walker lên
và đặt tới trước (nhấc hoàn toàn), chuyển động liên quan
đến chuyển hướng đi (đổi hướng). Những chuyển động này
được miêu tả cụ thể như sau:
• Lăn liên tục: chuyển động này liên quan đến việc người
dùng đẩy walker về trước và bước liên tục về phía trước. Đây
là chuyển động phù hợp với người có 2 chân khỏe mạnh.
• Lăn từng bước: đây là chuyển động phù hợp cho
người có đôi chân không khỏe hoặc bị đau ở một chân. Lúc
này người dùng đẩy walker từng bước về phía trước và
dừng lại ở mỗi bước.
• Nhấc 2 chân sau: đây là chuyển động tương tự chuyển
động lăn từng bước, tuy nhiên trong trường hợp này người
dùng nhấc 2 chân sau lên trước khi đẩy tới trước.
• Nhấc hoàn toàn: đây là chuyển động tương tự chuyển
động nhấc 2 chân sau, tuy nhiên trong trường hợp này
walker được nhấc hoàn toàn lên khỏi mặt đất trong mỗi
chuyển động và đặt xuống đất ở cuối chuyển động.
• Đố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)
Các file đính kèm theo tài liệu này:
- phan_loai_chuyen_dong_cho_nguoi_dung_thiet_bi_ho_tro_di_lai.pdf