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.

pdf 6 trang yennguyen 3040
Bạn đang xem 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 gốc về máy hãy click vào nút Download ở trên

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

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:

  • pdfphan_loai_chuyen_dong_cho_nguoi_dung_thiet_bi_ho_tro_di_lai.pdf