The present disclosure relates to a robot apparatus that behaves according to periodic communications between a central control part and an actuator of each joint shaft and a method for controlling the robot apparatus, and particularly relates to a robot apparatus that ensures the safety of the behavior when the periodic communication is lost and a method for controlling the robot apparatus. The central control part indicates a desired control value. The actuator drives each joint according to the desired control value.
In a rapidly aging society, an aged individual preferably stays healthy without a nursing care as long as possible and it is also preferable that an aged individual can independently live without worsening the condition if he or she is in a condition of need for a nursing care. In the future, attendance on one aged individual by one helper will cause the shortage of the number of helpers as there is a growing need for a nursing care or a support for housekeeping. Accordingly, there is a growing need for a mechatronic device such as a robot to act for a housekeeper or a care worker among elder care facilities and homes having an aged individual. In other words, there is an urgent need to ensure the safety of a robot working in a living space, coupled with the assumption that a robot deeply pervades a living space.
In the case of an industrial robot, separating the working area with a fence generally ensures the safety. However, separating the working area with a fence is difficult in the case of a housekeeping or nursing care robot because the robot behaves while physically in contact with an individual.
A general industrial robot arm or the like brakes when powered off and stops the behavior to maintain the posture in order to ensure the safety. In this case, the safety means preventing the arm from dropping under the force of gravity and damaging the surroundings. However, the robot arm itself becomes a projection from the floor or the wall when fixed by the brake while the robot arm is powered off. This causes a risk that the fixed robot arm collides with a person when the person approaches.
A robot in the past is often of a position control type that gives an angle instruction value to the actuator for driving a joint and drives a joint according to the instruction value. The position control type robot is weak in a “soft” control for the force or the acceleration although being easily controlled. On the other hand, the applicant considers that a robot serving a more flexible physical interaction with a person as a nursing care or housekeeping is preferably of a force control type that gives a torque instruction value to the actuator for driving a joint and drives a joint according to the instruction value. The force control type robot can directly control the force by directly controlling the generating force at a joint.
For example, Japanese Patent Application Laid-Open No. 10-329071 discloses an impedance control apparatus for a robot arm that can decrease the restoring force when a large force acts on the arm to increase the safety, and can increase the restoring force when a small force acts on the arm to ensure the motion accuracy, by directly detecting a contact force between the robot arm and a person (or an object) and using information about the contact force (refer to the Japanese Patent Application Laid-Open No. 10-329071).
A robot generally controls the force or the position according to the communication between the central control part 400 and the driving part of each joint actuator at predetermined control periods. When the periodic communication between the central control part 400 and the driving part of each joint actuator is lost, the central control part 400 fails to obtain a value of torque generated at the joint or the current position information of the joint, and the driving part of the joint actuator fails to receive a instruction value from the central control part 400. Accordingly, the central control part 400 fails to control the drive of the joint actuator.
In the above-mentioned impedance control apparatus for a robot arm, the central control part 400 controls the drive of the joint actuator on the assumption that the periodic communication can be done. For example, the torque value needs to be changed according to the posture when a force control type robot controls the drive of the joint actuator. When the periodic communication is lost in this case, the torque instruction value of the joint shaft losing the communication becomes constant. This causes the joint shaft to lose the balance and yield to the force of gravity or to rotate against the force of gravity when the posture is changed for some reasons. A constant torque instruction value does not maintain the position so that the posture increasingly loses the balance. Accordingly, the actuator is in danger of going out of control. In other words, the impedance control apparatus may not ensure the safety while a periodic communication is lost.
It is desirable to provide an excellent robot apparatus and a method for controlling the robot apparatus. The robot apparatus can properly behave according to the periodic communication between the central control part indicating a desired control value and the actuator of each joint shaft driven according to the desired control value.
It is furthermore desirable to provide an excellent robot apparatus and a method for controlling the robot apparatus. The robot apparatus can ensure the safety of the behavior in the case where the periodic communication is lost.
In view of the foregoing needs, according to an embodiment of the present disclosure, there is provided a robot apparatus including actuators for driving joint shafts and measuring at least one of a joint angle and a joint angle speed of each of the joint shafts, and a central control part for controlling each of the actuators. The central control part performs a periodic communication at predetermined control periods and the periodic communication includes transmitting a desired control value from the central control part to each of the actuators and transmitting a measured value from each of the actuators to the central control part, the central control part stops the periodic communication in response to an occurrence of an actuator that has failed to receive the measured value during a given period of time in the periodic communication, and each of the actuators performs a safety stop in response to an event where the actuator has not received the desired control value in the periodic communication during a given period of time.
According to another embodiment of the present disclosure, there is provided a robot apparatus including actuators for driving joint shafts and measuring torque and at least one of a joint angle and a joint angle speed of each of the joint shafts, and a central control part for controlling each of the actuators. The central control part performs a periodic communication at predetermined control periods and the periodic communication includes transmitting a desired control value from the central control part to each of the actuators and transmitting a measured value from each of the actuators to the central control part, the central control part stops the periodic communication in response to an occurrence of an actuator that has failed to receive the measured value during a given period of time in the periodic communication, and each of the actuators performs a safety stop in response to an event where the actuator has not received the desired control value in the periodic communication during a given period of time.
According to the embodiments of the present disclosure described above, each of the actuators may approximate a desired angle speed value to zero in time order under an angle speed control mode, may also approximate a speed control gain to zero in time order, and then may stop a servo as the safety stop.
According to the embodiments of the present disclosure described above, the robot apparatus may further include an arm part. Each of the actuators may include a brake part for maintaining a rotation angle at the safety stop, and the brake part does not maintain the rotation angle of an actuator of which rotation axis direction corresponds with the direction of gravity at the safety stop although the brake part maintains the rotation angle of an actuator of which rotation axis direction does not correspond with the direction of gravity, and the actuators may be included in the arm part.
According to the embodiments of the present disclosure described above, each of the actuators may include a brake part for maintaining a rotation angle at the safety stop, the central control part may find an angle value to safely stop each of the actuators and a predetermined value for a safety stop indicating an ON/OFF of the brake part and performs the periodic communication to transmit the values, and each of the actuators may update the predetermined value for a safety stop at each periodic communication to perform the safety stop according to the predetermined value for a safety stop.
According to another embodiment of the present disclosure, there is provided a method for controlling a robot apparatus, including performing a periodic communication between actuators and a central control part, the periodic communication including transmitting a desired control value from the central control part to each of the actuators and transmitting a measured value from each of the actuators to the central control part at predetermined control periods, each of the actuators driving a joint shaft and also measuring at least one of a joint angle and a joint angle speed of the joint shaft, the central control part controlling each of the actuators, stopping, by the central control part, a periodic communication in response to an occurrence of an actuator that has failed to receive the measured value for a given period of time in the periodic communication; and performing a safety stop in response to an event where the actuator has not received the desired control value during a given period of time in the periodic communication.
According to another embodiment of the present disclosure, there is provided a method for controlling a robot apparatus, including performing a periodic communication between actuators and a central control part, the periodic communication including transmitting a desired control value from the central control part to each of the actuators and transmitting a measured value from each of the actuators to the central control part at predetermined control periods, each of the actuators driving a joint shaft and also measuring at least one of a joint angle and a joint angle speed of the joint shaft, the central control part controlling each of the actuators, stopping, by the central control part, a periodic communication in response to an occurrence of an actuator that has failed to receive the measured value for a given period of time in the periodic communication, and performing a safety stop in response to an event where the actuator has not received the desired control value during a given period of time in the periodic communication.
According to the technique disclosed herein, an excellent robot apparatus and a method for controlling the robot apparatus can be provided. The robot apparatus can ensure the safety of the behavior even if the periodic communication between the central control part that indicates a desired control value and the actuator of each joint shaft that drives according to the desired control value is lost.
These and other purposes, features, and advantages of the technique disclosed herein will be understood upon examining the figures and reading the following detailed description of the embodiments of the disclosure.
Hereinafter, preferred embodiments of the present disclosure will be described in detail with reference to the appended drawings. Note that, in this specification and the appended drawings, structural elements that have substantially the same function and structure are denoted with the same reference numerals, and repeated explanation of these structural elements is omitted.
The robot apparatus 100 shown in
The driving wheels are coupled to the upper body through a waist joint. The waist joint is driven by a waist joint pitch-axis actuator 103 that rotates around the pitch axis. The upper body includes two right and left arm parts and a head part coupled through a neck joint. The right and left arm parts have three degrees of freedom of the shoulder joint, two degrees of freedom of the elbow joint, and two degrees of freedom of the wrist joint, totaling seven degrees of freedom. The three degrees of freedom of the shoulder joint are driven by shoulder joint pitch-axis actuators 104R/104L, shoulder joint roll-axis actuators 105R/105L, and shoulder joint yaw-axis actuators 106R/106L. The two degrees of freedom of the elbow joint are driven by elbow joint pitch-axis actuators 107R/107L and elbow joint yaw-axis actuators 108R/108L. The two degrees of freedom of the wrist joint are driven by wrist joint roll-axis actuators 109R/109L and wrist joint pitch-axis actuators 110R/110L. The two degrees of freedom of the neck joint are driven by a neck joint pitch-axis actuator 111 and a neck joint yaw-axis actuator 112. One degree of freedom of the hand joint is driven by hand joint roll-axis actuators 113R/113L.
Note that the gist of the technique disclosed herein is not limited to the opposed-two-wheeled transportation although the robot apparatus 100 shown in
The actuator of each shaft is equipped with an encoder for measuring the joint angle, a motor for generating torque, a current-controlled motor driver for driving the motor, and a reducer for obtaining a sufficient generating force. The actuator is also provided with a microcomputer for controlling the drive of the actuator (none of these shown in
A host computer (described below) generally controls the behaviors of the whole robot apparatus 100. The host computer can communicate with the microcomputer of each shaft so that the desired torque value of the actuator of each shaft can be transmitted from the host computer. The microcomputer of each shaft can transmit the current output torque, joint angle, and joint angle speed of the actuator to the host computer. The host computer performs a control operation for coordinating the whole body to calculate the desired torque value for every joint.
A whole body communicating part 405 of the central control part 400 intercommunicates with the communicating part 306 of the actuator 300 of each shaft through, for example, a wired local area network (LAN) such as an Ethernet (registered trademark), a general interface such as a universal serial bus (USB), or a wireless LAN specified by IEEE802.11 or the like. The CPU 401 can give the desired torque value of the actuator 300 of each shaft because the CPU 401 can communicate with the microcomputer (drive controlling part 307) in the actuator 300 of each shaft through the whole body communicating part 405 and the communicating part 306 of each shaft. The microcomputer of each shaft can transmit the current output torque, joint angle, and joint angle speed of the actuator 300 to the CPU 401. Then, the CPU 401 executes a program expanded into a random access memory (RAM) 402 and performs, together with a whole body drive controlling part 404, a control operation for coordinating the whole body to calculate the desired torque value for every joint.
The whole body communicating part 405 can communicate with the microcomputer in the actuator 300 of each shaft through the communicating part 306 of each shaft. The whole body communicating part 405 performs a periodic communication of the whole body at each predetermined interval of the control to transmit a desired control value such as a desired torque value and receive the measured values such as an angle, angle speed, and torque of a joint shaft.
The whole body communicating part 405 starts a periodic communication in step S501. After the start of the periodic communication, the process goes to step S502.
The central control part 400 performs a periodic communication to transmit a desired value to the actuator 300 of each shaft in step S502.
Next, the central control part 400 performs a periodic communication to receive the measured values such as an output torque, a joint angle, and a joint angle speed from the actuator 300 of each shaft in step S503.
Next, the central control part 400 determines in step S504 whether the central control part 400 has failed to receive the measured values such as an output torque, a joint angle, and a joint angle speed from the actuator 300 during a given period of time. The central control part 400 detects the failure to receive the measured values when the central control part 400 has failed to receive the measured values from at least one of the actuators 300 for a given period of time, or the count value that is included in the received result and is supposed to change every time has not been updated although the central control part 400 has received the measured values.
When the central control part 400 can receive the measured values from every actuator 300 (“No” in step S504), the process goes back to step S502. On the other hand, when the central control part 400 detects the failure to receive the measured values from at least one of the actuators 300 (“Yes” in step S504), the process goes to step S505.
The central control part 400 stops the periodic communication in step S505. When finding a joint shaft that fails to communicate, namely, a joint shaft that fails to receive the desired value, the central control part 400 stops the periodic communication of the whole body because of danger. Once the periodic communication is stopped, a safety stop starts in the actuator 300 of each joint shaft as described below.
First, the actuator 300 of each shaft determines in step S601 whether a periodic communication has started. When a periodic communication has not started (“No” in step S601), the process goes back to step S601 to wait for the start of a periodic communication. On the other hand, when a periodic communication has started (“Yes” in step S601), the process goes to step S602.
The actuator 300 of each shaft determines in step S602 whether the actuator 300 of each shaft has failed to receive the desired torque value of the driving part 304 from the central control part 400 during a given period of time at the periodic communication. When the actuator 300 of each shaft has received the desired torque value of the driving part 304 from the central control part 400 (“No” in step S602), the process goes to step S604 as a normal reception has been done.
The actuator 300 updates its desired torque value with the latest value received from the central control part 400 as a normal reception in step S604. The actuator 300 then measures an angle, angle speed, and torque of the joint shaft and transmits the measured values to the central control part 400 in step S605.
Next, the actuator 300 determines in step S606 whether the actuator 300 has received a command to terminate the periodic communication from the central control part 400. The process then goes back to step S602 to continue the periodic communication with the central control part 400 when the actuator 300 has not received the command to terminate the periodic communication from the central control part 400 (“No” in step S606). On the other hand, the process goes to step S607 when the actuator 300 has received the command to terminate the periodic communication from the central control part 400 (“Yes” in step S606).
A normal termination is performed in step S607. Specifically, the actuator 300 performs a normal termination, receiving a desired torque value or a desired positional value necessary to perform the normal termination from the central control part 400.
On the other hand, the process goes to step S603 when the actuator 300 of each shaft has failed to receive the desired torque value from the central control part 400 during a given period of time at the periodic communication (“Yes” in step S602). A safety stop is carried out when the actuator 300 fails to communicate with the central control part 400 in step S603. The actuator 300 of each shaft independently performs a safety stop when failing to communicate with the central control part 400.
After the start of a safety stop, the current angle speed is substituted into the current desired angle speed value as shown in the following expression (1) to switch the control mode from the torque control mode to the speed control mode in step S701 (the left-hand side denotes the desired angle speed value and the right-hand side denotes the current angle speed in the following expression (1)).
r{dot over (θ)}={dot over (θ)} (1)
The speed is maintained when the control mode is switched to the speed control mode. The speed is exponentially reduced in the subsequent procedures. Accordingly, this can realize smooth behaviors even though each actuator independently behaves.
To stop the behavior of the robot apparatus 100, the desired angle speed value is approximated to zero in time order in step S702. Specifically, the desired angle speed value is multiplied by a constant a (where 0>a>1) one time each control period as shown in the following expression (2) to approximate the desired angle speed value to zero.
r
{dot over (θ)}
=r
{dot over (θ)}×α (2)
The actuator 300 then determines at each control period in step S703 whether the absolute value of the calculated desired angle speed value has been sufficiently approximated to zero. When the absolute value of the desired angle speed value is larger than a sufficiently small positive number εrθ (“No” in step S703), the process goes back to step S702 to repeat further approximating the desired angle speed value to zero.
The process goes to step S704 when the absolute value of the desired angle speed value is smaller than a sufficiently small positive number εrθ as shown in the following expression (3) (“Yes” in step S703). Repeating steps S702 and S703 can stop the behavior of the robot apparatus 100.
|r{dot over (θ)}|<εr
The procedure in step S704 is carried out, for example, to slowly put down the arm part of the robot apparatus 100 that has been stopped. Specifically, the actuator 300 approximates the control gain Kd of the speed control to zero in time order to gradually increase the deviation under the force of gravity. In other words, the control gain Kd is multiplied by a constant b (where 0<b<1) one time each control period as shown in the following expression (4) to approximate the control gain Kd to zero.
K
d
=K
d
×b (4)
The actuator 300 then determines each control period in step S705 whether the calculated control gain Kd has been sufficiently approximated to zero. The process then goes back to step S704 to repeat further approximating the control gain Kd to zero when the control gain Kd is larger than a sufficiently small positive number εKd (“No” in step S705). Repeating steps S704 and S705 can, for example, slowly put down the arm part of the robot apparatus 100.
The process goes to step S706 when the control gain Kd is smaller than a sufficiently small positive number εKd as shown in the following expression (5) (“Yes” in step S705).
Kd<εK
The actuator 300 turns off a servo of the actuator 300 to stop generating the torque in order to completely exhaust the arm part in step S706.
A safety stop described with reference to
On the other hand, when the arm part is completely exhausted in response to a safety stop as shown in
Providing the actuator 300 with a brake part for maintaining a shaft is given as an exemplary method for maintaining a shaft.
The posture of the robot apparatus 100 shown in
In the case shown in
Note that the actuator of which rotation axis direction does not correspond with the direction of gravity such as the actuator 104R preferably maintains the rotation angle, otherwise it would be difficult for the right arm to hold the object 120 at elbow level or horizontally as shown in
The posture of the robot apparatus 100 shown in
Note that the actuators of which the rotation axis directions do not correspond with the direction of gravity such as the shoulder joint pitch-axis actuator 104R, the elbow joint pitch-axis actuator 107R, the wrist joint pitch-axis actuator 110R, and the hand joint roll-axis actuator 113R preferably maintain the rotation angles as shown in
The posture of the robot apparatus 100 shown in
Note that the actuator of which rotation axis direction does not correspond with the direction of gravity such as the shoulder joint yaw-axis actuator 106R preferably maintains the rotation angle, otherwise it would be difficult for the right arm to hold the object 120 at shoulder level or horizontally as shown in
The whole body communicating part 405 of the central control part 400 intercommunicates with the communicating part 306 of each shaft through, for example, a wired LAN such as an Ethernet (registered trademark), a general interface such as a USB, or a wireless LAN specified by IEEE802.11 or the like. The CPU 401 can give a desired torque value of the actuator 300 of each shaft because the CPU 401 can communicate with the microcomputer (described above) of each shaft through the whole body communicating part 405 and the communicating part 306 of each shaft. The microcomputer of each shaft can transmit the current output torque, joint angle, and joint angle speed of the actuator 300 to the CPU 401.
The CPU 401 executes a program expanded into the RAM 402 and performs, together with the whole body drive controlling part 404, a control operation for coordinating the whole body to calculate the desired torque value for every joint.
Furthermore, a safety stop predetermined value calculating part 430 calculates the posture of the robot apparatus 100 based on the joint angle to find the angle value to be stopped of the actuator 300 of each shaft and the predetermined value for a safety stop indicating the ON/OFF of the brake part 308. The safety stop predetermined value calculating part 430 calculates a predetermined value for a safety stop according to, for example, the following procedures.
(1) The current tip position is calculated by an inverse kinematics calculation. (2) The current tip position is compared with each tip position of basic safety stop postures to select the closest tip position of the basic safety stop postures from the current tip position. To compare them to each other, the distance between the current tip position and each tip position of basic safety stop postures is calculated. (3) The closest tip position is selected among some close tip positions. The rotation angles of the close tip positions are compared with the rotation angle of the current tip position.
When receiving a predetermined value for a safety stop from the central control part 400 (described below), the driving part 304 of the actuator 300 safely stops the actuator 300 of each shaft based on the predetermined value for a safety stop in an emergency, for example, a communication fault with the central control part 400.
The procedures of a periodic communication of the whole body by the central control part 400 have been already described with reference to
The whole body communicating part 405 starts a periodic communication in step S1301. After that, the process goes to step S1302.
The central control part 400 inverse-kinematically calculates the posture of the robot apparatus 100 at the whole body drive controlling part 404 and finds the predetermined value for a safety stop based on the posture of the robot apparatus 100 obtained by the safety stop predetermined value calculating part 430 in step S1302.
The central control part 400 performs a periodic communication to transmit the desired value and the predetermined value for a safety stop to the actuator 300 of each shaft in step S1303.
Next, the central control part 400 receives the measured values such as an output torque, a joint angle, and a joint angle speed from the actuator 300 of each shaft at the periodic communication in step S1304.
Next, the central control part 400 determines in step S1305 whether the central control part 400 has failed to receive the measured values such as an output torque, a joint angle, and a joint angle speed from the actuator 300 of each shaft during a given period of time. The central control part 400 detects the failure to receive the measured values when the central control part 400 has failed to receive the measured values from at least one of the actuators 300 during a given period of time, or the count value that is included in the received result and is supposed to change every time has not been updated although the central control part 400 has received the measured values.
When the central control part 400 has received the measured values from every actuator 300 (“No” in step S1305), the process goes back to step S1302. On the other hand, when the central control part 400 detects the failure to receive the measured values from at least one of the actuators 300 (“Yes” in step S1305), the process goes to step S1306.
The central control part 400 stops the periodic communication in step S1306. When finding a shaft that fails to communicate, namely, a shaft that fails to receive the desired value, the central control part 400 stops the periodic communication of the whole body because of danger.
The procedures of a periodic communication executed by the actuator 300 of each shaft according to a periodic communication of the whole body by the central control part 400 have been already described with reference to
First, the actuator 300 of each shaft determines in step S1401 whether a periodic communication has started. Then, the process goes back to step S1401 to wait for the start of a periodic communication when a periodic communication has not started (“No” in step S1401). On the other hand, the process goes to step S1402 when a periodic communication has started (“Yes” in step S1401).
The actuator 300 of each shaft determines in step S1402 whether the actuator 300 of each shaft has failed to receive the desired torque value of the driving part from the central control part 400 during a given period of time at the periodic communication. When the actuator 300 of each shaft has received the desired torque value from the central control part 400 (“No” in step S1402), the process goes to step S1404 as a normal reception has been done.
The actuator 300 updates its desired torque value and predetermined value for a safety stop with the latest values received from the central control part 400 as a normal reception in step S1404. The actuator 300 then measures the angle, angle speed, and torque of the joint shaft and transmits the measured values to the central control part 400 in step S1405.
Next, the actuator 300 determines in step S1406 whether the actuator 300 has received a command to terminate the periodic communication from the central control part 400. The process then goes back to step S1402 to continue the periodic communication with the central control part 400 when the actuator 300 has not received a command to terminate the periodic communication from the central control part 400 (“No” in step S1406). On the other hand, the process goes to step S1407, when the actuator 300 has received a command to terminate the periodic communication from the central control part 400 (“Yes” in step S1406).
A normal termination is performed in step S1407. Specifically, the actuator 300 performs a normal termination, receiving a desired torque value or a desired positional value necessary to perform the normal termination from the central control part 400.
Further, the process goes to step S1403, when the actuator 300 has failed to receive a desired torque value from the central control part 400 during a given period of time at the periodic communication (“Yes” in step S1402). A safety stop is carried out when the actuator 300 fails to communicate with the central control part 400 in step S1403. The actuator 300 of each shaft independently performs a safety stop when failing to communicate with the central control part 400.
After the start of a safety stop, the current angle speed is substituted into the current desired angle speed value as shown in the above-mentioned expression (1) to switch the control mode from the torque control mode to the speed control mode in step S1501.
To stop the behavior of the robot apparatus 100, the desired angle speed value is approximated to zero in time order in step S1502. Specifically, the desired angle speed value is multiplied by a constant a (where 0<a<1) one time each control period as shown in the above-mentioned expression (2) to approximate the desired angle speed value to zero.
The actuator 300 then determines at each control period in step S1503 whether the absolute value of the calculated desired angle speed value has been sufficiently approximated to zero. When the absolute value of the desired angle speed value is equal to or larger than a sufficiently small positive number εrθ (“No” in step S1503), the process goes back to step S1502 to repeat further approximating the desired angle speed value to zero.
The process goes to step S1504, when the absolute value of the desired angle speed value is smaller than a sufficiently small positive number εrθ as shown in the above-mentioned expression (3) (“Yes” in step S1503). Repeating steps S1502 and S1503 can stop the behavior of the robot apparatus 100.
Next, the current joint angle θ is substituted into the desired angle value rθ to switch the control mode to the position control mode in step S1504.
Next, the desired angle value rθ is approximated to a predetermined angle value for a safety stop θrsv received from the central control part 400 in time order in step S1505. For example, a straight-line interpolation, a sin interpolation, and a spline interpolation can be used as the algorithm for the approximation.
The actuator 300 then determines at each control period in step S1506 whether the updated joint angle θ has been approximated to the predetermined angle value for a safety stop θrsv. When the absolute value of the difference obtained by subtracting the predetermined angle value for a safety stop θrsv from the current joint angle θ is smaller than a sufficiently small positive number εθ as shown in the following expression (6) (“Yes” in step S1506), the actuator 300 determines that the current joint angle θ has been approximated to the predetermined angle value for a safety stop θrsv and the process goes to step S1507.
|θ−θrsv|<εθ (6)
On the other hand, the process goes back to step S1505 to further approximate the desired angle value rθ to the predetermined angle value for a safety stop θrsv by, for example, a straight-line interpolation when the actuator 300 determines that the current joint angle θ has not been approximated to the predetermined angle value for a safety stop θrsv (“No” in step S1506).
The ON/OFF of the brake part 308 of each actuator is set based on a predetermined brake value for a safety stop in step S1507.
The brake part 308 is activated based on the setting of the brake part 308 when the servo of each actuator is powered off in step S1507. The actuator 300 is maintained at the current joint angle when the brake part 308 is ON and is not maintained at the current joint angle when the brake part 308 is OFF.
The safety stop shown in
(1) A robot apparatus including:
actuators for driving joint shafts and measuring at least one of a joint angle and a joint angle speed of each of the joint shafts; and
a central control part for controlling each of the actuators,
wherein the central control part performs a periodic communication at predetermined control periods and the periodic communication includes transmitting a desired control value from the central control part to each of the actuators and transmitting a measured value from each of the actuators to the central control part,
wherein the central control part stops the periodic communication in response to an occurrence of an actuator that has failed to receive the measured value during a given period of time in the periodic communication, and wherein each of the actuators performs a safety stop in response to an event where the actuator has not received the desired control value in the periodic communication during a given period of time.
(2) A robot apparatus including:
actuators for driving joint shafts and measuring torque and at least one of a joint angle and a joint angle speed of each of the joint shafts; and
a central control part for controlling each of the actuators,
wherein the central control part performs a periodic communication at predetermined control periods and the periodic communication includes transmitting a desired control value from the central control part to each of the actuators and transmitting a measured value from each of the actuators to the central control part,
wherein the central control part stops the periodic communication in response to an occurrence of an actuator that has failed to receive the measured value during a given period of time in the periodic communication, and
wherein each of the actuators performs a safety stop in response to an event where the actuator has not received the desired control value in the periodic communication during a given period of time.
(3) The robot apparatus according to (1) or (2),
wherein each of the actuators approximates a desired angle speed value to zero in time order under an angle speed control mode, also approximates a speed control gain to zero in time order, and then stops a servo as the safety stop.
(4) The robot apparatus according to (I) or (2), further including:
an arm part,
wherein each of the actuators includes a brake part for maintaining a rotation angle at the safety stop, and
wherein the brake part does not maintain the rotation angle of an actuator of which rotation axis direction corresponds with the direction of gravity at the safety stop although the brake part maintains the rotation angle of an actuator of which rotation axis direction does not correspond with the direction of gravity, and the actuators are included in the arm part.
(5) The robot apparatus according to (1) or (2),
wherein each of the actuators includes a brake part for maintaining a rotation angle at the safety stop,
wherein the central control part finds an angle value to safely stop each of the actuators and a predetermined value for a safety stop indicating an ON/OFF of the brake part and performs the periodic communication to transmit the values, and
wherein each of the actuators updates the predetermined value for a safety stop at each periodic communication to perform the safety stop according to the predetermined value for a safety stop.
(6) The robot apparatus according to (5),
wherein the central control part inverse-kinematically calculates the posture of the robot apparatus, and calculates the predetermined value for a safety stop based on the posture.
(7) The robot apparatus according to (5),
wherein, as the safety stop, each of the actuators approximates a desired angle speed value to zero in time order under an angle speed control mode, also switches the mode to a position control mode, approximates the joint angle to the predetermined value for a safety stop in time order, and then stops a servo.
(8) A method for controlling a robot apparatus, including:
performing a periodic communication between actuators and a central control part, the periodic communication including transmitting a desired control value from the central control part to each of the actuators and transmitting a measured value from each of the actuators to the central control part at predetermined control periods, each of the actuators driving a joint shaft and also measuring at least one of a joint angle and a joint angle speed of the joint shaft, the central control part controlling each of the actuators;
stopping, by the central control part, a periodic communication in response to an occurrence of an actuator that has failed to receive the measured value for a given period of time in the periodic communication; and
performing a safety stop in response to an event where the actuator has not received the desired control value during a given period of time in the periodic communication.
(9) A method for controlling a robot apparatus, including:
performing a periodic communication between actuators and a central control part, the periodic communication including transmitting a desired control value from the central control part to each of the actuators and transmitting a measured value from each of the actuators to the central control part at predetermined control periods, each of the actuators driving a joint shaft and also measuring at least one of a joint angle and a joint angle speed of the joint shaft, the central control part controlling each of the actuators;
stopping, by the central control part, a periodic communication in response to an occurrence of an actuator that has failed to receive the measured value for a given period of time in the periodic communication; and
performing a safety stop in response to an event where the actuator has not received the desired control value during a given period of time in the periodic communication.
It should be understood by those skilled in the art that various modifications, combinations, sub-combinations and alterations may occur depending on design requirements and other factors insofar as they are within the scope of the appended claims or the equivalents thereof.
The gist of the technique disclosed herein is not limited to the embodiments applied to a robot apparatus that has two opposed wheels although the embodiments have been mainly described herein. The technique can be also applied to a robot apparatus that has another kind of transportation or that does not have transportation.
Of course, the technique can be also applied to robot apparatuses for various purposes including an industrial robot although the embodiments of a household robot apparatus have been mainly described herein.
In short, the content described herein should not be limitedly interpreted because examples of the technique have been disclosed herein. To judge the gist of the technique disclosed herein, the scope of the appended claims should be taken into consideration.
The present disclosure contains subject matter related to that disclosed in Japanese Priority Patent Application JP 2011-122908 filed in the Japan Patent Office on May 31, 2011, the entire content of which is hereby incorporated by reference.
Number | Date | Country | Kind |
---|---|---|---|
2011-122908 | May 2011 | JP | national |