The present disclosure relates to a robot device and a robot control method. Specifically, the present invention relates to a robot device and a robot control method capable of executing accurate control based on correct obstacle determination without erroneously recognizing a leg, an arm, or the like of the robot itself as an obstacle.
In recent years, autonomous traveling type robots such as walking type robots that move by controlling a plurality of legs and wheel driving type robots that move by rotating wheels are used in various fields.
The robot can perform various operations even at disaster sites or the like where people are difficult to enter, for example.
However, in order for the walking type robots and the wheel traveling type robots to stably move, it is necessary to grasp obstacles in a traveling direction, a walking surface, and unevenness, inclination, and the like of a traveling surface, identify a route on which stable walking or traveling is possible, and further perform landing of a foot or wheel traveling according to a shape of the walking surface or the traveling surface.
For example, when a foot of a walking type robot is placed on a surface with severe unevenness or a surface with large inclination, there is a possibility that the robot falls down and cannot move forward.
In order to prevent such a problem, many autonomous traveling type robots are mounted with sensors such as cameras for recognizing the environment around the robot, and execute control to select and move on a route for performing stable walking or traveling using sensor detection information.
For example, processing of generating an environmental map including three-dimensional shape data of the surroundings using data obtained from the sensors and determining a movement route with reference to the generated environmental map or the like is performed.
However, there are the following problems in the case of performing the processing of creating the environmental map using the data obtained from the sensors and the processing of analyzing the created environmental map as described above.
This is a problem that a component of the robot, such as a leg or a hand of the robot itself, is recognized as an obstacle. For example, the walking type robot travels while moving the legs back and forth. When a sensor such as a camera of the robot detects the leg of the robot, this leg may be erroneously recognized as an obstacle.
When such erroneous recognition occurs, the robot may determine that the robot cannot travel on a route where the robot can originally travel, and the robot may stop traveling.
Furthermore, for example, in the case of a robot that performs work using an arm (arm portion) or a hand of the robot, a sensor such as a camera of the robot may detect the arm or the hand of the robot and erroneously recognize the arm or the hand as an obstacle.
In such a case, the robot determines that the prescribed work cannot be performed, and the work of the robot is stopped.
As a conventional technique that discloses a configuration that solves the problem of erroneously recognizing a part of a robot as an obstacle as described above, for example, there is the following document.
For example, Patent Document 1 (Japanese Patent No. 4961860) discloses a configuration in which forward kinematics calculation is performed from model information of a robot and position information of an actuator, a three-dimensional body position of the robot is calculated, the calculated body position and a position and a viewing angle of a visual sensor are integrated to calculate in which part of the visual sensor the body of the robot is imaged, and a robot body part is excluded from an obstacle determination target.
However, the method disclosed in Patent Document 1 has a problem that the body part of the robot cannot be accurately removed from the image in a case where there is an error between the robot model information and the actual machine of the robot.
Furthermore, Patent Document 2 (Japanese Patent Application Laid-Open No. 2011-212818) discloses a configuration in which in a robot having a visual sensor that emits and detects laser light, coating that absorbs the laser light is performed on a surface of the robot, and a body of the robot is not detected as an obstacle.
However, in this method, it is necessary to perform coating for absorbing laser light on the robot surface, to use a visual sensor for emitting and detecting laser light, and these configurations are essential, and there is a problem that versatility is poor.
Moreover, Patent Document 3 (Japanese Patent Application Laid-Open No. 1-183395) discloses a configuration in which a robot arm is provided with a shielding plate that shields a shape of the robot arm and has a reflectance or a shape that can be distinguished from a shape of an object, thereby removing a body of the robot from sensor detection information.
This method requires a shielding plate having a special reflectance and a shape, and has a problem of cost increase, and further has a problem that the movement of the robot is hindered by attachment of the shielding plate.
The present disclosure has been made in view of the problems described above, for example, and an object thereof is to provide a robot device and a robot control method capable of safely controlling a robot without erroneously recognizing a part of the robot as an obstacle and without causing the robot to collide with or come into contact with a true obstacle.
A first aspect of the present disclosure is
Moreover, a second aspect of the present disclosure is
Still other objects, features, and advantages of the present disclosure will become apparent from more detailed description based on examples of the present disclosure described later and the accompanying drawings. Note that a system described herein is a logical set configuration of a plurality of devices, and is not limited to a system in which devices with respective configurations are in the same housing.
According to a configuration of an example of the present disclosure, in a robot device that identifies an obstacle on the basis of detection information of a sensor, highly accurate robot control by correct obstacle identification is realized without erroneously recognizing a leg, an arm, or the like of the robot itself as an obstacle.
Specifically, for example, the self-region filter processing unit removes the object information corresponding to the component of the robot device from the object information included in the detection information of the visual sensor, the map image generation unit generates map data based on the object information from which the object information corresponding to the component of the robot device has been removed, and the robot control unit controls the robot device on the basis of the generated map data. The self-region filter processing unit calculates variable filter regions of different sizes according to the motion speed of the movable part of the robot device, and executes processing of removing the object information in the variable filter regions from the detection information of the visual sensor.
With this configuration, in the robot device that identifies an obstacle on the basis of the detection information of the sensor, highly accurate robot control by correct obstacle identification is realized without erroneously recognizing a leg, an arm, or the like of the robot itself as an obstacle.
Note that the effects described herein are merely examples and are not limited, and additional effects may also be provided.
Hereinafter, a robot device and a robot control method of the present disclosure will be described in detail with reference to the drawings. Note that the description will be made in accordance with the following items.
First, an overview of a robot device of the present disclosure will be described with reference to
The four-legged robot 10 is a walking type robot that moves by moving four legs back and forth.
As illustrated in
The four-legged robot 10 illustrated in
Note that the drawing does not illustrate the visual sensor R (Right) 12R for environment recognition in the right direction.
The visual sensor 12 is only required to have a configuration capable of acquiring information for checking an obstacle in the traveling direction, a situation of a ground contact surface of a foot, and the like, for example, three-dimensional shape information of surrounding objects, for the four-legged robot 10 to safely travel, and for example, a stereo camera, an omnidirectional camera, a light detection and ranging (LiDAR), a time of flight (TOF) sensor, and the like can be used.
Note that both the LiDAR and TOF sensors are sensors capable of measuring an object distance.
The example illustrated in
The four-legged robot 10 illustrated in
The rotary joint 14 is a joint that rotationally drives the entire leg 13 in a front-rear direction. The linear motion joint 15 is a joint that slidingly moves a lower leg part of the leg 13 so as to expand and contract with respect to an upper leg part.
Each of the joints 14 and 15 includes, for example, an actuator, an encoder for detecting the position of the actuator, a speed reducer, a torque sensor for detecting torque on the output shaft side, and the like.
A data processing unit (control unit) configured in the four-legged robot 10 illustrated in
For example, a position, a distance, a shape, and the like of an obstacle around the robot are analyzed using a captured image of a camera constituting the visual sensor 12 or detection information of a distance sensor such as LiDAR or TOF. Moreover, by using the obstacle analysis result, a safe travel route is determined so as to avoid the obstacle, and travel control of the robot is executed.
Note that, in order to move along the determined travel route, the data processing unit (control unit) in the robot controls the rotary joint 14, the linear motion joint 15, and the wheel part 16 of each leg 13 to operate the leg 13, and moves the robot along the determined safe travel route.
The difference between the four-legged robot b, 10b in
The four-legged robot 10 illustrated in
Moreover, in the four-legged robot 10 illustrated in
The rotary joint 14 of the leg 13 of the four-legged robot b, 10b illustrated in
Also in the four-legged robot b, 10b illustrated in
For example, a position, a distance, a shape, and the like of an obstacle around the robot are analyzed using a captured image of a camera constituting the visual sensor 12 or detection information of a distance sensor such as LiDAR or TOF. Moreover, by using the obstacle analysis result, a safe travel route is determined so as to avoid the obstacle, and travel control of the robot is executed.
In order to move along the determined travel route, the data processing unit (control unit) in the robot controls the two rotary joints 14 and 17 of each leg 13 to operate the leg 13 and move the robot according to the determined safe travel route.
The two-legged robot 20 is a walking type robot that moves by moving two legs back and forth.
As illustrated in
In the configuration illustrated in
Visual sensor F (Front) 22F for environment recognition in a robot traveling direction (forward direction);
Note that the drawing does not illustrate the visual sensor R (Right) 22R for environment recognition in the right direction.
The visual sensor 22 is only required to have a configuration capable of acquiring information for checking an obstacle in the traveling direction, a situation of a ground contact surface of a foot, and the like, for example, three-dimensional shape information of surrounding objects, for the two-legged robot 20 to safely travel, and similar to what was described with reference to
Note that, similar to what was described with reference to
The leg 23 includes rotary joints 24 and 25 and a ground contact part 26.
The rotary joint 24 of the leg 23 of the two-legged robot 20 illustrated in
Each of the rotary joints 24 and 25 includes, for example, an actuator, an encoder for detecting a position of the actuator, a speed reducer, a torque sensor for detecting torque on an output shaft side, and the like.
The arm 27 includes rotary joints 28 and 29 and a grip part 30.
The rotary joint 28 of the arm 27 is a joint that rotates and drives the entire arm 27 in the vertical direction. Moreover, the rotary joint 29 is a joint that rotationally drives only about a half arm region on a distal end side of the arm 27 in the vertical direction with respect to the arm region on a main body side.
The rotary joints 28 and 29 and the grip part 30 of the arm 27 also include, for example, an actuator, an encoder for detecting a position of the actuator, a speed reducer, a torque sensor for detecting torque on the output shaft side, and the like.
Also in the two-legged robot 20 illustrated in
For example, a position, a distance, a shape, and the like of an obstacle around the robot are analyzed using a captured image of a camera constituting the visual sensor 22 or detection information of a distance sensor such as LiDAR or TOF. Moreover, by using the obstacle analysis result, a safe travel route is determined so as to avoid the obstacle, and travel control of the robot is executed.
The data processing unit (control unit) in the robot controls the two rotary joints 24 and 25 of each leg 23 to operate the leg 23 and move the robot according to the travel route in order to move the determined travel route.
Moreover, a data processing unit (control unit) in the robot controls the two rotary joints 28 and 29 of each of the arms 27 to operate the arm 27, and causes the arm to execute various works.
Also in the motion control of the arm 27, the data processing unit (control unit) in the two-legged robot 20 receives and analyzes the sensor detection information from the visual sensor 22, analyzes the environment around the arm 27, and performs motion control so that the arm 27 does not collide with or come into contact with surrounding obstacles.
Note that, although a plurality of examples related to the robot device and the robot control method of the present disclosure will be described below, the configuration and processing of the present disclosure are not limited to the four-legged robots 10 and 10b, and the two-legged robot 20, and can also be applied to a wheel-driven robot, a caterpillar driven robot, and the like in addition to the above according to the examples.
Furthermore, the number of arms and legs can be variously set.
Note that hereinafter, example to which the four-legged robot 10 described with reference to
A specific example of a case where the four-legged robot 10 illustrated in
As an environment in which the four-legged robot 10 moves, for example, there are various obstacles as illustrated in
For example, when the four-legged robot 10 collides with an obstacle, the four-legged robot 10 may fall down, and damage or failure may occur.
Furthermore, even in a case where the foot is grounded on a rough surface, a stepped surface, an inclined surface, or the like without considering an inclination angle or the like, there is a possibility that the four-legged robot 10 falls down and damage or failure occurs.
In order to prevent such a situation from occurring, a surrounding environmental map generated on the basis of sensor acquisition information acquired by a visual sensor such as a camera, that is, an environmental map having three-dimensional shape information of an object including the traveling surface around the robot is used.
For example, the data processing unit in the four-legged robot 10 analyzes acquisition information from a visual sensor such as a camera attached to the four-legged robot 10, analyzes the distance to an object including the traveling surface around the four-legged robot 10, generates an environmental map indicating the object distance including the traveling surface, and controls the moving direction and the grounding position of the leg with reference to the generated environmental map.
Examples of the environmental map having three-dimensional shape information of an object including the traveling surface around the robot includes a three-dimensional point cloud (PC).
The three-dimensional point cloud (PC) is a point cloud constituted by a large number of points indicating a three-dimensional position of an object surface.
The distance is generated on the basis of an object distance measured by a sensor such as a camera mounted on the robot.
The three-dimensional point cloud (PC) includes a large number of points indicating a three-dimensional position and a three-dimensional shape of the object surface, such as a traveling surface on which the robot travels, a column, and a wall. Each point constituting the three-dimensional point cloud (PC) is associated with coordinate (x, y, z) position data in a three-dimensional space.
The three-dimensional shape of the object can be recognized on the basis of the coordinate position corresponding to each point of the three-dimensional point cloud (PC), and for example, the undulations and inclinations of the traveling surface of the robot, the position of the obstacle, and the like can be analyzed.
However, for example, depending on the operation status of the rotary joint 14 and the linear motion joint 15 of the leg 13, there is a case where a part of the leg 13 enters a sensor detection region of the visual sensor 12, for example, an imaging range of the camera.
In such a case, the data processing unit of the four-legged robot 10 may erroneously recognize the leg 13 as an obstacle and perform erroneous control such as stopping the four-legged robot 10.
The problem that a part of the robot is recognized as an obstacle from the analysis result of the sensor detection information of the visual sensor 12 and erroneous control is performed is a problem that occurs not only in the four-legged robot 10 illustrated in
Moreover, in the case of the two-legged robot 20 illustrated in
In such a case, the data processing unit of the two-legged robot 20 may erroneously recognize the arm 27 as an obstacle, and perform erroneous control such as stopping the work executed by operating the arm 27.
The robot device of the present disclosure solves such a problem.
Next, an overview of processing executed by the robot device of the present disclosure will be described.
As described above, for example, when the four-legged robot 10 erroneously recognizes a part of the robot as an obstacle from the analysis result of the sensor detection information of the visual sensor 12, erroneous control may be performed.
This specific example will be described with reference to
In the sensor detection region of the visual sensor F, 12F illustrated in
Moreover, the sensor detection region of the visual sensor F, 12F illustrated in
The data processing unit of the four-legged robot 10 analyzes the sensor detection information of the visual sensor F, 12F to confirm a position of the obstacle.
The data processing unit can analyze the positions, shapes, and distances of the three cylindrical obstacles illustrated in the drawing by analyzing the sensor detection information of the visual sensor F, 12F.
However, the data processing unit of the four-legged robot 10 further erroneously recognizes that a partial region of the left front leg of the four-legged robot 10 included in the sensor detection region of the visual sensor F, 12F is also an obstacle.
Due to this erroneous recognition, the data processing unit of the four-legged robot 10 determines that the left front leg of the four-legged robot 10 is in a state of colliding with or contacting with an obstacle, and performs control to stop the operation of the left front leg. As a result, the erroneous control such as stopping the operation of the four-legged robot 10 is performed.
In order to avoid such erroneous control, the robot device of the present disclosure executes processing (filter processing) for not recognizing a self-region of the robot such as a leg or an arm of the robot itself as an obstacle.
An overview of processing executed by the robot device of the present disclosure will be described with reference to
The data processing unit of the robot device of the present disclosure sets a filter region in a movable part such as a leg or an arm of the robot.
The filter region is a region where the object detection processing of an obstacle or the like is not executed, that is, an obstacle detection exclusion region.
For example, in a case where a filter region is included in the sensor detection region of the visual sensor, even in a case where an object such as some obstacle is detected in the filter region, filter processing is performed to determine that the object has not been detected.
Specifically, for example, the filter region is a filter region as illustrated in
The filter region illustrated in
As described above, the filter region is set so as to include not only the region of the leg 13 but also the peripheral region of the leg 13.
This is in consideration of the movement of the leg 13.
By setting such a filter region, even in a case where an object such as an obstacle is detected in the filter region by the visual sensor, the filter processing is executed assuming that the object detected in the filter region is not detected.
As a result of this filter processing, the objects in the filter region, for example the legs of the robot, will not interfere with the subsequent operation of the robot.
A specific example of processing executed by the data processing unit of the robot device of the present disclosure, that is, filter processing to which the filter region is applied will be described with reference to
The filter region set for the left front leg of the four-legged robot 10 is set to overlap a part of the sensor detection region illustrated in
As described above, for example, in a case where the visual sensor F, 12F is a camera, the sensor detection region is an imaging range of the camera. Furthermore, in a case where the visual sensor F, 12F is a distance sensor such as LiDAR and TOF sensors, it is a distance measurable range by these distance sensors.
The data processing unit of the four-legged robot 10 executes processing of detecting an object included in the sensor detection region of the visual sensor F, 12F.
As a result, three cylindrical obstacles illustrated in the drawing are detected. Moreover, a leg tip region of the left front leg of the four-legged robot 10 is also detected.
However, since the leg tip region of the left front leg of the four-legged robot 10 is within the filter region, the data processing unit executes the filtering processing assuming that the object in the leg tip region has not been detected.
That is, the data processing unit of the four-legged robot 10 does not recognize the leg tip of the left front leg of the four-legged robot 10 as an obstacle, and executes the subsequent operation.
As a result of these processes, the four-legged robot 10 can normally travel without being obstructed by its own leg tip.
In this manner, the robot device of the present disclosure sets the filter region in the movable part of the robot device, and executes processing of not recognizing the detection object in the filter region as the obstacle.
Note that the robot device of the present disclosure performs processing of setting a filter region in a movable part such as a leg or an arm of the robot device, and the filter region is set as a variable region having various sizes.
For example, in a case where the motion speed of the leg is high, a large size filter region is set in the leg. Furthermore, for example, in a case where the leg is stopped, a filter region having a small size is set in the leg.
A specific example of a variable size fimeta region, that is, a variable filter region will be described with reference to
This is a filter region setting example in which the filter region indicated by (P1) at the left end is the filter region having the minimum size and only the left front leg itself is the filter region.
The size of the filter region increases in the order of (P2), (P3), and (P4) on the right side of (P1).
For example, as the motion speed of the left front leg of the four-legged robot 10 increases, the size of the filter region increases as illustrated in (P2), (P3), and (P4).
The filter region indicated by (P4) at the right end is a filter region of the maximum size set in a case where the motion speed of the left front leg of the four-legged robot 10 is a speed higher than or equal to a specified threshold value.
Note that there are various setting modes of the filter region. Specific examples of these will be described later.
As described above, the robot device of the present disclosure sets the filter region in the movable part such as a leg or an arm of the own device, and executes processing of not recognizing the detection object in the filter region as the obstacle.
This processing prevents erroneous control by determining the components of the own device as an obstacle.
Hereinafter, a plurality of examples of a robot device and a robot control method of the present disclosure will be described.
First, details of a robot device and a robot control method according to Example 1 of the present disclosure will be described.
The configuration illustrated in
The four visual sensors F to R, 12F to R illustrated in
Note that each of the four visual sensors F to R, 12F to R captures, for example, a distance image in which a density value corresponding to a distance to an object included in an imaging range (sensor detection region) of a camera constituting the visual sensor is set as a pixel value.
The distance image F illustrated in
The distance image B is a distance image acquired by the visual sensor B, 12B that captures an image in the backward direction opposite to the traveling direction of the four-legged robot 10.
The distance image L is a distance image acquired by the visual sensor L, 12L that captures an image in the left direction with respect to the traveling direction of the four-legged robot 10.
The distance image R is a distance image acquired by the visual sensor R (Right) 12R that captures an image in the right direction with respect to the traveling direction of the four-legged robot 10.
Note that, as illustrated in
The four distance images acquired by the four visual sensor F, 12F to the visual sensor R, 12R are input to a three-dimensional point cloud (PC) generation unit 102 of a data processing unit 100.
Note that the data processing unit 100 is a data processing unit configured inside the four-legged robot 10. Alternatively, the data processing unit may be an external information processing apparatus capable of communicating with the four-legged robot 10, for example, a data processing unit configured as a cloud-side server or the like.
As illustrated in
The robot information acquisition unit 101 acquires robot structure information (robot model information), a robot movable part position, and motion information, and outputs the robot structure information, the robot movable part position, and the motion information to the self-region filter processing unit 103.
The robot structure information (robot model information) is stored in a storage unit (not illustrated).
The robot movable part position and the motion information are acquired from the robot control unit 107 or acquired by using detection information of a sensor attached to the robot.
Note that the robot movable part is a leg, an arm, or the like of the robot.
The three-dimensional point cloud (PC) generation unit 102 generates a three-dimensional point cloud (PC) in which a distance value (pixel value) set to each pixel of each distance image is expressed as point cloud data on three-dimensional coordinates for each of the four distance images F to R, which are outputs of the four visual sensors, the visual sensors F, 12F to R, 12R.
Note that, as described above, each point constituting the three-dimensional point cloud (PC) is a point whose coordinate position on the xyz three-dimensional space is defined. That is, each coordinate value of x, y, and z is assigned to each point of the three-dimensional point cloud configuration.
As illustrated in
An example of processing executed by the three-dimensional point cloud (PC) generation unit 102 will be described with reference to
The visual sensor 12F of the four-legged robot 10 generates the distance image F indicating the distance of the object in the sensor detection region illustrated in
For example, the sensor detection region illustrated in
The distance image F generated by the visual sensor 12F is a distance image F in which the distances (distance from visual sensor F, 12F) between these three cylindrical objects and the distal end portion of the left front leg of the four-legged robot 10 and the traveling surface are indicated as grayscale pixel values.
On the basis of the distance image F indicating the distance of the object in the sensor detection region illustrated in
At this point, the filter processing to which the filter region described above with reference to
In
Next, processing executed by the self-region filter processing unit 103 will be described.
The self-region filter processing unit 103 executes self-region filtering processing of removing object information corresponding to a component (a leg, an arm, or the like) of the robot from the object information included in the detection information of the visual sensor 12.
As illustrated in
The self-region filter processing unit 103 receives inputs of these pieces of data, generates four post-filter third order point clouds F to R, and outputs the four post-filter third order point clouds F to R to the three-dimensional point cloud (PC) synthesis unit 104.
Note that the post-filter third order point clouds are three-dimensional point cloud data obtained by removing the three-dimensional point cloud of the object corresponding to the region of the robot itself, which is the self-region, from the three-dimensional point cloud generated by the three-dimensional point cloud (PC) generation unit 102, that is, by performing filter processing.
The detailed configuration and processing of the self-region filter processing unit 103 will be described in detail with reference to
As illustrated in
The variable padding calculation unit 121 receives the robot structure information, the position of the movable part of the robot, and the motion information from the robot information acquisition unit 101, and calculates the size of the padding portion as the size adjustment region of the variable filter according to the motion speed of the movable part of the robot.
The variable filter region calculation unit 122 calculates a filter region in which the padding calculated by the variable padding calculation unit 121 is set, that is, a variable filter region.
As described above, the variable filter region is a region in which an object in the region is not recognized as an obstacle.
The three-dimensional point cloud filter processing unit 123 applies the variable filter region calculated by the variable filter region calculation unit 122 to execute filter processing of removing an object-corresponding three-dimensional point cloud in the filter region from the three-dimensional point clouds F to R generated by the three-dimensional point cloud (PC) generation unit 102, and generates and outputs a new three-dimensional point cloud, that is, post-filter three-dimensional point clouds F to R to the next-stage three-dimensional point cloud (PC) synthesis unit 104.
Specific examples of processing executed by each of the variable padding calculation unit 121, the variable filter region calculation unit 122, and the three-dimensional point cloud filter processing unit 123 constituting the self-region filter processing unit 103 will be described with reference to
First, a specific example of processing executed by the variable padding calculation unit 121 will be described with reference to
As described above, the variable padding calculation unit 121 inputs the robot structure information, the position of the robot movable part, and the motion information from the robot information acquisition unit 101, and calculates the size of the padding portion as a size adjustment region of the variable filter according to the motion speed of the movable part of the robot.
Note that, in
As illustrated in
The L×W×H quadrangular prism is, for example, a quadrangular prism including the left front leg of the four-legged robot 10.
As illustrated in
The unit time (st) corresponds to, for example, an interval of the variable padding calculation processing executed by the variable padding calculation unit 121, that is, a sampling time interval.
Note that the motion state information such as the motion speed of the leg is input from the robot information acquisition unit 101 to the variable padding calculation unit 121 of the self-region filter processing unit 103.
Note that, in a case where the angular velocity of the left front leg of the four-legged robot 10 at the timing (time (t)) when the variable padding calculation unit 121 executes the variable padding calculation process is ω, the angle (θ) described above is calculated according to the following formula.
The variable padding (Padvariable) of the left front leg of the four-legged robot 10 at the time (t) is as illustrated in
It is calculated according to the formula (Formula 1) described above.
As described above, in a case where the angular velocity of the left front leg of the four-legged robot 10 at the timing (time (t)) when the variable padding calculation unit 121 executes the variable padding calculating process is ω,
Therefore, the formula (Formula 1) described above can be expressed as the following formula (Formula 2) using the angular velocity (ω).
As shown in the formula (Formula (2)) described above, the variable padding of the leg that rotates is approximately proportional to the rotation speed, that is, the angular velocity (ω), and is calculated as a value proportional to the length L (Lengthleg) of the leg.
That is, when the angular velocity (ω) is large, the variable padding (Padvariable) becomes a large value, and when the angular velocity (ω) is small, the variable padding (Padvariable) also becomes a small value.
The variable padding calculation unit 121 executes the variable padding (Padvariable) calculation processing according to the processing described above with reference to
The value of the variable padding (Padvariable) calculated by the variable padding calculation unit 121 is output to the variable filter region calculation unit 122.
Next, a specific example of the variable filter region calculation processing executed by the variable filter region calculation unit 122 will be described with reference to
That is a diagram illustrating an example of variable padding (Padvariable) calculation processing by the variable padding calculation unit 121. The variable padding (Padvariable) is calculated according to the following formula (Formula 2) as described above.
The filter region in the length direction (L direction) of the leg is a region obtained by adding variable padding (Padvariable) to each of two end portions in the length direction of the leg, that is, the upper end portion and the lower end portion, to the length (L) of the leg.
In a case where the length of the filter region in the length direction (L direction) of the leg is PadL, the variable filter region calculation unit 122 calculates PadL by the following formula.
Similarly, the filter region in the front-back direction (W direction) of the leg is a region obtained by adding variable padding (Padvariable) to each of two end portions in the front-back direction of the leg, that is, the front end portion and the rear end portion, to the front-back width (W) of the leg.
In a case where the length of the filter region in the front-back direction (W direction) of the leg is PadW, the variable filter region calculation unit 122 calculates PadW by the following Formula.
A variable filter region in a three-dimensional space is illustrated in which a variable filter region in the H direction is added to variable filter regions in the L direction and the W direction on the LW plane illustrated in
As illustrated in
In a case where the length of the filter region in the left-right direction (H direction) of the leg is PadH, the variable filter region calculation unit 122 calculates PadH by the following Formula.
In a case where the shape of the left front leg of the four-legged robot 10 is a quadrangular prism of L×W×H with a length (L (Lengthleg)), a width (W) in the front-back direction, and a depth (H) in the left-right direction, the variable filter region calculation unit 122 calculates a variable filter region including the quadrangular prism of the length (PadL), the width (PadW) in the front-back direction, and the depth (PadH) in the left-right direction as illustrated in
The variable filter region calculated by the variable filter region calculation unit 122 is a quadrangular prism including three sides having a length calculated according to the following formula (Formula 3).
Note that as described above, variable padding (Padvariable) is a value calculated according to the following formula (Formula 2).
The value of the variable padding (Padvariable) increases as the angular velocity (ω) increases, and decreases as the angular velocity (ω) decreases.
Therefore, the size of the variable filter region calculated by (Formula 3) described above also becomes larger as the angular velocity (ω) is larger, and becomes smaller as the angular velocity (ω) is smaller.
That is, the variable filter region is a region whose size changes according to the motion speed of the movable part such as the leg.
Therefore, the variable filter region section calculation unit 122 actually calculates a variable filter region having a rounded shape according to the shape of the leg.
The variable padding (Padvariable) of the left front leg of the four-legged robot 10 at time (t) is calculated as follows:
It is calculated according to the formula (Formula 2) described above.
The filter region in the length direction (L direction) of the leg is a region obtained by adding variable padding (Padvariable) to each of two end portions in the length direction of the leg, that is, the upper end portion and the lower end portion, to the length (L) of the leg.
Similarly, the filter region in the front-back direction (W direction) of the leg is a region obtained by adding variable padding (Padvariable) to each of two end portions in the front-back direction of the leg, that is, the front end portion and the rear end portion, to the front-back width (W) of the leg.
Moreover, although not illustrated in
That is, the variable filter region calculated by the variable filter region calculation unit 122 is a rounded region in which the maximum length in each direction of the LWH has a length calculated according to the following formula (Formula 3) described above.
As described above, the size of the variable filter region calculated by (Formula 3) described above also becomes larger as the angular velocity (ω) is larger, and becomes smaller as the angular velocity (ω) is smaller.
That is, the variable filter region is a region whose size changes according to the motion speed of the movable part such as the leg.
The variable filter region is a region that does not recognize an object as an obstacle even if the object is detected in the region.
The region information of the variable filter region calculated by the variable filter region calculation unit 122 is output to the three-dimensional point cloud filter processing unit 123 of the self-region filter processing unit 103 illustrated in
The three-dimensional point cloud filter processing unit 123 applies the variable filter region calculated by the variable filter region calculation unit 122 to execute filter processing of removing an object-corresponding three-dimensional point cloud in the filter region from the three-dimensional point clouds F to R generated by the three-dimensional point cloud (PC) generation unit 102, and generates and outputs a new three-dimensional point cloud, that is, post-filter three-dimensional point clouds F to R to the next-stage three-dimensional point cloud (PC) synthesis unit 104.
A specific example of this processing will be described with reference to
That is, an example of the post-filter three-dimensional point cloud F in the sensor detection region of the visual sensor 12F of the four-legged robot 10 is illustrated.
As described above with reference to
As described above with reference to
The three-dimensional point cloud filter processing unit 123 applies the variable filter region calculated by the variable filter region calculation unit 122 to the three-dimensional point cloud F generated by the three-dimensional point cloud (PC) generation unit 102, and executes filter processing of removing the object-corresponding three-dimensional point cloud in the filter region.
In the example illustrated in
In the post-filter three-dimensional point cloud illustrated in
As described above, the three-dimensional point cloud filter processing unit 123 executes the processing (filter processing) of deleting the object-corresponding three-dimensional point cloud in the variable filter region calculated by the variable filter region calculation unit 122 from the three-dimensional point cloud input from the three-dimensional point cloud (PC) generation unit 102 in the previous stage to generate the filtered three-dimensional point cloud.
The filtered three-dimensional point cloud generated by the three-dimensional point cloud filter processing unit 123 is output to the subsequent three-dimensional point cloud synthesis unit 104.
Note that, in
The self-region filter processing unit 103 executes the processing of calculating the variable filter region and the processing of generating the post-filter three-dimensional point cloud data by the filter processing to which the variable filter region is applied for all the movable parts of the four-legged robot 10, specifically, for each of the four legs.
A processing example for the leg other than the left front leg will be described with reference to
The variable padding (Padvariable) of the left back leg of the four-legged robot 10 at the time (t) is calculated according to the above described formula (Formula 2). That is,
Calculation is performed according to the formula (Formula 2) described above.
In the example illustrated in
This rotation angle is considerably smaller than the rotation angle of the left front leg described above with reference to
That is, the angular velocity (ω) is a small value, and as a result, the value of the variable padding (Padvariable) calculated according to (Formula 2) described above is also a small value.
That is, it is the variable filter region of the left rear leg calculated by the variable filter region calculation unit 122.
The filter region in the length direction (L direction) of the leg is a region obtained by adding variable padding (Padvariable) to each of two end portions in the length direction of the leg, that is, the upper end portion and the lower end portion, to the length (L) of the leg.
Similarly, the filter region in the front-back direction (W direction) of the leg is a region obtained by adding variable padding (Padvariable) to each of two end portions in the front-back direction of the leg, that is, the front end portion and the rear end portion, to the front-back width (W) of the leg.
Moreover, although not illustrated in
That is, the variable filter region calculated by the variable filter region calculation unit 122 is a rounded region in which the maximum length in each direction of the LWH has a length calculated according to the following formula (Formula 3) described above.
As described above, the size of the variable filter region calculated by (Formula 3) described above also becomes larger as the angular velocity (ω) is larger, and becomes smaller as the angular velocity (ω) is smaller.
The variable filter region corresponding to the left rear leg of the four-legged robot 10 illustrated in
This is because the angular velocity of the left rear leg of the four-legged robot 10 is smaller than the angular velocity of the left front leg, and the value of variable padding (Padvariable) calculated as a result is different.
As described above, the variable filter region is a region having a different size depending on the motion speed of the movable part such as the leg for setting the variable filter region.
Since the motion speed, that is, the angular velocity (ω) of each of the four legs of the four-legged robot 10 is different, the size of the variable filter region corresponding to each of the four legs is also different.
In the example illustrated in
Note that the variable filter region of the right front leg is set to be equal to the size of the right front leg itself and not to include the surrounding region of the right front leg.
This means that the right front leg does not rotate but stops. That is, in the state of the angular velocity ω=0, the variable filter region of the leg portion becomes equal to the size of the leg portion itself, and becomes a region not including the peripheral region of the leg portion.
As described above, the variable filter region calculation unit 122 of the self-region filter processing unit 103 calculates variable filter regions having different sizes depending on the motion speed of the movable part such as the leg that sets the variable filter region.
As described above with reference to
Next, processing after the three-dimensional point cloud (PC) synthesis unit 104 in the data processing unit illustrated in
The three-dimensional point cloud (PC) synthesis unit 104 receives the filtered three-dimensional point clouds F to R from the three-dimensional point cloud filter processing unit 123 of the self-region filter processing unit 103.
As described above, the post-filter three-dimensional point clouds F to R are three-dimensional point cloud data obtained by removing the three-dimensional point cloud of the structural portion of the robot itself such as the leg portion of the robot.
The three-dimensional point cloud (PC) synthesis unit 104 synthesizes the input four post-filter three-dimensional point clouds F to R to generate one piece of post-filter three-dimensional point cloud synthesis data.
The post-filter three-dimensional point cloud (F, B, L, R) synthesis data output from the three-dimensional point cloud (PC) synthesis unit 104 is synthesis data of the post-filter three-dimensional point clouds F to R obtained by removing (filtering) the three-dimensional point cloud related to the structural part of the robot from the three-dimensional point clouds F to R generated on the basis of the four distance images F to R which are the outputs of the four visual sensors F, 12F to the visual sensors R, 12R attached to the front, back, left, and right of the four-legged robot 10 illustrated in
Note that as described above, the four visual sensor F, 12F to R, 12R illustrated in
However, the robot structural body such as the leg of the robot is not included because the robot structural body is removed by the filter processing.
The post-filter three-dimensional point cloud (F, B, L, R) synthesis data generated by the three-dimensional point cloud (PC) synthesis unit 104 is input to the map image generation unit 105.
The map image generation unit 105 uses the post-filter three-dimensional point cloud (F, B, L, R) synthesis data generated by the three-dimensional point cloud (PC) synthesis unit 104 to generate map data indicating a three-dimensional shape including a traveling surface of an object around the robot.
The map data generated by the map image generation unit 105 is various types of three-dimensional map data or 2.5 dimensional map data.
Specifically, the data is 2.5 dimensional map data such as a height map.
The height map is, for example, map data in which height data (z) is recorded in association with a representative coordinate position of two-dimensional coordinates (x, y) on an xy horizontal plane.
In principle, the three-dimensional map records data of all xyz coordinate positions, but the height map as the 2.5 dimensional map is, for example, map data in which one piece of height data (z) is allocated to a constant xy plane region, for example, a square region surface of 5 mm square, and can be generated as map data with a data amount reduced from that of a general three-dimensional map. Note that the 2.5 dimensional map is also map data having three-dimensional information, and is map data included in the three-dimensional map in a broad sense.
The three-dimensional map data (for example, a height map) generated by the map image generation unit 105 is input to the next time-series map image integration unit 106.
The time-series map image integration unit 106 performs integration processing of time-series data of three-dimensional map data (for example, a height map) generated by the map image generation unit 105.
Specifically, for example, the following processing is performed.
The time-series map image integration unit 106 integrates a plurality of pieces of time-series three-dimensional map data (t1) to (t3) generated on the basis of the distance images photographed at different times (t1 to t3) to generate one piece of time-series map integrated map data (for example, an integrated height map).
That is, the time-series integrated map data (t1) is generated from the three-dimensional map data (t1), and when the three-dimensional map data (t2) is input to the time-series map image integration unit 106, the time-series integrated map data (t1 to t2) is generated. Moreover, when the three-dimensional map data (t3) is input to the time-series map image integration unit 106, time-series map integrated map data (t1 to t3) is generated.
Note that each of the plurality of pieces of time-series three-dimensional map data (t1) to (t3) generated on the basis of the plurality of pieces of imaging data at different times has an overlapping region, and there is also a region included only in one piece of map data.
For example, there is a case where the distance image captured at a certain timing (t1) does not include the distance value of the object behind the foot of the robot, but the distance image captured at the next timing (t2) includes the distance value of the object hidden at the timing (t1).
The time-series map image integration unit 106 integrates a plurality of pieces of time-series three-dimensional map data (t1) to (t3) generated on the basis of distance images photographed at a plurality of different timings, thereby generating one piece of time-series map integrated map data (integrated height map) capable of acquiring three-dimensional shapes of almost all objects in the camera imaging range around the robot. Note that the self-position of the robot is required to generate the time-series map integrated map data (integrated height map), but the self-position can be acquired by using, for example, simultaneous localization and mapping (SLAM) technology using a distance image or three-dimensional point cloud (F, B, L, R) composite data as an input.
Note that the number of pieces of the time-series three-dimensional map data to be integrated by the time-series map image integration unit 106 is three pieces in the above-described example, but since time-series integration is sequentially performed, any number of pieces of the time-series three-dimensional map data can be integrated, not only three pieces but also two pieces or four pieces. Furthermore, if there is no particularly hidden portion in the time-series three-dimensional map data generated only from the distance image captured at a certain timing, the integration processing can be omitted.
Here, it is assumed that the time-series map image integration unit 106 generates one piece of time-series map integrated map data by integrating a plurality of pieces (n pieces) of time-series three-dimensional map data (t1) to (tn) generated on the basis of distance images captured at a plurality of different timings.
One piece of the time-series map integrated map data generated by the time-series map image integration unit 106 is output to the robot control unit 107.
One piece of time-series map integrated map data generated by the time-series map image integration unit 106 is 2.5 dimensional image data such as a height map that enables acquisition of three-dimensional shapes of almost all objects in a camera imaging range around the robot.
However, object position information of the structure of the robot itself such as the leg of the filtered robot is not included. That is, it is 2.5 dimensional image data such as a height map including information regarding an object that is a true obstacle.
The robot control unit 107 refers to one piece of time-series map integrated map data generated by the time-series map image integration unit 106 to confirm the position of an object that can be an obstacle, determines a route that does not collide with or come into contact with these obstacles as a travel route, and moves the legs to perform safe traveling.
Note that, in a case where the robot to be controlled is a robot that performs various works by, for example, the motion of the arm as described above with reference to
That is, the robot control unit 107 refers to one piece of time-series map integrated map data generated by the time-series map image integration unit 106, confirms the position of an object that can be an obstacle, determines the trajectory of the arm that does not collide with or come into contact with these obstacles, and moves the arm to perform safe work.
As described above, the robot device according to the present disclosure performs the filtering processing of removing the object information of the own device from the sensor detection information so that the own device region is not recognized as an obstacle even in a case where a part of the own device is detected by the sensor, and controls the robot using the map data generated on the basis of the filtered data.
By performing such processing, it is possible to perform correct robot control without erroneously recognizing a part of the own device as an obstacle.
Next, as Example 2, a calculation processing example of the variable filter region in consideration of the linear motion of the linear motion joint will be described.
In Example 1 described above, as described with reference to
Moreover, the variable filter region calculation unit 122 calculates the variable filter region according to the following formula (Formula 3).
(Formula 2) and (Formula 3) are, for example, a variable padding (Padvariable) calculation formula and a variable filter region calculation formula in consideration of the movement of the lower leg corresponding to the lower half leg of the leg 13 due to the rotation of the rotary joint 14 of the leg 13 of the four-legged robot 10 illustrated in
For example, a variable padding (Padvariable) calculation formula considering the movement of the lower leg due to the linear motion of the linear motion joint 15 of the leg 13 of the four-legged robot 10 is a formula different from (Formula 2) described above.
With reference to
The length of the leg 13 is indicated by L, and the length of the lower leg 19 is indicated by L2.
The variable padding calculation unit 121 of the self-region filter processing unit 103 illustrated in
The filter region in the length direction (L direction) of the lower leg is a region obtained by adding variable padding (Padvariable) to the length (L2) of the lower leg 19 at two ends in the length direction of the lower leg 19, that is, each of the upper end and the lower end.
Similarly, the filter region in the front-back direction (W direction) of the lower leg is a region obtained by adding variable padding (Padvariable) to the front-back width (W) of the lower leg at each of two ends in the front-back direction of the lower leg, that is, the front end and the rear end.
Moreover, although not illustrated in
That is, the variable filter region calculated by the variable filter region calculation unit 122 is a region in which the maximum length in each direction of the LWH has a length calculated according to the following formula (Formula 5), similarly to the variable filter region calculated in consideration of the rotation of the rotary joint described above with reference to
The size of the variable filter region calculated by (Formula 5) described above is larger as the linear motion speed (v) of the linear motion joint is larger, and is smaller as the linear motion speed (v) is smaller.
That is, the variable filter region is a region whose size changes according to the motion speed of the movable part such as the leg.
Note that the leg 13 of the four-legged robot 10 illustrated in
In this case, it is necessary to calculate the variable padding (Padvariable) and the variable filter region in consideration of these two motions, that is, the rotational motion of the rotary joint 14 and the linear motion of the linear motion joint 15.
A specific example of this processing will be described with reference to
The length of the leg 13 is indicated by L, and the length of the lower leg 19 is indicated by L2.
The calculation processing of the pivoting correspondence variable padding (Padvariable (ω)) in consideration of the movement of the leg 13 due to the rotation of the rotary joint 14 illustrated in
That is, the variable padding calculation unit 121 of the self-region filter processing unit 103 illustrated in
Calculation is performed according to the formula (Formula 2) described above.
Furthermore, the calculation processing of the linear motion compatible variable padding (Padvariable(v)) in consideration of the movement of the lower leg 19 due to the linear motion of the linear motion joint 15 illustrated in
That is, the variable padding calculation unit 121 of the self-region filter processing unit 103 illustrated in
Calculation is performed according to the formula (Formula 4) described above.
As illustrated in
In the example illustrated in the drawing, a filter region considering only the pivotal variable padding (Padvariable (ω)) is set for the upper leg of the upper half of the leg 13.
On the other hand, in the lower leg 19 of the lower half of the leg 13, a filter region in which the rotation corresponding variable padding (Padvariable (ω)) and the linear motion corresponding variable padding (Padvariable(v)) are superimposed is set.
In the example of the drawing, the linear motion corresponding variable padding (Padvariable(v)) is larger than the pivot corresponding variable padding (Padvariable (ω)), that is, Linear motion corresponding variable padding (Padvariable(v))>Rotary motion corresponding variable padding (Padvariable (ω))
With this relationship, the filter region defined by the linear motion corresponding variable padding (Padvariable(v)), which is a larger padding value, is set in the lower leg 19 of the lower half of the leg 13.
That is, in the variable filter region calculated by the variable filter region calculation unit 122, for the upper leg of the upper half of the leg 13,
The region is defined by the formula (Formula 6) described above.
Moreover, for the lower leg 19 of the lower half of the leg 13,
The region is defined by the formula (Formula 7) described above.
Note that the size of the variable filter region calculated by (Formula 6) and (Formula 7) described above is larger as the rotational speed (ω) of the rotary joint 14 and the linear motion speed (v) of the linear motion joint 15 are larger, and is smaller as the speed is smaller.
That is, the variable filter region is a region whose size changes according to the motion speed of the movable part such as the leg.
Next, other examples will be described.
The following examples will be sequentially described.
First, as Example 3, an example in which the size of the movable part of the robot is multiplied by the padding region to calculate the variable filter region will be described.
In Example 1 described above, as described with reference to
Moreover, the variable filter region calculation unit 122 calculates the variable filter region according to the following formula (Formula 3).
The variable padding calculation unit 121 of the self-region filter processing unit 103 may be configured to use the formula (Formula 8) below different from (Formula 2) described above in the calculation processing of the variable padding (Padvariable).
Moreover, the variable filter region calculation unit 122 calculates the variable filter region according to the following formula (Formula 9).
In (Formula 3) described above, in the calculation processing of the variable filter region, the variable padding (Padvariable) is added to each end portion of the lengths L, W, and H of the three axes of the rectangular parallelepiped enclosing the movable part for setting the variable filter region to calculate the variable filter region.
On the other hand, in (Formula 9) described above, in the calculation processing of the variable filter region, each of the lengths L, W, and H of the three axes of the rectangular parallelepiped enclosing the movable part that sets the variable filter region is multiplied by variable padding (Padvariable) to calculate the variable filter region.
Processing of calculating the variable filter region may be performed by applying such (Formula 9).
Note that also in (Formula 9) described above, the size of the variable filter region to be calculated becomes larger as the motion speed (for example, the angular velocity (ω)) of the movable part is larger, and becomes smaller as the motion speed (for example, the angular velocity (ω)) of the movable part is smaller.
That is, the variable filter region is a region whose size changes according to the motion speed of the movable part of the robot, such as the leg of the robot.
Next, as Example 4, an example in which the variable filter region is calculated by distinguishing the operation region and the non-operation region of the movable part of the robot will be described.
Details of Example 4 will be described with reference to
Similarly to
As illustrated in
As illustrated in
The leg 13 turns on the LW plane and does not move in the H direction (the left-right direction of the four-legged robot 10).
That is, the operation region of the leg 13 is the LW plane, and the H direction is the non-operation region.
Example 4 is an example in which the variable filter region is calculated by distinguishing the operation region and the non-operation region of the robot movable part, and the variable filter region calculation unit 122 calculates the variable filter region as illustrated in
The variable filter region calculated by the variable filter region calculation unit 122 is a quadrangular prism including three sides having a length calculated according to the following formula (Formula 10).
That is, variable padding (Padvariable) is additionally set only in the LW plane which is the operation region of the leg 13 which is the robot movable part, and only the length (H) in the H direction of the leg 13 is set as the filter region without additionally setting variable padding (Padvariable) in the H direction which is the non-operation region of the leg 13.
Note that, in the present Example 4, processing similar to that in Example 3 described above can also be applied.
That is, processing of calculating the variable filter region by multiplying each of the lengths L, W, and H of the three axes of the rectangular parallelepiped enclosing the movable part for setting the variable filter region by variable padding (Padvariable) may be performed.
For example, processing of calculating the variable filter region may be performed using (Formula 11) shown below.
In this manner, the present Example 4 is an example in which the variable filter region is calculated by distinguishing the operation region and the non-operation region of the robot movable part.
By setting such a variable filter region, it is possible to avoid expansion of the filter region in a direction independent of the motion direction of the movable part. As a result, it is possible to prevent excessive filter processing of an object such as an obstacle in an unintended direction, and it is possible to effectively use information from the external sensor.
Next, as Example 5, an example in which the motion direction of the robot movable part is identified and the variable filter region is calculated will be described.
Details of Example 5 will be described with reference to
Similarly to
As illustrated in
As illustrated in
Example 5 is an example of identifying the motion direction of the robot movable part and calculating the variable filter region. In a case where the leg 13 of the four-legged robot 10 is in a state of rotating leftward about the rotary joint 14 at the upper end as illustrated in
That is, the variable filter region calculation unit 122 calculates a variable filter region as illustrated in
The variable filter region calculated by the variable filter region calculation unit 122 is a quadrangular prism including three sides having a length calculated according to the following formula (Formula 12).
Here, in (Formula 12) described above,
A setting direction of this (Padvariable) is set to a motion direction of the leg 13, that is, the left side which is a motion direction of the leg 14 as illustrated in
As described above, in Example 5, variable padding (Padvariable) is additionally set in the motion direction of the leg 13 which is the robot movable part, and variable padding (Padvariable) is not set in the direction opposite to the motion direction of the leg 13.
Note that, in the present Example 5, processing similar to that in Example 3 described above can also be applied.
That is, processing of calculating the variable filter region by multiplying each of the lengths L, W, and H of the three axes of the rectangular parallelepiped enclosing the movable part for setting the variable filter region by variable padding (Padvariable) may be performed.
The present Example 5 is an example in which the variable filter region is calculated by distinguishing the motion direction and the non-motion direction of the robot movable part as described above.
By setting such a variable filter region, it is possible to avoid expansion of the filter region in a direction independent of the motion direction of the movable part. As a result, it is possible to prevent excessive filter processing of an object such as an obstacle in an unintended direction, and it is possible to effectively use information from the external sensor.
Next, as Example 6, an example in which a fixed padding region and a variable padding region are set and a variable filter region is calculated on the basis of these two padding regions will be described.
Details of Example 6 will be described with reference to
Similarly to
As illustrated in
As illustrated in
In the present Example 6, a fixed padding region (Padfixed) and a variable padding region (Padvariable) are set, and a variable filter region is calculated on the basis of these two padding regions.
The fixed padding region (Padfixed) is a filter region fixed in advance around the movable part for setting the filter region.
The variable padding region (Padvariable) corresponds to a filter region that changes according to the motion speed of the movable part that sets the filter region.
In Example 6, the variable filter region calculated by the variable filter region calculation unit 122 is a quadrangular prism including three sides having a length calculated according to the following formula (Formula 13).
As described above, in the present Example 6, the fixed filter region and the variable filter region are set using the fixed padding region (Padfixed) and the variable padding region (Padvariable).
Note that, in the present Example 6, processing similar to that in Example 3 described above can also be applied.
That is, processing of calculating the variable filter region by multiplying each of the lengths L, W, and H of the three axes of the rectangular parallelepiped enclosing the movable part for setting the variable filter region by variable padding (Padvariable) may be performed.
For example, processing of calculating the variable filter region may be performed using (Formula 14) shown below.
As described above, the present Example 6 is configured to set the variable filter region including the fixed padding region (Padfixed) fixed in advance and the variable padding region (Padvariable) that changes according to the operation state (motion speed) of the movable part.
In the present Example 6, for example, even in a case where the movable part is in a stopped state, a filter region having a fixed padding region (Padfixed) fixed in advance is set, and for example, in a case where there is an assembly error or the like in the robot, it is possible to prevent processing of erroneously recognizing a configuration of a leg portion or the like included in the error region as an obstacle.
Next, as Example 7, an example for calculating a variable filter region corresponding to a movable part having a plurality of rotary joints will be described.
Details of Example 7 will be described with reference to
The four-legged robot b, 10b illustrated in the upper left of
That is, the rotary joint 13 is provided at the upper end of the leg 13, and further, another rotary joint 17 is provided at the middle position of the leg 13.
The length of the upper leg 13a of the leg 13 is L1, and the length of the lower leg 13b is L2.
The entire upper leg 13a and the entire lower leg 13b are rotated by the rotation of the rotary joint 13 at the upper end of the leg 13.
Furthermore, only the lower leg 13b is rotated by the rotation of the rotary joint 17 at the middle position of the leg 13.
Here, the angular velocity of the rotation of the rotary joint 13 at the upper end of the leg 13 is ω1, and the angular velocity of the rotation of the rotary joint 17 at the middle stage of the leg 13 is ω2.
Using these angular velocities, the variable padding calculation unit 121 of the self-region filter processing unit 103 performs calculation processing of two variable padding (Padvariable) according to the following (Formula 15).
The first variable padding (Padvariable1) in (Formula 15) described above is variable padding calculated on the basis of ω1 of the angular velocity of the rotation of the rotary joint 13 at the upper end of the leg 13.
Since the rotation of the rotary joint 13 at the upper end of the leg 13 is the rotation of the entire upper leg 13a and the entire lower leg 13b, the first variable padding (Padvariable1) is set as the padding of the entire upper leg 13a and the entire lower leg 13b.
On the other hand, the second variable padding (Padvariable2) in (Formula 15) described above is variable padding calculated on the basis of ω2 of the angular velocity of the rotation of the rotary joint 17 of the middle part of the leg 13.
Since the rotation of the rotary joint 17 of the middle part of the leg 13 is rotation of only the lower leg 13b, this second variable padding (Padvariable2) is set as padding of only the lower leg 13b.
As a result, variable filter region calculation unit 122 calculates the variable filter region by different processing in upper leg 13a and lower leg 13b.
That is, the variable filter region of the upper leg 13a is calculated according to the following formula (Formula 16).
Moreover, the variable filter region of the lower leg 13b is calculated according to the following formula (Formula 17).
In this manner, variable filter region calculation unit 122 calculates the variable filter region by different processes in upper leg 13a and lower leg 13b.
Note that processing similar to that of Example 3 described above can be applied to Example 7.
That is, processing of calculating the variable filter region by multiplying each of the lengths L, W, and H of the three axes of the rectangular parallelepiped enclosing the movable part for setting the variable filter region by variable padding (Padvariable) may be performed.
Furthermore, the processing of Example 6 described above, that is, the processing of setting the fixed padding region and the variable padding region and calculating the variable filter region on the basis of these two padding regions may be applied.
In this case, variable filter region calculation unit 122 calculates the variable filter region by the following processing using upper leg 13a and lower leg 13b.
The variable filter region of the upper leg 13a is calculated according to the following formula (Formula 18).
Moreover, the variable filter region of the lower leg 13b is calculated according to the following formula (Formula 19).
As described above, according to Example 7, it is possible to calculate an optimal filter region even in a configuration in which a plurality of joint units is connected.
Note that, in the Example described above, the example of the configuration in which two rotary joints are connected has been described. However, even in a configuration in which three or more joint units are connected, processing similar to the above description is performed, whereby calculation processing of an optimum filter region can be performed.
Next, as Example 8, an example in which filter processing is performed not on three-dimensional point cloud data but on a distance image will be described.
The above-described Example has been basically described as an example executed using the configuration of the data processing unit 100 described above with reference to
The data processing unit 100 illustrated in
The processing of the present disclosure, that is, the filtering processing for preventing a component such as a leg of the robot device from being recognized as an obstacle can be executed not on three-dimensional point cloud (PC) data but on a distance image input from the visual sensor 12.
Example 8 described below is an example in which the filter processing is performed not on the three-dimensional point cloud data but on the distance image.
A main configuration of a robot device of Example 8 will be described with reference to
The configuration illustrated in
The four visual sensors F to R, 12F to R illustrated in
Note that each of the four visual sensors F to R, 12F to R captures, for example, a distance image in which a density value corresponding to a distance to an object included in an imaging range (sensor detection region) of a camera constituting the visual sensor is set as a pixel value.
A distance image F illustrated in
The distance image B is a distance image acquired by the visual sensor B, 12B that captures an image in the backward direction opposite to the traveling direction of the four-legged robot 10.
The distance image L is a distance image acquired by the visual sensor L, 12L that captures an image in the left direction with respect to the traveling direction of the four-legged robot 10.
The distance image R is a distance image acquired by the visual sensor R (Right) 12R that captures an image in the right direction with respect to the traveling direction of the four-legged robot 10.
In Example 8, the four distance images acquired by the four visual sensors F, 12F to R, 12R are input to the self-region filter processing unit 103 of a data processing unit 150.
That is, in the present Example 8, the generation processing of the three-dimensional point cloud (PC) data by the three-dimensional point cloud (PC) generation unit 102 described above with reference to
As illustrated in
The robot information acquisition unit 101 acquires robot structure information (robot model information), a robot movable part position, and motion information, and outputs the robot structure information, the robot movable part position, and the motion information to the self-region filter processing unit 103.
The robot structure information (robot model information) is stored in a storage unit (not illustrated).
The robot movable part position and the motion information are acquired from the robot control unit 107 or acquired by using detection information of a sensor attached to the robot. Note that the robot movable part is a leg, an arm, or the like of the robot.
The self-region filter processing unit 103 of the data processing unit 100 directly uses the four distance images F to R acquired by the four visual sensors F, 12F to the visual sensors R, 12R to perform the setting processing of the variable filter region on each of these distance images, and performs the filter processing of removing the detection information of the movable part such as the leg or the arm of the robot from the distance images F to R using the set variable filter region.
As a result of this filtering process, the self-region filter processing unit 103 generates post-filter distance images F to R, which are the outputs of the self-region filter processing unit 103 illustrated in
Note that the post-filter distance image is a distance image obtained by removing distance data of an object corresponding to the region of the robot itself, which is the self-region, from the four distance images F to R acquired by the four visual sensors F, 12F to R, 12R, that is, by performing filter processing.
The three-dimensional point cloud (PC) generation unit 102 receives the filtered distance images F to R from the self-region filter processing unit 103.
As described above, the post-filter distance images F to R are distance images obtained by removing the distance value data of the structural part of the robot itself, such as the leg part of the robot.
The three-dimensional point cloud (PC) generation unit 102 generates a filtered three-dimensional point cloud (PC) in which the distance value (pixel value) set for each pixel of the input four filtered distance images F to R is expressed as point cloud data on three-dimensional coordinates.
Note that, as described above, each point constituting the three-dimensional point cloud (PC) is a point whose coordinate position on the xyz three-dimensional space is defined. That is, each coordinate value of x, y, and z is assigned to each point of the three-dimensional point cloud configuration.
As illustrated in
As illustrated in
The three-dimensional point cloud (PC) synthesis unit 104 receives the filtered three-dimensional point clouds F to R from a three-dimensional point cloud (PC) generation unit 102.
As described above, the post-filter three-dimensional point clouds F to R are three-dimensional point cloud data obtained by removing the three-dimensional point cloud of the structural portion of the robot itself such as the leg portion of the robot.
The three-dimensional point cloud (PC) synthesis unit 104 synthesizes the input four post-filter three-dimensional point clouds F to R to generate one piece of post-filter three-dimensional point cloud synthesis data.
The post-filter three-dimensional point cloud (F, B, L, R) synthesis data output from the three-dimensional point cloud (PC) synthesis unit 104 is synthesis data of the post-filter three-dimensional point clouds F to R obtained by removing (filtering) the three-dimensional point cloud related to the structural part of the robot from the three-dimensional point clouds F to R generated on the basis of the four distance images F to R which are the outputs of the four visual sensors F, 12F to the visual sensors R, 12R attached to the front, back, left, and right of the four-legged robot 10 illustrated in
Note that, as described above, the four visual sensor F, 12F to R and 12R illustrated in
However, the robot structural body such as the leg of the robot is not included because the robot structural body is removed by the filter processing.
The post-filter three-dimensional point cloud (F, B, L, R) synthesis data generated by the three-dimensional point cloud (PC) synthesis unit 104 is input to the map image generation unit 105.
The map image generation unit 105 uses the post-filter three-dimensional point cloud (F, B, L, R) synthesis data generated by the three-dimensional point cloud (PC) synthesis unit 104 to generate map data indicating a three-dimensional shape including a traveling surface of an object around the robot.
The map data generated by the map image generation unit 105 is various types of three-dimensional map data or 2.5 dimensional map data.
Specifically, the data is 2.5 dimensional map data such as a height map.
As described above, the height map is, for example, map data in which height data (z) is recorded in association with a representative coordinate position of two-dimensional coordinates (x, y) of an xy horizontal plane.
The three-dimensional map data (for example, a height map) generated by the map image generation unit 105 is input to the next time-series map image integration unit 106.
The time-series map image integration unit 106 performs integration processing of time-series data of three-dimensional map data (for example, a height map) generated by the map image generation unit 105.
Specifically, for example, the following processing is performed.
The time-series map image integration unit 106 integrates a plurality of pieces of time-series three-dimensional map data (t1) to (t3) generated on the basis of the distance images photographed at different times (t1 to t3) to generate one piece of time-series map integrated map data (for example, an integrated height map).
That is, the time-series integrated map data (t1) is generated from the three-dimensional map data (t1), and when the three-dimensional map data (t2) is input to the time-series map image integration unit 106, the time-series integrated map data (t1 to t2) is generated. Moreover, when the three-dimensional map data (t3) is input to the time-series map image integration unit 106, time-series map integrated map data (t1 to t3) is generated.
Note that as described above, each of the plurality of pieces of time-series three-dimensional map data (t1) to (t3) generated on the basis of the plurality of pieces of imaging data at different times has an overlapping region, and there is also a region included only in one piece of map data.
As described above, the time-series map image integration unit 106 integrates a plurality of pieces of time-series three-dimensional map data (t1) to (t3) generated on the basis of distance images captured at a plurality of different timings, thereby generating one piece of time-series map integrated map data (integrated height map) capable of acquiring three-dimensional shapes of almost all objects in the camera imaging range around the robot.
One piece of the time-series map integrated map data generated by the time-series map image integration unit 106 is output to the robot control unit 107.
One piece of time-series map integrated map data generated by the time-series map image integration unit 106 is 2.5 dimensional image data such as a height map that enables acquisition of three-dimensional shapes of almost all objects in a camera imaging range around the robot.
However, object position information of the structure of the robot itself such as the leg of the filtered robot is not included. That is, it is 2.5 dimensional image data such as a height map including information regarding an object that is a true obstacle.
The robot control unit 107 refers to one piece of time-series map integrated map data generated by the time-series map image integration unit 106 to confirm the position of an object that can be an obstacle, determines a route that does not collide with or come into contact with these obstacles as a travel route, and moves the legs to perform safe traveling.
Note that, in a case where the robot to be controlled is a robot that performs various works by, for example, the motion of the arm as described above with reference to
That is, the robot control unit 107 refers to one piece of time-series map integrated map data generated by the time-series map image integration unit 106, confirms the position of an object that can be an obstacle, determines the trajectory of the arm that does not collide with or come into contact with these obstacles, and moves the arm to perform safe work.
As described above, the robot device according to the present disclosure performs the filtering processing of removing the object information of the own device from the sensor detection information so that the own device region is not recognized as an obstacle even in a case where a part of the own device is detected by the sensor, and controls the robot using the map data generated on the basis of the filtered data.
By performing such processing, it is possible to perform correct robot control without erroneously recognizing a part of the own device as an obstacle.
Next, a hardware configuration example of the robot device or the like of the present disclosure will be described.
As illustrated in
The data processing unit 310 is, for example, a multi-core CPU including a plurality of core CPUs 511a and 511b, and performs data processing according to each of the above-described Examples and various other data processing according to a program stored in the storage unit 521 or the memory 522.
The storage unit 521 and the memory 522 store various information necessary for traveling, such as a program executed in the data processing unit 310 and travel route information of the robot 500.
Furthermore, the data processing unit 510 is also used as a storage area for sensor detection information acquired by the sensor 541 such as a visual sensor, for example, a distance image, and three-dimensional point cloud (PC) data generated in the data processing unit.
The display unit 530 is used, for example, as a display unit of various types of information indicating an operation state of the robot 500 and the like and a display unit of a captured image in the traveling direction. Furthermore, the touch panel may allow the user to input instruction data.
The sensor IF 540 receives detection information of the sensor 541 such as a visual sensor and outputs the detection information to the data processing unit 510. Alternatively, the sensor detection information is stored in the storage unit 521 or the memory 522.
The sensor 541 includes the visual sensor and the like described in the above-described Examples. For example, the camera is a camera that captures a distance image or the like.
The drive control unit 550 controls the drive unit 551 including a motor or the like to operate and move the robot 500.
The communication unit 560 communicates with an external device, for example, a server 600 on the cloud side via a communication network. The server 600 notifies the robot 500 of a destination, route information for going to the destination, and the like.
The bus 570 is used as a data transfer path between the components.
Note that the server 600 is not an essential configuration, and may be configured to store a destination, route information for going to the destination, and the like in the robot 500 and perform processing by the robot 500 alone.
Furthermore, conversely, a configuration may also be adopted in which control information for the robot 500 is determined by executing data processing according to the Examples described above on a side of the server 600.
For example, as illustrated in
The server 600 receives an image from the robot 500, executes data processing according to the above-described Example, generates control information of the robot 500, and transmits the control information to the robot 500.
The robot 500 operates in accordance with control information received from the server 600.
Note that the server 600 that performs data processing as described above has a hardware configuration as illustrated in
As illustrated in
The data processing unit 610 is, for example, a multi-core CPU including a plurality of core CPUs 611a, b, and performs data processing according to each of the above-described Examples and various other data processing according to a program stored in the storage unit 622 or the memory 623.
The communication unit 621 communicates with the robot 500 via a communication network.
For example, sensor detection information acquired by a visual sensor or the like of the robot 500, for example, a distance image is received. Furthermore, the server 600 transmits the control information generated according to the above-described Example to the robot 500. Furthermore, it is also used for a process of transmitting a destination, route information for going to the destination, and the like to the robot 500.
The storage unit 622 and the memory 623 store various information necessary for traveling, such as a program executed in the data processing unit 610 and travel route information of the robot 500.
Furthermore, the sensor detection information acquired by the visual sensor or the like of the robot 500, for example, the distance image is also used as a storage area of the received data in a case where the sensor detection information is received via the communication unit 621. Furthermore, the data processing unit 610 is also used as a storage area for three-dimensional point cloud (PC) data generated by the data processing unit.
The display unit 624 is used, for example, as a display unit of various types of information indicating an operation state of the robot 500 and the like and a display unit of a captured image in the traveling direction. Furthermore, the touch panel may allow the user to input instruction data.
The bus 630 is used as a data transfer path between the components.
Hereinabove, the examples according to the present disclosure have been described in detail with reference to the specific Examples. However, it is obvious that those skilled in the art can modify or substitute the examples without departing from the gist of the present disclosure. That is, the present invention has been disclosed in the form of exemplification, and should not be interpreted in a limited manner. In order to determine the gist of the present disclosure, the claims should be considered.
Note that the technology disclosed herein can have the following configurations.
(1) A robot device including
(2) The robot device according to (1), further including:
(3) The robot device according to (1) or (2), in which
(4) The robot device according to any one of (1) to (3), in which
(5) The robot device according to any one of (1) to (4), in which
(6) The robot device according to any one of (1) to (5), further including
(7) The robot device according to (6), in which
(8) The robot device according to any one of (1) to (7), in which
(9) The robot device according to any one of (1) to (8), in which
(10) The robot device according to (9), in which
(11) The robot device according to (9), in which
(12) The robot device according to any one of (1) to (11), in which
(13) The robot device according to any one of (1) to (12), in which
(14) The robot device according to any one of (1) to (13), in which
(15) A robot control method for executing motion control of a robot device, the robot control method including:
Note that a series of processing herein described can be executed by hardware, software, or a combined configuration of the both. In a case where processing by software is executed, a program in which a processing sequence is recorded can be installed and executed in a memory in a computer incorporated in dedicated hardware, or the program can be installed and executed in a general-purpose computer capable of executing various types of processing. For example, the program can be recorded in advance in a recording medium. In addition to being installed on a computer from a recording medium, the program can be received via a network such as a local area network (LAN) or the Internet and installed on a recording medium such as an internal hard disk.
Furthermore, the various types of processing herein described may be performed not only in time series as described, but also in parallel or individually in accordance with the processing capability of the device that performs the processing or as necessary. Furthermore, a system herein described is a logical set configuration of a plurality of devices, and is not limited to a system in which devices of respective configurations are in the same housing.
As described above, according to the configuration of an example of the present disclosure, in a robot device that identifies an obstacle on the basis of detection information of a sensor, highly accurate robot control by correct obstacle identification is realized without erroneously recognizing a leg, an arm, or the like of the robot itself as an obstacle.
Specifically, for example, the self-region filter processing unit removes the object information corresponding to the component of the robot device from the object information included in the detection information of the visual sensor, the map image generation unit generates map data based on the object information from which the object information corresponding to the component of the robot device has been removed, and the robot control unit controls the robot device on the basis of the generated map data. The self-region filter processing unit calculates variable filter regions of different sizes according to the motion speed of the movable part of the robot device, and executes processing of removing the object information in the variable filter regions from the detection information of the visual sensor.
With this configuration, in the robot device that identifies an obstacle on the basis of the detection information of the sensor, highly accurate robot control by correct obstacle identification is realized without erroneously recognizing a leg, an arm, or the like of the robot itself as an obstacle.
| Number | Date | Country | Kind |
|---|---|---|---|
| 2021-149972 | Sep 2021 | JP | national |
| Filing Document | Filing Date | Country | Kind |
|---|---|---|---|
| PCT/JP2022/014836 | 3/28/2022 | WO |