ROBOT
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.
The present disclosure relates to a robot that determines its own state.
2. Description of the Related ArtHeretofore, various robots have been proposed.
International Publication No. WO2000/032360 discloses a multi-legged walking robot having four legs (for example, page 8, lines 15 to 17). The multi-legged walking robot disclosed in International Publication No. WO2000/032360 includes an acceleration sensor that detects acceleration in three-axis (X-axis, Y-axis, and Z-axis) directions, and an angular velocity sensor that detects rotation angular velocity in three-angle (R-angle, P-angle, and Y-angle) directions (for example, page 8, line 26 to page 9, line 8). When detecting that a user lifts up the robot based on detection results of the acceleration sensor and the angular velocity sensor (for example, page 9, lines 5 to 14), the robot stops the motion of its legs (for example, page 10. lines 13 to 20). This can prevent the robot from injuring the user (for example, page 6, lines 11 to 12).
SUMMARYThe above-mentioned conventional technique needs to be further improved.
In one general aspect, the techniques disclosed here feature a robot includes: a spherical housing; a frame disposed in the housing; a display unit that is provided on the frame, and that displays at least a portion of a face of the robot; a set of drive wheels that are provided on the frame, and that rotate and move the housing while being in contact with an inner circumferential face of the housing; a weight drive mechanism that is provided on the frame, and that reciprocates a weight in a predetermined direction; 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, 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.
From the above-mentioned aspect, further improvement can be achieved.
It should be noted that general or specific embodiments may be implemented as a system, a method, an integrated circuit, a computer program, a storage medium, or any selective combination thereof.
Additional benefits and advantages of the disclosed embodiments will become apparent from the specification and drawings. The benefits and/or advantages may be individually obtained by the various embodiments and features of the specification and drawings, which need not all be provided in order to obtain one or more of such benefits and/or advantages.
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).
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.
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.
Such problem is not mentioned in International Publication No. WO2000/032360, and seems to have never been addressed before.
To solve the problem, the Inventor devised following aspects of the invention.
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.
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.
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.
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.
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)In
As illustrated in
As illustrated in
As illustrated in
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.
As illustrated in
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.
The robot 1 further includes a power source not illustrated and a microphone 217 (
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
As illustrated in
As illustrated in
Next, the basic operation of the robot 1 using the counterweight 114 will be described with reference to
As illustrated in
As illustrated in
As illustrated in
As illustrated in
As illustrated in
Details of the operation of the robot 1 using the counterweight 114 will be described with reference to
As illustrated in
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.
As illustrated in
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.
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
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.
As described above, the user 1501 can treat the robot 1 like a pet, and learn language through communication with the robot 1.
Next, details of an internal circuit of the robot 1 according to the embodiment of the present disclosure will be described with reference to
As illustrated in
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.
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.
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.
The attitude detection unit 219 includes an acceleration sensor 221 and an angular velocity sensor 222.
For example, the acceleration sensor 221 is configured of a three-axis acceleration sensor attached to the first rotating plate 103. As illustrated in
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.
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.
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.
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.
As described above with reference to
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.
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
According to the command from the main control unit 200, the shaft control unit 213 rotates the rotating shaft 118 described with reference to
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
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
The communication unit 210 is configured of a communication device capable of connecting the robot 1 to the cloud server 3 (
The flow chart in
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.
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
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
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
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”.
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
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)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
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
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
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
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).
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
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.
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.
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 (
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).
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
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.
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.
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.
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
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.
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
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”.
The attitude determination processing will be summarized with reference to
Referring to
Referring to
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.
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
Referring to
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
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
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).
In S404 in
First, as the robot 1 is idling due to the presence of the obstacle 2600 as illustrated in
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
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).
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.
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
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.
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).
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
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).
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.
In S610, as illustrated in
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).
In this case, as illustrated in
First, the attitude control unit 203 acquires the attitude control angle θC set by the travelling state determination unit 201 in S410 in
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×Δθ.
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
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).
During frictional surface travelling, as illustrated in
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.
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
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.
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
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.
In this embodiment, if the travelling state is determined as uphill travelling in S104 in
As illustrated in
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 1In 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 2In 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 3In the above embodiment, as illustrated in
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
This can prevent the robot's face from being corrected to unnaturally turn downward while the robot goes uphill.
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.
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.
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.
In this case, according to this embodiment, the weight is moved rearward in the travelling direction of the housing.
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.
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.
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.
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.
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.
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.
This can prevent the robot's face from being corrected to unnaturally turn downward when the robot hits against the wall and becomes idle.
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.
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.
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.
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.
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.
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.
This can prevent the robot from unnaturally travelling after passing on the garbage, with the face oriented downward.
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.
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.
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.
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.
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.
The present disclosure is advantageous in that the robot can be caused to travel without presenting unnatural appearance.
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.
Type: Application
Filed: Feb 27, 2018
Publication Date: Jul 5, 2018
Inventors: RYOUTA MIYAZAKI (Osaka), KENTO OGAWA (Osaka), SEIYA HIGUCHI (Osaka)
Application Number: 15/905,893