ROS-Based Smart Walker with Fuzzy Posture Judgement and Power Assistance

In recent years the increased rate of the aging population has become more serious. With aging, the elderly sometimes inevitably faces many problems which lead to slow walking, unstable or weak limbs and even fall-related injuries. So, it is very important to develop an assistive aid device. In this study, a fuzzy controller-based smart walker with a distributed robot operating system (ROS) framework is designed to assist in independent walking. The combination of Raspberry Pi and PIC microcontroller acts as the control kernel of the proposed device. In addition, the environmental information and user postures can be recognized with the integration of sensors. The sensing data include the road slope, velocity of the walker, and user’s grip forces, etc. According to the sensing data, the fuzzy controller can produce an assistive force to make the walker moving more smoothly and safely. Apart from this, a mobile application (App) is designed that allows the user’s guardian to view the current status of the smart walker as well as to track the user’s location.


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.

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.

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.

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.

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 (S g ) 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 S g , 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 S g 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 S g 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.

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 f f and downward force f d . 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 f f and f d the current posture of the user can be identified, shown as in Tables 2-4. The cases in a flat surface are addressed in Table 2, and the cases of moving uphill and downhill are summarized in Tables 3 and 4, respectively. This posture judgement will provide appropriate assistance to the users to walk comfortably and safely on a flat or ramp surface.    In the case of f d = M and f f = L, the user is leaning forward slightly (l.f.). Moreover, if f d = S and f f = L, 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.    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  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 Tables 5-7.

Remedy of Fuzzy Rules
First, the cases of v = ZO are addressed, and the design concepts are summarized in Algorithm 1. From Table 1, if the slope S = 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 S = 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 S 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, S = 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 S = 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.  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 Tables 5-7.

