ROBOT
20180185764 ยท 2018-07-05
Inventors
Cpc classification
A63H3/28
HUMAN NECESSITIES
International classification
A63H3/28
HUMAN NECESSITIES
Abstract
A robot is provided. When a value obtained by excluding a gravitational component from an acceleration detected by an acceleration sensor is continuously less than a reference value for a certain time, a travelling state of the robot is determined as frictional surface travelling. A control circuit calculates an attitude angle of the robot from an angular velocity in a pitch direction, which is detected by an angular velocity sensor. When the calculated attitude angle is a lower limit angle or more for a determination time, the control circuit sets the attitude angle at the end of the determination time as an attitude control angle. When the travelling state of the robot is determined as the frictional surface travelling, the control circuit moves a counterweight frontward by a movement amount corresponding to the attitude control angle.
Claims
1. A robot, comprising: a housing; a frame disposed in the housing; a display that is provided on the frame, and that displays at least a portion of a face of the robot; drive wheels that are provided on the frame, and that rotate and move the housing while being in contact with an inner surface of the housing; a weight drive that is provided on the frame, and that reciprocates a weight in a predetermined direction relative to the weight drive; an angular velocity sensor that detects angular velocity about a crosswise direction that is perpendicular to a travelling direction of the housing; and a control circuit that, while the housing is being rotated and moved, when a rotational angle of the housing when viewed from a front of the housing in the travelling direction changes upward beyond a predetermined angle, based on a change in the angular velocity about the crosswise direction, moves the weight frontward in the travelling direction of the housing by a distance corresponding to the rotational angle.
2. A robot, comprising: a housing; a frame that is disposed in the housing, and that includes a base; a display that is provided on the frame, and that displays at least a portion of a face of the robot; drive wheels that are provided on the frame, and that rotate and move the housing while being in contact with an inner surface of the housing; a weight drive that is provided on the frame, and that reciprocates a weight in a predetermined direction relative to the weight drive; an acceleration sensor that detects a first acceleration in a vertical direction that is perpendicular to the base; an angular velocity sensor that detects angular velocity about a crosswise direction that is perpendicular to a travelling direction of the housing; and a control circuit that acquires a second value by excluding a gravitational component from a first value indicative of the first acceleration detected by the acceleration sensor, wherein when the control circuit determines, while the housing is being rotated and moved, that the second value changes from a reference value beyond a first change range and to a third value corresponding to a downward direction that is perpendicular to the base, and that a rotational angle of the housing when viewed from a front of the housing in the travelling direction changes upward beyond a predetermined angle, based on a change in the angular velocity about the crosswise direction, the control circuit moves the weight frontward in the travelling direction of the housing by a distance corresponding to the rotational angle.
3. The robot according to claim 2, wherein when the control circuit determines, while the housing is being rotated and moved, that the second value changes within the first change range, and that, the rotational angle of the housing when viewed from the front of the housing in the travelling direction changes upward beyond the predetermined angle, based on the change in the angular velocity about the crosswise direction, the control circuit does not move the weight frontward in the travelling direction of the housing.
4. The robot according to claim 2, wherein the acceleration sensor detects a second acceleration in the travelling direction of the housing that is parallel to the base, and while the housing is being rotated and moved, the control circuit moves the weight rearward in the travelling direction of the housing when the second value changes within the first change range, a change in the second acceleration is within a second change range, and a change in the rotational angle of the housing is within the predetermined angle.
5. The robot according to claim 2, wherein the acceleration sensor detects a second acceleration in the travelling direction of the housing that is parallel to the base, and while the housing is being rotated and moved, the control circuit does not move the weight frontward in the travelling direction of the housing when the second value changes within the first change range, a change in the second acceleration is within a second change range, and a change in the rotational angle of the housing is within the predetermined angle.
6. A robot, comprising: a housing; a frame that is disposed in the housing and that includes a base; a display that is provided on the frame, and that displays at least a portion of a face of the robot; drive wheels that are provided on the frame, and that rotate and move the housing while being in contact with an inner surface of the housing; a weight drive that is provided on the frame, and that reciprocates a weight in a predetermined direction relative to the weight drive; an acceleration sensor that detects a first acceleration in a vertical direction that is perpendicular to the base; an angular velocity sensor that detects angular velocity about a crosswise direction that is perpendicular to a travelling direction of the housing; and a control circuit that acquires a second value by excluding a gravitational component from a first value indicative of the first acceleration detected by the acceleration sensor, wherein when the control circuit determines, while the housing is being rotated and moved, that the second value changes from a reference value beyond a first change range and to a third value corresponding to a downward direction that is perpendicular to the base, and that the housing when viewed from a front of the housing in the travelling direction rotates from a reference position upward beyond a predetermined angle, based on a change in the angular velocity about the crosswise direction, the control circuit determines a rotational angle of the housing based on the change in the angular velocity about the crosswise direction during a predetermined time after a start of a rotation by the housing from the reference position, and moves the weight from an initial position of the weight frontward in the travelling direction of the housing by a distance corresponding to the rotational angle.
7. The robot according to claim 6, wherein when the control circuit determines, based on the change in the angular velocity about the crosswise direction, that the rotation of the housing from the reference position returns to the predetermined angle or less before the predetermined time elapses, the control circuit does not move the weight.
8. The robot according to claim 6, wherein while the housing is being rotated and moved, the control circuit does not move the weight when the control circuit determines that the second value changes from the reference value beyond the first change range and to the third value corresponding to the downward direction that is perpendicular to the base, and that an upward rotation of the housing from the reference position when viewed from the front of the housing in the travelling direction is the predetermined angle or less, based on the change in the angular velocity about the crosswise direction.
9. The robot according to claim 6, wherein while the housing is being rotated and moved, the control circuit does not move the weight when the control circuit determines that the second value changes within the first change range, and that the housing when viewed from the front of the housing in the travelling direction rotates from the reference position upward beyond the predetermined angle, based on the change in the angular velocity about the crosswise direction.
10. The robot according to claim 6, wherein the acceleration sensor detects a second acceleration in the travelling direction of the housing that is parallel to the base, and while the housing is being rotated and moved, the control circuit moves the weight from an initial position of the weight rearward in the travelling direction of the housing when the control circuit determines that the second value changes within the first change range, that a change in the second acceleration is within a second change range, and that an upward rotation of the housing from the reference position when viewed from the front of the housing in the travelling direction is within the predetermined angle or less, based on the change in the angular velocity about the crosswise direction.
11. The robot according to claim 6, wherein the acceleration sensor detects a second acceleration in the travelling direction of the housing that is parallel to the base, and while the housing is being rotated and moved, the control circuit does perform control to move the weight when the control circuit determines that the second value changes within the first change range, that a change in the second acceleration is within a second change range, and that an upward rotation of the housing from the reference position when viewed from the front of the housing in the travelling direction is within the predetermined angle or less, based on the change in the angular velocity about the crosswise direction.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
[0009]
[0010]
[0011]
[0012]
[0013]
[0014]
[0015]
[0016]
[0017]
[0018]
[0019]
[0020]
[0021]
[0022]
[0023]
[0024]
[0025]
[0026]
[0027]
[0028]
[0029]
[0030]
[0031]
[0032]
[0033]
[0034]
[0035]
[0036]
[0037]
[0038]
[0039]
[0040]
[0041]
[0042]
[0043]
[0044]
[0045]
[0046]
DETAILED DESCRIPTION
Underlying Knowledge Forming Basis of Aspect of the Present Disclosure
[0047] As described above, International Publication No. WO2000/032360 discloses a multi-legged walking robot with four legs, which includes an acceleration sensor and an angular velocity sensor. In International Publication No. WO2000/032360, using two threshold values (61, 62), variances of outputs detected by the acceleration sensor and the angular velocity sensor are classified to three categories to determine whether the robot acts on the ground, the robot is lifted up, or the robot is lifted down (for example, page 9, lines 5 to 14).
[0048] In contrast to this, the Inventor examines a robot having a spherical housing and a set of drive wheels provided in contact with the inner circumferential face of the housing and configured to rotate the housing. A frame is provided inside the robot, and a display unit that displays at least a portion of the face of the robot is provided to the frame. The robot has no hands or legs because they may obstruct rotation.
[0049] During examination of the robot, the Inventor found that the position of the face of the travelling robot, that is, the attitude of the robot changed depending on the material for a floor surface on which the robot travels. For example, when the robot travels on a wood flooring floor having a low friction coefficient, the robot's face is oriented forward. Meanwhile, when the robot travels on a carpet having a high friction coefficient, the robot's face is oriented upward. Hence, the Inventor found that, even though the robot was moved by the same travel processing, the position of the robot's face, that is, the attitude of the robot varied depending on the material for the floor surface rather than internal processing of the robot.
[0050] Such problem is not mentioned in International Publication No. WO2000/032360, and seems to have never been addressed before.
[0051] To solve the problem, the Inventor devised following aspects of the invention.
[0052] According to an aspect of the present disclosure, a robot includes a spherical housing, a frame disposed in the housing, a display unit that is provided on the frame, a set of drive wheels that are provided on the frame, a weight drive mechanism that is provided on the frame, an angular velocity sensor, and a control circuit. The display unit displays at least a portion of a face of the robot. The set of drive wheels rotate and move the housing while being in contact with an inner circumferential face of the housing. The weight drive mechanism reciprocates a weight in a predetermined direction. The angular velocity sensor detects angular velocity about a crosswise direction that is perpendicular to a travelling direction of the housing. The control circuit, if the control circuit determines, while the housing is being rotated and moved, that a rotational angle of the housing when viewed from front in the travelling direction changes upward beyond a predetermined angle based on a change in the angular velocity about the crosswise direction, moves the weight frontward in the travelling direction of the housing by a distance corresponding to the rotational angle.
[0053] While the housing is being rotated and moved, when it is determined that, based on a change in the angular velocity about the crosswise direction, the rotational angle of the housing when viewed from the front in the travelling direction changes upward beyond a predetermined angle, it can be assumed that the position of the display unit is moved upward as the movement of the housing in the travelling direction when viewed in the travelling direction is restricted by friction between the housing and the floor surface.
[0054] In the aspect, in such case, the weight is moved forward in the travelling direction of the housing by a distance corresponding to the rotational angle.
[0055] Thereby, even when the movement of the housing in the travelling direction is restricted by friction between the housing and the floor surface, the display unit oriented upward due to the restriction can be turned downward.
[0056] As a result, the position of the robot's face, that is, the attitude of the robot can be prevented from unnaturally changing due to the material for the floor surface rather than internal processing of the robot, irrespective of the same travelling processing.
Embodiment
(Overall Configuration)
[0057]
[0058]
[0059] In
[0060] As illustrated in
[0061] As illustrated in
[0062] As illustrated in
[0063] A first drive wheel 110 and a second drive wheel 111 each are provided on the lower face of the second rotating plate 104, and are in contact with the inner circumferential face of the housing 101. The first drive wheel 110 has a first motor 112 that drives the first drive wheel 110. Similarly, the second drive wheel 111 has a second motor 113 that drives the second drive wheel 111. That is, the first drive wheel 110 and the second drive wheel 111 are driven by the respective independent motors. Details of the operation of the robot 1 driven by the first drive wheel 110 and the second drive wheel 111 will be described later. The first drive wheel 110 and the second drive wheel 111 constitute a pair of drive wheels.
[0064]
[0065] As illustrated in
[0066] The rotating shaft 118 extends perpendicular to a drive axis of the first drive wheel 110 and the second drive wheel 111. The rotating shaft 118 corresponds to an example of a shaft provided on the frame 102. When viewed from front, the first drive wheel 110 and the second drive wheel 111 get gradually away from each other toward the ground. In this case, the drive axis of the first drive wheel 110 and the second drive wheel 111 is, for example, a virtual axis connecting the centers of the first drive wheel 110 and the second drive wheel 111 to each other. When the first drive wheel 110 and the second drive wheel 111 are provided in parallel to each other when viewed from front, the actual drive axis becomes the drive axis of the first drive wheel 110 and the second drive wheel 111.
[0067] The robot 1 further includes a power source not illustrated and a microphone 217 (
[0068] Next, the operation of the robot 1 using the first drive wheel 110 and the second drive wheel 111 will be described with reference to
[0069]
[0070] As illustrated in
[0071] As illustrated in
[0072] Next, the basic operation of the robot 1 using the counterweight 114 will be described with reference to
[0073]
[0074] As illustrated in
[0075] As illustrated in
[0076] As illustrated in
[0077] As illustrated in
[0078] As illustrated in
[0079] Details of the operation of the robot 1 using the counterweight 114 will be described with reference to
[0080] As illustrated in
[0081] As described above, the first display unit 105, the second display unit 106, and the third display unit 107 express a portion of the face of the robot 1, such as eyes and a mouth. For example, the robot 1 can be alternately tilted forward and rearward using the counterweight 114, as if the robot 1 is short of breath or sleepy. By performing this control when remaining power of the power source reaches a predetermined value or less, the robot 1 can notify the user that remaining power of the power source is small, without displaying information on the remaining power, which is unrelated to the face, on the first display unit 105, the second display unit 106, and the third display unit 107.
[0082] As illustrated in
[0083] As described above, the first display unit 105, the second display unit 106, and the third display unit 107 express a portion of the face of the robot 1, such as eyes and a mouth. For example, the robot 1 can be alternately tilted rightward and leftward using the counterweight 114, as if the robot 1 feels good or is thinking deeply.
[0084]
[0085] For example, an application cooperating with the robot 1 is installed on the portable terminal 4. The portable terminal 4 can issue various instructions to the robot 1 using the application, and display the image recognition result described referring to
[0086] When receiving a request to read a picture book to the child from the portable terminal 4, the robot 1 reads the picture book aloud to the child. When accepting a question during reading of the picture book, the robot 1 transmits the question to the cloud server 3, receives an answer to the question from the cloud server 3, and makes the answer.
[0087] As described above, the user 1501 can treat the robot 1 like a pet, and learn language through communication with the robot 1.
[0088] Next, details of an internal circuit of the robot 1 according to the embodiment of the present disclosure will be described with reference to
[0089] As illustrated in
[0090] The control circuit 109 is configured of a computer including a memory 206, a main control unit 200 configured of a processor such as a CPU, a display information output control unit 205, and a timer not illustrated that checks the time.
[0091] The memory 206 is configured of, for example, a nonvolatile rewritable storage device that stores a program for controlling the robot 1 and so on.
[0092] The main control unit 200 executes the control program for controlling the robot 1, which is stored in the memory 206. Thereby, the main control unit 200 functions as a travelling state determination unit 201, an avoidance action control unit 202, and an attitude control unit 203.
[0093] The attitude detection unit 219 includes an acceleration sensor 221 and an angular velocity sensor 222.
[0094] For example, the acceleration sensor 221 is configured of a three-axis acceleration sensor attached to the first rotating plate 103. As illustrated in
[0095] The acceleration sensor 221 outputs the detected acceleration in the three directions to the main control unit 200. The acceleration sensor 221 and the angular velocity sensor 222 may be attached to the lower face of the first rotating plate 103, or the upper or lower face of the second rotating plate 104, rather than the upper face of the first rotating plate 103.
[0096] The angular velocity sensor 222 detects the angular velocity of the robot 1 about the crosswise direction, that is, the angular velocity of the robot 1 in a pitch direction. Further, the angular velocity sensor 222 detects the angular velocity of the robot 1 about the vertical direction, that is, the angular velocity of the robot 1 in a yaw direction. Further, the angular velocity sensor 222 detects the angular velocity of the robot 1 about the front-rear direction, that is, the angular velocity of the robot 1 in a roll direction.
[0097] The microphone 217 is provided on the frame 102, converts sound into an electric signal, and outputs the electric signal to the main control unit 200. For example, the microphone 217 may be attached to the upper face of the first rotating plate 103, or may be attached to the upper face of the second rotating plate 104. The main control unit 200 recognizes whether or not the user's voice is present in the sound acquired by the microphone 217, and stores voice recognition results in the memory 206 to manage the voice recognition results. The main control unit 200 compares voice recognition data stored in the memory 206 with the acquired sound, and recognizes speech contents and the user who spoke.
[0098] The speaker 216 is provided on the frame 102 such that an output face is oriented to the front, and converts the electric signal of sound into physical vibrations. The main control unit 200 outputs predetermined vice via the speaker 216 to enable the robot 1 to speak.
[0099] As described above with reference to
[0100] The main control unit 200 generates a command based on the voice recognition result and the face recognition result, and outputs the command to the display information output control unit 205, the shaft control unit 213, the housing drive wheel control unit 214, the weight drive mechanism control unit 215, and the communication unit 210.
[0101] According to the command from the main control unit 200, the display information output control unit 205 displays information on facial expression of the robot 1 on the display unit 211. The display unit 211 is configured of the first display unit 105, the second display unit 106, and the third display unit 107, which are described with reference to
[0102] According to the command from the main control unit 200, the shaft control unit 213 rotates the rotating shaft 118 described with reference to
[0103] According to the command from the main control unit 200, the housing drive wheel control unit 214 operates the housing drive wheel 212 of the robot 1. The housing drive wheel control unit 214 is configured of the first motor 112 and the second motor 113, which are described with reference to
[0104] According to the command from the main control unit 200, the weight drive mechanism control unit 215 operates the weight drive mechanism 218 of the robot 1. The weight drive mechanism control unit 215 is configured of a weight drive motor not illustrated built in the counterweight 114. The weight drive mechanism 218 is configured of the guide shaft 115, the swing arm 116, the rotational motor 117, the belt 119, the motor pulley 120, and the weight drive motor not illustrated, which are described with reference to
[0105] The communication unit 210 is configured of a communication device capable of connecting the robot 1 to the cloud server 3 (
(Main Routine)
[0106]
[0107] The flow chart in
[0108] Next, if it is determined that the robot is rotating in S101 (YES in S102), the main control unit 200 proceeds the processing to S103. Meanwhile, if it is determined that the robot is not rotating in S101 (NO in S102), the main control unit 200 finishes the processing.
[0109] In S103, the travelling state determination unit 201 executes travelling state determination processing. Details of the travelling state determination processing will be described later with reference to
[0110] In S104, the processing branches depending on the result of the travelling state determination processing (S103). That is, if the result of the travelling state determination processing indicates idling (idling in S104), the avoidance action control unit 202 executes idling control processing (S105), and finishes the processing. Details of the idling control processing will be described later with reference to
[0111] If the result of the travelling state determination processing indicates frictional surface travelling (frictional surface travelling in S104), the attitude control unit 203 executes attitude control processing (S106), and finishes the processing. Details of the attitude control processing will be described later with reference to
[0112] The travelling state refers to the travelling state of the robot 1 while the first motor 112 and the second motor 113 are rotating, and includes idling, uphill travelling, frictional surface travelling, and normal travelling.
[0113] Given that the friction coefficient of the wood flooring floor is a typical friction coefficient, the frictional surface travelling refers to the state where the robot 1 is travelling on the floor surface having a friction coefficient higher than the typical friction coefficient by a certain value (for example, carpet). In this embodiment, the robot 1 is designed such that the Y direction becomes parallel to the travelling direction in
[0114] If the result of the travelling state determination processing is normal travelling (normal travelling in S104), the main control unit 200 finishes processing. The normal travelling refers to the state where the robot 1 is travelling on a flat floor surface having the typical friction coefficient. The uphill travelling refers to the state where the robot 1 is going uphill. The idling refers to the state where the first motor 112 and the second motor 113 are rotating, but the robot 1 is static.
(Travelling State Determination Processing)
[0115]
[0116] If the result of the moving state determination processing is moving state (YES in S202), the travelling state determination unit 201 executes attitude change determination processing (S203). Details of the attitude change determination processing will be described later with reference to
[0117] If the result of the attitude change determination processing indicates attitude change (YES in S204), the travelling state determination unit 201 executes frictional surface travelling determination processing (S205). Details of the frictional surface travelling determination processing will be described later with reference to
[0118] If the result of the frictional surface travelling determination processing does not indicate frictional surface travelling (YES in S206), the travelling state determination unit 201 determines the travelling state as uphill travelling (S207), and the processing returns to S104 in
[0119] Meanwhile, if the result of the frictional surface travelling determination processing indicates frictional surface travelling (NO in S206), the travelling state determination unit 201 determines the travelling state of the robot 1 as frictional surface travelling (S208), and the processing returns to S104 in
(Moving State Determination Processing)
[0120]
[0121] Next, the travelling state determination unit 201 differentiates acceleration Ay in the Y direction among the acceleration A acquired in S301 to calculate current rate Vy of the robot 1 in the Y direction (S302).
[0122] Next, if the current rate Vy of the robot 1 in the Y direction is larger than 0 (YES in S303), the travelling state determination unit 201 determines that the robot 1 is moving state (S304). The moving state refers to the state where the first motor 112 and the second motor 113 do not idle and the robot 1 is actually travelling. Specifically, moving state includes the above-mentioned uphill travelling, frictional surface travelling, and normal travelling. Meanwhile, if the current rate Vy of the robot 1 in the Y direction is 0 (NO in S303), the travelling state determination unit 201 returns the processing to S202 in
(Attitude Determination Processing)
[0123]
[0124] Next, the travelling state determination unit 201 calculates an amount of change ?? of attitude angle ? that is the angle of the robot 1 in the pitch direction from angular velocity ?p in the pitch direction among the angular velocity ? acquired in S401 (S402). In this case, the travelling state determination unit 201 may calculate an amount of change ?? (=?p??t) by multiplying the sampling interval ?t by the angular velocity ?p acquired in S401. That is, the amount of change ?? refers to an amount of change in attitude angle ? at the sampling interval ?t.
[0125]
[0126] Next, the travelling state determination unit 201 calculates the current attitude angle ? (S403). In this case, given that the current attitude angle ? is the attitude angle ?(t), and the attitude angle ? calculated at the previous sampling point is the attitude angle ?(t??t), the travelling state determination unit 201 may calculate the attitude angle ? according to the equation: 0 (t)=0 (t??t)+M.
[0127] Next, the travelling state determination unit 201 excludes a gravitational acceleration component (g?cos ?) from the acceleration Az acquired in S401 to calculate acceleration Az (=Az?(?g?cos ?)) (S404). Values of the acceleration Az calculated in S404 for at least a certain period are stored in the memory to be used in below-mentioned frictional surface travelling determination processing (
[0128] Next, the travelling state determination unit 201 determines whether or not the attitude angle ? calculated in S403 reaches a predetermined lower limit angle ?L (S405).
[0129] If the attitude angle ? is the lower limit angle ?L or more (YES in S405), the travelling state determination unit 201 increments a count for keeping the determination time TD (S406). Since the flow chart of
[0130] Meanwhile, if the attitude angle ? is less than the lower limit angle ?L (NO in S405), the travelling state determination unit 201 proceeds the processing to S411.
[0131] In S407, if the count reaches determination time TD (YES in S407), the travelling state determination unit 201 determines the result of the attitude determination processing as attitude change (S408), and finishes keeping of the determination time TD (S409). In this case, the travelling state determination unit 201 may reset the count of the determination time TD to 0.
[0132] It is supposed that the robot 1 performs frictional surface travelling and uphill travelling while keeping a certain level of attitude angle ?. Thus, in the attitude change determination processing, if the condition that the attitude angle ? keeps the lower limit angle ?L or more for the determination time TD is satisfied, the travelling state determination unit 201 determines that the attitude of the robot 1 has changed. This can prevent the travelling state determination unit 201 from wrongly determining that the robot 1 is conducting frictional surface travelling or uphill travelling due to a temporal change in the attitude angle ? caused, for example, when the robot 1 runs onto a garbage on the wood flooring floor.
[0133] Next, the travelling state determination unit 201 sets an attitude control angle ?C to the current attitude angle ? (S410), and returns the processing to S204 in
[0134] In S411, if the determination time TD is being checked (YES in S411), the travelling state determination unit 201 finishes checking of the determination time TD (S412), and proceeds the processing to S413, and if the determination time TD is not being checked (NO in S411), the and proceeds the processing to S413. In S412, as in S409, the travelling state determination unit 201 may reset the count of the determination time TD to 0.
[0135] In S413, the travelling state determination unit 201 determines the result of the attitude determination processing as no attitude change, and returns the processing to S204 in
[0136] When the robot 1 travels on a floor surface such as carpet having yarns of varied directions and lengths, the attitude angle ? may repeatedly fluctuate up and down around the lower limit angle ?L. In this case, despite that the attitude angle ? is not continuously kept at the lower limit angle ?L or more, the travelling state determination unit 201 may determine attitude change due to the accumulated value of the count. To present this, the processing in S411, S412 is provided. This can prevent the value in the count from being accumulated when the attitude angle ? repeatedly fluctuates up and down around the lower limit angle ?L. As a result, when the attitude angle ? is not continuously kept at the lower limit angle ?L or more, the travelling state determination unit 201 can be prevented from wrongly determining attitude change.
[0137] The attitude determination processing will be summarized with reference to
(Frictional Surface Travelling Determination Processing)
[0138]
[0139]
[0140]
[0141] Referring to
[0142] Referring to
[0143] Immediately after the robot 1 enters to the floor face FB, the rate V decreases one by friction and so on, but the robot 1 is controlled to travel at a uniform rate and thus, the rate V returns to target rate soon. In a transient period during which the robot 1 enters to the floor face FB and the rate V returns to the target rate, acceleration az caused by a change in the rate Vz is added to the robot 1 in the Z direction.
[0144] In the transient period, since the attitude angle ? of the robot 1 increases from 0 degree to an angle corresponding to the friction coefficient of the floor face FB, the acceleration of ?g?cos ? caused by gravity in addition to the acceleration az is added to the robot 1 in the Z direction. Thus, the acceleration Az becomes az?g?cos ?. Accordingly, the acceleration Az becomes az (Az=az?g?cos ??(?g?cos ?)). In the transient period, since the rate Vz decreases and then, increases, the acceleration az changes in the ?direction and then, changes in the +direction. Therefore, in the transient period of frictional surface travelling, as represented by the waveform W221 in
[0145] Referring to
[0146] Thus, in the transient period during the robot 1 enters to the sloping road FC and runs onto the sloping road FC, the acceleration az caused by the rate Vz is not added to the robot 1 as in frictional surface travelling, and the acceleration of ?g?cos ? caused by gravity is added to the robot 1. Accordingly, as represented by the waveform W212 in
[0147] As described above, during uphill travelling, since only the acceleration of ?g?cos ? caused by gravity is added to the acceleration Az, the acceleration Az becomes 0 (Az=?g?cos ??(?g?cos ?)). Accordingly, as represented by the waveform W222 in
[0148] Accordingly, if the acceleration Az is kept to be less than a reference value for a certain time, the travelling state determination unit 201 determines the travelling state of the robot 1 as frictional surface travelling (YES in S501). Meanwhile, if the acceleration Az is not kept to be less than the reference value for the certain time, the travelling state determination unit 201 determines the travelling state of the robot 1 as uphill travelling (NO in S501).
[0149] In S404 in
(Idling Processing)
[0150]
[0151] First, as the robot 1 is idling due to the presence of the obstacle 2600 as illustrated in
[0152] Next, the travelling state determination unit 201 executes the moving state determination processing (S602). Details of the moving state determination processing is described with reference to
[0153] Next, if the result in S602 indicates moving state (NO in S603), the robot 1 can travel in the direction D262, and the avoidance action control unit 202 rotates the robot 1 by 180 degrees (S613), to bring the robot 1 into normal travelling using the direction D262 as the travelling direction (S614).
[0154] In this case, the avoidance action control unit 202 may output a command to rotate the first drive wheel 110 and the second drive wheel 111 in opposite directions until the robot 1 rotates by 180 degrees to the housing drive wheel control unit 214, thereby rotating the robot 1 by 180 degrees. The avoidance action control unit 202 may monitor the rotational angle of the robot 1 in the yaw direction by integrating the angular velocity coy in the yaw direction, which is detected by the angular velocity sensor 222, and determine that the robot 1 rotates by 180 degrees when the rotational angle becomes 180 degrees.
[0155] Meanwhile, if the result in S602 does not indicate moving state (YES in S603), the robot 1 cannot travel in the direction D261 or the direction D262, and the avoidance action control unit 202 rotates the robot 1 counterclockwise by 90 degrees to change the travelling direction of the robot 1 to a direction D263 (S604). In this case, as illustrated in
[0156] Details of control of the avoidance action control unit 202 in S604 is the same as those in S601 and detailed description thereof will be omitted. This also applies below-mentioned S607 and S610.
[0157] Next, the travelling state determination unit 201 executes the moving state determination processing again (S605). Next, if the result in S605 indicates moving state (NO in S606), the robot 1 can travel in the direction D263, and the avoidance action control unit 202 brings the robot 1 into normal travelling using the direction D263 as the travelling direction (S614).
[0158] Meanwhile, if the result in S605 does not indicate moving state (YES in S606), the robot 1 cannot travel in the direction D261, D262 or the direction D263. Thus, the avoidance action control unit 202 rotates the robot 1 from the current travelling direction (direction D263) by 180 degrees as illustrated in
[0159] Next, the travelling state determination unit 201 executes the moving state determination processing again (S608). Next, if the result in S608 indicates moving state (NO in S609), the robot 1 can travel in the direction D264, and the avoidance action control unit 202 brings the robot 1 into normal travelling using the direction D264 as the travelling direction (S614).
[0160] Meanwhile, if the result in S608 does not indicate moving state (YES in S609), the robot 1 cannot travel in the direction D261, D262, D263 or the direction D264, and the avoidance action control unit 202 determines that the avoidance action cannot be made and executes the processing in S610 to S612.
[0161] In S610, as illustrated in
[0162] Next, the avoidance action control unit 202 outputs a command to move the counterweight 114 to an end in the opposite direction (D266) to the current travelling direction (D265) to the weight drive mechanism control unit 215 (S611). Next, when receiving the command, the weight drive mechanism control unit 215 moves the counterweight 114 to the rear end of the swing arm 116 (S612).
[0163] In this case, as illustrated in
(Attitude Direction Control Processing)
[0164]
[0165] First, the attitude control unit 203 acquires the attitude control angle ?C set by the travelling state determination unit 201 in S410 in
[0166] Next, the attitude control unit 203 calculates a movement amount of the counterweight 114, which corresponds to the attitude control angle ?C (S702). In this case, a movement amount D of the counterweight is calculated according to the equation: D=K???.
[0167] Here, K is a coefficient for converting the attitude control angle ?C into the movement amount, and is D_max/?_max. D_max denotes the maximum amplitude of the counterweight 114. Given that the center of the swing arm in the front-rear direction is the default position of the counterweight 114 with reference to
[0168] Next, the attitude control unit 203 outputs a command to move the counterweight 114 forward by the movement amount D calculated in S702 to the weight drive mechanism control unit 215, thereby moving the counterweight 114 to the position corresponding to the attitude control angle ?C (S703).
[0169] During frictional surface travelling, as illustrated in
[0170] Therefore, the robot 1 in this embodiment can prevent from unnaturally travelling with the face oriented upward, depending on the material for the floor surface.
[0171] In this embodiment, even when the attitude angle ? becomes the lower limit angle ?L or more, if the attitude angle ? returns to the angle less than lower limit angle ?L for the determination time TD (NO in S407 in
[0172] In this case, for example, when the robot 1 runs onto a garbage on the wood flooring floor, and the face of the robot 1 is temporarily oriented upward, control to move the face of the robot 1 downward is not performed. This can prevent the robot 1 from unnaturally travelling with the face oriented downward after passing on the garbage.
[0173] In this embodiment, even when the attitude angle ? becomes 0 degree or more, if the attitude angle ? is less than the lower limit angle ?L (NO in S407 in
[0174] In this case, the counterweight 114 is not moved. Although the face of the robot 1 is oriented slightly upward, the amount is small and thus, the face of the robot 1 need not be oriented downward. Thus, in this embodiment, the attitude angle ? is less than the lower limit angle ?L, the result is determined as no attitude change.
[0175] In this embodiment, if the travelling state is determined as uphill travelling in S104 in
[0176] As illustrated in
[0177] In this embodiment, when the robot 1 cannot move due to the presence of the obstacle 2600, the counterweight 114 is moved to the rear end of the swing arm 116, and the face of the robot 1 is oriented above. This can imitate that the robot 1 hits against the obstacle 2600 and turns over.
Modification Example 1
[0178] In the above embodiment, when the robot 1 cannot move due to the presence of the obstacle 2600, the face of the robot 1 is oriented above to imitate that the robot 1 turns over. However, the present disclosure is not limited to this, and when the robot 1 cannot move due to the presence of the obstacle 2600, the counterweight 114 may be kept at the default position.
Modification Example 2
[0179] In the above embodiment, the acceleration sensor 221 is provided, but the acceleration sensor 221 may be omitted. In this case, frictional surface travelling and uphill travelling cannot be distinguished from each other based on the acceleration Az. However, in the case of frictional surface travelling, the attitude angle ? can be calculated from the angular velocity detected by the angular velocity sensor 222, directing the face of the robot 1 downward by the attitude angle ?.
Modification Example 3
[0180] In the above embodiment, as illustrated in
Overview of Embodiment of the Present Disclosure
[0181] According to an embodiment of the present disclosure, a robot includes a spherical housing, a frame disposed in the housing, a display unit that is provided on the frame, a set of drive wheels that are provided on the frame, a weight drive mechanism that is provided on the frame, an angular velocity sensor, and a control circuit. The display displays at least a portion of a face of the robot. The set of drive wheels rotate and move the housing while being in contact with an inner circumferential face of the housing. The weight drive mechanism reciprocates a weight in a predetermined direction. The angular velocity sensor detects angular velocity about a crosswise direction that is perpendicular to a travelling direction of the housing. The control circuit, if the control circuit determines, while the housing is being rotated and moved, that a rotational angle of the housing when viewed from front in the travelling direction changes upward beyond a predetermined angle based on a change in the angular velocity about the crosswise direction, moves the weight frontward in the travelling direction of the housing by a distance corresponding to the rotational angle.
[0182] In this embodiment, a weight drive mechanism that reciprocates the weight in a predetermined direction is provided on the frame, and an angular velocity sensor that detects angular velocity about the crosswise direction that is perpendicular to the travelling direction of the housing is provided.
[0183] If it is determined, while the housing is being rotated and moved, that the rotational angle of the housing when viewed from the front in the travelling direction changes upward beyond a predetermined angle based on a change in the angular velocity about the crosswise direction, it can be assumed that the position of the display unit is moved upward as the movement of the housing in the travelling direction when viewed in the travelling direction is restricted by friction between the housing and the floor surface. In this embodiment, in such case, the weight is moved forward in the travelling direction of the housing by a distance corresponding to the rotational angle.
[0184] Thereby, even when the movement of the housing in the travelling direction is restricted by friction between the housing and the floor surface, the display unit oriented upward due to the restriction can be turned downward.
[0185] As a result, the position of the robot's face, that is, the attitude of the robot can be prevented from unnaturally changing due to the material for the floor surface rather than internal processing of the robot, irrespective of the same travelling processing.
[0186] According to another embodiment of the present disclosure, a robot includes a spherical housing, a frame that is disposed in the housing, a display unit that is provided on the frame, a set of drive wheels that are provided on the frame, a weight drive mechanism that is provided on the frame, an acceleration sensor, an angular velocity sensor, and a control circuit. The frame includes a base. The display unit displays at least a portion of a face of the robot. The set of drive wheels rotate and move the housing while the drive wheels being in contact with an inner circumferential face of the housing. The weight drive mechanism reciprocates a weight in a predetermined direction. The acceleration sensor detects a first acceleration in a vertical direction that is perpendicular to the base. The angular velocity sensor detects angular velocity about a crosswise direction that is perpendicular to a travelling direction of the housing. The control circuit acquires a second value by excluding a gravitational component from a first value indicative of the first acceleration outputted from the acceleration sensor. If the control circuit determines, while the housing is being rotated and moved, that the second value changes from a reference value beyond a first change range and reaches a value corresponding to a downward direction that is perpendicular to the base, and that the rotational angle of the housing when viewed from the front in the travelling direction changes upward beyond a predetermined angle based on a change in the angular velocity about the crosswise direction, the control circuit moves the weight forward in the travelling direction of the housing by a distance corresponding to the rotational angle.
[0187] While the housing is being rotated and moved, when it is determined that the second value changes from a reference value beyond a first change range and reaches a value corresponding to a downward direction that is perpendicular to the base, and the rotational angle of the housing when viewed from the front in the travelling direction changes upward beyond a predetermined angle based on a change in the angular velocity about the crosswise direction, it can be assumed that the position of the display unit is moved upward as the movement of the housing in the travelling direction is restricted by friction between the housing and the floor surface. In this embodiment, in such case, the weight is moved forward in the travelling direction of the housing by a distance corresponding to the rotational angle.
[0188] Thereby, even when the movement of the housing in the travelling direction is restricted by friction between the housing and the floor surface, the display unit oriented upward due to the restriction can be turned downward.
[0189] As a result, the position of the robot's face, that is, the attitude of the robot can be prevented from unnaturally changing due to the material for the floor surface rather than internal processing of the robot, irrespective of the same travelling processing.
[0190] Preferably, in the above embodiment, if the control circuit determines, while the housing is being rotated and moved, that the second value changes within the first change range, and that, the rotational angle of the housing when viewed from the front in the travelling direction changes upward beyond the predetermined angle based on the change in the angular velocity about the crosswise direction, the control circuit does not move the weight forward in the travelling direction of the housing.
[0191] For example, when the robot goes uphill, a force in the downhill direction is exerted onto the housing to restrict movement of the housing in the travelling direction. Also in this case, the display unit is moved upward.
[0192] While the robot goes uphill, even when the robot's face is oriented upward, it is not unnatural unlike the case where the robot travels on the carped having a high friction coefficient. When detection results of the acceleration sensor and the angular velocity sensor indicates that second value changes within the first change range, and that the rotational angle of the housing when viewed from the front in the travelling direction changes upward beyond the predetermined angle based the change in the angular velocity about the crosswise direction, the robot's face is oriented upward and further, the robot itself moves upward. Therefore, it can be estimated that the robot travels on a sloping road, for example.
[0193] Thus, from this embodiment, if it is determined, while the housing is being rotated and moved, that the second value changes within the first change range, and that the rotational angle of the housing when viewed from the front in the travelling direction changes upward beyond the predetermined angle based on the change in the angular velocity about the crosswise direction, the weight is not moved forward in the travelling direction of the housing.
[0194] Thus, even when the robot's face is oriented upward, the case where the robot goes uphill can be distinguished from the case where the robot travels on the carpet having a high friction coefficient. In the former case, the weight is not moved forward in the travelling direction of the housing, with the robot's face oriented upward.
[0195] This can prevent the robot's face from being corrected to unnaturally turn downward while the robot goes uphill.
[0196] Preferably, in the above embodiment, the acceleration sensor detects a second acceleration in the travelling direction of the housing that is parallel to the base, and, while the housing is being rotated and moved, the control circuit moves the weight rearward in the travelling direction of the housing if the second value changes within the first change range, the change in the second acceleration falls within a second change range, and the change in the rotational angle of the housing falls within the predetermined angle.
[0197] For example, when the robot hits against a wall during travelling and becomes idle, waveforms outputted from the acceleration sensor and the angular velocity sensor indicate the following state. The second value changes within the first change range, the change in the second acceleration falls within a second change range, and the change in the rotational angle of the housing falls within the predetermined angle. That is, since the robot does not go uphill, but travels on the flat surface, the second value changes within the first change range. Since the robot hits against the wall and cannot move forward, the change in the second acceleration in the travelling direction of the housing falls within the second change range. Since the robot hits against the wall, but is not restricted in travelling by friction between the housing and the floor surface, the robot's face do not turn upward, and becomes idle without changing its attitude. Accordingly, the rotational angle of the housing falls within the predetermined angle.
[0198] Thus, from this embodiment, while the housing is being rotated and moved, it is determined that the robot hits against the wall or the like during travelling, and becomes idle if the second value changes within the first change range, the change in the second acceleration falls within a second change range, and the change in the rotational angle of the housing falls within the predetermined angle.
[0199] In this case, according to this embodiment, the weight is moved rearward in the travelling direction of the housing.
[0200] Thereby, when it is determined that the robot hits against the wall or the like during travelling, and becomes idle, the robot's face is oriented upward. That is, when the robot hits against the wall or the like during travelling, the robot's face is oriented upward on purpose to imitate that the robot hits against the wall and turns over.
[0201] The moving direction of the weight varies depending whether the robot hits against the wall or the like during travelling and becomes idle, or travels on the carpet having a high friction coefficient.
[0202] When the robot hits against the wall or the like during travelling and becomes idle, the robot's attitude is corrected to turn the robot's face upward on purpose as if the robot turns over. This can appeal the user that the robot hits against the wall or the like.
[0203] Preferably, in the above embodiment, the acceleration sensor detects a second acceleration in the travelling direction of the housing that is parallel to the base, and, while the housing is being rotated and moved, the control circuit does not move the weight forward in the travelling direction of the housing if the second value changes within the first change range, a change in the second acceleration falls within a second change range, and a change in the rotational angle of the housing falls within the predetermined angle.
[0204] From this embodiment, when it is determined that the robot hits against the wall or the like during travelling and becomes idle, the weight is not moved forward in the travelling direction of the housing.
[0205] In this manner, the case where the robot hits against the wall or the like during travelling and becomes idle is distinguished from the case where the robot travels on the carpet having a high friction coefficient. In the former case, the robot is not restricted in travelling by friction between the housing and the floor surface. Thus, the weight is not moved forward in the travelling direction of the housing to remain the attitude of the robot unchanged.
[0206] This can prevent the robot's face from being corrected to unnaturally turn downward when the robot hits against the wall and becomes idle.
[0207] According to another embodiment of the present disclosure, a robot includes a spherical housing, a frame that is disposed in the housing, a display unit that is provided on the frame, a set of drive wheels that are provided on the frame, a weight drive mechanism that is provided on the frame, an acceleration sensor, an angular velocity sensor, and a control circuit. The frame includes a base. The display unit displays at least a portion of a face of the robot. The set of drive wheels rotate and move the housing while being in contact with an inner circumferential face of the housing. The weight drive mechanism reciprocates a weight in a predetermined direction. The acceleration sensor detects a first acceleration in a vertical direction that is perpendicular to the base. The angular velocity sensor detects angular velocity about a crosswise direction that is perpendicular to a travelling direction of the housing. The control circuit acquires a second value by excluding a gravitational component from a first value indicative of the first acceleration outputted from the acceleration sensor. If the control circuit determines, while the housing is being rotated and moved, that the second value changes from a reference value beyond a first change range and reaches a value corresponding to a downward direction that is perpendicular to the base, and that the housing when viewed from the front in the travelling direction rotates from a reference position upward beyond a predetermined angle based on a change in the angular velocity about the crosswise direction, the control circuit determines a rotational angle of the housing based on a change in the angular velocity about the crosswise direction during a predetermined time after the start of the rotation by the housing from the reference position, and moves the weight from an initial position of the weight forward in the travelling direction of the housing by a distance corresponding to the rotational angle.
[0208] If it is determined, while the housing is being rotated and moved, that the second value changes from the reference value beyond a first change range and reaches a value corresponding to a downward direction that is perpendicular to the base, and that based on the change in the angular velocity about the crosswise direction, the housing rotates from the reference position upward when viewed from the front in the travelling direction beyond the predetermined angle, the display unit is estimated to move upward due to restriction of driving by friction or the like. Thus, from this embodiment, in such case, the rotational angle of the housing is determined based on the change in the angular velocity about the crosswise direction during a predetermined time after the start of the rotation of the housing from the reference position, and the weight is moved forward from an initial position of the weight in the travelling direction of the housing by a distance corresponding to the rotational angle.
[0209] Thereby, even when the movement of the housing in the travelling direction is restricted by friction between the housing and the floor surface, the display unit oriented upward due to the restriction can be turned downward.
[0210] As a result, the position of the robot's face, that is, the attitude of the robot can be prevented from unnaturally changing due to the material for the floor surface rather than internal processing of the robot, irrespective of the same travelling processing.
[0211] Preferably, in the above embodiment, if the control circuit determines based on the change in the angular velocity about the crosswise direction that the rotation of the housing from the reference position returns to the predetermined angle or less before the predetermined time elapses, the control circuit does not move the weight.
[0212] For example, also when the housing runs onto a garbage on the wood flooring floor during the movement of the housing in the travelling direction, the display unit may be temporarily moved upward by friction between the housing and the floor surface. In such case, if the display unit is moved downward, when the robot travels with the face oriented downward even after passing on the garbage. Thus, from this embodiment, when it is determined based on the change in the angular velocity about the crosswise direction, the rotational of the housing from the reference position returns to the predetermined angle or less before the predetermined time elapses, control to move the weight is not performed.
[0213] This can prevent the robot from unnaturally travelling after passing on the garbage, with the face oriented downward.
[0214] Preferably, in the above embodiment, while the housing is being rotated and moved, the control circuit does not move the weight if the control circuit determines that the second value changes from the reference value beyond the first change range and reaches the value corresponding to the downward direction that is perpendicular to the base, and that the upward rotation of the housing from the reference position when viewed from the front in the travelling direction falls within the predetermined angle based on the change in the angular velocity about the crosswise direction.
[0215] Even when movement in the travelling direction of the housing is restricted by friction between the housing and the floor surface, and the display unit is turned upward due to the restriction, if the turned angle is the predetermined angle or less, the change in the position of the robot's face due to the material for the floor surface is small. For this reason, control to move the weight is not performed.
[0216] Preferably, in the above embodiment, while the housing is being rotated and moved, the control circuit does not move the weight if the control circuit determines that the second value changes within the first change range, and that the housing when viewed from the front in the travelling direction rotates from the reference position upward beyond the predetermined angle based on the change in the angular velocity about the crosswise direction.
[0217] Preferably, in the above embodiment, the acceleration sensor detects a second acceleration in the travelling direction of the housing that is parallel to the base, and, while the housing is being rotated and moved, the control circuit moves the weight from an initial position of the weight rearward in the travelling direction of the housing if the control circuit determines that the second value changes within the first change range, that the change in the second acceleration falls within a second change range, and that the upward rotation of the housing from the reference position when viewed from the front in the travelling direction falls within the predetermined angle or less based on the change in the angular velocity about the crosswise direction.
[0218] Preferably, in the above embodiment, the acceleration sensor detects a second acceleration in the travelling direction of the housing that is parallel to the base, and, while the housing is being rotated and moved, the control circuit does perform control to move the weight if the control circuit determines that the second value changes within the first change range, that the change in the second acceleration falls within a second change range, and that the upward rotation of the housing from the reference position when viewed from the front in the travelling direction falls within the predetermined angle or less based on the change in the angular velocity about the crosswise direction.
[0219] The present disclosure is advantageous in that the robot can be caused to travel without presenting unnatural appearance.