WO2020235539A1 - オブジェクトの位置及び姿勢を特定する方法及び装置 - Google Patents
オブジェクトの位置及び姿勢を特定する方法及び装置 Download PDFInfo
- Publication number
- WO2020235539A1 WO2020235539A1 PCT/JP2020/019689 JP2020019689W WO2020235539A1 WO 2020235539 A1 WO2020235539 A1 WO 2020235539A1 JP 2020019689 W JP2020019689 W JP 2020019689W WO 2020235539 A1 WO2020235539 A1 WO 2020235539A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- model
- robot
- virtual world
- orientation
- virtual
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T19/00—Manipulating 3D models or images for computer graphics
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/70—Determining position or orientation of objects or cameras
Definitions
- the present invention relates to a method and a device for specifying the position and orientation of an object.
- Patent Document 1 describes an image feature extraction device that estimates the position and orientation of an object by probabilistically obtaining the range in which the object exists in the captured image from the image features and then performing detailed collation with the model. It is disclosed.
- Patent Document 2 describes a distance sensor that measures the distance to an object existing in the work environment and generates range data, and the shape and position / orientation of the object by collating the generated range data with the shape data.
- the initial collation unit that estimates, the camera unit that generates image data that captures the image of the object, the feature extraction unit that extracts the features of the image data, and the shape and position / orientation of the object estimated by the initial collation unit as initial values.
- a robot device equipped with a posture estimation unit that estimates the position and orientation of an object by solving a minimization problem using the feature of the image data extracted by the feature extraction unit and the error between the shape and position and orientation of the object as an evaluation function. It is disclosed.
- Non-Patent Document 1 the PnP problem (the problem of estimating the position and orientation of the calibrated camera from the three-dimensional coordinates of n points in the world coordinate system and the image coordinates in which those points are observed) is less calculated.
- Patent Document 1 the range in which an object exists in the captured image is stochastically obtained from the image features. In the method of Patent Document 1, it is necessary to calculate the existence probability for the entire image, so that a high calculation cost is required.
- Patent Document 2 the position and orientation of an object are used as initial values, using the shape and position and orientation of the object estimated by collating the range data generated by measuring the distance to the object existing in the work environment with the shape data. Is estimated. Since the method of Patent Document 2 is premised on measuring the distance to an object and generating range data, it cannot be used under the condition that there is no distance measuring means or distance information cannot be obtained.
- the method of recognizing an object in the captured image may not be able to correctly extract the feature points of the object if the quality of the captured image is low. In that case, the accuracy of collation between the object and the model is lowered, and the position / orientation of the object cannot be recognized correctly.
- it is a method of specifying the position and orientation of an object to generate a virtual world including a display of an object in the real world and to display a model corresponding to the object in the virtual world. And in a virtual world, methods are provided that include overlaying a model on an object and comparing the object to the model to identify the position and orientation of the object.
- it is a device for specifying the position and orientation of an object to generate a virtual world including a display of an object in the real world, and to display a model corresponding to the object in the virtual world.
- a device with a processor configured to perform, superimpose a model on an object, and compare the object to the model to determine the position and orientation of the object in a virtual world.
- Fig. (A) shows how to give an operation instruction to a virtual mug which is a virtual object in the virtual world
- Fig. (B) shows how to grasp the mug in the real world with the robot hand of a robot in the real world according to the instruction. It shows how to move it.
- FIG. 1 is a block diagram showing an embodiment of a robot control system.
- FIG. 2 is a diagram showing a schematic configuration of an embodiment of a robot.
- the robot control system 1 includes a robot 100, a control unit 200 that controls the robot 100, and a control device 300 that controls the control unit 200.
- the robot 100 disclosed in the present embodiment includes at least two robot arms 120, a robot housing 140 that supports the robot arms 120, and the surrounding environment of the robot 100. It is provided with an environment sensor 160 that senses the above and a transmission / reception unit 180.
- Each robot arm 120 in the present embodiment is, for example, a 6-axis articulated arm (hereinafter, also referred to as “arm”), and a robot hand (hereinafter, also referred to as “hand”) which is an end effector at the tip thereof. It has 122.
- the robot arm 120 includes an actuator (not shown) having a servomotor on each rotation axis. Each servomotor is connected to the control unit 200 and is configured to control its operation based on a control signal sent from the control unit 200.
- a 6-axis articulated arm is used as the arm 120, but the number of axes (the number of joints) of the arm can be appropriately determined according to the application of the robot 100, the functions required thereof, and the like.
- the two-fingered hand 122 is used as the end effector, but the present invention is not limited to this, and for example, a robot hand having three or more fingers and a means of attracting by magnetic force or negative pressure are provided.
- a robot hand equipped with a gripping means that applies the jamming (clogging) phenomenon of powder or granular material filled in a rubber film, or a robot hand that can repeatedly grip and release the gripping object by any other means. can be used. It is preferable that the hands 122a and 122b are configured to be rotatable around the wrist portion thereof.
- the hand 122 is equipped with a kinetic sensor that detects the amount of displacement of the hand 122, the force, acceleration, vibration, etc. acting on the hand 122. Further, it is preferable that the hand 122 is provided with a tactile sensor that detects the gripping force and the tactile sensation of the hand 122.
- the robot housing 140 may be installed in a state of being fixed on a mounting table (not shown), or may be installed on the mounting table so as to be rotatable via a rotation drive device (not shown). May be good.
- the robot housing 140 is rotatably installed on the mounting table, the working range of the robot 100 can be expanded not only to the area in front of the robot 100 but also to the area around the robot 100.
- the robot housing 140 can be used for vehicles, ships, submersibles, helicopters, drones, and other moving objects equipped with a plurality of wheels and endless tracks, depending on the application and usage environment of the robot 100. It may be mounted, or the robot housing 140 may be configured as part of such a moving body.
- the robot housing 140 may have two or more legs as walking means. When the robot housing 140 has such a moving means, the working range of the robot 100 can be made wider. Depending on the application of the robot 100, the robot arm 120 may be directly fixed to a mounting table or the like without the intervention of the robot housing 140.
- the environment sensor 160 senses the surrounding environment of the robot 100.
- the surrounding environment includes, for example, electromagnetic waves (including visible light, invisible light, X-ray, gamma ray, etc.), sound, temperature, humidity, wind velocity, atmospheric composition, etc. Therefore, the environmental sensor 160 is a visual sensor, X-ray.
- -It may include, but is not limited to, gamma ray sensors, auditory sensors, temperature sensors, humidity sensors, wind velocity sensors, atmospheric analyzers, and the like.
- the environment sensor 160 is shown to be integrated with the robot 100 in the figure, the environment sensor 160 does not have to be integrated with the robot 100.
- the environment sensor 160 may be installed at a position away from the robot 100, or may be installed on a moving body such as a vehicle or a drone. Further, the environment sensor 160 preferably includes a GPS (Global Positioning System) sensor, an altitude sensor, a gyro sensor, and the like. Further, the environment sensor 160 is used as a position detection means for detecting the position of the robot 100 outdoors or indoors. In addition to the GPS sensor, WiFi positioning, beacon positioning, self-contained navigation positioning, geomagnetic positioning, sonic positioning, UWB (Ultra Wideband) Band: Ultra-wideband) It is preferable to have a configuration for positioning, visible light / invisible light positioning, and the like.
- GPS Global Positioning System
- the visual sensor for example, a 2D camera, a depth sensor, a 3D camera, an RGB-D sensor, a 3D-LiDAR sensor, a Kinect TM sensor, and the like can be used.
- the visual information obtained by the environment sensor 160 is sent to the control unit 200 and processed by the control unit 200.
- Other environmental information obtained by the environment sensor 160 can also be transmitted to the control unit 200 and used for analysis of the surrounding environment of the robot 100.
- the transmission / reception unit 180 transmits / receives signals / information to / from the control unit 200.
- the transmission / reception unit 180 can be connected to the control unit 200 by a wired connection or a wireless connection, and therefore, transmission / reception of those signals / information can be performed by a wired or wireless connection.
- the communication protocol, frequency, and the like used for transmitting and receiving those signals and information can be appropriately selected according to the application, environment, and the like in which the robot 100 is used.
- the transmission / reception unit 180 may be connected to a network such as the Internet.
- control unit 200 in the robot control system 1 of the present embodiment will be described.
- control unit 200 of the system 1 includes a processor 220, a storage unit 240, and a transmission / reception unit 260.
- the processor 220 mainly controls the drive unit and the sensor (both not shown) of the robot arm 120 and the body 140 of the robot 100, controls the environment sensor 160, processes information transmitted from the environment sensor 160, and interacts with the control device 300. It controls the operation and transmission / reception unit 260.
- the processor 220 is composed of, for example, a central processing unit (CPU), an application specific integrated circuit (ASIC), an embedded processor, a microprocessor, a digital signal processor (DSP), or a combination thereof.
- the processor 220 may be composed of one or more processors.
- the processor 220 receives, for example, a control signal of the robot 100 sent from the control device 300, an operation command generated in response to the control signal, an operation of the robot 100 actually executed, and an environment sensor 160 after the operation is executed.
- the collected ambient environment data is stored in the storage unit 240 as data, and machine learning is executed using the data to generate learning data and store it in the storage unit 240.
- the processor 220 can generate an operation command by deciding an operation to be executed by the robot 100 based on the control signal of the robot 100 transmitted from the control device 300 from the next time onward with reference to the learning data. ..
- the control unit 200 of the robot 100 in the real world has a machine learning function locally.
- the storage unit 240 is a computer program for controlling the robot 100, a computer program for processing information transmitted from the environment sensor 160, and a computer for interacting with the control device 300 as described in the present embodiment.
- -A program, a computer program for controlling the transmission / reception unit 260, a program for executing machine learning, and the like are stored.
- the storage unit 240 stores software or a program that causes a computer to perform a process as described in this embodiment to cause a function as a control unit 200.
- the storage unit 240 stores a computer program that can be executed by the processor 220, including instructions that implement the methods described below with reference to FIG. 3 and the like.
- the storage unit 240 stores the data of the model of the known object as described above. Further, the storage unit 240 includes the state of each part (servo (not shown), hand 122, etc.) of the robot arm 120 of the robot 100, information transmitted from the environment sensor 160, information sent from the control device 300, control signals, and the like. It also has the role of storing at least temporarily. Further, as described above, the storage unit 240 also has a role of storing the operation instruction of the robot 100 and the operation and learning data of the robot 100 executed in response to the operation instruction. The storage unit 240 preferably includes a non-volatile storage medium that retains the storage state even when the power of the control unit 200 is turned off.
- a hard disk drive HDD
- SSD solid-state storage device
- compact storage unit 240 Optical disk storage such as disk (CD), digital versatile disk (DVD), Blu-ray disk (BD), non-volatile random access memory (NVRAM), EPROM (Rrasable Programmable Read Only Memory), non-volatile storage such as flash memory Is equipped with.
- the storage unit 240 may further include volatile storage such as a static random access memory (SRAM), but each computer program described above is a non-volatile (non-temporary) storage medium of the storage unit 340. Is remembered in.
- the transmission / reception unit 260 transmits / receives signals / information to / from the robot 100 and transmits / receives signals / information to / from the control device 300.
- the control unit 200 can be connected to the robot 100 by a wired connection or a wireless connection, and therefore, transmission and reception of those signals / information can be performed by a wired or wireless connection.
- the communication protocol, frequency, and the like used for transmitting and receiving those signals and information can be appropriately selected according to the application, environment, and the like in which the robot 100 is used.
- the transmission / reception unit 260 may be connected to a network such as the Internet.
- the transmission / reception unit 260 transmits / receives signals / information to / from the control device 300.
- the control unit 200 can be connected to the control device 300 by a wired connection or a wireless connection, and therefore, transmission and reception of those signals / information can be performed by a wired or wireless connection.
- the communication protocol, frequency, and the like used for transmitting and receiving those signals and information can be appropriately selected according to the application, environment, and the like in which the robot 100 is used.
- control unit 200 is shown as being independent of the robot 100 in FIG. 1, it is not limited to that form.
- the control unit 200 may be provided in the housing 140 of the robot 100.
- the number of robots 100 used in this system 1 is not limited to one, and a plurality of robots 100 may be operated independently or in cooperation with each other. In this case, a single control unit 200 may control a plurality of robots 100, or a plurality of control units 200 may cooperate to control a plurality of robots 100.
- control device 300 in the robot control system 1 of the present embodiment will be described.
- the control device 300 of the system 1 includes a processor 320, a storage unit 340, an input device 350, a transmission / reception unit 360, and a display 370.
- the processor 320 mainly controls the interaction with the control unit 200, the processing based on the input performed by the user via the input device 350, the control of the transmission / reception unit 360, and the display of the display 370.
- the processor 320 generates a control signal based on the user input input by the input device 350 and transmits it to the control unit 200.
- the processor 220 of the control unit 200 Based on the control signal, the processor 220 of the control unit 200 generates one or a plurality of operation commands for operating each drive unit (not shown) of the robot arm 120 and the body 140 of the robot 100 and the environment sensor 160. ..
- the processor 320 is composed of, for example, a central processing unit (CPU), an application specific integrated circuit (ASIC), an embedded processor, a microprocessor, a digital signal processor (DSP), or a combination thereof.
- the processor 320 may be composed of one or more processors.
- the processor 320 may be composed of one or more processors.
- the processor 320 of the control device 300 is configured to generate a UI (user interface) screen to be presented to the user and display it on the display 370.
- the UI screen (not shown) includes, for example, a selection button that hierarchically provides the user with a plurality of options.
- the processor 320 generates an image or a moving image of a virtual world (simulation space) based on an image or a moving image of the real world of the surrounding environment of the robot 100 taken by the environment sensor 160 of the robot 100, and displays it on the display 370.
- the processor 320 When the processor 320 generates an image or a moving image of a virtual world based on an image or a moving image of the real world, for example, by associating a coordinate system of the real world with a coordinate system of the virtual world, the processor 320 connects the real world and the virtual world. Build a correlation. Further, the image or moving image of the real world and the image or moving image of the virtual world (simulation space) may be displayed on the display 370 at the same time. Further, the UI screen may be superposed on the image or moving image of the surrounding environment of the robot 100 or the image or moving image of the virtual world.
- the virtual world (simulation space) image or moving image generated based on the real world image or moving image of the surrounding environment of the robot 100 also includes an object existing in the surrounding environment of the robot 100.
- the processor 320 By building a correlation between the real world and the virtual world as the processor 320 generates a virtual world image or video based on the real world image or video, the user in the virtual world, as described in detail below. It is possible to make a change in the real world based on the operation of, and to reflect the change in the real world in the virtual world.
- the processor 320 of the control device 300 obtains or generates a model corresponding to an object included in an image or a moving image in a virtual world (simulation space).
- a model corresponding to an object included in an image or a moving image in a virtual world (simulation space).
- the mode of "obtaining the ready-made information of the model” of 1) deals with the case where the model corresponding to the scanned object is available.
- the processor 320 of the control device 300 refers to the model of the object stored in the storage unit 340 or the model of the object existing on the network to which the control device 300 is connected to provide visual information. Get the model corresponding to the object contained in it.
- the aspect of 2) "scanning an object to generate a model” can be dealt with when a model corresponding to the scanned object is not available.
- the user uses the input device 350 to combine various primitive shape elements in the UI screen to generate a model corresponding to the scanned object.
- Primitive shape elements include, for example, elements such as prisms of arbitrary angle, pyramids of arbitrary angle, cylinders, cones, and spheres.
- the processor 320 may allow the user to draw an arbitrary shape in the UI screen and add it as a primitive shape element.
- the user selects these various shape elements in the UI screen, changes the dimensions of each part of the selected shape elements as appropriate, and combines those elements according to the image of the scanned object to correspond to the scanned object. You can generate a model to do. When generating a model using these elements, it is also possible to represent dents and holes of objects.
- the user combines various primitive shape elements in the UI screen to generate a model of an arbitrary object without scanning the object. It is possible to deal with the case.
- the user's operation for generating the model in this aspect is the same as the operation described in the above aspect 2).
- the model can be used as the corresponding object in the virtual world. It becomes possible to associate.
- the processor 320 reproduces the model corresponding to the object by, for example, computer graphics, and displays it in the virtual world on the display 370.
- the data of the model obtained from the outside or the model generated as described above is stored in the storage unit 340 of the control device 300.
- the storage unit 340 is interactively performed by the user on the UI screen via a program for causing the processor 320 to execute the operation described in the present embodiment, a computer program that interacts with the control unit 200, and an input device 350. It stores a computer program that performs processing based on input, a computer program that controls the transmission / reception unit 260, a computer program that displays the display 370, and the like.
- the storage unit 340 stores software or a program that causes the computer to perform an operation described later to generate a function as the control device 300.
- the storage unit 340 stores a computer program that can be executed by the processor 320, including instructions that implement the methods described below with reference to FIG. 4 and the like.
- the storage unit 340 includes an image or moving image of the surrounding environment of the robot 100 taken by the environment sensor 160 of the robot 100 and sent to the control device 300 via the control unit 200, and an image or moving image of the surrounding environment of the robot 100. It is possible to at least temporarily store an image or moving image of a virtual world (simulation space) generated by the processor 320 based on the moving image.
- the storage unit 340 of the control device 300 is also preferably composed of a non-volatile storage medium that retains the storage state even when the power of the control device 300 is turned off. For example, a hard disk drive (HDD) or a solid-state storage device.
- the storage unit 340 may further include volatile storage such as a static random access memory (SRAM), but each computer program described above is a non-volatile (non-temporary) storage medium of the storage unit 340. Is remembered in.
- SRAM static random access memory
- the storage unit 340 also functions as a database of the system 1, and as described in relation to the concept of the present invention, the operation data of the robot 100 in the real world (the operation generated by the control unit 200) operated based on the control signal. (Including commands) and the ambient environment data indicating the operation result detected by the environment sensor 160 is stored.
- the input device 350 for example, a keyboard, a mouse, a joystick, or the like can be used, and further, a device called a tracker that can track the position and posture using infrared rays or the like and has a trigger button or the like is used. You can also.
- the display 370 includes a touch panel type display device, the touch panel can be used as an input device.
- the display 370 is a head-mounted display used as a display device for VR (virtual reality), AR (augmented reality), MR (mixed reality), etc., and has a user's line-of-sight tracking function
- the line-of-sight tracking function can be used as an input device.
- a device having a line-of-sight tracking function but not a display can use the line-of-sight tracking function as an input device.
- a voice input device can also be used as an input device.
- the input device 350 exemplified as an example of the input device 350, and the means that can be used for the input device 350 is not limited to these. Further, the above-mentioned means may be arbitrarily combined and used as the input device 350.
- the user can select, for example, select a selection button, input characters, or take a picture of the robot by the environment sensor 160 of the robot 100 on the UI screen displayed on the display 370.
- the transmission / reception unit 360 transmits / receives signals / information to / from the control unit 200.
- the control device 300 can be connected to the control unit 200 by a wired connection or a wireless connection, and therefore, transmission and reception of these signals / information can be performed by a wired or wireless connection.
- the communication protocol, frequency, and the like used for transmitting and receiving the signal and information can be appropriately selected according to the application and environment in which the system 1 is used.
- the transmission / reception unit 360 may be connected to a network such as the Internet.
- the display 370 is used as a display device such as a display monitor, a computer / tablet device (including a device equipped with a touch panel type display), VR (virtual reality) / AR (augmented reality), or MR (composite reality). Any form of display device such as a head-mounted display or a projector can be used.
- the head-mounted display when a head-mounted display is used as the display 370, the head-mounted display provides an image or a moving image in which the left and right eyes of the user have parallax, thereby causing the user to perceive a three-dimensional image or moving image. Can be done. Further, when the head-mounted display has a motion tracking function, it is possible to display an image or a moving image according to the position and direction of the head of the user wearing the head-mounted display. Furthermore, when the head-mounted display has a user's line-of-sight tracking function as described above, the line-of-sight tracking function can be used as an input device.
- the processor 320 of the control device 300 is an image of a virtual world (simulation space) based on a real space image or a moving image of the surrounding environment of the robot 100 taken by the environment sensor 160 of the robot 100.
- a head-mounted display that generates a moving image and is used as a display device for VR (virtual reality), AR (augmented reality), MR (mixed reality), etc. is used as the display 370, and infrared rays or the like is used as the input device 350.
- VR virtual reality
- AR augmented reality
- MR mixed reality
- FIG. 3 is a flowchart illustrating a method of specifying the position / posture of the object in the present embodiment.
- 4 and 5 are diagrams showing objects in the virtual world and corresponding models.
- the ambient environment information of the robot 100 in the real world obtained by the environment sensor 160 of the robot 100 is transmitted to the control device 300 via the control unit 200.
- the visual information may be a single still image, a plurality of images, or a moving image, and preferably includes depth information.
- the control device 300 may store the transmitted visual information in the storage unit 340.
- the processor 320 of the control device 300 generates a virtual world (simulation space) that reproduces the surrounding environment of the robot 100 based on the visual information of the control device 300. It is displayed on the display 370.
- a virtual world in addition to the scenery around the robot 100 in the real world, objects in the real space existing at least in an area accessible to the robot 100 are displayed.
- the object may be a two-dimensional or three-dimensional image of a real-world object obtained by a visual sensor, a depth map, a point cloud, or the like. Alternatively, it may be represented by computer graphics that represent the object.
- bolts FIG. 4 (a)
- nuts FIG. 5 (a)
- the user uses the input device 350 of the control device 300 to select a model corresponding to the target object for which the position / posture is specified from the menu on the screen displayed on the display 370.
- the processor 320 of the control device 300 reads the data of the model from the storage unit 340 and displays the model in the virtual world displayed on the display 370 (step S315 in FIG. 3).
- the bolt model 40 (FIG. 4 (b))
- the nut model 50 (FIG. 5 (b)) are displayed in the virtual world.
- the model can be obtained or obtained by three modes: 1) obtaining information on a ready-made model, 2) scanning an object to generate a model, and 3) creating a model of the object independently. Will be generated.
- step S320 of FIG. 3 the user superimposes the model generated as described above on the corresponding object in the virtual world.
- the user uses the input device 350 to select the model 40 shown in FIG. 4B on the screen displayed on the display 370 and move the model 40 within the screen.
- the objects (FIG. 4 (a)) shown in the same screen are overlapped so that their positions and postures substantially match.
- the processor 320 compares the three-dimensional shape data (for example, the edge and / or the feature point of the three-dimensional shape) of the object (FIG. 4A) with the three-dimensional shape data of the model 40, and the object (FIG. 4).
- the position and orientation of the model 40 are corrected so that the contour of the three-dimensional shape of (a)) and the contour of the three-dimensional shape of the model 40 match.
- the object displayed in the virtual world (FIG. 4A) is not a mere object occupying a certain volume space, but an object (bolt) corresponding to the model 40 selected by the user.
- the method for comparing the object and the model is not limited to the above, and any other method can be used.
- the processor 320 of the control device 300 recognizes that the object (FIG. 4A) is the object corresponding to the model 40, and sets the virtual object corresponding to the object specified as described above, for example. It is reproduced by computer graphics and displayed so as to be superimposed on the object on the display 370.
- the virtual object may be reproduced using, for example, an image of a model (computer graphics).
- the user can use the input device 350 to perform operations such as moving the virtual object in the virtual world displayed on the display 370.
- the virtual object can be moved by the user using the input device 350 in the virtual world displayed on the display 370.
- the virtual object when using a tracker as an input device 350, by pointing a virtual object on the tracker and then pressing the trigger button, the virtual object will be adjusted to the movement of the tracker in the virtual world while the trigger button is pressed. Can be moved freely. Then, by releasing the trigger button after moving the virtual object to a desired position / posture in the virtual world, the movement operation of the virtual object can be completed.
- the user can also operate two virtual objects at the same time in the virtual world by operating the two trackers with both hands at the same time.
- the hand 122 of the robot 100 into an object and display it as a virtual hand, and operate the virtual hand with the tracker to move the virtual object.
- the virtual hand is moved.
- the virtual object to be moved is moved with the virtual hand. Allows you to move while grasping.
- the virtual object can be moved while the virtual object is grasped by the virtual hand.
- the trigger button after moving the virtual object to a desired position / posture in the virtual world, the movement operation of the virtual hand and the virtual object can be completed.
- the operation of virtual objects and virtual hands in the virtual world using the input device 350 as described above, and the display thereof on the display 370 are controlled by the processor 320.
- the processor 320 of the control device 300 generates a control signal for moving a real object corresponding to the virtual object to the hand 122 of the robot 100 in the real world in response to the operation of the virtual hand as described above.
- the control signal is transmitted from the control device 300 to the control unit 200.
- the control unit 200 that has received the control signal performs motion planning of the robot 100 based on the received control signal and the surrounding environment information detected by the environment sensor 160 of the robot 100, and generates an operation command to be executed by the robot 100. Then, the robot 100 is operated based on the operation command.
- the position of the object in the virtual world by superimposing the model corresponding to the object on the object in the virtual world corresponding to the object in the real world. And the posture is specified.
- the user specifies the target object in the virtual world. Therefore, the calculation cost can be suppressed as compared with the case where the target object and its position / orientation are specified by image processing.
- the present embodiment even if the object displayed in the virtual world is somewhat unclear, the user recognizes the object based on his / her own perception, selects the corresponding model, and selects the corresponding model.
- the model can be superimposed on the object to identify the position and orientation of the object. If the model corresponding to the object is selected, the processor 320 of the control device 300 uniquely identifies the position and orientation of the object by comparing the information such as the contour, feature point, and edge of the object and the model.
- the control device 300 can specify the position and orientation of the object in the real world.
- FIGS. 6 and 7 as another example of specifying the position / orientation of the object, an example of specifying the position / orientation of the assembly block will be shown.
- FIG. 6A shows a state in which a plurality of assembly blocks are placed on a table in the real world.
- the surrounding environment including these multiple assembly blocks is imaged using a depth camera DC (eg, Intel RealSense TM depth camera) whose back is visible at the bottom of FIG. 6 (a). Will be done.
- the depth camera DC corresponds to the environment sensor 160 of the robot 100 of the present embodiment described with reference to FIGS. 1 and 2.
- FIG. 6B shows a virtual world generated based on the image data captured by the depth camera.
- a plurality of blocks corresponding to each assembly block in the real world of FIG. 6 (a) are displayed in the virtual world of FIG. 6 (b).
- This virtual world is generated in the control device 300 as described above. At this stage, those blocks are recognized by the control device 300 as merely objects occupying a certain volume space, and the positions and orientations of the blocks have not yet been specified.
- some blocks are displayed as if some of the blocks were missing. This is because when the block is imaged by the depth camera DC arranged at the fixed position, sufficient image information on the depth side cannot be obtained. If a part of the object is missing in this way, it is difficult to correctly recognize the position and orientation of the object even with image processing technology using machine learning or AI.
- the object and its position / posture can be recognized by incorporating the human cognitive ability.
- FIG. 6B also displays a screen showing the types and numbers of blocks displayed in the virtual world and how to combine them.
- FIG. 7 shows an operation of superimposing a model on a block in a virtual world to specify the position and orientation of the block.
- FIG. 7A shows a state in which the model 70 corresponding to the block blc is moved toward the block blc.
- the user uses the input device 350 to select the model 70 in the virtual world displayed on the display 370.
- the model 70 can be freely moved in the virtual world according to the movement of the tracker while the trigger button is pressed. be able to.
- the movement operation of the model 70 can be completed.
- FIG. 7B shows a state in which the model 70 is superposed on the block blc so that the positions and postures substantially match. In this state, the user releases the trigger button of the tracker to end the movement operation of the model 70.
- the processor 320 of the control device compares the three-dimensional shape data of the block blc (for example, an edge and / or the feature point) with the three-dimensional shape data of the model 70, and outlines the three-dimensional shape of the block blc.
- the position / orientation of the model 70 is corrected so that the contour of the three-dimensional shape of the model 70 matches the contour of the model 70.
- the contour of the three-dimensional shape of the block blc and the contour of the three-dimensional shape of the model 70 match.
- the controller 320 of the control device highlights this matched three-dimensional shape contour (FIG. 7 (c)).
- the position and orientation of the block blc in the virtual world are specified.
- the processor 320 of the control device identifies the position and orientation of the real block corresponding to the block blc in the virtual world in the real world based on the correlation between the coordinate system of the virtual world and the coordinate system of the real world. be able to.
- the system 1 recognizes the position and orientation of the block in the real world, and the robot 100 can perform a desired operation on the block.
- FIG. 8 is a diagram showing a robot (unmanned submersible) used in this example and a pipe to be worked underwater.
- the robot 100 used in this example has the form of an unmanned submersible, and includes a robot arm 120 having a robot hand 122 at its tip and a housing 140 in which the robot arm 120 is installed. have.
- the robot 100 moves in the horizontal direction (X-axis direction), the front-back direction (Y-axis direction), and the vertical direction (Z-axis direction) in water, and rotates around each XYZ axis.
- the housing 140 is provided with an environment sensor and a transmission / reception unit described with reference to FIG. 2 and the like.
- the housing 140 is provided with at least a visual sensor as an environment sensor, whereby visual information on the surrounding environment of the robot 100 (particularly, the environment including the robot arm 120 and the hand 122 in front of the robot 100) can be acquired. It is possible. Since other configurations of the robot (unmanned submersible) 100 used in this example are the same as those described above with reference to FIG. 2, detailed description thereof will be omitted here.
- the system configuration and control method used in this example are the same as those described above. In this example, the characteristic points regarding the task of grasping the underwater pipe with the robot hand at the tip of the robot arm of the robot in the form of an unmanned submersible will be described.
- FIG. 8 shows a virtual world generated based on the environmental information acquired by the environmental sensor of the robot (unmanned submersible) 100.
- the shape and function of each part of the robot (unmanned submersible) 100 is modeled and pre-stored in at least the storage unit 340 of the control device 300, and is therefore known in the system 1. Therefore, the modeled robot (unmanned submersible) 100 is displayed in the virtual world.
- the pipe 60 in the virtual world is displayed in a state of being reproduced based on the environmental information acquired by the environmental sensor of the robot (unmanned submersible) 100.
- the pipe 60 Since the pipe 60 is photographed only from a specific direction by the environment sensor of the unmanned submersible 100, it is reproduced in a shape that can be recognized from the photographed direction, and the portion on the opposite side is not reproduced. In FIG. 8, the shape of the left side portion of the pipe 60 in the drawing is reproduced, but the right side portion of the pipe 60 in the drawing is displayed in a missing state.
- FIG. 9 is a diagram showing how the position / orientation of the pipe shown in FIG. 8 is specified in the virtual world.
- FIG. 9 shows a virtual world generated by the controller 300 according to steps S305 and S310 shown in FIG.
- the user creates a model corresponding to the object according to the above-mentioned "2) Scanning the object to generate a model" for the pipe 60 displayed in the virtual world on the display 370.
- the scanned object, the pipe 60 is displayed on the display 370 as shown in FIG. 9A.
- the user generates a cylindrical model using the tracker 350 (the corresponding virtual tracker 350_vr is displayed in FIG. 9) in the UI screen displayed on the display 370 (in FIG. 9).
- FIG. 9 (b) move this so that it overlaps the pipe 60 in the virtual world displayed on the display 370 (FIG. 9 (c)), and adjust the diameter and length (FIG. 9 (b)).
- the display of the model corresponding to the pipe 60 which is an object step S315 in FIG. 3) and the superposition of the model on the object (step S320 in FIG. 3) are performed.
- the processor 320 compares the three-dimensional shape data of the pipe 60, which is an object (for example, the edge and / or the feature point of the three-dimensional shape) with the three-dimensional shape data of the model, and determines the three-dimensional shape of the pipe 60. Correct the position and orientation of the model so that the contour matches the contour of the three-dimensional shape of the model.
- the pipe 60 displayed in the virtual world is not a mere object occupying a certain volume space, but an object (pipe 60) corresponding to the model selected by the user, and the pipe 60 is virtual. It is specified in the control device 300 that the model exists in the corrected position and orientation in the world (step S325 in FIG. 3).
- the pipe 60 whose position and orientation are specified in this way is displayed in the virtual world as a virtual pipe 60_vr by, for example, a computer graphics representation representing a model. Thereby, for example, it is possible to instruct the operation of grasping the virtual object (virtual pipe 60_vr) of the pipe 60 with the robot hand 122 of the robot (unmanned submersible) 100.
- FIG. 10 is a diagram showing a mug 80 placed on a table.
- the mug 80 has a handle 82 and a main body 84.
- the handle 82 of the mug 80 can be gripped by the hand 122 provided on the arm 120 of the robot 100 described with reference to FIGS. 1 and 2.
- the hand 122 grips the handle 82
- the robot arm 120 For example, the mug 80 can be moved on the table.
- FIG. 11 is a diagram showing how the position / orientation of the mug 80 on the table shown in FIG. 10 is specified in the virtual world.
- FIG. 11 shows a virtual world created by controller 300 according to steps S305 and S310 shown in FIG.
- the user creates a model corresponding to the object according to the above-mentioned "2) Scanning the object to generate a model" for the mug 80 displayed in the virtual world on the display 370. , Characterize the position / orientation of the object using the model.
- the scanned object is displayed on the display 370 as shown in FIG. 11A.
- the user generates a cylindrical model using the tracker 350 (the corresponding virtual tracker 350_vr is displayed in FIG. 11) in the UI screen displayed on the display 370.
- This is moved so as to be superimposed on the main body 84 of the mug 80 in the virtual world displayed on the display 370 (FIG. 11 (a)), and the diameter and length are adjusted (FIG. 11 (b)).
- the display of the model corresponding to the main body 84 of the mug 80 which is an object (step S315 in FIG. 3), and the superposition of the model on the object (step S320 in FIG. 3) are performed.
- the processor 320 compares the three-dimensional shape data of the main body 84, which is an object (for example, the edge and / or the feature point of the three-dimensional shape) with the three-dimensional shape data of the model, and determines the three-dimensional shape of the main body 84. Correct the position and orientation of the model so that the contour matches the contour of the three-dimensional shape of the model.
- the main body 84 displayed in the virtual world is not a mere object occupying a certain volume space, but an object (main body 84) corresponding to the model selected by the user, and further, the main body 84 is virtual. It is specified in the control device 300 that the model exists in the corrected position and orientation in the world (step S325 in FIG. 3).
- the tracker 350 (virtual tracker 350_vr shown in FIG. 11) is used to generate a rectangular parallelepiped model corresponding to the handle 82 of the mug 80, which is displayed on the display 370. It is moved so as to be overlapped with the handle 82 of the mug 80 in the virtual world, and the height, width, and depth dimensions are adjusted (FIG. 11 (d)). In this way, the display of the model corresponding to the handle 82 of the mug 80 which is the object (step S315 in FIG. 3) and the superposition of the model on the object (step S320 in FIG. 3) are performed.
- the processor 320 compares the three-dimensional shape data of the handle 82, which is an object (for example, the edge and / or the feature point of the three-dimensional shape) with the three-dimensional shape data of the model, and determines the three-dimensional shape of the handle 82. Correct the position and orientation of the model so that the contour matches the contour of the three-dimensional shape of the model.
- the handle 82 displayed in the virtual world is not a mere object that occupies a certain volume space, but an object (handle 82) corresponding to the model selected by the user, and the handle 82 is virtual. It is specified in the control device 300 that the model exists in the corrected position and orientation in the world (step S325 in FIG. 3).
- the user performs an input operation on the UI screen displayed on the display 370 to the effect that the handle 82 of the mug 80 and the main body 84 are integrated by using the tracker 350.
- the processor 320 of the control device 300 recognizes that the handle 82 and the main body 84 are integrated at the specified positions and postures.
- the mug 80 whose position and posture are specified in this way is displayed in the virtual world as a virtual mug by, for example, a computer graphics representation representing a model of the handle 82 and the main body 84.
- a virtual mug by, for example, a computer graphics representation representing a model of the handle 82 and the main body 84.
- FIG. 12A an operation of grasping and moving the virtual object of the mug 80 with the robot hand 122 of the robot 100 in the virtual world is instructed in the virtual world (FIG. 12A), and the mug 80 in the real world is displayed. It can be gripped and moved by the robot hand 122 of the robot 100 in the real world (FIG. 12 (b)).
- the robot 100 having an arm having a hand is illustrated as the form of the robot, but the form of the robot controlled by the present invention is not limited to this, and for example, the form of the robot is a vehicle, a ship, or the like. It may be a submersible, a drone, a construction machine (excavator, bulldozer, excavator, crane, etc.) or the like.
- the environment and applications in which robots that can be operated using the system of this embodiment are used include space development, mining, mining, resource extraction, agriculture, forestry, and water.
- the objects operated by the robot of the present embodiment vary depending on the environment and application in which the robot is used. As an example, when a shovel car is used as a robot, excavated soil, sand, etc. are also objects.
- Robot control system 100 Robot 200 Control unit 300 Control device
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Graphics (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Manipulator (AREA)
Abstract
本発明の一実施形態によれば、オブジェクトの位置及び姿勢を特定する方法が開示される。本方法は、現実世界のオブジェクトの表示を含む仮想世界を生成することと(S310)、仮想世界において、オブジェクトに対応するモデルを表示することと(S315)、仮想世界において、モデルをオブジェクトに重ね合わせることと(S320)、オブジェクトとモデルとを比較して、オブジェクトの位置及び姿勢を特定することと(S325)を含む。
Description
本発明は、オブジェクトの位置及び姿勢を特定する方法及び装置に関する。
ロボットがオブジェクトを操作するためには、そのオブジェクトの位置及び姿勢を認識する必要がある。オブジェクトの位置・姿勢を認識する技術として、オブジェクトの特徴点を抽出し、それらの特徴点をモデルと照合する技術が知られている。
特許文献1には、撮像した画像内においてオブジェクトが存在する範囲を画像特徴から確率的に求めた後に、モデルとの詳細な照合を行うことでオブジェクトの位置・姿勢を推定する画像特徴抽出装置が開示されている。
さらに、特許文献2には、作業環境内に存在する物体との距離を計測してレンジデータを生成する距離センサと、生成したレンジデータを形状データと照合することによって、物体の形状と位置姿勢を推定する初期照合部と、物体を撮像した画像データを生成するカメラ部と、画像データの特徴を抽出する特徴抽出部と、初期照合部により推定した物体の形状と位置姿勢を初期値として、特徴抽出部で抽出した画像データの特徴と、物体の形状と位置姿勢との誤差を評価関数とした最小化問題を解くことで、物体の位置姿勢を推定する姿勢推定部とを備えるロボット装置が開示されている。
また、非特許文献1には、PnP問題(ワールド座標系におけるn点の3次元座標とそれらの点が観測された画像座標から、校正済カメラの位置姿勢を推定する問題)をより少ない演算量で解く手法を提案している。
V. Lepetit、他2名、「EPnP: Accurate Non-Iterative O(n) Solution to the PnP Problem」、International Journal of Computer Vision February 2009、2009年2月
オブジェクトの特徴点をモデルと照合することでオブジェクトの位置・姿勢を認識する技術では、前提として、撮像した画像内に存在する対象オブジェクトを特定する必要がある。
特許文献1では、撮像した画像内においてオブジェクトが存在する範囲を画像特徴から確率的に求めている。特許文献1の手法では、画像全体に対して存在確率を計算する必要があるため、高い計算コストを要する。
特許文献2では、作業環境内に存在する物体との距離を計測して生成したレンジデータを形状データと照合することによって推定した物体の形状と位置姿勢を初期値として用いて、オブジェクトの位置姿勢を推定している。特許文献2の手法は、物体との距離を計測してレンジデータを生成することを前提としているため、測距手段が無い、あるいは距離情報を得られない条件の下では用いることができない。
また、非特許文献1に提案された手法によっても、オブジェクトの位置姿勢を正確に推定することは困難である。
そもそも、撮像した画像内でオブジェクトを画像認識する手法では、撮像した画像の品質の程度が低い場合にはオブジェクトの特徴点を正しく抽出できない可能性がある。その場合には、オブジェクトとモデルとの照合の精度が低下し、オブジェクトの位置・姿勢を正しく認識することができない。
上記技術に加え、対象オブジェクトの位置・姿勢の認識に機械学習や人工知能(AI)を用いることも可能である。しかし、学習には多くの計算コストがかかる上に、必ずしも正しい結果が得られるとは限らない。
また、オブジェクトにARマーカを付してオブジェクトの位置・姿勢を認識する手法が知られている。しかし、現実世界の周囲環境中に存在するすべてのオブジェクトにARマーカを付すことは現実的ではない。さらに、オブジェクトを撮像するカメラの死角にARマーカが位置する場合には、オブジェクトの位置・姿勢を認識することができない。
本発明の一態様によれば、オブジェクトの位置及び姿勢を特定する方法であって、現実世界のオブジェクトの表示を含む仮想世界を生成することと、仮想世界において、オブジェクトに対応するモデルを表示することと、仮想世界において、モデルをオブジェクトに重ね合わせることと、オブジェクトとモデルとを比較して、オブジェクトの位置及び姿勢を特定することと、を含む方法が提供される。
本発明の他の態様によれば、オブジェクトの位置及び姿勢を特定する装置であって、現実世界のオブジェクトの表示を含む仮想世界を生成することと、仮想世界において、オブジェクトに対応するモデルを表示することと、仮想世界において、モデルをオブジェクトに重ね合わせることと、オブジェクトとモデルとを比較して、オブジェクトの位置及び姿勢を特定することと、を実行するように構成されたプロセッサを備えた装置が提供される。
本発明の他の特徴事項および利点は、例示的且つ非網羅的に与えられている以下の説明及び添付図面から理解することができる。
以下、本発明の実施の形態を図面を参照して説明する。
図1は、ロボット制御システムの一実施形態を示すブロック図である。図2は、ロボットの一実施形態の概略構成を示す図である。
図1は、ロボット制御システムの一実施形態を示すブロック図である。図2は、ロボットの一実施形態の概略構成を示す図である。
図1に示すように、本実施形態に係るロボット制御システム1は、ロボット100と、ロボット100を制御する制御ユニット200と、制御ユニット200の制御を司る制御装置300とを備えている。
最初に、本実施形態のロボット制御システム1におけるロボット100について説明する。
図1及び図2に示すように、本実施形態に開示するロボット100は、一例として、少なくとも2つのロボットアーム120と、それらのロボットアーム120を支持するロボット筐体140と、ロボット100の周囲環境をセンシングする環境センサ160と、送受信ユニット180とを備えている。
本実施形態における各々のロボットアーム120は、例えば6軸の多関節アーム(以下、「アーム」とも称する。)であり、先端にはエンドエフェクタであるロボットハンド(以下、「ハンド」とも称する。)122を有している。ロボットアーム120は各回転軸にサーボモータを有するアクチュエータ(不図示)を備えている。各サーボモータは制御ユニット200に接続されており、制御ユニット200から送られる制御信号に基づいて動作制御されるように構成されている。本実施形態では、アーム120として6軸の多関節アームを用いているが、アームの軸数(関節数)はロボット100の用途やそれに求められる機能等に応じて適宜定めることができる。また、本実施形態ではエンドエフェクタとして2本指のハンド122を用いているが、これに限らず、例えば、3本あるいはそれ以上の指を備えたロボットハンド、磁力あるいは負圧による吸着手段を備えたロボットハンド、ゴム膜内に充填された粉粒体のジャミング(詰まり)現象を応用した把持手段を備えたロボットハンド、その他任意の手段により把持対象物のグリップとリリースを繰り返し行うことができるものを用いることができる。各ハンド122a,122bは、その手首部分を中心として回転可能に構成されていることが好ましい。
ハンド122には、ハンド122の変位量、ハンド122に作用する力・加速度・振動等を検出する動力学センサが備えられている。さらに、ハンド122は、ハンド122による把持力や触覚を検出する触覚センサを備えていることが好ましい。
ロボット筐体140は、例えば、載置台(不図示)の上に固定した状態で設置してもよく、あるいは、載置台の上に回転駆動装置(不図示)を介して旋回可能に設置してもよい。ロボット筐体140を載置台の上に旋回可能に設置した場合には、ロボット100の作業範囲をロボット100の正面の領域だけでなく、ロボット100の周囲の範囲に広げることができる。さらには、ロボット筐体140は、ロボット100の用途や使用環境に応じて、複数の車輪や無限軌道等を備えた車両、船舶、潜水機、ヘリコプターやドローン等の飛行体、その他の移動体に載置されていてもよく、あるいは、ロボット筐体140がそのような移動体の一部として構成されていてもよい。さらには、ロボット筐体140は歩行手段として2足またはそれ以上の足を有していてもよい。ロボット筐体140がそのような移動手段を有することにより、ロボット100の作業範囲をより広範囲とすることができる。ロボット100の用途によっては、ロボットアーム120はロボット筐体140を介さずに載置台等に直接固定されていてもよい。
環境センサ160は、ロボット100の周囲環境をセンシングする。周囲環境には例えば、電磁波(可視光線、非可視光線、X線、ガンマ線等を含む)、音、温度、湿度、風速、大気組成等が含まれ、したがって環境センサ160は、視覚センサ、X線・ガンマ線センサ、聴覚センサ、温度センサ、湿度センサ、風速センサ、大気分析装置等を含み得るが、これらに限定されない。なお、図では環境センサ160がロボット100と一体であるように示されているが、環境センサ160はロボット100とは一体でなくてもよい。例えば、環境センサ160はロボット100から離れた位置に設置されていたり、車両やドローン等の移動体に設置されていてもよい。また、環境センサ160は、GPS(Grobal Positioning System)センサ、高度センサ、ジャイロセンサ等を備えていることが好ましい。さらに、環境センサ160は、ロボット100の屋外または屋内における位置検出のため、位置検出手段として、上記GPSセンサの他、WiFi測位、ビーコン測位、自立航法測位、地磁気測位、音波測位、UWB(Ultra Wide Band:超広帯域無線)測位、可視光・非可視光測位等を行うための構成を備えていることが好ましい。
特に視覚センサとしては、例えば、2Dカメラ及び深度センサ、3Dカメラ、RGB-Dセンサ、3D-LiDARセンサ、Kinect(商標)センサなどを用いることができる。環境センサ160で得られた視覚情報は制御ユニット200へ送られ、制御ユニット200において処理される。環境センサ160で得られるその他の環境情報も制御ユニット200へ送信し、ロボット100の周囲環境の解析に用いることができる。
送受信ユニット180は、制御ユニット200との間での信号・情報の送受信を行う。送受信ユニット180は、制御ユニット200と有線接続または無線接続によって接続することが可能であり、したがってそれらの信号・情報の送受信は有線または無線によって行うことができる。それらの信号・情報の送受信に用いられる通信プロトコル及び周波数等は、ロボット100が用いられる用途や環境等に応じて適宜選択しうる。さらに、送受信ユニット180はインターネット等のネットワークに接続されていてもよい。
次に、本実施形態のロボット制御システム1における制御ユニット200について説明する。
再び図1を参照すると、本実施形態に係るシステム1の制御ユニット200は、プロセッサ220、記憶ユニット240および送受信ユニット260を備えている。
プロセッサ220は主として、ロボット100のロボットアーム120及びボディ140の駆動部及びセンサ(共に不図示)の制御、環境センサ160の制御、環境センサ160から送信された情報の処理、制御装置300との相互作用、送受信ユニット260の制御を司る。プロセッサ220は、例えば、中央演算処理装置(CPU)、特定用途向け集積回路(ASIC)、組込みプロセッサ、マイクロプロセッサ、デジタル信号プロセッサ(DSP)、あるいはそれらの組み合わせで構成される。プロセッサ220は、1又は2以上のプロセッサで構成されていてもよい。
さらに、プロセッサ220は、例えば、制御装置300から送られたロボット100の制御信号と、それに応じて生成した動作命令と、実際に実行されたロボット100の動作と、動作実行後に環境センサ160で取集した周囲環境データとを記憶ユニット240にデータとして記憶させ、そのデータを用いて機械学習を実行して学習データを生成して記憶ユニット240に記憶させる。プロセッサ220は、次回以降に制御装置300から送信されたロボット100の制御信号に基づいてロボット100に実行させるべき動作をその学習データを参照して決定して動作命令を生成することが可能である。このように、本実施形態では現実世界にあるロボット100の制御ユニット200がローカルに機械学習機能を備えている。
記憶ユニット240は、本実施形態で説明するようにロボット100を制御するためのコンピュータ・プログラム、環境センサ160から送信された情報の処理を行うコンピュータ・プログラム、制御装置300との相互作用を行うコンピュータ・プログラム、送受信ユニット260を制御するコンピュータ・プログラム、機械学習を実行するプログラム等を記憶している。好ましくは、記憶ユニット240には、コンピュータに本実施形態で説明するような処理を行わせて制御ユニット200としての機能を生じさせるソフトウェアまたはプログラムが記憶されている。特に、記憶ユニット240には、図3等を参照して後述する方法を実施する命令を含む、プロセッサ220によって実行可能なコンピュータ・プログラムが記憶されている。
さらに、記憶ユニット240は、上述したような既知のオブジェクトのモデルのデータを記憶していることが好ましい。さらに、記憶ユニット240は、ロボット100のロボットアーム120の各部(サーボ(不図示)、ハンド122等)の状態、環境センサ160から送信された情報、制御装置300から送られた情報、制御信号等を少なくとも一時的に記憶する役割も有する。さらには、記憶ユニット240は、上述したように、ロボット100の動作指示とそれに応じて実行されたロボット100の動作、学習データを記憶する役割も有する。記憶ユニット240は、制御ユニット200の電源がオフされても記憶状態が保持される不揮発性の記憶媒体を備えていることが好ましく、例えば、ハードディスクドライブ(HDD)、固体記憶装置(SSD)、コンパクトディスク(CD)・ディジタル・バーサタイル・ディスク(DVD)・ブルーレイディスク(BD)等の光学ディスクストレージ、不揮発性ランダムアクセスメモリ(NVRAM)、EPROM(Rrasable Programmable Read Only Memory)、フラッシュメモリ等の不揮発性ストレージを備えている。なお、記憶ユニット240はスタティックランダムアクセスメモリ(SRAM)等の揮発性ストレージをさらに備えていてもよいが、上述した各コンピュータ・プログラムは記憶ユニット340のうち不揮発性の(非一時的な)記憶媒体に記憶される。
送受信ユニット260は、ロボット100との間での信号・情報の送受信と、制御装置300との間での信号・情報の送受信とを行う。制御ユニット200は、ロボット100と有線接続または無線接続によって接続することが可能であり、したがってそれらの信号・情報の送受信は有線または無線によって行うことができる。それらの信号・情報の送受信に用いられる通信プロトコル及び周波数等は、ロボット100が用いられる用途や環境等に応じて適宜選択しうる。送受信ユニット260はインターネット等のネットワークに接続されていてもよい。
さらに、送受信ユニット260は、制御装置300との間での信号・情報の送受信とを行う。制御ユニット200は、制御装置300と有線接続または無線接続によって接続することが可能であり、したがってそれらの信号・情報の送受信は有線または無線によって行うことができる。それらの信号・情報の送受信に用いられる通信プロトコル及び周波数等は、ロボット100が用いられる用途や環境等に応じて適宜選択しうる。
なお、図1では制御ユニット200がロボット100から独立したものとして示されているが、その形態に限られない。例えば、制御ユニット200はロボット100の筐体140内に設けられていてもよい。また、本システム1で用いるロボット100は1つに限られず、複数のロボット100を独立して、あるいは互いに協働させて動作させてもよい。この場合、単体の制御ユニット200で複数のロボット100を制御してもよく、あるいは、複数の制御ユニット200を協働させて複数のロボット100を制御してもよい。
続いて、本実施形態のロボット制御システム1における制御装置300について説明する。
図1に示すように、本実施形態に係るシステム1の制御装置300は、プロセッサ320、記憶ユニット340、入力デバイス350、送受信ユニット360、ディスプレイ370を備えている。
プロセッサ320は主として、制御ユニット200との相互作用、入力デバイス350を介してユーザによって行われる入力に基づく処理、送受信ユニット360の制御、ディスプレイ370の表示を司る。とりわけ、プロセッサ320は、入力デバイス350によって入力されたユーザ入力に基づいて制御信号を生成し、制御ユニット200に送信する。制御ユニット200のプロセッサ220は、その制御信号に基づき、ロボット100のロボットアーム120及びボディ140の各駆動部(不図示)や環境センサ160を動作させるための1つのあるいは複数の動作指令を生成する。プロセッサ320は、例えば、中央演算処理装置(CPU)、特定用途向け集積回路(ASIC)、組込みプロセッサ、マイクロプロセッサ、デジタル信号プロセッサ(DSP)、あるいはそれらの組み合わせで構成される。プロセッサ320は、1又は2以上のプロセッサで構成されていてもよい。プロセッサ320は、1又は2以上のプロセッサで構成されていてもよい。
さらに、制御装置300のプロセッサ320は、ユーザに提示するUI(ユーザ・インターフェース)画面を生成し、ディスプレイ370に表示するように構成されている。UI画面(不図示)は、例えば、複数の選択肢を階層的にユーザに提供する選択ボタンを含む。さらにプロセッサ320は、ロボット100の環境センサ160によって撮影されたロボット100の周囲環境の現実世界の画像または動画に基づいて仮想世界(シミュレーション空間)の画像または動画を生成し、ディスプレイ370に表示する。プロセッサ320は、現実世界の画像または動画に基づいて仮想世界の画像または動画を生成する際に、例えば現実世界の座標系と仮想世界の座標系とを対応付けることにより、現実世界と仮想世界との相関関係を構築する。さらに、現実世界の画像または動画と仮想世界(シミュレーション空間)の画像または動画とを同時にディスプレイ370に表示してもよい。さらには、UI画面をロボット100の周囲環境の画像または動画あるいは仮想世界の画像または動画に重ね合わせて表示してもよい。ロボット100の周囲環境の現実世界の画像または動画に基づいて生成される仮想世界(シミュレーション空間)の画像または動画には、ロボット100の周囲環境に存在するオブジェクトも含まれる。プロセッサ320が現実世界の画像または動画に基づいて仮想世界の画像または動画を生成する際に現実世界と仮想世界との相関関係を構築することで、以下に詳しく説明するように、仮想世界におけるユーザの操作に基づいて現実世界において変化を生じさせ、かつ、現実世界における変化を仮想世界において反映させることが可能となる。
さらに、制御装置300のプロセッサ320は、仮想世界(シミュレーション空間)の画像または動画に含まれるオブジェクトに対応するモデルを入手あるいは生成する。モデルの入手あるいは生成の方法としては、1)既成モデルの情報を入手する、2)オブジェクトをスキャンしてモデルを生成する、3)オブジェクトのモデルを独立して作成する、の3つの態様が考えられる。
1)の「モデルの既成情報を入手する」態様は、スキャンしたオブジェクトに対応するモデルが入手可能である場合に対処するものである。この態様では、制御装置300のプロセッサ320は、記憶ユニット340に記憶されているオブジェクトのモデル、あるいは、制御装置300が接続されているネットワーク上に存在するオブジェクトのモデルを参照することにより、視覚情報中に含まれるオブジェクトに対応するモデルを入手する。
また、2)の「オブジェクトをスキャンしてモデルを生成する」態様は、スキャンしたオブジェクトに対応するモデルが入手できない場合に対処可能である。この態様では、例えば、ユーザが入力デバイス350を用いてUI画面内で種々のプリミティブな形状要素を組み合わせて、スキャンしたオブジェクトに対応するモデルを生成する。プリミティブな形状要素としては、例えば、任意角の角柱、任意角の角錐、円柱、円錐、球体等の要素が含まれる。さらには、プロセッサ320は、ユーザがUI画面内で任意の形状を描画して、それをプリミティブな形状要素として追加できるようにされていてもよい。ユーザは、UI画面内でこれらの種々の形状要素を選択し、選択した形状要素の各部寸法を適宜変更し、スキャンしたオブジェクトの画像に合わせてそれらの要素を組み合わせることで、スキャンしたオブジェクトに対応するモデルを生成することができる。これらの要素を用いてモデルを生成する際には、オブジェクトの窪みや穴等を表現することも可能である。
また、3)の「オブジェクトのモデルを独立して作成する」態様は、オブジェクトをスキャンすることなく、ユーザがUI画面内で種々のプリミティブな形状要素を組み合わせて、任意のオブジェクトのモデルを生成する場合に対処可能である。この態様におけるモデルの生成のためのユーザの操作は、上記の2)の態様に説明した操作と同様である。予めモデルを作成してシステム1内に蓄積しておくことで、そのモデルに対応する現実のオブジェクトを現実世界で操作する必要が生じたときに、仮想世界の中でそのモデルを対応するオブジェクトと関連付けることが可能になる。
プロセッサ320は、オブジェクトに対応するモデルを例えばコンピュータ・グラフィックスで再現し、ディスプレイ370上の仮想世界内に表示する。外部から入手されたモデルあるいは上記のように生成されたモデルのデータは、制御装置300の記憶ユニット340に格納される。
記憶ユニット340は、プロセッサ320に本実施形態で説明する動作を実行させるためのプログラム、制御ユニット200との相互作用を行うコンピュータ・プログラム、入力デバイス350を介してUI画面においてユーザによってインタラクティブに行われる入力に基づく処理を行うコンピュータ・プログラム、送受信ユニット260の制御を行うコンピュータ・プログラム、ディスプレイ370の表示を行うコンピュータ・プログラム等を記憶している。好ましくは、記憶ユニット340には、コンピュータに後述する動作を行わせて制御装置300としての機能を生じさせるソフトウェアまたはプログラムが記憶されている。特に、記憶ユニット340には、図4等を参照して後述する方法を実施する命令を含む、プロセッサ320によって実行可能なコンピュータ・プログラムが記憶されている。
さらに、記憶ユニット340は、ロボット100の環境センサ160によって撮影され、制御ユニット200を介して制御装置300に送られたロボット100の周囲環境の画像または動画と、そのロボット100の周囲環境の画像または動画に基づいてプロセッサ320によって生成された仮想世界(シミュレーション空間)の画像または動画とを少なくとも一時的に記憶することが可能である。制御装置300の記憶ユニット340も、制御装置300の電源がオフされても記憶状態が保持される不揮発性の記憶媒体で構成されていることが好ましく、例えば、ハードディスクドライブ(HDD)、固体記憶装置(SSD)、コンパクトディスク(CD)・ディジタル・バーサタイル・ディスク(DVD)・ブルーレイディスク(BD)等の光学ディスクストレージ、不揮発性ランダムアクセスメモリ(NVRAM)、EPROM(Rrasable Programmable Read Only Memory)、フラッシュメモリ等の不揮発性ストレージを備えている。なお、記憶ユニット340はスタティックランダムアクセスメモリ(SRAM)等の揮発性ストレージをさらに備えていてもよいが、上述した各コンピュータ・プログラムは記憶ユニット340のうち不揮発性の(非一時的な)記憶媒体に記憶される。
さらに記憶ユニット340はシステム1のデータベースとしても機能し、本発明のコンセプトに関連して説明したように、制御信号に基づいて動作した現実世界におけるロボット100の動作データ(制御ユニット200が生成した動作指令を含む)と、環境センサ160で検出された動作結果を示す周囲環境データを記憶する。
入力デバイス350として、例えば、キーボード、マウス、ジョイスティックなどを用いることができ、さらには、赤外線等を用いて位置と姿勢をトラッキングすることが可能でトリガーボタンなどを備えたトラッカーと呼ばれるデバイスを用いることもできる。また、ディスプレイ370がタッチパネル式のディスプレイ・デバイスを備えている場合には、そのタッチパネルを入力デバイスとして用いることができる。さらには、ディスプレイ370がVR(仮想現実)・AR(拡張現実)あるいはMR(複合現実)等の表示デバイスとして用いられるヘッドマウントディスプレイであり、かつユーザの視線追跡機能を備えている場合には、その視線追跡機能を入力デバイスとして用いることができる。あるいは、視線追跡機能を備えているがディスプレイを備えていないデバイスであっても、その視線追跡機能を入力デバイスとして用いることができる。さらには、音声入力装置を入力デバイスとして用いることもできる。これらは入力デバイス350の例として例示したものであり、入力デバイス350に用いることができる手段はこれらに限られない。また、上述したような手段を任意に組み合わせて入力デバイス350として使用してもよい。上記のような入力デバイス350を用いることにより、ユーザはディスプレイ370に表示されたUI画面において、例えば、選択ボタンを選択したり、文字を入力したり、ロボット100の環境センサ160によって撮影されたロボット100の周囲環境の画像または動画中に含まれるオブジェクト、あるいは、ロボット100の環境センサ160によって撮影されたロボット100の周囲環境の画像または動画に基づいて生成された仮想世界(シミュレーション空間)の画像または動画中に含まれる仮想オブジェクトを選択したりすることができる。
送受信ユニット360は、制御ユニット200との間での信号・情報の送受信を行う。上述したように、制御装置300は制御ユニット200と有線接続または無線接続によって接続することが可能であり、したがってそれらの信号・情報の送受信は有線または無線によって行うことができる。その信号・情報の送受信に用いられる通信プロトコル及び周波数等は、システム1が用いられる用途や環境等に応じて適宜選択しうる。さらに、送受信ユニット360はインターネット等のネットワークに接続されていてもよい。
ディスプレイ370には、ディスプレイ・モニター、コンピュータ・タブレット装置(タッチパネル式のディスプレイを備えたものを含む)、VR(仮想現実)・AR(拡張現実)あるいはMR(複合現実)等の表示デバイスとして用いられるヘッドマウントディスプレイ、プロジェクター等の任意の形態の表示装置を用いることができる。
特に、ディスプレイ370としてヘッドマウントディスプレイが用いられる場合、ヘッドマウントディスプレイがユーザの左右の眼にそれぞれ視差を持たせた画像または動画を提供することで、ユーザに三次元の画像または動画を知覚させることができる。さらに、ヘッドマウントディスプレイがモーション・トラッキング機能を備えている場合は、ヘッドマウントディスプレイを装着しているユーザの頭の位置、方向に応じた画像または動画を表示させることができる。さらには、上述したようにヘッドマウントディスプレイがユーザの視線追跡機能を備えている場合には、その視線追跡機能を入力デバイスとして用いることができる。
本実施形態における以下の説明では、制御装置300のプロセッサ320が、ロボット100の環境センサ160によって撮影されたロボット100の周囲環境の実空間の画像または動画に基づいて仮想世界(シミュレーション空間)の画像または動画を生成し、ディスプレイ370として、VR(仮想現実)・AR(拡張現実)あるいはMR(複合現実)等の表示デバイスとして用いられるヘッドマウントディスプレイが用いられ、入力デバイス350として、赤外線等を用いて位置と姿勢をトラッキングすることが可能でトリガーボタンなどを備えたトラッカーが用いられる場合を例示的に説明する。
次に、図3~図5を参照し、オブジェクトの位置・姿勢を特定する一動作例として、ボルトとナットの位置・姿勢を特定するシナリオを例に挙げて説明する。
図3は、本実施形態におけるオブジェクトの位置・姿勢を特定する方法を説明するフローチャートである。図4及び図5は、仮想世界内のオブジェクトと、それに対応するモデルとを示す図である。
本例においては、最初に、図3のステップS305に示すように、ロボット100の環境センサ160で得られた、現実世界のロボット100の周囲環境情報を、制御ユニット200を介して制御装置300へ送信する。視覚情報は、単一の静止画、複数の画像、あるいは動画であってもよく、さらには深度情報を含むことが好ましい。制御装置300は、送信された視覚情報を記憶ユニット340に保存し得る。
次に、図3のステップS310に示すように、制御装置300のプロセッサ320が、その視覚情報に基づいて、ロボット100の周囲環境を再現した仮想世界(シミュレーション空間)を生成し、制御装置300のディスプレイ370に表示する。仮想世界では、現実世界におけるロボット100の周囲の風景に加え、少なくともロボット100がアクセス可能なエリアに存在する現実空間のオブジェクトが表示される。オブジェクトは、視覚センサによって得られた現実世界のオブジェクトの二次元あるいは三次元画像、深度マップあるいはポイントクラウド等による表現であってもよい。あるいは、オブジェクトを表すコンピュータ・グラフィックスによって表現されてもよい。本例では、ボルト(図4(a))及びナット(図5(a))がオブジェクトとして表示される。
続いて、ユーザは、制御装置300の入力デバイス350を用いて、ディスプレイ370に表示される画面内のメニューから、位置・姿勢の特定を行う対象のオブジェクトに対応するモデルを選択する。すると、制御装置300のプロセッサ320がそのモデルのデータを記憶ユニット340から読み出し、そのモデルをディスプレイ370に表示される仮想世界内に表示する(図3のステップS315)。本例では、ボルトのモデル40(図4(b))及びナットのモデル50(図5(b))が仮想世界内に表示される。
なおモデルは、上述したように、1)既成モデルの情報を入手する、2)オブジェクトをスキャンしてモデルを生成する、3)オブジェクトのモデルを独立して作成する、の3つの態様によって入手あるいは生成される。
続いて、図3のステップS320に示すように、ユーザは、仮想世界内において、上記のように生成したモデルを対応するオブジェクトに重ね合わせる。図4に示したボルトの例では、ユーザは、入力デバイス350を用いて、ディスプレイ370に表示される画面において、図4(b)に示すモデル40を選択し、画面内でそのモデル40を移動させて、同じ画面内に示されているオブジェクト(図4(a))と位置及び姿勢がおおよそ合致するように重ね合わせる。
すると、プロセッサ320は、オブジェクト(図4(a))の三次元形状データ(例えば三次元形状のエッジ及び/又は特徴点)と、モデル40の三次元形状データとを比較し、オブジェクト(図4(a))の三次元形状の輪郭とモデル40の三次元形状の輪郭とが一致するようにモデル40の位置・姿勢を補正する。これにより、仮想世界内に表示されているオブジェクト(図4(a))が、ある容積空間を占める単なる物体ではなく、ユーザによって選択されたモデル40に対応するオブジェクト(ボルト)であること、さらに、そのオブジェクトが仮想世界内にモデル40の上記補正後の位置及び姿勢で存在することが制御装置300において特定される(図3のステップS325)。なお、オブジェクトとモデルとの比較を行う手法は上記のものに限られず、他の任意の手法を用いることもできる。
このようにして、制御装置300のプロセッサ320は、オブジェクト(図4(a))がモデル40に対応するオブジェクトであることを認識し、上記のように特定されたオブジェクトに対応する仮想オブジェクトを例えばコンピュータ・グラフィックスで再現し、ディスプレイ370上の当該オブジェクトに重ね合わせるように表示する。仮想オブジェクトは、例えばモデルの画像(コンピュータ・グラフィックス)を用いて再現してもよい。ユーザは、入力デバイス350を用いて、ディスプレイ370に表示される仮想世界内において、その仮想オブジェクトの移動等の操作を行うことが可能である。
仮想オブジェクトは、ディスプレイ370上に表示された仮想世界においてユーザが入力デバイス350を用いて動かすことができる。例えば、入力デバイス350としてトラッカーを用いる場合、トラッカーで或る仮想オブジェクトをポインティングしてからトリガーボタンを押すことで、そのトリガーボタンを押している間は仮想世界内でその仮想オブジェクトをトラッカーの動きに合わせて自由に動かすことができる。そして、仮想オブジェクトを仮想世界内で所望の位置・姿勢に移動させた後にトリガーボタンをリリースすることで、仮想オブジェクトの移動操作を終了させることができる。ユーザは、2つのトラッカーを両手で同時に操作することで、仮想世界内で2つの仮想オブジェクトを同時に操作することもできる。
また、ディスプレイ370上の仮想世界において、ロボット100のハンド122をオブジェクト化して仮想ハンドとして表示し、トラッカーで仮想ハンドを操作して、仮想オブジェクトを動かすことが可能である。例えば、仮想ハンドをトラッカーでポインティングしてトリガーボタンを押すことで、その仮想ハンドを動かす。そして、仮想ハンドの爪又は指の部分を移動対象の仮想オブジェクトに位置合わせし、押しているトリガーボタンをリリースする、あるいは、他のトリガーボタンを押すことで、その移動対象の仮想オブジェクトを仮想ハンドで掴んだ状態で動かすことを可能にする。その後、例えばトリガーボタンを押しながら仮想ハンドをトラッカーで移動させることで、仮想ハンドで仮想オブジェクトを掴んだ状態でその仮想オブジェクトを移動させることができる。そして、仮想オブジェクトを仮想世界内で所望の位置・姿勢に移動させた後にトリガーボタンをリリースすることで、仮想ハンド及び仮想オブジェクトの移動操作を終了させることができる。
上記のような入力デバイス350を用いた仮想世界内での仮想オブジェクト及び仮想ハンドの操作、およびそのディスプレイ370上での表示は、プロセッサ320によって制御される。
さらに、制御装置300のプロセッサ320は、上記のような仮想ハンドの操作に応じて、現実世界においてロボット100のハンド122に仮想オブジェクトに対応する現実のオブジェクトを移動させる制御信号を生成する。制御信号は、制御装置300から制御ユニット200に送信される。制御信号を受信した制御ユニット200は、受信した制御信号と、ロボット100の環境センサ160で検出した周囲環境情報とに基づいてロボット100のモーション・プランニングを行い、ロボット100に実行させる動作命令を生成し、その動作命令に基づいてロボット100を動作させる。
上記に説明したように、本実施形態によれば、現実世界にあるオブジェクトに対応する仮想世界内のオブジェクトに対し、そのオブジェクトに対応するモデルを重ね合わせることで、仮想世界内におけるそのオブジェクトの位置及び姿勢が特定される。従来技術欄で説明したように、オブジェクトの特徴点をモデルと照合することでオブジェクトの位置・姿勢を認識する技術では、前提として、撮像した画像内に存在する対象オブジェクトを特定する必要がある。これに対し、本実施形態によれば、ユーザが仮想世界内で対象オブジェクトを特定する。したがって、画像処理により対象オブジェクトおよびその位置・姿勢を特定する場合に比べて計算コストを抑えることができる。
さらに、撮像した画像又は映像中の対象オブジェクトの画質が低くて不鮮明である、あるいは、対象オブジェクトの一部が欠けているような場合であっても、人であればその対象オブジェクトが何であるか、さらには、その対象オブジェクトがどのような姿勢にあるかを認識できる場合が多い。そのため、本実施形態によれば、仮想世界内に表示されているオブジェクトがいくらか不鮮明である場合でも、ユーザが自身の知覚に基づいてそのオブジェクトを認識して、それに対応するモデルを選択し、そのモデルをオブジェクトに重ね合わせてオブジェクトの位置及び姿勢を特定することができる。オブジェクトに対応するモデルが選択されていれば、制御装置300のプロセッサ320は、オブジェクトとモデルの輪郭、特徴点、エッジ等の情報を比較することで、オブジェクトの位置及び姿勢を一義的に特定することが可能である。この点、機械学習やAIを取り入れた画像認識技術であっても、認識対象のオブジェクトが不鮮明である場合にはその認識には限界があるため、本実施形態によれば人間の認知能力を取り入れてオブジェクト及びその位置・姿勢を認識することが可能であるという利点がある。例えば、機械学習やAIを取り入れた画像認識技術を用いて認識対象のオブジェクトの位置・姿勢の認識を行った結果、位置・姿勢の認識が失敗したような場合に、本実施形態によれば人が介入してオブジェクトの位置・姿勢の認識結果を迅速に訂正することができる。
仮想世界は現実世界に基づいて制御装置300で生成されるので、制御装置300において仮想世界の座標系と現実世界の座標系との相関関係は既知である。そのため、制御装置300は、仮想世界内のオブジェクトの位置及び姿勢が特定されれば、現実世界内におけるオブジェクトの位置及び姿勢を特定することができる。
次に、図6及び図7を参照し、オブジェクトの位置・姿勢を特定する他の例として、組立てブロックの位置・姿勢を特定する例を示す。
次に、図6及び図7を参照し、オブジェクトの位置・姿勢を特定する他の例として、組立てブロックの位置・姿勢を特定する例を示す。
図6(a)は、現実世界においてテーブルの上に複数の組立てブロックが置かれた状態を示している。この例では、これらの複数の組立てブロックを含む周囲環境は、図6(a)の下側に背面が見えているデプスカメラDC(例えば、インテル社のRealSense(商標)デプスカメラ)を用いで撮像される。デプスカメラDCは、図1及び図2を参照して説明した本実施形態のロボット100の環境センサ160に相当する。
図6(b)は、デプスカメラによって撮像された画像データに基づいて生成された仮想世界を示している。図6(a)の現実世界内の各々の組立てブロックに対応する複数のブロックが、図6(b)中の仮想世界内に表示されている。この仮想世界は、上述したように制御装置300において生成される。なおこの段階では、それらのブロックは制御装置300においてはある容積空間を占める単なる物体としか認識されておらず、ブロックの位置及び姿勢はまだ特定されていない。
また、いくつかのブロックではブロックの一部が欠けたように表示されていることがわかる。これは、固定された位置に配置されたデプスカメラDCでブロックを撮像した場合に、その奥行き側の画像情報を十分に得られないことに起因する。このようにオブジェクトの一部が欠けていると、機械学習やAIを用いた画像処理技術であってもオブジェクトの位置・姿勢を正しく認識することは困難である。これに対し、本実施形態では人間の認知能力を取り入れてオブジェクト及びその位置・姿勢を認識できる。
なお図6(b)には、仮想世界内に表示されているブロックの種類及び数と、それらをどのように組み合わせるかを示す画面が併せて表示されている。
図7は、仮想世界内でブロックにモデルを重ね合わせてブロックの位置及び姿勢を特定する動作を示している。
図7(a)は、ブロックblcに対応するモデル70を、ブロックblcへ向けて移動させている様子を示している。これに先立ち、ユーザは入力デバイス350を用いて、ディスプレイ370に表示される仮想世界内においてモデル70を選択している。入力デバイス350としてトラッカーを用いる場合、トラッカーでモデル70をポインティングしてからトリガーボタンを押すことで、そのトリガーボタンを押している間は仮想世界内でそのモデル70をトラッカーの動きに合わせて自由に動かすことができる。そして、モデル70を仮想世界内で所望の位置・姿勢に移動させた後にトリガーボタンをリリースすることで、モデル70の移動操作を終了させることができる。
図7(b)は、モデル70を、ブロックblcへ位置及び姿勢がおおよそ合致するように重ね合わせた状態を示している。この状態で、ユーザはトラッカーのトリガーボタンをリリースすることで、モデル70の移動操作を終了する。
すると、制御装置のプロセッサ320は、一例として、ブロックblcの三次元形状データ(例えばエッジ及び/又は特徴点)と、モデル70の三次元形状データとを比較し、ブロックblcの三次元形状の輪郭とモデル70の三次元形状の輪郭とが一致するようにモデル70の位置・姿勢を補正する。モデル70の位置・姿勢が補正された後は、ブロックblcの三次元形状の輪郭とモデル70の三次元形状の輪郭とが一致する。制御装置のプロセッサ320は、この一致した三次元形状輪郭をハイライト表示する(図7(c))。
このようにして、仮想世界内におけるブロックblcの位置及び姿勢が特定される。さらに、制御装置のプロセッサ320は、仮想世界の座標系と現実世界の座標系との相関関係に基づいて、仮想世界内のブロックblcに対応する現実のブロックの現実世界における位置及び姿勢を特定することができる。これにより、システム1は現実世界のブロックの位置及び姿勢を認識し、そのブロックに対してロボット100により所望の動作を行うことが可能になる。
(他のオブジェクト)
ここで、本実施形態の方法により位置・姿勢の特定を行う他のオブジェクトの例を示す。
[第1の例]
ここで、本実施形態の方法により位置・姿勢の特定を行う他のオブジェクトの例を示す。
[第1の例]
図8は、本例において用いられるロボット(無人潜水機)と、水中作業対象のパイプとを示す図である。図8に示すように、本例において用いられるロボット100は無人潜水機の形態を有しており、先端にロボットハンド122を備えたロボットアーム120と、ロボットアーム120が設置された筐体140とを有している。筐体140には、ロボット100が水中で左右方向(X軸方向)、前後方向(Y軸方向)および上下方向(Z軸方向)へ移動し、また、XYZ各軸を中心として回転することを可能にする複数のスラスタ(不図示)が設けられている。それらのスラスタは、例えば、電気モータで回転するプロペラで構成されている。筐体140には、図には明示されていないが、図2等を参照して説明した環境センサ及び送受信ユニットが設けられている。特に、筐体140には環境センサとして少なくとも視覚センサが備えられており、これにより、ロボット100の周囲環境(特に、ロボット100の前方のロボットアーム120及びハンド122を含む環境)の視覚情報が取得可能である。本例において用いられるロボット(無人潜水機)100のその他の構成は図2を参照して上記に説明したものと同様であるので、ここでは詳しい説明は省略する。また、本例において用いられるシステム構成及び制御方法は上記において説明したものと同様である。本例では、無人潜水機の形態のロボットのロボットアームの先端のロボットハンドで水中のパイプを把持するタスクに関して特徴的な点についてフォーカスして説明する。
なお、図8はロボット(無人潜水機)100の環境センサによって取得された環境情報に基づいて生成された仮想世界を表示したものである。ロボット(無人潜水機)100の各部形状及び機能は少なくとも制御装置300の記憶ユニット340にモデル化されて予め記憶されており、したがってシステム1において既知である。そのため、仮想世界内ではそのモデル化されたロボット(無人潜水機)100が表示されている。一方、仮想世界内のパイプ60はロボット(無人潜水機)100の環境センサによって取得された環境情報に基づいて再現された状態で表示されている。パイプ60は無人潜水機100の環境センサによってある特定の方向からのみ撮影されているため、撮影した方向から認識できた形状で再現されており、その反対側の部分は再現されていない。図8において、パイプ60の図面左側部分は形状が再現されているが、パイプ60の図面右側部分は欠損した状態で表示されている。
図9は、仮想世界内において図8に示したパイプの位置・姿勢を特定する様子を示す図である。
図9は、図3に示すステップS305及びS310に従って制御装置300によって生成された仮想世界を示している。本例においては、ディスプレイ370上の仮想世界内に表示されているパイプ60に対して、上述した「2)オブジェクトをスキャンしてモデルを生成する」態様に従ってユーザがオブジェクトに対応するモデルを作成し、そのモデルを用いてオブジェクトの位置・姿勢を特性する。
より具体的に説明すると、まず、スキャンしたオブジェクトであるパイプ60を図9(a)に示すようにディスプレイ370上に表示する。次に、ユーザが、ディスプレイ370上に表示されるUI画面内で、トラッカー350(図9にはこれに対応する仮想トラッカー350_vrが表示されている)を用いて、円筒形状のモデルを生成し(図9(b))、これをディスプレイ370上に表示される仮想世界内でパイプ60に重ね合わされるように移動し(図9(c))、かつ直径及び長さを調節する(図9(d))。このようにして、オブジェクトであるパイプ60に対応するモデルの表示(図3のステップS315)と、オブジェクトへのモデルの重ね合わせ(図3のステップS320)が行われる。
続いて、プロセッサ320は、オブジェクトであるパイプ60の三次元形状データ(例えば三次元形状のエッジ及び/又は特徴点)と、モデルの三次元形状データとを比較し、パイプ60の三次元形状の輪郭とモデルの三次元形状の輪郭とが一致するようにモデルの位置・姿勢を補正する。これにより、仮想世界内に表示されているパイプ60が、ある容積空間を占める単なる物体ではなく、ユーザによって選択されたモデルに対応するオブジェクト(パイプ60)であること、さらに、そのパイプ60が仮想世界内にモデルの上記補正後の位置及び姿勢で存在することが制御装置300において特定される(図3のステップS325)。
このように位置・姿勢が特定されたパイプ60は、例えば、モデルを表すコンピュータ・グラフィックス表現によって仮想パイプ60_vrとして仮想世界内において表示される。これにより、例えば、パイプ60の仮想オブジェクト(仮想パイプ60_vr)をロボット(無人潜水機)100のロボットハンド122で把持する動作を指示すること等が可能となる。
[第2の例]
図10は、テーブルの上に置かれたマグカップ80を示す図である。
図10は、テーブルの上に置かれたマグカップ80を示す図である。
マグカップ80は、取っ手82と、本体84とを有している。マグカップ80の取っ手82は、図1及び図2を参照して説明したロボット100のアーム120に備えられたハンド122で把持することができ、ハンド122が取っ手82を把持することで、ロボットアーム120によって例えばマグカップ80をテーブル上で移動させることができる。
図11は、仮想世界内において図10に示したテーブル上のマグカップ80の位置・姿勢を特定する様子を示す図である。図11は、図3に示すステップS305及びS310に従って制御装置300によって生成された仮想世界を示している。
本例においては、ディスプレイ370上の仮想世界内に表示されているマグカップ80に対して、上述した「2)オブジェクトをスキャンしてモデルを生成する」態様に従ってユーザがオブジェクトに対応するモデルを作成し、そのモデルを用いてオブジェクトの位置・姿勢を特性する。
より具体的に説明すると、まず、スキャンしたオブジェクトであるマグカップ80を図11(a)に示すようにディスプレイ370上に表示する。次に、ユーザが、ディスプレイ370上に表示されるUI画面内で、トラッカー350(図11にはこれに対応する仮想トラッカー350_vrが表示されている)を用いて、円筒形状のモデルを生成し、これをディスプレイ370上に表示される仮想世界内でマグカップ80の本体84に重ね合わされるように移動し(図11(a))、かつ直径及び長さを調節する(図11(b))。このようにして、オブジェクトであるマグカップ80の本体84に対応するモデルの表示(図3のステップS315)と、オブジェクトへのモデルの重ね合わせ(図3のステップS320)が行われる。
続いて、プロセッサ320は、オブジェクトである本体84の三次元形状データ(例えば三次元形状のエッジ及び/又は特徴点)と、モデルの三次元形状データとを比較し、本体84の三次元形状の輪郭とモデルの三次元形状の輪郭とが一致するようにモデルの位置・姿勢を補正する。これにより、仮想世界内に表示されている本体84が、ある容積空間を占める単なる物体ではなく、ユーザによって選択されたモデルに対応するオブジェクト(本体84)であること、さらに、その本体84が仮想世界内にモデルの上記補正後の位置及び姿勢で存在することが制御装置300において特定される(図3のステップS325)。
マグカップ80の取っ手82についても同様に、トラッカー350(図11に示す仮想トラッカー350_vr)を用いて、マグカップ80の取っ手82に相当する直方体状のモデルを生成し、これをディスプレイ370上に表示される仮想世界内でマグカップ80の取っ手82に重ね合わされるように移動し、かつ高さ・幅・奥行きの寸法を調節する(図11(d))。このようにして、オブジェクトであるマグカップ80の取っ手82に対応するモデルの表示(図3のステップS315)と、オブジェクトへのモデルの重ね合わせ(図3のステップS320)が行われる。
続いて、プロセッサ320は、オブジェクトである取っ手82の三次元形状データ(例えば三次元形状のエッジ及び/又は特徴点)と、モデルの三次元形状データとを比較し、取っ手82の三次元形状の輪郭とモデルの三次元形状の輪郭とが一致するようにモデルの位置・姿勢を補正する。これにより、仮想世界内に表示されている取っ手82が、ある容積空間を占める単なる物体ではなく、ユーザによって選択されたモデルに対応するオブジェクト(取っ手82)であること、さらに、その取っ手82が仮想世界内にモデルの上記補正後の位置及び姿勢で存在することが制御装置300において特定される(図3のステップS325)。
次に、ユーザは、ディスプレイ370上に表示されるUI画面内で、トラッカー350を用いて、マグカップ80の取っ手82と本体84とが一体である旨の入力操作を行う。これにより、制御装置300のプロセッサ320は、取っ手82と本体84とがそれぞれ特定された位置・姿勢において一体化したものであると認識する。
このように位置・姿勢が特定されたマグカップ80は、例えば、取っ手82及び本体84のモデルを表すコンピュータ・グラフィックス表現によって仮想マグカップとして仮想世界内において表示される。これにより、例えば、マグカップ80の仮想オブジェクトを仮想世界内のロボット100のロボットハンド122で把持して移動させる動作を仮想世界内で指示して(図12(a))、現実世界のマグカップ80を現実世界のロボット100のロボットハンド122で把持して移動させることが可能となる(図12(b))。
なお、本例ではマグカップ80の取っ手82と本体84の位置・姿勢をそれぞれ特定する例を説明したが、例えばロボット100のロボットハンド122で取っ手82を把持してマグカップ80を移動させる目的であれば、マグカップ80の一部である取っ手82についてのみ位置・姿勢を特定するようにしてもよい。
本実施形態の方法により位置・姿勢を特定するオブジェクトについて種々の例を挙げて説明したが、本実施形態の方法により位置・姿勢を特定可能なオブジェクトは上記のオブジェクトに限られず、任意のオブジェクトに対して位置・姿勢を特定することが可能である。
なお、本実施形態の説明ではロボットの形態としてハンドを有するアームを備えたロボット100を例示したが、本発明によって制御されるロボットの形態はそれに限られず、例えば、ロボットの形態は車両、船舶、潜水機、ドローン、建設機械(ショベルカー、ブルドーザー、掘削機、クレーン等)等であってもよい。また、本実施形態のシステムを用いて動作させることができるロボットが使用される環境や用途としては、本実施形態で説明したものの他、宇宙開発、採鉱、採掘、資源採取、農業、林業、水産業、畜産業、捜索救助、災害支援、災害復旧、人道支援、爆発物処理、経路上における障害の除去、災害監視用、防犯監視等の多種多様な環境や用途がある。本実施形態のロボットによって操作されるオブジェクトは、ロボットが使用される環境や用途によって様々である。一例として、ロボットとしてショベルカーを用いる場合は、掘り出す土、砂等もオブジェクトである。
以上、発明の実施形態を通じて本発明を説明したが、上述の実施形態は、特許請求の範囲に係る発明を限定するものではない。また、本発明の実施形態の中で説明されている特徴を組み合わせた形態も本発明の技術的範囲に含まれ得る。さらに、上述の実施形態に、多様な変更または改良を加えることが可能であることも当業者に明らかである。
1 ロボット制御システム
100 ロボット
200 制御ユニット
300 制御装置
100 ロボット
200 制御ユニット
300 制御装置
Claims (8)
- オブジェクトの位置及び姿勢を特定する方法であって、
現実世界の前記オブジェクトの表示を含む仮想世界を生成することと、
前記仮想世界において、前記オブジェクトに対応するモデルを表示することと、
前記仮想世界において、前記モデルを前記オブジェクトに重ね合わせることと、
前記オブジェクトと前記モデルとを比較して、前記オブジェクトの位置及び姿勢を特定することと、
を含む方法。 - 前記オブジェクトと前記モデルとの比較は、前記オブジェクトの三次元形状データと前記モデルの三次元形状データとを比較することを含む、請求項1に記載の方法。
- 前記オブジェクトの三次元形状の輪郭と前記モデルの三次元形状の輪郭とが一致するように前記モデルの位置及び姿勢を補正することをさらに含む、請求項1に記載の方法。
- オブジェクトの位置及び姿勢を特定する装置であって、
現実世界の前記オブジェクトの表示を含む仮想世界を生成することと、
前記仮想世界において、前記オブジェクトに対応するモデルを表示することと、
前記仮想世界において、前記モデルを前記オブジェクトに重ね合わせることと、
前記オブジェクトと前記モデルとを比較して、前記オブジェクトの位置及び姿勢を特定することと、
を実行するように構成されたプロセッサを備えた装置。 - 前記オブジェクトと前記モデルとの比較は、前記オブジェクトの三次元形状データと前記モデルの三次元形状データとを比較することを含む、請求項4に記載の装置。
- 前記プロセッサはさらに、前記オブジェクトの三次元形状の輪郭と前記モデルの三次元形状の輪郭とが一致するように前記モデルの位置及び姿勢を補正することを実行するように構成されている、請求項4に記載の装置。
- プロセッサによって実行可能なコンピュータ・プログラムであって、請求項1~3のいずれか1項に記載の方法を実施する命令を含む、コンピュータ・プログラム。
- 非一時的なコンピュータ可読媒体であって、請求項1~3のいずれか1項に記載の方法を実施する命令を含む、前記媒体に記憶され、プロセッサによって実行することができるコンピュータ・プログラムを含む、非一時的なコンピュータ可読媒体。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2019-094125 | 2019-05-17 | ||
JP2019094125 | 2019-05-17 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2020235539A1 true WO2020235539A1 (ja) | 2020-11-26 |
Family
ID=73458503
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2020/019689 WO2020235539A1 (ja) | 2019-05-17 | 2020-05-18 | オブジェクトの位置及び姿勢を特定する方法及び装置 |
Country Status (1)
Country | Link |
---|---|
WO (1) | WO2020235539A1 (ja) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008046750A (ja) * | 2006-08-11 | 2008-02-28 | Canon Inc | 画像処理装置および方法 |
JP2011174880A (ja) * | 2010-02-25 | 2011-09-08 | Canon Inc | 位置姿勢推定方法及びその装置 |
JP2014127092A (ja) * | 2012-12-27 | 2014-07-07 | Seiko Epson Corp | 画像処理装置、画像処理方法、ロボット及びプログラム |
JP2015532077A (ja) * | 2012-09-27 | 2015-11-05 | メタイオ ゲゼルシャフト ミット ベシュレンクテル ハフツングmetaio GmbH | 少なくとも1つの画像を撮影する撮影装置に関連する装置の位置及び方向の決定方法 |
-
2020
- 2020-05-18 WO PCT/JP2020/019689 patent/WO2020235539A1/ja active Application Filing
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008046750A (ja) * | 2006-08-11 | 2008-02-28 | Canon Inc | 画像処理装置および方法 |
JP2011174880A (ja) * | 2010-02-25 | 2011-09-08 | Canon Inc | 位置姿勢推定方法及びその装置 |
JP2015532077A (ja) * | 2012-09-27 | 2015-11-05 | メタイオ ゲゼルシャフト ミット ベシュレンクテル ハフツングmetaio GmbH | 少なくとも1つの画像を撮影する撮影装置に関連する装置の位置及び方向の決定方法 |
JP2014127092A (ja) * | 2012-12-27 | 2014-07-07 | Seiko Epson Corp | 画像処理装置、画像処理方法、ロボット及びプログラム |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10671874B2 (en) | Generating a model for an object encountered by a robot | |
CN105666505B (zh) | 具备扩展现实对应显示器的机器人系统 | |
Chen et al. | Human performance issues and user interface design for teleoperated robots | |
JP4850984B2 (ja) | 動作空間提示装置、動作空間提示方法およびプログラム | |
Teixeira et al. | Teleoperation using google glass and ar, drone for structural inspection | |
US20180190014A1 (en) | Collaborative multi sensor system for site exploitation | |
CN112634318B (zh) | 一种水下维修机器人的遥操作系统和方法 | |
US11422625B2 (en) | Proxy controller suit with optional dual range kinematics | |
CN113103230A (zh) | 一种基于处置机器人遥操作的人机交互系统及方法 | |
GB2598345A (en) | Remote operation of robotic systems | |
Angelopoulos et al. | Drone brush: Mixed reality drone path planning | |
CN111598273B (zh) | 一种基于vr技术的环控生保系统维修性检测方法及装置 | |
KR20140009900A (ko) | 로봇 제어 시스템 및 그 동작 방법 | |
JP2009258884A (ja) | ユーザインタフェイス | |
Wang et al. | The design of an augmented reality system for urban search and rescue | |
JP2021193538A (ja) | 情報処理装置、移動装置、情報処理システム、および方法、並びにプログラム | |
WO2020218533A1 (ja) | オブジェクトに属性情報を付与する方法及び装置 | |
JP7398227B2 (ja) | 作業支援システム及びプログラム | |
WO2020235539A1 (ja) | オブジェクトの位置及び姿勢を特定する方法及び装置 | |
JP5174636B2 (ja) | 遠隔操作システムおよび遠隔操作装置 | |
JP2003278159A (ja) | 遠隔操作による施工方法及びシステム | |
US20240033930A1 (en) | Remote control manipulator system and remote control assistance system | |
US20230214004A1 (en) | Information processing apparatus, information processing method, and information processing program | |
CN110807971B (zh) | 基于光惯融合定位的潜水器机械臂操控虚拟现实训练系统 | |
Lwowski et al. | The utilization of virtual reality as a system of systems research tool |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 20810229 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 20810229 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: JP |