Remedy of Fuzzy Rules
First, the cases of v = ZO are addressed, and the design concepts are summarized in Algorithm 1. From Table 1, if the slope S = 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 S = 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 S 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, S = 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 S = 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.
stand for the logic OR and AND, respectively. From the discussion in Section 3.3, user's postures can be identified from f f and f d , 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 f f and f d 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 Tables 5-7.  First, the cases of v = ZO are addressed, and the design concepts are summarized in Algorithm 1. From Table 1, if the slope S g = PS, the corresponding controller output is PS without the consideration of the postures. Moreover, if f f = L and f d = 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 S g = ZO, the controller output is ZO in Table 1. But with the posture f f = L and f d = S, the controller output is changed to NS in order to maintain safe operation.
Considering the posture f f = L and f d = S, the remaining cases of different S g 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, S g = ZO, the original controller output is NS from Table 1.
But, with f f = L and f d = 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 S g = 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. zy Rules s the nominal fuzzy rules according to the surface slope and walker vepostures of the user are not involved. With the consideration of user f the fuzzy rules are required to be modified to provide comfort and s. Based on the implementation of the proposed smart walker, the user ward direction, thus the walker velocity v is greater than or equal to zero. PS, and PL cases of v are investigated while the user's postures are conllowing, two power-assistant design concepts are provided for the rems, as shown in Algorithms 1 and 2. The notations ⋁ and ⋀ stand for the D, respectively. From the discussion in Section 3.3, user's postures can and , and all possible postures can be categorized as normal walk-, and bending forward, etc. With user's postures, the adjustment of the be discussed in the following. As the and are divided into three and S, there are nine remedy fuzzy tables, out of which three tables are les in Tables 5-7. ses of v = ZO are addressed, and the design concepts are summarized in m Table 1, if the slope S = PS, the corresponding controller output is PS ideration of the postures. Moreover, if = L and = S, the user is from Table 4. In this situation, the walker needs to slow down, thus the ntroller output is modified to NS for fall prevention. Similarly, originally ntroller output is ZO in Table 1. But with the posture = L and = S, tput is changed to NS in order to maintain safe operation. Considering L and = S, the remaining cases of different S and v are analyzed in d the adjustments are summarized in Table 5. es of v = PS are discussed, and the design concepts are summarized in flat surface, S = ZO, the original controller output is NS from Table 1. and = L, it implies that the user is pushing hard to move the walker. y Rules the nominal fuzzy rules according to the surface slope and walker veostures of the user are not involved. With the consideration of user the fuzzy rules are required to be modified to provide comfort and Based on the implementation of the proposed smart walker, the user ard direction, thus the walker velocity v is greater than or equal to zero. , and PL cases of v are investigated while the user's postures are conwing, two power-assistant design concepts are provided for the remas shown in Algorithms 1 and 2. The notations ⋁ and ⋀ stand for the , respectively. From the discussion in Section 3.3, user's postures can and , and all possible postures can be categorized as normal walkand bending forward, etc. With user's postures, the adjustment of the discussed in the following. As the and are divided into three d S, there are nine remedy fuzzy tables, out of which three tables are in Tables 5-7. s of v = ZO are addressed, and the design concepts are summarized in Table 1, if the slope S = PS, the corresponding controller output is PS eration of the postures. Moreover, if = L and = S, the user is om Table 4. In this situation, the walker needs to slow down, thus the troller output is modified to NS for fall prevention. Similarly, originally roller output is ZO in Table 1. But with the posture = L and = S, ut is changed to NS in order to maintain safe operation. Considering and = S, the remaining cases of different S and v are analyzed in the adjustments are summarized in Table 5. s of v = PS are discussed, and the design concepts are summarized in lat surface, S = ZO, the original controller output is NS from Table 1. d = L, it implies that the user is pushing hard to move the walker.  Table 4. In this situation, the walker needs to slow down, thus the ontroller output is modified to NS for fall prevention. Similarly, originally ntroller output is ZO in Table 1. But with the posture = L and = S, tput is changed to NS in order to maintain safe operation. Considering L and = S, the remaining cases of different S and v are analyzed in nd the adjustments are summarized in Table 5.  Table 1, if the slope S = PS, the corresponding controller output is PS deration of the postures. Moreover, if = L and = S, the user is rom Table 4. In this situation, the walker needs to slow down, thus the troller output is modified to NS for fall prevention. Similarly, originally troller output is ZO in Table 1. But with the posture = L and = S, ut is changed to NS in order to maintain safe operation. Considering and = S, the remaining cases of different S and v are analyzed in the adjustments are summarized in Table 5. . Remedy of Fuzzy Rules Table 1 gives the nominal fuzzy rules according to the surface slope and walker vecity. So far, the postures of the user are not involved. With the consideration of user stures, some of the fuzzy rules are required to be modified to provide comfort and fety to the users. Based on the implementation of the proposed smart walker, the user oves only in forward direction, thus the walker velocity v is greater than or equal to zero. nce, only ZO, PS, and PL cases of v are investigated while the user's postures are conered. In the following, two power-assistant design concepts are provided for the remy of fuzzy rules, as shown in Algorithms 1 and 2. The notations ⋁ and ⋀ stand for the gic OR and AND, respectively. From the discussion in Section 3.3, user's postures can identified from and , and all possible postures can be categorized as normal walkg, lean forward, and bending forward, etc. With user's postures, the adjustment of the zzy rules will be discussed in the following. As the and are divided into three tegories L, M, and S, there are nine remedy fuzzy tables, out of which three tables are own as examples in Tables 5-7.
First, the cases of v = ZO are addressed, and the design concepts are summarized in gorithm 1. From Table 1, if the slope S = PS, the corresponding controller output is PS thout the consideration of the postures. Moreover, if = L and = S, the user is nding forward from Table 4. In this situation, the walker needs to slow down, thus the rresponding controller output is modified to NS for fall prevention. Similarly, originally S = ZO, the controller output is ZO in Table 1. But with the posture = L and = S, e controller output is changed to NS in order to maintain safe operation. Considering e posture = L and = S, the remaining cases of different S and v are analyzed in e same way, and the adjustments are summarized in Table 5.   Table 1 gives the nominal fuzzy rules according to the surface slope and walker veocity. So far, the postures of the user are not involved. With the consideration of user ostures, some of the fuzzy rules are required to be modified to provide comfort and afety to the users. Based on the implementation of the proposed smart walker, the user oves only in forward direction, thus the walker velocity v is greater than or equal to zero. ence, only ZO, PS, and PL cases of v are investigated while the user's postures are conidered. In the following, two power-assistant design concepts are provided for the remdy of fuzzy rules, as shown in Algorithms 1 and 2. The notations ⋁ and ⋀ stand for the ogic OR and AND, respectively. From the discussion in Section 3.3, user's postures can e identified from and , and all possible postures can be categorized as normal walkng, lean forward, and bending forward, etc. With user's postures, the adjustment of the uzzy rules will be discussed in the following. As the and are divided into three ategories L, M, and S, there are nine remedy fuzzy tables, out of which three tables are hown as examples in Tables 5-7.
First, the cases of v = ZO are addressed, and the design concepts are summarized in lgorithm 1. From Table 1, if the slope S = PS, the corresponding controller output is PS ithout the consideration of the postures. Moreover, if = L and = S, the user is ending forward from Table 4. In this situation, the walker needs to slow down, thus the orresponding controller output is modified to NS for fall prevention. Similarly, originally f S = ZO, the controller output is ZO in Table 1. But with the posture = L and = S, he controller output is changed to NS in order to maintain safe operation. Considering he posture = L and = S, the remaining cases of different S and v are analyzed in he same way, and the adjustments are summarized in Table 5.  Table 1, if the slope S = PS, the corresponding controller output is PS nsideration of the postures. Moreover, if = L and = S, the user is rd from Table 4. In this situation, the walker needs to slow down, thus the controller output is modified to NS for fall prevention. Similarly, originally controller output is ZO in Table 1. But with the posture = L and = S, output is changed to NS in order to maintain safe operation. Considering  Table 4. In this situation, the walker needs to slow down, thus the ontroller output is modified to NS for fall prevention. Similarly, originally ntroller output is ZO in Table 1. But with the posture = L and = S, tput is changed to NS in order to maintain safe operation. Considering  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 Tables 5-7.

