Wheeled robot and control method thereof
12422855 ยท 2025-09-23
Assignee
Inventors
Cpc classification
B62K11/007
PERFORMING OPERATIONS; TRANSPORTING
B62D57/024
PERFORMING OPERATIONS; TRANSPORTING
G05D2111/52
PHYSICS
G05D1/0272
PHYSICS
G05D1/027
PHYSICS
G05D2109/13
PHYSICS
B62J45/4152
PERFORMING OPERATIONS; TRANSPORTING
B60L15/20
PERFORMING OPERATIONS; TRANSPORTING
B62D57/028
PERFORMING OPERATIONS; TRANSPORTING
International classification
B62K11/00
PERFORMING OPERATIONS; TRANSPORTING
B60L15/20
PERFORMING OPERATIONS; TRANSPORTING
Abstract
A robot includes a body, a pair of wheels rotatably provided at a lower part of the body, a cargo box provided at an upper part of the body, an inertial measurement sensor configured to measure a tilt angle of the body, a pair of wheel encoders configured to measure a rotational angle of each of the pair of wheels, a cargo box encoder configured to measure a tilt angle of the cargo box, a pair of wheel motors configured to transmit a torque to each of the pair of wheels, a cargo box motor configured to transmit a torque to the cargo box, and a controller. The controller is configured to control the pair of wheel motors and the cargo box motor to allow the robot to make a double axis inverted pendulum motion on an axis of each of the pair of wheels and the cargo box.
Claims
1. A robot, comprising: a body; a pair of wheels rotatably provided at a lower part of the body; a cargo box provided at an upper part of the body; an inertial measurement sensor configured to measure a tilt angle of the body; a pair of wheel encoders configured to measure a rotational angle of each of the pair of wheels; a cargo box encoder configured to measure a tilt angle of the cargo box; a pair of wheel motors configured to transmit a torque to each of the pair of wheels; a cargo box motor configured to transmit a torque to the cargo box; and a controller configured to: control the pair of wheel motors and the cargo box motor to allow the robot to make a double axis inverted pendulum motion on an axis of each of the pair of wheels and the cargo box, based on an output from each of the inertial measurement sensor, the pair of wheel encoders, and the cargo box encoder, determine, based on the robot being balanced by the double axis inverted pendulum motion, a slope of a current position of the robot based on the torque applied to the cargo box, the torque applied to the pair of wheels, and the tilt angle of the body, and determine a ratio between the tilt angle of the body and the tilt angle of the cargo box based on the slope to thereby move the robot while maintaining balance.
2. The robot of claim 1, wherein the controller is configured to estimate the slope using (i) the output of each from the inertial measurement sensor, the pair of wheel encoders, and the cargo box encoder, as state variables and (ii) the torque applied to the cargo box and the torque applied to the pair of wheels, as control input.
3. The robot of claim 2, wherein the controller is configured to estimate the slope based on (i) a correlation among the state variables and the control input, (ii) a mass and a dimension of each of the body, the pair of wheels, and the cargo box, and (iii) a gravitational acceleration.
4. The robot of claim 2, wherein the controller is configured to determine a target tilt angle of the body and a target tilt angle of the cargo box to move the robot while maintaining balance in the slope, based on the ratio between the tilt angle of the body and the tilt angle of the cargo box.
5. The robot of claim 4, wherein the controller is configured to determine the ratio between the tilt angle of the body and the tilt angle of the cargo box in the slope based on the tilt angle of the body, the tilt angle of the cargo box, and an angular speed of the pair of wheels being constant.
6. The robot of claim 5, wherein the controller is configured to determine the ratio between the tilt angle of the body and the tilt angle of the cargo box based on a slope determined in real time while the robot is moving, to thereby adaptively change the target tilt angle of the cargo box.
7. The robot of claim 5, wherein the controller is configured to: determine the target tilt angle of the cargo box to ensure the cargo box is parallel to a ground, and determine the target tilt angle of the body based on a ratio among the determined target tilt angle of the cargo box, the tilt angle of the body, and the tilt angle of the cargo box.
8. The robot of claim 4, wherein the controller is configured to perform feedback-control on the pair of wheel motors and the cargo box motor, based on an angular speed of the pair of wheels, the target tilt angle of the body, and the target tilt angle of the cargo box according to a movement command.
9. The robot of claim 1, wherein the controller is configured to determine a slope in each of the pair of wheels, and determine an average of the slope in each of the pair of wheels as the slope of the current position.
10. The robot of claim 9, wherein the controller is configured to adjust an output of each of the pair of wheel motors based on the slope in each of the pair of wheels.
11. A method for controlling a robot comprising a body, a pair of wheels rotatably provided at a lower part of the body, and a cargo box provided at an upper part of the body, the method comprising: controlling a pair of wheel motors and a cargo box motor to allow the robot to make a double axis inverted pendulum motion on an axis of each of the pair of wheels and the cargo box, based on an output from each of an inertial measurement sensor, a pair of wheel encoders and a cargo box encoder, the pair of wheel motors configured to transmit a torque to each of the pair of wheels, the cargo box motor configured to transmit a torque to the cargo box, the inertial measurement sensor configured to measure a tilt angle of the body, the pair of wheel encoders configured to measure a rotational angle of each of the pair of wheels, and the cargo box encoder configured to measure a tilt angle of the cargo box; determining, based on the robot being balanced by the double axis inverted pendulum motion, a slope of a current position based on the torque applied to the cargo box, the torque applied to the pair of wheels, and the tilt angle of the body; and determining a ratio between the tilt angle of the body and the tilt angle of the cargo box based on the slope to thereby move the robot while maintaining balance.
12. The method of claim 11, wherein determining the slope comprises estimating the slope using (i) the output from each of the inertial measurement sensor, the pair of wheel encoders, and the cargo box encoder, as state variables and (ii) using the torque applied to the cargo box and the torque applied to the pair of wheels, as control input.
13. The method of claim 12, wherein determining the slope comprises estimating the slope based on (i) a correlation among the state variables and the control input, (ii) a mass and a dimension of each of the body, the pair of wheels and the cargo box, and (iii) a gravitational acceleration.
14. The method of claim 12, further comprising: determining a target tilt angle of the body and a target tilt angle of the cargo box to move the robot while maintaining balance in the slope, based on the ratio between the tilt angle of the body and the tilt angle of the cargo box.
15. The method of claim 14, wherein determining the ratio between the tilt angle of the body and the tilt angle of the cargo box to determine the ratio between the tilt angle of the body and the tilt angle of the cargo box in the slope based on the tilt angle of the body, the tilt angle of the cargo box, and an angular speed of the pair of wheels being constant.
16. The method of claim 15, wherein determining the ratio between the tilt angle of the body and the tilt angle of the cargo box comprises determining the ratio between the tilt angle of the body and the tilt angle of the cargo box based on a slope determined in real time while the robot is moving, to thereby adaptively change the target tilt angle of the cargo box.
17. The method of claim 15, wherein determining the ratio between the tilt angle of the body and the tilt angle of the cargo box comprises: determining the target tilt angle of the cargo box to ensure the cargo box is parallel to a ground, and determining the target tilt angle of the body based on a ratio among the determined target tilt angle of the cargo box, the tilt angle of the body, and the tilt angle of the cargo box.
18. The method of claim 14, further comprising: performing feedback-control on the pair of wheel motors and the cargo box motor, based on an angular speed of the pair of wheels, the target tilt angle of the body, and the target tilt angle of the cargo box according to a movement command.
19. The method of claim 11, wherein determining the slope comprises: determining a slope in each of the pair of wheels, and determining an average of the slope in each of the pair of wheels as the slope of the current position.
20. The method of claim 19, further comprising: adjusting an output of each of the pair of wheel motors based on the slope in each of the pair of wheels.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
(1)
(2)
(3)
(4)
(5)
(6)
(7)
(8)
(9)
(10)
DETAILED DESCRIPTION
(11) The terms such as part, device, block, member, module, and the like may refer to a unit for processing at least one function or act. For example, the terms may refer to at least one process processed by at least one hardware, such as field-programmable gate array (FPGA)/application specific integrated circuit (ASIC), software stored in memories or processors.
(12)
(13) Referring to
(14) As shown in
(15) On one side of the first rotation shaft 11 in the body 10, a pair of wheel motors transmitting a torque to each of the pair of wheels 20 and a pair of wheel encoders measuring a rotational angle of each of the pair of wheels 20 may be provided.
(16) On one side of the second rotation shaft 12, a cargo box motor transmitting a torque to the cargo box 30 and a cargo box encoder measuring a tilt angle of the cargo box 30 may be provided.
(17) Also, an inertial measurement unit (IMU) 110 measuring a tilt angle of the body 10 may be provided on one side of the body 10. In this instance, the tilt angle of the body 10 may refer to an angle between the body 10 and a vertical axis perpendicular to the ground.
(18) In this instance, the robot 1 may control the pair of wheel motors and the cargo box motor to allow the robot to make a double axis inverted pendulum motion on the axis and of each of the pair of wheels 20 and the cargo box 30, based on an output of each of the inertial measurement unit 110, the pair of wheel encoders and the cargo box encoder. As such, the robot 1 may achieve balance by the double axis inverted pendulum motion.
(19) Each of the pair of wheels 20 can be provided as a flexible tire capable of being deformed in a direction from a circumference to a center, allowing the robot 1 to drive while maintaining balance even in a large step or slope.
(20) The cargo box 30 can be loaded with items to be transported by the robot 1, and be provided with the cargo box motor transmitting torque to the cargo box 30, the cargo box encoder measuring the tilt angle of the cargo box 30, and the like.
(21)
(22) Referring to
(23) In some implementations, the inertial measurement unit 110 is provided on one side of the body 10, and may measure how much the body 10 is tilted from a vertical axis perpendicular to the ground.
(24) In some implementations, the wheel encoder 120 may be provided integrally with the wheel motor 150, and measure a rotational angle of the wheel 20 by measuring a rotational angle of the wheel motor 150. The pair of wheel encoders 120 may be provided as a known type of encoder.
(25) In some implementations, the cargo box encoder 130 may be provided integrally with the cargo box motor 160 and measure the tilt angle of the cargo box 30 by measuring a rotational angle of the cargo box motor 160. The cargo box encoder 130 may be provided as a known type of encoder.
(26) In some implementations, the controller 140 may include a basic controller 141 performing feedback-control and an observer 143 estimating a slope (disturbance) at a current position of the robot 1.
(27) When a target tilt angle of the body 10 and a target tilt angle of the cargo box 30 are determined, the basic controller 141 may control the wheel motor 150 and the cargo box motor 160 so that the tilt angle of the body 10 and the tilt angle of the cargo box 30 become the target tilt angle of the body 10 and the target tilt angle of the cargo box 30, respectively. Through the above, the basic controller 141 may allow the robot 1 to drive while maintaining balance.
(28) The observer 143 may determine the slope of the current position based on the tilt angle of the body 10, the torque applied to the pair of wheels 20, and the torque applied to the cargo box 30. Operations of the observer 143 are described in detail later.
(29) In some implementations, the controller 140 may control the pair of wheel motors 150 and the cargo box motor 160 to allow the robot to make a double axis inverted pendulum motion on an axis of each of the pair of wheels 20 and the cargo box 30, based on an output of each of the inertial measurement unit 110, the pair of wheel encoders 120 and the cargo box encoder 130.
(30) In this instance, the controller 140 may control the basic controller 141 to allow the robot to make a double axis inverted pendulum motion, using an output of each of the inertial measurement unit 110, the pair of wheel encoders 120 and the cargo box encoder 130 as state variables, and using the torque applied to the cargo box 30 and the torque applied to the pair of wheels 20 as control input.
(31) The basic controller 141 may use a correlation among the state variables and the control inputs, so that the robot 1 makes double axis inverted pendulum motion.
(32) In some implementations, when balance is achieved by the double axis inverted pendulum motion, the controller 140 may determine the slope of the current position based on the tilt angle of the body 10, the torque applied to the pair of wheels 20, and the torque applied to the cargo box 30.
(33) The controller 140 may control the observer 143 to estimate the slope, using an output of each of the inertial measurement unit 110, the pair of wheel encoders 120 and the cargo box encoder 130 as state variables, and using the torque applied to the cargo box 30 and the torque applied to the pair of wheels 20 as control inputs.
(34) In this instance, the observer 143 may estimate the slope using the correlation among the state variables and the control inputs, a mass and a dimension of each of the body 10, the pair of wheels 20 and the cargo box 30, and a gravitational acceleration.
(35) In some implementations, the controller 140 may determine a ratio between the tilt angle of the body 10 and the tilt angle of the cargo box 30 based on the slope to allow the robot to drive while maintaining balance.
(36) In this instance, the controller 140 may control the observer 143 to determine the ratio between the tilt angle of the body 10 and the tilt angle of the cargo box 30 in the slope, by assuming that the tilt angle of the body 10, the tilt angle of the cargo box 30, and an angular speed of the pair of wheels 20 are constant.
(37) The controller 140 may determine a target tilt angle of the body 10 and a target tilt angle of the cargo box 30, based on the ratio between the tilt angle of the body 10 and the tilt angle of the cargo box 30. Here, the target tilt angle of the body 10 and the target tilt angle of the cargo box 30 are for allowing the robot to drive in the slope while maintaining balance.
(38) For example, by determining the ratio between the tilt angle of the body 10 and the tilt angle of the cargo box 30 based on a slope determined in real time while driving, the controller 140 may allow the target tilt angle of the cargo box 30 to be adaptively changed.
(39) Also, the controller 140 may determine the target tilt angle of the cargo box 30 to allow the cargo box 30 to be level, and determine the target tilt angle of the body 10 based on a ratio among the determined target tilt angle of the cargo box 30, the tilt angle of the body 10, and the tilt angle of the cargo box 30. In this instance, the target tilt angle of the cargo box 30 may correspond to 0 degree based on a vertical axis perpendicular to the ground.
(40) In some implementations, the controller 140 may control the basic controller 141 to feedback-control the pair of wheel motors 150 and the cargo box motor 160, based on an angular speed of the pair of wheels 20, the target tilt angle of the body 10, and the target tilt angle of the cargo box 30 according to a movement command.
(41) In some implementations, the controller 140 may determine the slope in each of the pair of wheels 20, and determine an average of the slope in each of the pair of wheels 20 as the slope of the current position.
(42) In some implementations, the controller 140 may compensate an output of each of the pair of wheel motors 150 based on the slope in each of the pair of wheels 20, thereby allowing the robot 1 to drive without being shaken in yaw direction.
(43) The controller 140 may include at least one memory storing a program for performing the aforementioned operations and operations described below, and at least one processor for implementing a stored program. When a plurality of memories and processors are provided, the plurality of memories and processors may be integrated into one chip, or provided in physically separated locations.
(44) In some implementations, the wheel motor 150 may transmit a torque to the wheel 20, and be provided as a known type of motor. In this instance, the wheel motor 150 may include a left wheel motor transmitting a torque to a left wheel and a right wheel motor transmitting a torque to a right wheel.
(45) In some implementations, the cargo box motor 160 may transmit a torque to the cargo box 30 and be provided as a known type of motor.
(46) In some implementations, the storage 170 may store information such as the correlation among the state variables and the control inputs, the mass and the dimension of each of the body 10, the pair of wheels 20 and the cargo box 30, the gravitational acceleration, and the like. To this end, the storage 170 may be provided as a known type of recording medium.
(47)
(48) Referring to
(49) In this instance, as shown in
(50) In some implementations, even when climbing a slope, the robot 1 may control the pair of wheel motors 150 and the cargo box motor 160 to make a double axis inverted pendulum motion on an axis of each of the pair of wheels 20 and the cargo box 30, based on an output of each of the inertial measurement unit 110, the pair of wheel encoders 120 and the cargo box encoder 130.
(51) In this instance, the controller 140 may control the basic controller 141 to allow the robot to make a double axis inverted pendulum motion, using an output of each of the inertial measurement unit 110, the pair of wheel encoders 120 and the cargo box encoder 130 as state variables, and using the torque applied to the cargo box 30 and the torque applied to the pair of wheels 20 as control inputs.
(52) The basic controller 141 may use a correlation among the state variables and the control inputs, so that the robot 1 makes double axis inverted pendulum motion.
(53) In some implementations, when balance is achieved by the double axis inverted pendulum motion, the robot 1 may determine the slope of the current position based on the tilt angle of the body 10, the torque applied to the pair of wheels 20, and the torque applied to the cargo box 30.
(54) In this instance, as shown in
(55) Specifically, each of the left and right sides of the robot 1 has a torque (T-L, T-R) to be applied to each of the wheels 20 and a tilt angle (1L, 1R) of the body 10 to achieve balance in the given respective slope (slopeL, slopeR).
(56) In this instance, a torque T to be applied to the entire robot 1 may be a sum of the torques (T-L and T-R) to be applied to the left wheel 20L and the right wheel 20R, respectively. (T=TL+TR)
(57) In this instance, the torque T to be applied to the entire robot 1 may be expressed as Equation 1 below.
(58)
(59) Here, M may correspond to a mass of the robot 1, r may be a radius of the wheel, and g may be a gravitational acceleration.
(60) Accordingly, the torques (T-L and T-R) to be applied to the left wheel 20L and the right wheel 20R, respectively, may be expressed as Equation 2 and Equation 3 below. That is, a half of a total mass of the robot may be reflected when calculating a slope of one side.
(61)
(62) Considering T=TL+TR, as shown in <Equation 4>, the slope (slope) of the current position of the robot 1 may correspond to the average of the slope (slopeL, slopeR) of each of the pair of wheels 20.
(63)
(64) In this instance, as shown in <Equation 5>, the tilt angle of the body 10 may correspond to the average of a tilt angle of the left body 10 and a tilt angle of the right body 10 in that the slope and the tilt angle of the body 10 correspond to each other.
(65)
(66) Hereinafter, although it is described that the slope (slope) is determined based on the tilt angle 1 of the body 10, by <Equation 1> to <Equation 5>, it may be understood that the slope (slopeL, slopeR) of each of the pair of wheels 20 is determined by the tilt angle 1L of the left body 10 and the tilt angle 1R of the right body 10, and the average thereof is determined as the slope (slope).
(67) The robot 1 may control the observer 143 to estimate the slope, using an output of each of the inertial measurement unit 110, the pair of wheel encoders 120 and the cargo box encoder 130 as state variables, and using the torque applied to the cargo box 30 and the torque applied to the pair of wheels 20 as control inputs.
(68) In this instance, the observer 143 may estimate the slope using a correlation among the state variables and the control inputs, a mass and a dimension of each of the body 10, the pair of wheels 20 and the cargo box 30, and a gravitational acceleration.
(69) That is, the observer 143 may determine the slope (slope) corresponding to a disturbance according to <Equation 6>.
(70)
(71) In this instance, as shown in
(72) Also, T.sub.h is a torque applied to the cargo box 30, and T.sub.W is a torque applied to the wheel 20.
(73) C is a matrix representing the correlation among the state variables (1, 2, ) and the control inputs (T.sub.h, T.sub.W). M is a matrix related to the mass and the dimension of each of the body 10, the pair of wheels 20 and the cargo box 30. G is a matrix related to the gravitational acceleration. D is a matrix representing a disturbance to be estimated by the observer 143.
(74) For example, C may be expressed as <Equation 7>, and M may be expressed as <Equation 8> below.
(75)
(76) Here, m.sub.1, m.sub.2 and m.sub.w correspond to the mass of the body 10, the cargo box 30, and the wheel 20, respectively. l.sub.1, l.sub.2 and l.sub.C correspond to a length of the body 10, a length of the cargo box 30, and a length from a center of mass of the wheel 20 to a center of mass of the body 10, respectively. r.sub.w corresponds to a radius of the wheel 20.
(77) Also, G may be expressed as <Equation 9>, and D may be expressed as <Equation 10> below.
(78)
(79) However, <Equation 7> to <Equation 10> are only examples of each matrix, and may be provided in various ways.
(80)
(81) Referring to
(82) In this instance, the robot 1 may control the observer 143 to determine the ratio between the tilt angle of the body 10 and the tilt angle of the cargo box 30 in the slope, by assuming that the tilt angle 1 of the body 10, the tilt angle 2 of the cargo box 30, and an angular speed of the pair of wheels 20 are constant.
(83) That is, as shown in
(84) In this instance, the robot 1 may reflect the values shown in
(85) That is, <Equation 11> may be derived by reflecting the values shown in
(2m.sub.w+m.sub.1+m.sub.2)r.sub.w sin(.sub.slope)=(m.sub.1l.sub.c+m.sub.2l.sub.1).sub.1m.sub.2l.sub.2.sub.2<Equation 11>
(86) The robot 1 may determine a target tilt angle of the body 10 and a target tilt angle of the cargo box 30, based on the ratio between the tilt angle of the body 10 and the tilt angle of the cargo box 30, to drive while maintaining balance in a slope.
(87) For example, by determining the ratio between the tilt angle of the body 10 and the tilt angle of the cargo box 30 based on a slope determined in real time while driving, the robot 1 may allow the target tilt angle of the cargo box 30 to be adaptively changed.
(88) Also, the robot 1 may determine the target tilt angle of the cargo box 30 to allow the cargo box 30 to be level, and determine the target tilt angle of the body 10 based on a ratio among the determined target tilt angle of the cargo box 30, the tilt angle of the body 10, and the tilt angle of the cargo box 30. In this instance, the target tilt angle of the cargo box 30 may correspond to 0 degree based on a vertical axis perpendicular to the ground.
(89) In some implementations, the robot 1 may control the basic controller 141 to feedback-control the pair of wheel motors 150 and the cargo box motor 160, based on an angular speed of the pair of wheels 20, the target tilt angle of the body 10, and the target tilt angle of the cargo box 30 according to a movement command.
(90)
(91) Referring to
(92) For example, when a left slope is greater than a right slope, the robot 1 may control the pair of wheel motors 150 so that a torque applied to the left wheel 20L is greater than a torque applied to the right wheel 20R.
(93) Through the above, as shown in
(94) Hereinafter, implementations of a control method of a robot according to an aspect of the disclosure are described. The robot 1 described above may be used in the control method of the robot. Accordingly, a description made with reference to
(95)
(96) Referring to
(97) In this instance, the robot 1 may control the basic controller 141 to allow the robot to make a double axis inverted pendulum motion, using the output of each of the inertial measurement unit 110, the pair of wheel encoders 120 and the cargo box encoder 130 as state variables, and using a torque applied to the cargo box 30 and a torque applied to the pair of wheels 20 as control inputs.
(98) The basic controller 141 may use a correlation among the state variables and the control inputs, so that the robot 1 makes double axis inverted pendulum motion.
(99) In some implementations, when balance is achieved by the double axis inverted pendulum motion, the robot 1 may determine a slope of a current position based on a tilt angle of the body 10, the wheel torque, and the torque applied to the cargo box 30 (920).
(100) In this instance, the robot 1 may determine a slope (slopeL, slopeR) in each of the pair of wheels 20, and determine an average of the slope (slopeL, slopeR) in each of the pair of wheels 20 as the slope (slope) of the current position.
(101) The robot 1 may control the observer 143 to estimate the slope, using the output of each of the inertial measurement unit 110, the pair of wheel encoders 120 and the cargo box encoder 130 as state variables, and using the torque applied to the cargo box 30 and the torque applied to the pair of wheels 20 as control inputs.
(102) In this instance, the observer 143 may estimate the slope using the correlation among the state variables and the control inputs, a mass and a dimension of each of the body 10, the pair of wheels 20 and the cargo box 30, and a gravitational acceleration.
(103) In some implementations, the robot 1 may determine a ratio between the tilt angle of the body 10 and a tilt angle of the cargo box 30 based on the slope to drive while maintaining balance (930).
(104) In this instance, the robot 1 may control the observer 143 to determine the ratio between the tilt angle of the body 10 and the tilt angle of the cargo box 30 in the slope, by assuming that the tilt angle 1 of the body 10, the tilt angle of the cargo box 30, and an angular speed of the pair of wheels 20 are constant.
(105) That is, the robot 1 assumes that a value obtained by once differentiating the tilt angle 1 of the body 10 and a value obtained by twice differentiating the tilt angle 1 of the body 10 are 0, and a value obtained by once differentiating the tilt angle 2 of the cargo box 30 and a value obtained by twice differentiating the tilt angle 2 of the cargo box 30 are 0. Also, the robot 1 assumes that a value obtained by once differentiating a rotational angle of the wheel 20 is a constant and a value obtained by twice differentiating the rotational angle of the wheel 20 is 0.
(106) The robot 1 may determine a target tilt angle of the body 10 and a target tilt angle of the cargo box 30 based on the ratio between the tilt angle of the body 10 and the tilt angle of the cargo box 30, to drive in the slope while maintaining balance.
(107) For example, by determining the ratio between the tilt angle of the body 10 and the tilt angle of the cargo box 30 based on a slope determined in real time while driving, the robot 1 may allow the target tilt angle of the cargo box 30 to be adaptively changed.
(108) Also, the robot 1 may determine the target tilt angle of the cargo box 30 to allow the cargo box 30 to be level, and determine the target tilt angle of the body 10 based on a ratio among the determined target tilt angle of the cargo box 30, the tilt angle of the body 10, and the tilt angle of the cargo box 30. In this instance, the target tilt angle of the cargo box 30 may correspond to 0 degree based on a vertical axis perpendicular to the ground.
(109) In some implementations, the robot 1 may control the basic controller 141 to feedback-control the pair of wheel motors 150 and the cargo box motor 160, based on an angular speed of the pair of wheels 20, the target tilt angle of the body 10, and the target tilt angle of the cargo box 30 according to a movement command.
(110)
(111) Referring to
(112) Afterwards, the robot 1 may compensate an output of each of the pair of wheel motors 150 based on the slope in each of the pair of wheels 20 (1020).
(113) For example, when a left slope is greater than a right slope, the robot 1 may control the pair of wheel motors 150 so that a torque applied to the left wheel 20L is greater than a torque applied to the right wheel 20R.
(114) Through the above, a yaw error of the robot 1 may converge to a stable level.
(115) As is apparent from the above, in some implementations, the robot and the control method thereof can determine a tilt angle of a body and a tilt angle of a cargo box provided at an upper part of the body by estimating a slope of a current position, thereby allowing the robot to drive while maintaining balance.
(116) For example, implementations can be stored in the form of a recording medium storing computer-executable instructions. The instructions may be stored in the form of a program code, and when executed by a processor, the instructions may perform operations of the disclosed implementations. The recording medium may be implemented as a computer-readable recording medium.
(117) The computer-readable recording medium includes all kinds of recording media in which instructions which may be decoded by a computer are stored of, for example, a read only memory (ROM), random access memory (RAM), magnetic tapes, magnetic disks, flash memories, optical recording medium, and the like.