1. Introduction
Mobility is an important feature for each individual as it is the ability of a person to move independently. People who have mobility issues usually rely on others to do their daily routine activities. According to the report from the World Population Prospects, the number of persons aged 60 or over has increased worldwide in recent years. It is reported that the global population of aged 60 or older was 962 million in 2017 and this number is expected to double with a projected number nearly 2.1 billion by 2050 [
1]. Also, from the statistics of 2018, the elderly aged 65 and over in Taiwan accounted for 14.3% of the total population, which exceeded the threshold of 14% of the United Nations definition of aging society [
2]. Degenerative joint, Parkinson, and musculoskeletal deformities may be the reasons for locomotive impairment [
3]. In addition, due to the deterioration of muscle strength and poor balance, there may be chances of fall-related injuries which are quite common in older adults. Thus, it is very important to develop a health care mobility aid to support the elderly for their movement or the people need to be rehabilitated. In the market, there are many types of assistive devices available to assist the elderly in their daily actions, such as canes, crutches, and conventional walkers. The cane type walker is though small in size but is a fixed structure for single-handed use. Two-handed walkers may provide better support with wide four fulcrums [
4]. But necessary upper limb strength is required for such aids to be lifted up from the ground in each step to move forward. Walker with auxiliary wheels is designed for users who lack arm strength. However, the risk of falling increases while walking up or down on a ramp surface [
5,
6,
7]. A manual brake could be added to improve operational safety, but it is not easy to use for the elderly, especially for who are weak in upper limbs. Therefore, this paper is motivated to design a smart wheel-type walker combined with peripheral sensors and fuzzy control technologies.
There are two types of walkers, passive and active. In general, the power to drive the passive walker relies entirely on the user’s strength. For examples, a passive walker is powered by the user-supplied forces with controlled brakes [
8,
9,
10]. Recently, the walker powered by motors to steer the walker has attracted a lot of attention [
11,
12,
13,
14,
15,
16,
17,
18,
19,
20,
21,
22,
23,
24,
25,
26,
27,
28,
29,
30]. Patel et al. [
11] used an active walker as the experimental platform to exploit the interactions between an intelligent mobility aid and the human operator. Shi et al. [
12] developed an active walker named Walkmate, providing a negative feedback loop of the motion control with force sensors. Song et al. [
13] developed a walking assistive robot named Walbot, of which a force cooperative guidance control scheme was proposed for automatic navigation. Valadao et al. [
15] developed a smart walker with the detection of the user’s legs, whose distances from the laser sensor provide the necessary information to maintain safe walking. Saint-Bauzel et al. [
16] proposed a fuzzy controller based robotic walker to assist patients in lower limb rehabilitation. Zhao et al. [
17] proposed a walking assist robot which can detect the abnormal gait pattern in users for fall prevention. Lopes et al. [
18] presented an innovative research, in which whenever a certain pressure is exerted, the walker gets slower to avoid the occurrence of falls by blocking the wheels. Kapsalyamov et al. [
23] proposed a wearable robotic solution to assist the elderly for mobility. It provides the necessary force according to the predefined trajectory. Serigo et al. [
24] presented a ROS-based smart walker called AGoRA walker, equipped with a sensory and actuation interface. Zhao et al. [
25] proposed a robotic walker to provide a convenient-to-use indoor walking aid for the elderly. The walker supports multiple modes of interaction and applies learning-based methods to achieve mobility safety. Wan and Yamada [
26] investigated the detailed gait analyses during walker-assisted walking. The changes in determinism of gait dynamics owing to the intervention of a robotic walker can be identified. Morone et al. [
27] evaluated the effects of overground robotic walking training performed with the servo-assistive device, named
i-Walker, on walking balance and gait stability in patients with mild subacute stroke. Ferrari et. al. [
28] investigated the interaction between users and a robotic walker named
FriWalk. The walker has the capability to navigate and guide the user through indoor environment along a planned path. In addition, a utility approach was proposed for a robot-assisted navigation, where user intent adjustments can be learned by reinforcement learning [
29].
User’s intention is very useful for the applications of active walkers. With the user’s intension, smart walkers can provide power-assistance to help users walk safely and comfortably. In the study of user’s intention, both the vision-based and force sensing approaches can be found in the literature. In the vision-based approach, a camera is installed to detect the user’s movement intension [
10,
13,
15]. On the other hand, some pressure or force sensors are mounted on the handle to detect the user’s posture [
25,
29,
30]. For the movements like push and pull, the detection from force sensing will be more straightforward. Also, the installation of force sensors is more convenient and the cost is cheaper than the vision-based approaches. In the past, smart walkers were often restricted with some limitations. For example, the user needs to change the gait speed according to the street conditions such as slowing down the gait speed while walking through a ramp. The elderly may not have enough strength to control the walker brake by themselves. Ultimately, it leads to an increase in the risk of falling.
The proposed smart walker can automatically control the speed of the walker according to the surface slope and the user’s posture. In this study, the flexiforce sensor is used to detect the user’s posture and the user’s intention accordingly whether to move forward or backward. While using flexiforce sensors, small changes occurred in posture can be easily recognized from the difference between the sensors. In this paper, it is desired to design and implement an active-mode walker for the elderly. The motor will take the decision to move forward or backward based on the fuzzy inference rules to make the user’s walk smoother. The fuzzy inference system is easy to be implemented without knowing the plant models. In this study, the slope gradient, velocity of walker, grip forces values are considered as the input variables to generate a proper assistant force. Moreover, if there is an obstacle detected by the walker, the user will be alerted and the walker will be decelerated to ensure the safety of the user. Considering the cost effect and possible working environment, the ultrasonic sensor is applied for obstacle detection. The proposed system is built in a network-connected scheme, where the user status and surrounding environment data are sent to the cloud database. Finally, for the sake of safety monitoring, an App is developed that allows the families to know the user’s current status.
The object of this study is to develop an active walker that can provide power assistance to help the user walk safely and comfortably. According to the slope of a surface and velocity of the walker, an assistive power can be generated from a fuzzy inference scheme. Moreover, the user’s postures can be identified from the sensing grip forces. The nominal fuzzy rules will be remedied with the given user’s postures that will be more appropriate for the walker moves on flat, uphill, or downhill surfaces. The research subjects mainly include (1) how to identify the user’s postures with the grip forces, (2) how to fine tune the fuzzy rules according to the slope of surface, velocity of walker, and user’s postures, (3) experimental tests and results analyses to validate the effectiveness of the proposed walker. The peripheral sensors and computing kernel will be integrated together based on a ROS framework. The potential contributions of this study include (1) the user’s postures can be identified from grip forces with the benefits of easy installation and cost effectiveness, (2) a combined fuzzy inference scheme is proposed to provide power assistance that will be more appropriate for the elderly to prevent falling, (3) an App will be developed to help the user’s families remotely monitoring the user’s status that could increases the system effectiveness of the proposed walker.
2. Walker Design and Implementation
The proposed system is divided into two parts, hardware and software, as shown in
Figure 1. In the hardware part, the control kernel is a single-board computer Raspberry Pi combined with PIC microcontroller for sensing and motor control. Raspberry Pi and PIC microcontroller can work efficiently as the control kernel and provide many facilities [
31,
32]. In this study, Raspberry Pi 3 B+ (Adafruit, New York, NY, USA) equipped with ROS framework and PIC18F4525 (Microchip Technology Inc., Taipei, Taiwan) is used as the control core. The sensing data are collected by the PIC and transmitted to Raspberry Pi through the I2C protocol. SRF08 ultrasonic sensor (Active Robots Limited, Chilcompton, UK) is used for obstacle detection. SRF08 has a range of 3 cm to 6 m. Also, it has the capability of obstacle detection in front as well as in a conical shape 45 degrees. It generates frequency above 20 kHz, so it is not harmful to the human being as it is higher than the human audible range. Two Flexiforce A201(Tekscan, Boston, MA, USA) are used for measuring the force values exerted by the user. A standard A201 Flexiforce sensor is available in three ranges, 0–1, 0–25, and 0–100 (lbf). Here the one with 0–100 lbf has been used. MPU-6050 MEMS (InvenSense Inc., San Jose, CA, USA) motion tracking device, combining a 3-axis gyroscope and a 3-axis accelerometer, is used to measure the angular velocity. It can measure ±250, ±500, ±1000, ±2000 (dps), and the accelerometer can measure ±2, ±4, ±8, ±16 (g), so users can use it according to their needs. SEN-11574 pulse sensor (Hobbytronics limited, Wilberfoss, UK) is used to obtain the pulse rate. A NEO-6M GPS module (u-blox, Taipei, Taiwan) is also used to send the user’s location to App. Reflective optical type CNY70 IR sensor (Hobbytronics limited, Wilberfoss, UK) is used in the design of the rotary encoder to identify the motor rotation in forward or reverse direction and also the speed of the motor. The design of a rotary encoder is basically composed of two CNY70 IR sensors and one encoder disc. The rotary encoder is mainly used to measure the motor rotation speed and the forward/reverse rotation. In this paper, the encoder disc consists of 36 sets of black-and-white grids. The wheel size is 20 cm in diameter. Thus, when the infrared sensor detects a set of a black-and-white grid of the encoder disc, the moving distance of the wheel is about 1.7 cm. To determine the rotational direction, two sets of CNY70 sensors are used. Also, the VNH5019A-E motor driver (STMicroelectronics, El Paso, TX, USA) is used for PWM switching control.
The developed smart walker is shown in
Figure 2, where a pushcart is utilized as the frame structure such that the installing of sensors and active power-aided wheels are easily performed. In
Figure 2, two flexiforce sensors are fixed on the handle to measure the grip strength downwards and forwards, respectively. Especially, two front castors of the cart are replaced with motor-driven wheels. Some other components are designed and made by SolidWorks and 3D printing, as shown in
Figure 3. For example, a coupler has been made such that the motor and wheel can be tightly coupled, shown as
Figure 3a,b. In addition, an L-shaped bracket was made in order to mount the motor on the walker, as shown in
Figure 3c. The wheel with the coupling device along with the designed rotary encoder disc is shown in
Figure 3d. The designed system allows the smart walker to judge the user’s posture and surrounding information and control the motor accordingly. The user can easily operate the necessary functionalities. In this study, the combination of a 12SGU-24V-3200R DC motor, 24 V 200 W, and a 5GX-50K speed reducer is considered. Due to the requirement of large torque at low speed, the 3200 rpm motor is matched with a 50:1 speed reducer. Two lead-acid batteries connected in series are used, 24 V 12 Ah. If the working duty is less than 50%, the battery can support the walker more than 90 min.
3. ROS-Based Fuzzy Controller Design with User’s Posture
In the power-assistance design, a fuzzy controller is applied to make the manipulation more effective. The flow chart of the system execution process of the smart walker is shown in
Figure 4. Particularly, both the surface situation and the user’s posture are taken into consideration. All the sensing data, including the surface slope, moving speed, and grip forces, are considered as the inputs to the fuzzy controller. Then the defuzzified output provides a decision as the demand to the motor. The details are discussed in the following Section.
3.1. ROS Framework
In the proposed system, the robot operating system (ROS) is used as a software framework. ROS is an open-source middleware, providing services like hardware abstraction, low-level device control, implementation of a commonly used function, message transmission between the nodes, and package management [
33]. A node is a process that performs computation. ROS nodes use a ROS client library to communicate with other nodes. ROS provides a number of libraries for doing complex tasks such as running multiple sensors simultaneously. This means that sensor nodes can be executed independently at a time without affecting each other. In the ROS framework, the so-called message, first delivered to the topic, is transferred from one node to another node. The topic is similar to a bulletin board where nodes post their messages and each node can freely access. The node that sends a message is called Publisher, and the node that receives a message is called a Subscriber. The ROS-based framework is really flexible and adaptable to the needs of the user.
In this study, the system integration, including the data sensing and fuzzy controller design, is based on a ROS framework as shown in
Figure 5. In this ROS framework, the whole system is divided into four packages, namely data collection, fuzzy controller, data storage, and motor control. In a package, each node transmits data among other nodes through topics by acting as publisher and/or subscriber. Taking a close look at the ROS framework, the fuzzy controller receives the data about the user’s posture and the surface slope and then provides an output decision which becomes an input to the motor controller. Under the ROS framework, each node can perform one-to-one, one-to-many, many-to-one, and many-to-many data sharing regardless of a publisher or a subscriber. The advantage of writing a program under the ROS framework is that the program execution of Node1~Node6 can be performed separately in a multiplexed manner. Thus, the complexity of program coding can be reduced and the program fault forbearance rate becomes higher. More importantly, under the ROS framework, the entire program will not be failed due to a single node error.
3.2. Fuzzy Controller Design
The readings of the gyro sensor, rotary encoder, and two flexiforce sensors are considered for the fuzzy controller design. The data from the gyro sensor can be used to determine whether the current road surface is rising upward, flat, or declining downward. The encoder reading indicates the movement status of the walker, such as moving forward, standing still, or moving backward. In addition, two flexiforce sensors are used to measure the forces exerted by the user’s grip strength forward and downward.
The Mamdani’s Min-Max inference method is used in this paper. First, the cases without the user postures are considered, where the slope gradient (
) and the moving speed (
v) are the two input variables. The input membership functions are in triangular type, shown in
Figure 6. The fuzzy if-then rules are illustrated in
Table 1. The speed is considered as the output variable, where the membership function is in singleton type, shown in
Figure 7. The linguistic variables of these fuzzy sets are NL (Negative Large), NS (Negative Small), ZO (Zero), PS (Positive Small), and PL (Positive Large). The design ideas of this study are described below in details. With the triangular input membership functions, the matching degrees of input data are easily obtained. Moreover, the output membership functions are singleton values such that the computational complexity of the defuzzification computation is significantly simplified. It is noticed that membership functions could be triangular, Gaussian, singleton, or other types. Basically, there is no restrictive rule for the selection of membership functions. The defuzzified outputs could be a little bit different due to selected membership functions. In real applications, the domain knowledge about the problem could be of much help, of which appropriate range of membership functions and fuzzy rules can be determined.
For the slope gradient
, Positive (P) means uphill and Negative (N) means downhill. For examples, PL means that the walker is moving uphill and the slope is greater than 4%, PS means the walker is moving uphill and the slope is between 0 and 8%, ZO means the walker is moving on a flat surface and the slope reading is between −4% and 4%. Similarly, NS means that the walker is moving downhill and the slope is between −8% and 0%. In addition, NL means the walker is moving downhill and the slope is less than −4%. For the speed
v, Positive (P) means the walker is moving forward toward the user’s front direction, and Negative (N) means the walker is moving backward in the reverse direction. In
Figure 5, PL and PS mean the walker is moving at more than 1 km/h and between 0 and 2 km/h, respectively, in forwarding direction, ZO means walker speed is between −1 and 1 km/h. Similarly, NS and NL mean the walker speed is −2~0 km/h and less than −1 km/h, respectively, in the reverse direction. In the output, Positive (P) means that an additive forward force will be produced along with the user’s front direction. In the same way, Negative (N) means that a reversal force will be generated to the walker toward the backward direction. For example, PL and PS mean that a forward force of 2 km/h and 1 km/h will be fed to motor as controller output respectively. Similarly, NL and NS mean that a reversal force of −2 km/h and −1 km/h will be fed to motor as controller output, respectively. ZO indicates no need to change in speed meaning that the walker will keep the movement in previous state.
Note that the if-then rules in
Table 1 consider only the stationary cases, where the designated rules are used to hold the walker standstill regardless of the walker speed and surface slope. Some of the design rules are explained below to understand the design concepts more clearly. For example, in the case of
“If is PL and v is NL, Then the output is PL,”
Here, the walker is placed on a steep uphill ramp, but the walker is moving backward at a large speed. Under this circumstance, a large forward force is required to hold the walker in stationary. For another case,
“If is NS and v is PS, Then the output is NS,”
Here, the walker is placed on a small downhill slope, and the walker is moving forward with a small speed. So, here, a small reversal force is required to hold the walker standstill.
3.3. User’s Posture Judgement
This study adds the user’s posture judgement to the fuzzy controller. This part plays an important role for the smart walker because this walker not only helps the user in walking but also protects them from falling down while walking. Thus, two flexiforce sensors are placed on the handrail of the smart walker. The values of the forces exerted are considered to remedy the fuzzy rules. Both of the sensors reading can be used to analyze the user’s current posture. The force exerted by the two sensors is named as the forward force
and downward force
. Again, both the forces are divided into large (L: >80 lbf), medium (M: 30~80 lbf), and small (S: <30 lbf). As three categories of forces, there are a total of nine possibilities for posture judgment. With the change of the reading values of
and
the current posture of the user can be identified, shown as in
Table 2,
Table 3 and
Table 4. The cases in a flat surface are addressed in
Table 2, and the cases of moving uphill and downhill are summarized in
Table 3 and
Table 4, respectively. This posture judgement will provide appropriate assistance to the users to walk comfortably and safely on a flat or ramp surface.
The details about the postures in different surfaces are explained in the following. The postures on a flat surface are quite intuitive. To make the explanation of postures easier, the nine postures in flat surface are shown in
Figure 8,
Figure 9 and
Figure 10. For example, if
and
, the user is most likely struggling hard to push the walker as it could not move (c.n.m). In the case of
and
, the user is leaning forward slightly (l.f.). Moreover, if
and
, the user is likely bending forward (b.f.). Also, in
Table 3, n.w. stands for normal walking, l.o. stands for lean on the walker, and s.s. represents stand still.
As the walker moving uphill, same force readings of and may indicate different postures in a few cases. For example, if and , the user posture is bending forward on a flat surface. However, while moving uphill, the posture recognized as leaning forward is more appropriate. On the other hand, while the walker is moving downhill, most cases of the same reading of fore sensors indicate the same user postures like the uphill cases. Except that if and , the user posture is more likely to be leaning forward.
3.4. Remedy of Fuzzy Rules
Table 1 gives the nominal fuzzy rules according to the surface slope and walker velocity. So far, the postures of the user are not involved. With the consideration of user postures, some of the fuzzy rules are required to be modified to provide comfort and safety to the users. Based on the implementation of the proposed smart walker, the user moves only in forward direction, thus the walker velocity
v is greater than or equal to zero. Hence, only ZO, PS, and PL cases of
v are investigated while the user’s postures are considered. In the following, two power-assistant design concepts are provided for the remedy of fuzzy rules, as shown in Algorithms 1 and 2. The notations ⋁ and ⋀ stand for the logic OR and AND, respectively. From the discussion in
Section 3.3, user’s postures can be identified from
and
, and all possible postures can be categorized as normal walking, lean forward, and bending forward, etc. With user’s postures, the adjustment of the fuzzy rules will be discussed in the following. As the
and
are divided into three categories L, M, and S, there are nine remedy fuzzy tables, out of which three tables are shown as examples in
Table 5,
Table 6 and
Table 7.
First, the cases of
v = ZO are addressed, and the design concepts are summarized in Algorithm 1. From
Table 1, if the slope
= PS, the corresponding controller output is PS without the consideration of the postures. Moreover, if
= L and
= S, the user is bending forward from
Table 4. In this situation, the walker needs to slow down, thus the corresponding controller output is modified to NS for fall prevention. Similarly, originally if
= ZO, the controller output is ZO in
Table 1. But with the posture
= L and
= S, the controller output is changed to NS in order to maintain safe operation. Considering the posture
= L and
= S, the remaining cases of different
and
v are analyzed in the same way, and the adjustments are summarized in
Table 5.
Then the cases of
v = PS are discussed, and the design concepts are summarized in Algorithm 2. In a flat surface,
= ZO, the original controller output is NS from
Table 1. But, with
= L and
= L, it implies that the user is pushing hard to move the walker. So, a slightly forward force is required for the movement of walker. Thus, the controller output is changed to ZO as shown in
Table 6. Similarly, if
= PS, the controller demand is ZO without the consideration of postures form
Table 1. Since the user is pushing hard to move uphill, more forward force is required, and the controller output is changed to PS, as shown
Table 6.
Algorithm 1: Power assistance with user’s posture (v = ZO) |
Input variables: , , , v While = PS or PL If = (L ⋁ M) ⋀ = S, then controller output = slower or reversal else controller output = forward While = ZO If ( = (L ⋁ M) ⋀ = S) ⋁ ( = L ⋀ = M), then controller output = slow reversal else if ( = (L ⋁ M) ⋀ = L) ⋁ ( = M ⋀ = M), then controller output = forward slowly else stay the same While = NS or NL If ( = M) ⋀ ( = L ⋁ M), then controller output = slower than general else controller output = reverse (fast or slow) End |
Algorithm 2: Power assistance design user’s posture (v = PS or PL) |
Input variables: , , , v While = PS or PL If ( = L ⋀ = L) ⋁ ( = M ⋀ = L) ⋁ ( = M ⋀ = M), then controller output = forward fast else if ( = L ⋀ = M) ⋁ ( = L ⋀ = S) ⋁ ( = M ⋀ = S), then controller output = reverse (slow or fast) else stay the same While = ZO If = L ⋀ = L, then controller output = forward fast else if = M ⋀ = (L ⋁ M), then controller output = stay the same else reverse (slow or fast) While = NS or NL controller output = reverse slow (v = PS) or reverse fast (v = PL) End |
5. Conclusions and Future Work
In this paper, we have presented an active smart walker that could help the elderly as well as to the people who need support to walk independently and safely. The device has the functions of intelligent control, posture judgment, environment sensing, and real-time monitoring. From the grip forces, six postures can be identified. Three scenarios, flat, downhill, and uphill surfaces, are considered for the experimental testing. The user can get power-assistance in walking and can also be protected from collision with obstacle. If the user has a possibility of falling, the motor can immediately control the walker to stabilize the user’s posture. In addition, an App has designed, so that family members or doctors can instantly get the current status of the user. If the user encountered accident like falling or losing balance, then this information will be updated to the database and the same information can be obtained through the App. Thus, the proposed walker not only helps in assisting, but also includes the scope of care for elderly. In the future, machine learning algorithms can be considered to enhance the values of this proposed walker. For example, the deep learning algorithms will be integrated with the lower limb posture recognition. The user’s recovery situations can be recorded and analyzed from the data like walking speed and walking pattern. The analysis results could help doctors to judge the treatment procedures to improve the patient’s recovery.