Remedy of Fuzzy Rules
First, the cases of v = ZO are addressed, and the design concepts are summarized in Algorithm 1. From Table 1, if the slope S = 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 S = 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  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 Tables 5-7.

Remedy of Fuzzy Rules
First, the cases of v = ZO are addressed, and the design concepts are summarized in Algorithm 1. From Table 1, if the slope S = 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 S = 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  Table 4. In this situation, the walker needs to slow down, thus the  Tables 5-7. rst, the cases of v = ZO are addressed, and the design concepts are summarized in thm 1. From Table 1, if the slope S = PS, the corresponding controller output is PS t the consideration of the postures. Moreover, if = L and = S, the user is g forward from Table 4. In this situation, the walker needs to slow down, thus the M), then controller output = slower than general else controller output = reverse (fast or slow) End s minal fuzzy rules according to the surface slope and walker veres of the user are not involved. With the consideration of user zzy rules are required to be modified to provide comfort and d on the implementation of the proposed smart walker, the user irection, thus the walker velocity v is greater than or equal to zero. PL cases of v are investigated while the user's postures are con-, two power-assistant design concepts are provided for the remwn in Algorithms 1 and 2. The notations ⋁ and ⋀ stand for the ectively. From the discussion in Section 3.3, user's postures can d , and all possible postures can be categorized as normal walkending forward, etc. With user's postures, the adjustment of the ussed in the following. As the and are divided into three here are nine remedy fuzzy tables, out of which three tables are bles 5-7. = ZO are addressed, and the design concepts are summarized in 1, if the slope S = PS, the corresponding controller output is PS n of the postures. Moreover, if = L and = S, the user is able 4. In this situation, the walker needs to slow down, thus the output is modified to NS for fall prevention. Similarly, originally output is ZO in Table 1. But with the posture = L and = S, changed to NS in order to maintain safe operation. Considering = S, the remaining cases of different S and v are analyzed in djustments are summarized in Table 5. = PS are discussed, and the design concepts are summarized in rface, S = ZO, the original controller output is NS from Table 1. = L, it implies that the user is pushing hard to move the walker. rce is required for the movement of walker. Thus, the controller as shown in Table 6. Similarly, if S = PS, the controller demand eration of postures form Table 1. Since the user is pushing hard rward force is required, and the controller output is changed to With the consideration of user , some of the fuzzy rules are required to be modified to provide comfort and the users. Based on the implementation of the proposed smart walker, the user nly in forward direction, thus the walker velocity v is greater than or equal to zero. nly ZO, PS, and PL cases of v are investigated while the user's postures are con-In the following, two power-assistant design concepts are provided for the remzzy rules, as shown in Algorithms 1 and 2. The notations ⋁ and ⋀ stand for the and AND, respectively. From the discussion in Section 3.3, user's postures can ified from and , and all possible postures can be categorized as normal walkforward, and bending forward, etc. With user's postures, the adjustment of the les will be discussed in the following. As the and are divided into three es L, M, and S, there are nine remedy fuzzy tables, out of which three tables are s examples in Tables 5-7. st, the cases of v = ZO are addressed, and the design concepts are summarized in m 1. From Table 1, if the slope S = PS, the corresponding controller output is PS the consideration of the postures. Moreover, if = L and = S, the user is forward from Table 4. In this situation, the walker needs to slow down, thus the nding controller output is modified to NS for fall prevention. Similarly, originally O, the controller output is ZO in Table 1. But with the posture = L and = S, roller output is changed to NS in order to maintain safe operation. Considering ure = L and = S, the remaining cases of different S and v are analyzed in way, and the adjustments are summarized in Table 5. n the cases of v = PS are discussed, and the design concepts are summarized in m 2. In a flat surface, S = ZO, the original controller output is NS from Table 1. h = L and = L, it implies that the user is pushing hard to move the walker. htly forward force is required for the movement of walker. Thus, the controller s changed to ZO as shown in Table 6. Similarly, if S = PS, the controller demand ithout the consideration of postures form Table 1. Since the user is pushing hard uphill, more forward force is required, and the controller output is changed to own Table 6. medy of Fuzzy Rules able 1 gives the nominal fuzzy rules according to the surface slope and walker ve-. So far, the postures of the user are not involved. With the consideration of user res, some of the fuzzy rules are required to be modified to provide comfort and to the users. Based on the implementation of the proposed smart walker, the user s only in forward direction, thus the walker velocity v is greater than or equal to zero.
, only ZO, PS, and PL cases of v are investigated while the user's postures are cond. In the following, two power-assistant design concepts are provided for the remfuzzy rules, as shown in Algorithms 1 and 2. The notations ⋁ and ⋀ stand for the R and AND, respectively. From the discussion in Section 3.3, user's postures can ntified from and , and all possible postures can be categorized as normal walkan forward, and bending forward, etc. With user's postures, the adjustment of the rules will be discussed in the following. As the and are divided into three ries L, M, and S, there are nine remedy fuzzy tables, out of which three tables are as examples in Tables 5-7. irst, the cases of v = ZO are addressed, and the design concepts are summarized in ithm 1. From Table 1, if the slope S = PS, the corresponding controller output is PS ut the consideration of the postures. Moreover, if = L and = S, the user is ng forward from Table 4. In this situation, the walker needs to slow down, thus the ponding controller output is modified to NS for fall prevention. Similarly, originally ZO, the controller output is ZO in Table 1. But with the posture = L and = S, ntroller output is changed to NS in order to maintain safe operation. Considering sture = L and = S, the remaining cases of different S and v are analyzed in me way, and the adjustments are summarized in Table 5. hen the cases of v = PS are discussed, and the design concepts are summarized in ithm 2. In a flat surface, S = ZO, the original controller output is NS from Table 1. ith = L and = L, it implies that the user is pushing hard to move the walker. lightly forward force is required for the movement of walker. Thus, the controller t is changed to ZO as shown in Table 6. Similarly, if S = PS, the controller demand without the consideration of postures form Table 1. Since the user is pushing hard ve uphill, more forward force is required, and the controller output is changed to shown Table 6.  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 Tables 5-7.

Remedy of Fuzzy Rules
First, the cases of v = ZO are addressed, and the design concepts are summarized in Algorithm 1. From Table 1, if the slope S = 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 S = 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 S 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, S = 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 S = 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.  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 Tables 5-7.

Remedy of Fuzzy Rules
First, the cases of v = ZO are addressed, and the design concepts are summarized in Algorithm 1. From Table 1, if the slope S = 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 S = 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 S 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, S = 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 S = 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. Rules e nominal fuzzy rules according to the surface slope and walker vestures of the user are not involved. With the consideration of user e fuzzy rules are required to be modified to provide comfort and ased on the implementation of the proposed smart walker, the user rd direction, thus the walker velocity v is greater than or equal to zero. and PL cases of v are investigated while the user's postures are coning, two power-assistant design concepts are provided for the rems shown in Algorithms 1 and 2. The notations ⋁ and ⋀ stand for the respectively. From the discussion in Section 3.3, user's postures can and , and all possible postures can be categorized as normal walkd bending forward, etc. With user's postures, the adjustment of the iscussed in the following. As the and are divided into three S, there are nine remedy fuzzy tables, out of which three tables are n Tables 5-7. of v = ZO are addressed, and the design concepts are summarized in able 1, if the slope S = PS, the corresponding controller output is PS ration of the postures. Moreover, if = L and = S, the user is m Table 4. In this situation, the walker needs to slow down, thus the oller output is modified to NS for fall prevention. Similarly, originally ller output is ZO in Table 1. But with the posture = L and = S, t is changed to NS in order to maintain safe operation. Considering nd = S, the remaining cases of different S and v are analyzed in e adjustments are summarized in Table 5. of v = PS are discussed, and the design concepts are summarized in t surface, S = ZO, the original controller output is NS from Table 1. = L, it implies that the user is pushing hard to move the walker. d force is required for the movement of walker. Thus, the controller ZO as shown in Table 6. Similarly, if S = PS, the controller demand nsideration of postures form Table 1. Since the user is pushing hard e forward force is required, and the controller output is changed to .  Table 1 gives the nominal fuzzy rules according to the surface slope and walker vety. So far, the postures of the user are not involved. With the consideration of user tures, some of the fuzzy rules are required to be modified to provide comfort and ty to the users. Based on the implementation of the proposed smart walker, the user es only in forward direction, thus the walker velocity v is greater than or equal to zero. ce, only ZO, PS, and PL cases of v are investigated while the user's postures are conred. In the following, two power-assistant design concepts are provided for the remof fuzzy rules, as shown in Algorithms 1 and 2. The notations ⋁ and ⋀ stand for the c OR and AND, respectively. From the discussion in Section 3.3, user's postures can dentified from and , and all possible postures can be categorized as normal walklean forward, and bending forward, etc. With user's postures, the adjustment of the y rules will be discussed in the following. As the and are divided into three gories L, M, and S, there are nine remedy fuzzy tables, out of which three tables are wn as examples in Tables 5-7.

Remedy of Fuzzy Rules
First, the cases of v = ZO are addressed, and the design concepts are summarized in orithm 1. From Table 1, if the slope S = PS, the corresponding controller output is PS out the consideration of the postures. Moreover, if = L and = S, the user is ding forward from Table 4. In this situation, the walker needs to slow down, thus the esponding controller output is modified to NS for fall prevention. Similarly, originally = ZO, the controller output is ZO in Table 1. But with the posture = L and = S, controller output is changed to NS in order to maintain safe operation. Considering posture = L and = S, the remaining cases of different S and v are analyzed in 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 orithm 2. In a flat surface, S = ZO, the original controller output is NS from Table 1. , with = L and = L, it implies that the user is pushing hard to move the walker. a slightly forward force is required for the movement of walker. Thus, the controller put is changed to ZO as shown in Table 6. Similarly, if S = PS, the controller demand O without the consideration of postures form Table 1. Since the user is pushing hard ove uphill, more forward force is required, and the controller output is changed to as shown Table 6.  Table 1 gives the nominal fuzzy rules according to the surface slope and walker ve-city. So far, the postures of the user are not involved. With the consideration of user stures, some of the fuzzy rules are required to be modified to provide comfort and fety to the users. Based on the implementation of the proposed smart walker, the user oves only in forward direction, thus the walker velocity v is greater than or equal to zero. ence, only ZO, PS, and PL cases of v are investigated while the user's postures are conered. In the following, two power-assistant design concepts are provided for the rem-y of fuzzy rules, as shown in Algorithms 1 and 2. The notations ⋁ and ⋀ stand for the gic OR and AND, respectively. From the discussion in Section 3.3, user's postures can identified from and , and all possible postures can be categorized as normal walk-g, lean forward, and bending forward, etc. With user's postures, the adjustment of the zzy rules will be discussed in the following. As the and are divided into three tegories L, M, and S, there are nine remedy fuzzy tables, out of which three tables are own as examples in Tables 5-7.

Remedy of Fuzzy Rules
First, the cases of v = ZO are addressed, and the design concepts are summarized in lgorithm 1. From Table 1, if the slope S = PS, the corresponding controller output is PS ithout the consideration of the postures. Moreover, if = L and = S, the user is nding forward from Table 4. In this situation, the walker needs to slow down, thus the rresponding controller output is modified to NS for fall prevention. Similarly, originally S = ZO, the controller output is ZO in Table 1. But with the posture = L and = S, e controller output is changed to NS in order to maintain safe operation. Considering e posture = L and = S, the remaining cases of different S and v are analyzed in e 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 lgorithm 2. In a flat surface, S = ZO, the original controller output is NS from Table 1. t, with = L and = L, it implies that the user is pushing hard to move the walker. , a slightly forward force is required for the movement of walker. Thus, the controller tput is changed to ZO as shown in Table 6. Similarly, if S = PS, the controller demand ZO without the consideration of postures form Table 1. Since the user is pushing hard move uphill, more forward force is required, and the controller output is changed to , as shown Table 6.  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 Tables 5-7.

Remedy of Fuzzy Rules
First, the cases of v = ZO are addressed, and the design concepts are summarized in Algorithm 1. From Table 1, if the slope S = 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 S = 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 S 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, S = 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 S = 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.  Table 1 gives the nominal fuzzy rules according to the surface slope and walker ve-locity. 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 rem-edy 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 walk-ing, 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 Tables 5-7.

Remedy of Fuzzy Rules
First, the cases of v = ZO are addressed, and the design concepts are summarized in Algorithm 1. From Table 1, if the slope S = 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 S = 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 S 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, S = 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 S = 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. minal fuzzy rules according to the surface slope and walker ve-es of the user are not involved. With the consideration of user zzy rules are required to be modified to provide comfort and on the implementation of the proposed smart walker, the user rection, thus the walker velocity v is greater than or equal to zero. PL cases of v are investigated while the user's postures are con-, two power-assistant design concepts are provided for the rem-wn in Algorithms 1 and 2. The notations ⋁ and ⋀ stand for the ectively. From the discussion in Section 3.3, user's postures can , and all possible postures can be categorized as normal walk-nding forward, etc. With user's postures, the adjustment of the ssed in the following. As the and are divided into three ere are nine remedy fuzzy tables, out of which three tables are bles 5-7. = ZO are addressed, and the design concepts are summarized in 1, if the slope S = PS, the corresponding controller output is PS n of the postures. Moreover, if = L and = S, the user is ble 4. In this situation, the walker needs to slow down, thus the output is modified to NS for fall prevention. Similarly, originally output is ZO in Table 1. But with the posture = L and = S, hanged to NS in order to maintain safe operation. Considering = S, the remaining cases of different S and v are analyzed in justments are summarized in Table 5. = PS are discussed, and the design concepts are summarized in face, S = ZO, the original controller output is NS from Table 1. = L, it implies that the user is pushing hard to move the walker. ce is required for the movement of walker. Thus, the controller as shown in Table 6. Similarly, if S = PS, the controller demand eration of postures form Table 1. Since the user is pushing hard ward force is required, and the controller output is changed to Rules e nominal fuzzy rules according to the surface slope and walker ve-stures of the user are not involved. With the consideration of user e fuzzy rules are required to be modified to provide comfort and ased on the implementation of the proposed smart walker, the user rd direction, thus the walker velocity v is greater than or equal to zero. and PL cases of v are investigated while the user's postures are coning, two power-assistant design concepts are provided for the rem-s shown in Algorithms 1 and 2. The notations ⋁ and ⋀ stand for the respectively. From the discussion in Section 3.3, user's postures can and , and all possible postures can be categorized as normal walk-d bending forward, etc. With user's postures, the adjustment of the iscussed in the following. As the and are divided into three S, there are nine remedy fuzzy tables, out of which three tables are n Tables 5-7. of v = ZO are addressed, and the design concepts are summarized in able 1, if the slope S = PS, the corresponding controller output is PS ration of the postures. Moreover, if = L and = S, the user is m Table 4. In this situation, the walker needs to slow down, thus the oller output is modified to NS for fall prevention. Similarly, originally ller output is ZO in Table 1. But with the posture = L and = S, t is changed to NS in order to maintain safe operation. Considering nd = S, the remaining cases of different S and v are analyzed in e adjustments are summarized in Table 5. of v = PS are discussed, and the design concepts are summarized in t surface, S = ZO, the original controller output is NS from Table 1. = L, it implies that the user is pushing hard to move the walker. d force is required for the movement of walker. Thus, the controller ZO as shown in Table 6. Similarly, if S = PS, the controller demand nsideration of postures form Table 1. Since the user is pushing hard e forward force is required, and the controller output is changed to .  Table 1 gives the nominal fuzzy rules according to the surface slope and walker vey. So far, the postures of the user are not involved. With the consideration of user ures, some of the fuzzy rules are required to be modified to provide comfort and y to the users. Based on the implementation of the proposed smart walker, the user es only in forward direction, thus the walker velocity v is greater than or equal to zero. ce, only ZO, PS, and PL cases of v are investigated while the user's postures are conred. In the following, two power-assistant design concepts are provided for the remof fuzzy rules, as shown in Algorithms 1 and 2. The notations ⋁ and ⋀ stand for the OR and AND, respectively. From the discussion in Section 3.3, user's postures can entified from and , and all possible postures can be categorized as normal walklean forward, and bending forward, etc. With user's postures, the adjustment of the y rules will be discussed in the following. As the and are divided into three ories L, M, and S, there are nine remedy fuzzy tables, out of which three tables are n as examples in Tables 5-7. First, the cases of v = ZO are addressed, and the design concepts are summarized in rithm 1. From Table 1, if the slope S = PS, the corresponding controller output is PS out the consideration of the postures. Moreover, if = L and = S, the user is ing forward from Table 4. In this situation, the walker needs to slow down, thus the esponding controller output is modified to NS for fall prevention. Similarly, originally = ZO, the controller output is ZO in Table 1. But with the posture = L and = S, ontroller output is changed to NS in order to maintain safe operation. Considering osture = L and = S, the remaining cases of different S and v are analyzed in ame way, and the adjustments are summarized in Table 5. Then the cases of v = PS are discussed, and the design concepts are summarized in rithm 2. In a flat surface, S = ZO, the original controller output is NS from Table 1. with = L and = L, it implies that the user is pushing hard to move the walker. slightly forward force is required for the movement of walker. Thus, the controller ut is changed to ZO as shown in Table 6. Similarly, if S = PS, the controller demand without the consideration of postures form Table 1. Since the user is pushing hard ove uphill, more forward force is required, and the controller output is changed to s shown Table 6.

Design of Experiments
The proposed system experimentation and the usage scenario of the smart walker are described in detail. The controller input and output value comparison are presented as shown in below graphs. In each graph the slope gradient is defined as −10% to 10% (Negative sign: downhill, Positive sign: uphill), the sensed grip force values are divided into large, medium, and small and the range is set between 0 and 150 lbf. The output is the motor output and the range is set between −5 km/h and 5 km/h (Negative sign: reverse force, Positive sign: forward force). For the posture judgment and to verify whether the designed fuzzy control is reasonable or not we considered many circumstances with different slope and force readings. Here, the user resembles to an elderly people who has a slower walking speed. So, here the speed of the walker is considered as ZO (−1 km/h to 1 km/h). As, the walker is considered to move in front direction only, so here ZO means the moving speed is less or equal to 1 km/h. Now, the designed system is experimented for real-time with three different slope gradients and the obtained results are explained below in detail. The snapshots are taken to show the user's postures while walking on different slopes as shown in Figures 11, 13, and 15. In the following cases, the control output corresponding to the slope gradients and the grip forces are shown in Figures  12, 14, and 16, respectively. The parameter settings of the fuzzy power-assistance and posture judgements are summarized in Table 8. The following experimental tests and results analyses are carried out. The arrangements of experimental results corresponding to different environments are also indicated in Table 8. The information about the participants who are involved in the function modules or integration tests are listed in Table 9. Table 8. Parameter settings and experimental results.

Fuzzy Controller
Slope S g setting as Figure 6 Velocity v Output setting as Figure 7 Posture judgment Grip force f f , f d L: >80 lbf; M: 30~80 lbf; S: <30 lbf

Experimental results
Downhill shown as Figure 11, Figure 12 Flat surface shown as Figure 13, Figure 14 Uphill shown as Figure 15, Figure 16        The snapshots are shown in Figure 11 and the corresponding recorded data are shown in Figure 12. In the 1st sub photo of Figure 11, it is shown that the user moves from flat surface toward downhill. Thus, the obtained slope graph ranges from 0% to −7% as shown in Figure 12. It is noted that the obtained graphs are not smooth due to the surface tiles pattern. In the 4th sub photo of Figure 11, here S g = NS, f f = M, f d = M, and v = ZO, that can be seen in Figure 12 at 13 s. From Table 2, without considering the posture, if v = ZO and S g = NS, then controller output = NS. But, from the sensing forces, the status f f = M and f d = M indicate the "normal walking" posture as shown in Table 5. It means that the user wants to walk forward with a normal speed. So, with the addition of posture, the controller output is changed from NS to ZO, as shown in Table 8. Hence the motor continued to produce speed +1 km/h for normal walking as shown in Figure 12. Then the 5th and 8th sub photos are considered. The sensing forces f f = M and f d = S indicate "lean forward" as shown in Table 5. In this situation, the walker is gradually moved away from the user, and the user may have chances of falling. Thus, the walker is required to slow down, so that the user can gradually regain the center of gravity and return to the normal posture of walking. From Algorithm 1, under this circumstance, the fuzzy controller output is changed from NS to NL. Consequently, a reverse force of −1 km/h is generated as shown in Figure 12 at 18 s and 28 s, respectively. After the walker is moved back near to the user, shown in the 6th sub photo of Figure 11, the f d is gradually increased to M for normal walking, as the 7th sub photo of Figure 11. Previous explanations are summarized in Table 10. The snapshots are shown in Figure 13 and the corresponding recorded data are shown in Figure 14. Here, S g = ZO and v = ZO. From Table 1, the fuzzy controller output is ZO without considering the posture. Considering the 1st sub photo of Figure 13, it can be seen that f f = M and f d = M from the sensing graph of Figure 14. This indicates "normal walking" posture as mentioned in Table 2. With the addition of the user's postures, the fuzzy controller output is changed to PS as a forward force is required to move the walker as shown in Table 7. Consequently, a forward force of 1 km/h is generated as shown in Figure 14 at 5 s. In addition, the 3rd sub photo of Figure 13 is considered, where the sensing forces, f f = M and f d = S, can be observed in the sensing graph of Figure 14. This situation indicates the posture "lean forward" as mentioned in Table 2. Under this circumstance, the walker needs to move in reverse direction near to the user, so that the user can regain the center of gravity and continue normal walking. From Algorithm 1, the fuzzy controller output will be changed from ZO to NS, and a reversal force of −1 km/h is generated as shown in Figure 14 at 11 s. Moreover, f f = M and f d = M during 20~25 s, indicating that the posture is in normal walking status, thus the driving force stay the same as desired. Previous explanations are summarized in Table 11. The snapshots are shown in Figure 15 and the corresponding recorded data are shown in Figure 16. In between the 2nd and 3rd sub photos, S g = PS, v = ZO, f f = S, f d = S, it can be observed that the walker moves from the standstill to normal walking. Thus, a forward force is generated as expected. Starting from the 7th second, it can be seen that the grip forces are increased, f f = M, f d = L. From Table 5, it indicated that the walker is in the status of normal walking. From Algorithm 1, more forward force is required to keep normal walking while the slope S g = PS or PL. These are accorded to the experiment results shown in Figure 16. Previous explanations are summarized in Table 12. The software part contains database and mobile APP. For database implementation MySQL database management system is used which is free and open source platform by Apache Friends. Here, the SQL, PHP, and JavaScript programming languages were used. All the data that are sensed by the sensors are stored in the database for future purpose. So, an android application is developed that can be used remotely to access the data from the database. The App contains the information about walking distance, pulse rate, slope, current user posture and current location of the user. In the first page of the App, it shows the overall information of the user and also the location as shown in Figure 17. Using this latitude and longitude, the location of the user can be found. In this case, the coordinates shown in App is near the Engineering Building in Chang Gung University. Furthermore, if we click Health Status and Environment tabs, it will show more information as shown in Figure 17.

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.