Method, apparatus, device, medium and product for controlling a robot
Augmented reality technology enables accurate and efficient control of industrial robots by creating interactive virtual models for intuitive robotic arm teaching, addressing the challenges of manual operation and synchronization errors.
Patent Information
- Application Number
- PCT/CN2024/073471
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2024-01-22
- Publication Date
- 2025-07-31
AI Technical Summary
Current methods for teaching industrial robots are labor-intensive, time-consuming, and prone to errors due to the need for manual operation and synchronization of complex robotic arm movements, leading to inaccuracies and high costs.
A method utilizing augmented reality (AR) technology on a tablet or smartphone to create a virtual model of the robot, allowing users to interactively control the robot's movements through touch gestures, ensuring accurate trajectory planning and obstacle avoidance.
Enhances the accuracy and efficiency of robot teaching by providing intuitive and synchronized control between 3D models and real robotic arms, reducing equipment and labor costs while improving user experience.
Smart Images

Figure CN2024073471_31072025_PF_FP_ABST
Abstract
Description
METHOD, APPARATUS, DEVICE, MEDIUM AND PRODUCT FOR CONTROLLING A ROBOTFIELD
[0001] Embodiments of the present disclosure generally relate to the field of computer technology and in particular, to a method, an apparatus, an electronic device, a computer-readable medium and a computer program product for controlling a robot.BACKGROUND
[0002] A robot is an intelligent machine that can work semi-autonomously or fully autonomously. Robots can perform tasks such as operations or movements through programming and automatic control. Robots have basic characteristics such as perception, decision-making, and execution, and can assist or even replace human beings in performing dangerous, heavy, and complex tasks, improving work efficiency and quality, serving human life, and expanding or extending human activities and capabilities.
[0003] Augmented reality (AR) is a technology that seamlessly integrates real and virtual world information. It integrates physical information that is difficult to experience within certain time and a space range in the real world. It simulates and overlays the physical information through scientific technologies such as computers, and applies virtual information to the real world, which is perceived by human senses. The AR technology can achieve a sensory experience beyond reality. Through AR technology, the digital world can be combined with the physical world, and this combination is continuously exerting force in the manufacturing industry.SUMMARY
[0004] In general, various example embodiments of the present disclosure provide a method, an apparatus, an electronic device, a computer-readable storage device, and a computer program product for controlling a robot.
[0005] In a first aspect, it is provided a method for controlling a robot. The method comprises obtaining a set of point clouds of the robot, wherein the set of point clouds represents a position and a contour of the robot in a real world. The method further comprises generating, based on the set of point clouds, a virtual model of the robot, wherein the virtual model comprises image data associated with the robot in virtual reality (VR) . The method further comprises displaying, on an electronic device, the robot in a first area and the virtual model in a second area. The method further comprises obtaining an input for the virtual model, wherein the input indicates a trajectory along which the robot is planned to move. The method further comprises controlling, based on the input, the robot to move along the trajectory.
[0006] In a second aspect, it is provided an apparatus for controlling a robot. The apparatus comprises a first obtaining module configured to obtain a set of point clouds of the robot, wherein the set of point clouds represents a position and a contour of the robot in a real world. The apparatus further comprises a generating module configured to generate, based on the set of point clouds, a virtual model of the robot, wherein the virtual model comprises image data associated with the robot in VR. The apparatus further comprises a displaying module configured to display, on an electronic device, the robot in a first area and the virtual model in a second area. The apparatus further comprises a second obtaining module configured to obtain an input for the virtual model, wherein the input indicates a trajectory along which the robot is planned to move. The apparatus further comprises a controlling module configured to control, based on the input, the robot to move along the trajectory.
[0007] In a third aspect, it is provided an electronics device. The electronics device comprises a processor; and a memory coupled to the processor, wherein the memory has instructions stored therein, and the instructions, when executed by the processor, cause the device to execute actions of the first aspect.
[0008] In a forth aspect, it is provided a computer-readable medium. The computer-readable medium comprises instructions stored therein, which when executed by a processor, cause the processor to perform methods of the first aspect.
[0009] In a fifth aspect, it is provided a computer program product. The computer program product comprises instructions stored therein, which when executed by a processor, cause the processor to perform methods of the first aspect.
[0010] It is to be understood that the Summary is not intended to identify key or essential features of embodiments of the present disclosure, nor is it intended to be used to limit the scope of the present disclosure. Other features of the present disclosure will become readily comprehensible through the description below.DESCRIPTION OF DRAWINGS
[0011] Through the following detailed descriptions with reference to the accompanying drawings, the above and other objectives, features and advantages of the example embodiments disclosed herein will become more comprehensible. In the drawings, several example embodiments disclosed herein will be illustrated in an example and in a non-limiting manner, wherein:
[0012] FIG. 1 illustrates a schematic diagram of an example environment in which a plurality of embodiments of the present disclosure can be implemented;
[0013] FIG. 2 illustrates a flowchart of an example method for controlling a robot in accordance with some embodiments of the present disclosure;
[0014] FIG. 3 illustrates an example set of point clouds in accordance with some embodiments of the present disclosure;
[0015] FIG. 4 illustrates an example of displaying a robot and a virtual model in accordance with some embodiments of the present disclosure;
[0016] FIG. 5 illustrates an example interactive visualization operation in accordance with some embodiments of the present disclosure;
[0017] FIG. 6 illustrates an example trajectory planning in accordance with some embodiments of the present disclosure;
[0018] FIG. 7 illustrates a block diagram of an example apparatus for controlling a robot in accordance with some embodiments of the present disclosure; and
[0019] FIG. 8 illustrates a block diagram illustrating an electronic device in accordance with some embodiments of the present disclosure.
[0020] Throughout all the drawings, the same or similar reference numerals represent the same or similar elements.DETAILED DESCRIPTION OF EMBODIMENTS
[0021] Principles of the present disclosure will now be described with reference to several example embodiments shown in the drawings. Though example embodiments of the present disclosure are illustrated in the drawings, it is to be understood that the embodiments are described only to facilitate those skilled in the art in better understanding and thereby achieving the present disclosure, rather than to limit the scope of the disclosure in any manner.
[0022] The term comprises "or" includes "and" its variants are to be read as open terms that mean "includes, but is not limited to" . The term "or" is to be read as "and / or" unless the context clearly indicates otherwise. The term "based on" is to be read as "based at least in part on" . The term "being operable to" is to mean a function, an action, a motion or a state can be achieved by an operation induced by a user or an external mechanism. The term "one embodiment" and "an embodiment" are to be read as "at least one embodiment" . The term "another embodiment" is to be read as "at least one other embodiment" . The terms "first" , "second" , and the like may refer to different or same objects. Other definitions, explicit and implicit, may be included below. A definition of a term is consistent throughout the description unless the context clearly indicates otherwise.
[0023] The functions or algorithms described herein may be implemented in software in one embodiment. The software may consist of computer executable instructions stored on computer readable media or computer readable storage device such as one or more non-transitory memories or other type of hardware-based storage devices, either local or networked. Further, such functions correspond to modules, which may be software, hardware, firmware or any combination thereof. Multiple functions may be performed in one or more modules as desired, and the embodiments described are merely examples. The software may be executed on a digital signal processor, ASIC, microprocessor, or other type of processor operating on a computer system, such as a personal computer, server or other computer system, turning such computer system into a specifically programmed machine.
[0024] The functionality can be configured to perform an operation using, for instance, software, hardware, firmware, or the like. For example, the phrase "configured to" can refer to a logic circuit structure of a hardware element that is to implement the associated functionality. The phrase "configured to" can also refer to a logic circuit structure of a hardware element that is to implement the coding design of associated functionality of firmware or software. The term "module" refers to a structural element that can be implemented using any suitable hardware (e.g., a processor, among others) , software (e.g., an application, among others) , firmware, or any combination of hardware, software, and firmware. The term, "logic" encompasses any functionality for performing a task. For instance, each operation illustrated in the flowcharts corresponds to logic for performing that operation. An operation can be performed using, software, hardware, firmware, or the like. The terms, "component" , "system" , and the like may refer to computer-related entities, hardware, and software in execution, firmware, or combination thereof. A component may be a process running on a processor, an object, an executable, a program, a function, a subroutine, a computer, or a combination of software and hardware. The term, "processor" may refer to a hardware component, such as a processing unit of a computer system.
[0025] The terms "a" or "an" as used herein, are defined as one or more than one. Also, the use of introductory phrases such as "at least one" and "one or more" in the claims should not be construed to imply that the introduction of another claim element by the indefinite articles "a" or "an" limits any particular claim containing such introduced claim element to disclosures containing only one such element, even when the same claim includes the introductory phrases "one or more" or "at least one" and indefinite articles such as "a" or "an. " The same holds true for the use of definite articles.
[0026] Furthermore, the claimed subject matter may be implemented as a method, apparatus, or article of manufacture using standard programming and engineering techniques to produce software, firmware, hardware, or any combination thereof to control a computing device to implement the disclosed subject matter. Computer-readable storage media can include, but are not limited to, magnetic storage devices, e.g., hard disk, floppy disk, magnetic strips, optical disk, compact disk (CD) , digital versatile disk (DVD) , smart cards, flash memory devices, among others. In contrast, computer-readable media, i.e., not storage media, may additionally include communication media such as transmission media for wireless signals and the like.
[0027] As discussed above, AR can be helpful for intelligent manufacturing. For example, the intelligent manufacturing, as the core sector driving Industry 4.0, aims to enhance the intelligence and digitization of the entire manufacturing process. In the process of implementing Industry 4.0, a series of core technologies have emerged to solve the related trigger points, such as the industrial Internet of Things, big data, cloud computing, etc. Among them, AR technology, as a revolutionary cognitive tool and efficiency tool in the "Post the Internet Age" , has gradually become a sharp tool to promote the transformation of the manufacturing industry, adding impetus to the realization of Industry 4.0. The AR technology can be used for industrial design, assembly manufacturing, quality inspection, equipment maintenance, employee training, and so on.
[0028] AR visualization technology can be used to standardize the manual setting process of the robotic arm, making the robotic arm experiment more efficient. In the industrial field, robotic arms are often used for automated operations and other scenarios, such as automatic assembly, air spraying, transportation, welding, and other work.
[0029] At present, the field of industrial robots still mainly uses human-machine contact interaction to teach robotic arms. The on-site teaching methods mainly include on-site teaching with teaching devices provided by robot control systems, customized simulation software teaching and on-site synchronization, and drag and drop teaching based on sensor technology.
[0030] Due to the complex motion mode of the robotic arm and its nonlinear trajectory, it is necessary to establish a dynamic model for dynamic control. Especially, manually shaping the robotic arm into the required shape for the task may result in errors. Multi degree of freedom robots face difficulties in design, trajectory planning, and directional control, which is also a common problem in many experiments surrounding robot design. With the continuous development of robotics and computing technology, the accuracy and repeatability of manipulating robotic arms have become increasingly high. However, in some tasks, it is necessary for humans to manually operate the robotic arm, which may affect the accuracy of the task. This is because the intention of the computer is difficult to synchronize with the human operator (because a human needs to convert 2D configuration maps into 3D scenes, and this process may have errors compared to the manual operation process) .
[0031] Without guidance and learning, it is difficult for experimenters to configure robots into accurate shapes, or there are errors, time-consuming and labor-intensive, or high auxiliary equipment costs. This is currently the trigger point of robotic arm teaching, so AR visualization has become an effective solution. Therefore, in order to at least partially address the above and other potential problems, as well as to achieve at least some of the above advantages, embodiments of the present disclosure provide a method for controlling a robot. According to the example embodiments of controlling a robot as provided in the present disclosure, the robot can be controlled more accurately and effectively through interactive visualization operations, and the user experience can be improved.
[0032] FIG. 1 illustrates a schematic diagram of an example environment 100 in which a plurality of embodiments of the present disclosure can be implemented. The example environment 100 is only illustrated and is not intended to suggest any limitations as to scope of use or functionality of embodiments of the disclosure described herein.
[0033] As shown, the example environment 100 comprises a robot 102 and an electronic device 104. An example of the electronic device 104 may be a smart phone or a tablet. The electronic device 104 comprises a camera 106 and a screen 108. The camera 106 can capture information of the robot 102. For example, the camera 106 can use binocular stereo lens, laser, three dimensional (3D) depth of field sensor and any other sensor to obtain the image of the robot as well as the depth information.
[0034] The electronic device 104 can generate a virtual model 110 of the robot 102 based on the obtained information of the robot 102. The virtual model 110 and robot 102 can be displayed together on the screen 108. The electronic device 104 may receive input 112 from a user. As an example, the input 110 may be a drag operation on a component of the virtual model 110. The component may be dragged to the left side. The respective component of the robot 102 may move to the left in response to the drag operation. As another example, the input may be a route along which the robot 102 is planned to move. The virtual robot may simulate moving along this route and estimate whether there is any obstacle on this route. If there are no obstacles, the robot 102 will be controlled to move according to the input. If there is an obstacle, the robot 102 will not be controlled to move according to the input. The electronic device 104 may send an alarm to the user or determine a new route which can avoid the obstacle.
[0035] Virtual Reality (VR) is a computer-generated virtual environment that immerses users in a fully digital world where they can interact, explore, and experience. It separates users from the physical world with special input / output devices such as head-mounted displays and controllers. Augmented Reality (AR) is the integration of digital information and virtual objects into the real-world environment, enhancing users' perception and experience. Users see virtual information or objects in the real world and interact with them, but they do not replace the real world entirely; rather, they complement or enhance it. In addition, there are differences in technology and user experience between VR and AR. VR requires special equipment to fully immerse users in the virtual environment, whereas AR can be achieved with devices such as smartphones, tablets, or specialized glasses. However, in the present disclosure, for the purpose of simplification of description, the terms VR and AR are used interchangeably.
[0036] As discussed above, the AR technology can be used for industrial design, assembly manufacturing, quality inspection, equipment maintenance, employee training, and so on. For industrial design, the traditional industrial design stage includes five main steps: understanding customer needs; transforming requirements into technical inputs; providing multiple solutions; choosing feasible solutions that are acceptable to customers; transferring the determined plan to the manufacturing team. To some extent, the traditional design process is complex and requires a lot of effort and time to determine the best feasible product for customers. By integrating AR technology into the design and development phase, it can avoid the complexity caused by traditional design methods, enhance interaction with customers, and make product design more in line with customer needs.
[0037] For assembly manufacturing, in the industrial production process, many links still require on-site engineers to manually operate, especially during the assembly process. The assembly cycle time depends on the skill proficiency of the operators, especially for large precision mechanical equipment such as airplanes and automobiles. Through AR device, engineers can intuitively understand the internal structural information of the assembly equipment and the 3D graphics of a certain component, and make operational adjustments to it, and thus achieving accurate and fast assembly production. It greatly reduces the assembly time for engineers.
[0038] For quality inspection, it is an important step in ensuring that the factory products meet all requirements. Traditional production requires many inspections point lists to complete the quality inspection process, so quality inspectors have an important responsibility for the delivery of the final product. The final product quality accepted by customers depends not only on the quality control during the production process, but also on the accuracy of the quality inspection process.
[0039] With the help of AR technology, an interactive platform can be provided for quality control, allowing real-time viewing of detailed information such as product size accuracy, tolerance, and surface finish displayed. These make it easy for quality inspectors to perform complex tasks and improving the effectiveness of product quality inspection.
[0040] For equipment maintenance, manufacturing products require regular maintenance work to ensure the normal operation of daily production, but the maintenance of related equipment in the manufacturing industry is much more complex than that of household consumer electronics. This requires manufacturing repair engineers to be fully familiar with the structure and functions of the equipment, and to refer to many technical charts, and thus requiring high requirements for repair engineers.
[0041] For employee training, with the help of emerging AR technology to assist in maintenance and repair work, engineers can view the operating status of devices on smartphones, tablets, and even AR device, and complete corresponding repair work. Training employees is an important way for manufacturing enterprises to acquire high-quality employees. Enterprises usually invest a lot of time and money in relevant training to improve the skill quality and stability of their employees. Compared to traditional paper-based or supervised training methods, AR technology can make training methods more interactive, achieve remote training, and ensure the personal safety of employees during the training period.
[0042] FIG. 2 illustrates a flowchart of an example method 200 for controlling a robot in accordance with some embodiments of the present disclosure. FIG. 2 will be described with reference to FIG. 1. At block 202, the electronic device 104 obtains a set of point clouds of the robot 102. The set of point clouds represents a position and a contour of the robot 102 in a real world. For example, based on the integrated AR development environment of a tablet, the 1: 1 3D model corresponding to the robot arm can be automatically imported according to the robot 102 arm model to be taught on site. The following are the virtual 3D modeling and real robot arm scenes shown from the perspective of the tablet.
[0043] At block 204, based on the set of point clouds, the electronic device 104 generates a virtual model 110 of the robot. The virtual model comprises image data associated with the robot in VR. For example, the electronic device 104 may use AR technology to generate a 3D model of the robot 102. As another example, a tablet may use the built-in camera function of the tablet to establish the spatial relationship between the 3D model and the actual robotic arm.
[0044] Now reference is made to FIG. 3 for better understanding the solution of the present disclosure. FIG. 3 illustrates an example set of point clouds 300 in accordance with some embodiments of the present disclosure. As shown in block 302 in FIG. 3, in some example embodiments, the electronic device 104 may obtain the set of point clouds of the robot 102 by using a device to scan the robot 102 and its surroundings to locate the robot 102. The electronic device 104 may also scan a quick response (QR) code of the robot 102 to locate the robot 102. For example, the QR code may be beside the robot 102. The location of the robot 102 may be put on the location of the QR code. Further, The QR code may comprise information of the robot 102. The information of the robot 102 may be created in advance and stored in the QR code. The information may comprise a type of the robot, as well as the required position offset information, etc. The information may be used for placing the virtual model 110 to the location where the user expects.
[0045] In some example embodiments, the electronic device 104 may obtain the set of point clouds of the robot 102 by using the camera 106 of the electronic device 104 from a plurality of angles to determine the set of point clouds of the robot 102 in the first coordinate306. The camera 106 may comprise one or more sensors for determining depth information. The set of point clouds of the robot 102 is shown in block 304 in FIG. 3.
[0046] Now referring back to FIG. 2, at block 206, the electronic device 104 displays the robot 102 in a first area and the virtual model 110 in a second area on the electronic device 104. For example, reference is made to FIG. 4. FIG. 4 illustrates an example 400 of displaying a robot and a virtual model simultaneously in accordance with some embodiments of the present disclosure. As shown in FIG. 4, the block 402 may represent a screen of a tablet. The robot 404 is displayed in the first area 416 and the 3D model 406 (also referred to as the virtual robot) is displayed in the second area 418.
[0047] The robot 404 may be associated with the first coordinate 408, and the virtual robot 406 may be associated with the second coordinate 410. The first coordinate 408 may be different from the second coordinate 410. The first coordinate 408 and the second coordinate 410 may be mathematically associated. After the association, the user’s input to the virtual robot 406 may correspond to the same input to the robot 404. For example, based on point cloud technology, images of the base of a real robotic arm are scanned from multiple angles. Based on the point information collected from the point cloud, the actual base coordinate system of the robotic arm is calculated through the base coordinate system algorithm, and the coordinate system is mathematically associated with the base coordinate system of the 3D model in three-dimensional space. After the association is completed, the operator can directly perform corresponding operations on the 3D model through the touch screen of the tablet computer and synchronize the movements of the real robotic arm.
[0048] In some example embodiments, the first coordinate 408 and the second coordinate 410 may overlap with each other, such that the robot 414 and the virtual robot 406 overlap with each other.
[0049] Now referring back to FIG. 2, at block 208, the electronic device 104 obtains an input 112 for the virtual model 110. The input 112 indicates a trajectory along which the robot is planned to move. For example, a user may select a joint of an arm of the robot, and drag the selected joint in an expected direction. This selection operation and this dragging operation may be the input 112.
[0050] Now reference is made to FIG. 5 for better understanding the solution of the present disclosure. FIG. 5 illustrates an example interactive visualization operation 500 in accordance with some embodiments of the present disclosure. As shown in FIG. 5, there are six joints can be selected, and the user selects joint 2. The user may drag or rotate joint 2 to a desired position. The area 502 may display the current degrees of the joints. In some example embodiments, the selected component may be highlighted.
[0051] Now referring back to FIG. 2, at block 210, based on the input 112, the electronic device 104 controls the robot 102 to move along the trajectory. For example, Operators can directly operate the 3D model of the robotic arm on a tablet computer and synchronize the movements of the real robotic arm in real time. For traditional on-site teaching methods, whether through a 2D display teaching device or simulation software, this solution can quickly, efficiently, directly, and accurately execute the axis coordinate system rotation, Cartesian coordinate system end positioning, coordinate system creation, path generation, point tracking and correction through the 3D model, Troubleshooting of fault points, robot execution of tasks, and any robotic arm operation performed through traditional teaching methods can be easily achieved through AR combined with a tablet.
[0052] By implementing the example embodiments of FIG. 2, the robot can be controlled more accurately and effectively through interactive visualization operations, and the user experience can be improved. In some example embodiments, an AR technology and a tablet or smart phone can be used to achieve synchronous control between 3D models and on-site real robotic arms, which makes the teaching operation process of the robotic arm intuitive, simple and easy to understand. Synchronization and accuracy can be guaranteed by implementing some example embodiments. Equipment cost, material cost and labor can be saved, and efficiency can be increased.
[0053] Reference is made to FIG. 6, which illustrates an example trajectory planning 600 in accordance with some embodiments of the present disclosure. As shown in FIG. 6, the virtual robot 606 of the robot 602 in real world 610 and the virtual table 606 of the table 604 in real world 610 are displayed in the electronic device 612. Moreover, in the screen of the electronic device, it can show an end effector 606, such as a work object like a welding gun, suction gripper, etc. This end effector 606 does not physically exist on the arm. The electronic device may plan the route considering the existence of the end effector 606 (such as its size and volume) to avoid any collision. For example, the route 608 is a clear route which has no obstacles there. In some example embodiments, the user may click on a point on the screen, and then the virtual robot may move to this point, and whether the point collides with other objects can be checked.
[0054] In some example embodiments, the trajectory may be planned online or in a real-time. For example, the user may extract the path by touching the edge of the table 604 on the screen of the electronic device 612 for gluing or polishing. For another example, the user may extract the path by touching a plane of the table 604 and then selecting the appropriate swing path texture to generate a polished path.
[0055] In this way, the solution proposed by the present disclosure can address the problem of how to easily on-site teaching of industrial robots. The present disclosure provides a solution based on AR technology. By implementing the example embodiments, it can make the training of robotic arms more accurate, intuitive, and standardized. By combining spatial information and virtual markers to display accurate 3D spatial relationships, the accuracy of AR guidance can be improved. It can provide a more intuitive spatial positioning effect. Experimental personnel can operate without much technical experience. The present disclosure only needs to integrate a tablet with the AR development environment. The tablet comes with a camera for 3D modeling, and the virtual model is controlled through touch screen gestures to directly teach the on-site real robotic arm.
[0056] Reference is made to FIG. 7, which illustrates a block diagram of an example apparatus 700 for controlling a robot in accordance with some embodiments of the present disclosure. The apparatus 700 comprises a first obtaining module 702 configured to obtain a set of point clouds of the robot, wherein the set of point clouds represents a position and a contour of the robot in a real world. The apparatus further 700 comprises a generating module 704 configured to generate, based on the set of point clouds, a virtual model of the robot, wherein the virtual model comprises image data associated with the robot in VR. The apparatus further 700 comprises a displaying module 706 configured to display, on an electronic device, the robot in a first area and the virtual model in a second area. The apparatus further 700 comprises a second obtaining module 708 configured to obtain an input for the virtual model, wherein the input indicates a trajectory along which the robot is planned to move. The apparatus further 700 comprises a controlling module 710 configured to control, based on the input, the robot to move along the trajectory.
[0057] In some example embodiments, the first obtaining module 702 may further comprise a module configured to use a camera of the electronic device from a plurality of angles to determine the set of point clouds of the robot in the first coordinate to obtain the set of point clouds of the robot, wherein the camera comprises one or more sensors for determining depth information. The apparatus 700 may further comprise a module configured to scan a QR code of the robot to locate the robot.
[0058] In some example embodiments, the apparatus 700 may further comprise a module configured to obtain an operation on the virtual model from a user; a module configured to display, on the electronic device, a respective effect on the virtual model based on the operation; and a module configured to control the robot to perform the operation to reach a same effect.
[0059] In some example embodiments, the second obtaining module 708 may further comprise a module configured to receive a selection operation of a component of the virtual model from a user; a module configured to receive a drag operation of the component from the user; and a module configured to determine the input based on the selection operation and the drag operation.
[0060] In some example embodiments, the controlling module 710 may further comprise a module configured to determine the trajectory based on the input; a module configured to determine whether an obstacle presents on the trajectory; a module configured to control the robot to move along the trajectory based on determining that no obstacle presents on the trajectory; and a module configured to send an alarm indicating that a collision is to occur on the trajectory based on determining that the obstacle presents on the trajectory; a module configured to send an alarm indicating that a collision is to occur on the trajectory based on determining that the obstacle presents on the trajectory.
[0061] In some example embodiments, the controlling module 710 may further comprise a module configured to determine at least one new trajectory which avoids the collision based on determining that the obstacle presents on the trajectory; and a module configured to control the robot to move along one of the at least one new trajectory based on the at least one new trajectory.
[0062] In some example embodiments, the controlling module 710 may further comprise a module configured to determine, based on an end effector being installed to the arm of the virtual model, the at least one new trajectory considering a position and a contour of the end effector.
[0063] In some example embodiments, the virtual model may be associated with a second coordinate which is different from the first coordinate, and the second coordinate and the first coordinate may be overlapping such that the virtual model in the second area overlaps the robot in the first area.
[0064] In some example embodiments, the module configured to receive a selection operation of a component of the virtual model from a user may further comprise a module configured to receive a selection operation of a joint or an axis of an arm of the virtual model from the user as the input, wherein the component comprises the arm of the robot; the module configured to receive a drag operation of the component from the user may further comprise a module configured to receive the dragging operation of the joint or the axis of the arm of the virtual model as the input; and the apparatus 700 may further comprise a module configured to determine a trajectory along which the arm is planned to move based on the input.
[0065] In some example embodiments, the selection operation and the drag operation may be performed by visually tagging, dragging, rotating or holding for the virtual model. In some example embodiments, the selection operation may comprise selecting one or more components of the virtual model and respective moving modes of the one or more components. The moving modes may comprise a linear moving mode and an axis moving mode.
[0066] In some example embodiments, the apparatus may further comprise means for performing other steps in some example embodiments of the method 200. In some example embodiments, the means comprises at least one processor and at least one memory including computer program code, the at least one memory and computer program code configured to, with the at least one processor, cause the performance of the apparatus.
[0067] In some example embodiments, the robot may be a first robot, and the trajectory may be a first trajectory, and the apparatus may further comprise a module configured to determine a second trajectory for a second robot; and a module configured to control the robot to move along the second trajectory.
[0068] By implementing the example embodiments of FIG. 7, the robot can be controlled more accurately and effectively through interactive visualization operations, and the user experience can be improved. In some embodiments, an AR technology and a tablet or smart phone can be used to achieve synchronous control between 3D models and on-site real robotic arms, which makes the teaching operation process of the robotic arm intuitive, simple and easy to understand. Synchronization and accuracy can be guaranteed by implementing some example embodiments. Equipment cost, material cost and labor can be saved, and efficiency can be increased.
[0069] FIG. 8 illustrates a block diagram illustrating an electronic device 800 in accordance with some embodiments of the present disclosure. As indicated, the device 800 includes a central processing unit (CPU) 801, which can execute various appropriate actions and processing based on the computer program instructions stored in a read-only memory (ROM) 802 or the computer program instructions loaded into a random access memory (RAM) 803 from a storage unit 808. The RAM 803 also stores all kinds of programs and data required by operating the electronic device 800. CPU 801, ROM 802 and RAM 803 are connected to each other via a bus 804, to which an input / output (I / O) interface 805 is also connected.
[0070] A plurality of components in the device 800 are connected to the I / O interface 805, comprising: an input unit 806, such as a keyboard, a mouse and the like; an output unit 807, such as various types of displays, loudspeakers and the like; a storage unit 808, such as a storage disk, an optical disk and the like; and a communication unit 809, such as a network card, a modem, a wireless communication transceiver and the like. The communication unit 809 allows the device 800 to exchange information / data with other devices through computer networks such as Internet and / or various telecommunication networks.
[0071] Each procedure and processing described above, such as the method 200, can be executed by a processing unit 801. For example, in some embodiments, the method 800 can be implemented as computer software programs, which are tangibly included in a machine-readable medium, such as a storage unit 808. In some embodiments, the computer program can be partially or completely loaded and / or installed to the device 800 via the ROM 802 and / or the communication unit 809. When the computer program is loaded to the RAM 803 and executed by the CPU 801, one or more steps of the above described method 200 are implemented. Alternatively, in other embodiments, the CPU 801 may also be configured in any proper manner to implement the above process / method.
[0072] The present disclosure may be a method, a device, a system and / or a computer program product. The computer program product can include a computer-readable storage medium loaded with computer-readable program instructions thereon for executing various aspects of the present disclosure.
[0073] The computer readable storage medium can be a tangible device that can retain and store instructions for use by an instruction execution device. The computer readable storage medium may be, for example, but not limited to, an electronic storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any suitable combination thereof. More specific examples (anon-exhaustive list) of the computer readable storage medium would include: a portable computer diskette, a hard disk, a random access memory (RAM) , a read-only memory (ROM) , an erasable programmable read-only memory (EPROM or Flash memory) , a static random access memory (SRAM) , a portable compact disc read-only memory (CD-ROM) , a digital versatile disk (DVD) , a memory stick, a floppy disk, a mechanically encoded device such as punch-cards or raised structures in a groove having instructions recorded thereon, and any suitable combination thereof. A computer readable storage medium, as used herein, is not to be construed as being transitory signals per se, such as radio waves or other freely propagating electromagnetic waves, electromagnetic waves propagating through a waveguide or other transmission media (e.g., light pulses passing through a fiber-optic cable) , or electrical signals transmitted through a wire.
[0074] Computer readable program instructions described herein can be downloaded to respective computing / processing devices from a computer readable storage medium, or downloaded to an external computer or external storage device via a network, for example, the Internet, a local area network, a wide area network and / or a wireless network. The network may comprise copper transmission cables, optical transmission fibers, wireless transmission, routers, firewalls, switches, gateway computers and / or edge servers. A network adapter card or network interface in each computing / processing device receives computer readable program instructions from the network and forwards the computer readable program instructions for storage in a computer readable storage medium within the respective computing / processing device.
[0075] Computer readable program instructions for carrying out operations of the present disclosure may be assembly instructions, instruction-set-architecture (ISA) instructions, machine instructions, machine dependent instructions, microcode, firmware instructions, state-setting data, or either source code or object code written in any combination of one or more programming languages, including an object oriented programming language such as Smalltalk, C++ or the like, and conventional procedural programming languages, such as the "C" programming language or similar programming languages. The computer readable program instructions may execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server. In the latter scenario, the remote computer may be connected to the user's computer through any type of network, including a local area network (LAN) or a wide area network (WAN) , or the connection may be made to an external computer (for example, through the Internet using an Internet Service Provider) . In some embodiments, by means of state information of the computer readable program instructions, an electronic circuitry including, for example, programmable logic circuitry (PLC) , field-programmable gate arrays (FPGA) , or programmable logic arrays (PLA) can be personalized to execute the computer readable program instructions, thereby implementing various aspects of the present disclosure.
[0076] Aspects of the present disclosure are described herein with reference to flowchart and / or block diagrams of methods, apparatus (systems) , and computer program products according to embodiments of the present disclosure. It will be understood that each block of the flowchart illustrations and / or block diagrams, and combinations of blocks in the flowchart illustrations and / or block diagrams, can be implemented by computer readable program instructions.
[0077] These computer readable program instructions may be provided to a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which are executed via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions / acts specified in the flowchart and / or block diagram block or blocks. These computer readable program instructions may also be stored in a computer readable storage medium that can direct a computer, a programmable data processing apparatus, and / or other devices to function in a particular manner, such that the computer readable storage medium having instructions stored therein comprises an article of manufacture including instructions which implement aspects of the function / act specified in the flowchart and / or block diagram block or blocks.
[0078] The computer readable program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other device to cause a series of operational steps to be performed on the computer, other programmable apparatus or other device to produce a computer implemented process, such that the instructions which are executed on the computer, other programmable apparatus, or other device implement the functions / acts specified in the flowchart and / or block diagram block or blocks.
[0079] The flowchart and block diagrams illustrate the architecture, functionality, and operation of possible implementations of systems, methods and computer program products according to various embodiments of the present disclosure. In this regard, each block in the flowchart or block diagrams may represent a module, snippet, or portion of codes, which comprises one or more executable instructions for implementing the specified logical function (s) . In some alternative implementations, the functions noted in the block may be implemented in an order different from those illustrated in the figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved. It will also be noted that each block of the block diagrams and / or flowchart illustration, and combinations of blocks in the block diagrams and / or flowchart illustration, can be implemented by special purpose hardware-based systems that perform the specified functions or acts, or by combinations of special purpose hardware and computer instructions.
[0080] Further, while operations are depicted in a particular order, this should not be understood as requiring that such operations be performed in the particular order shown or in sequential order, or that all illustrated operations be performed, to achieve desirable results. In certain circumstances, multitasking and parallel processing may be advantageous. Likewise, while several specific implementation details are contained in the above discussions, these should not be construed as limitations on the scope of the present disclosure, but rather as descriptions of features that may be specific to particular embodiments. Certain features that are described in the context of separate embodiments may also be implemented in combination in a single embodiment. Conversely, various features that are described in the context of a single embodiment may also be implemented in multiple embodiments separately or in any suitable sub-combination.
[0081] A person of ordinary skill in the art may be aware that, in combination with the examples described in the embodiments disclosed in this specification, units and algorithm steps can be implemented by electronic hardware or a combination of computer software and electronic hardware. Whether the functions are performed by hardware or software depends on particular applications and design constraints of the technical solutions. A person skilled in the art may use different methods to implement the described functions for each particular application, but it should not be considered that the implementation goes beyond the scope of this application.
[0082] It may be clearly understood by a person skilled in the art that, for the purpose of convenient and brief description, for a detailed working process of the foregoing system, apparatus, and unit, refer to a corresponding process in the foregoing method embodiment. Details are not described herein again.
[0083] In the several embodiments provided in this application, it should be understood that the disclosed system, apparatus, and method may be implemented in other manners. For example, the described apparatus embodiment is merely an example. For example, the unit division is merely logical function division and may be other division in actual implementation. For example, a plurality of units or components may be combined or integrated into another system, or some features may be ignored or not performed. In addition, the displayed or discussed mutual couplings or direct couplings or communication connections may be implemented through some interfaces. The indirect couplings or communication connections between the apparatuses or units may be implemented in electronic, mechanical, or other forms.
[0084] The units described as separate parts may be or may not be physically separate, and parts displayed as units may be or may not be physical units, may be located in one position, or may be distributed on a plurality of network units. Some or all of the units may be selected based on actual requirements to achieve the objectives of the solutions of the embodiments.
[0085] In addition, functional units in the embodiments of this application may be integrated into one processing unit, or each of the units may exist alone physically, or two or more units are integrated into one unit.
[0086] When the functions are implemented in a form of a software functional unit and sold or used as an independent product, the functions may be stored in a computer readable storage medium. Based on such an understanding, the technical solutions in this application essentially, or the part contributing to the prior art, or some of the technical solutions may be implemented in a form of a software product. The computer software product is stored in a storage medium, and includes several instructions for instructing a computer device (which may be a personal computer, a server, a network device, or the like) to perform all or some of the steps of the methods described in the embodiments of this application. The foregoing storage medium includes: any medium that can store program code, such as a USB flash drive, a removable hard disk, a read-only memory (Read-Only Memory, ROM) , a random access memory (Random Access Memory, RAM) , a magnetic disk, or an optical disc.
[0087] The foregoing descriptions are merely specific implementations of this application, but are not intended to limit the protection scope of this application. Any variation or replacement readily figured out by a person skilled in the art within the technical scope disclosed in this application shall fall within the protection scope of this application. Therefore, the protection scope of this application shall be subject to the protection scope of the claims.
Claims
1.A method for controlling a robot, comprising:obtaining a set of point clouds of the robot, wherein the set of point clouds represents a position and a contour of the robot in a real world;generating, based on the set of point clouds, a virtual model of the robot, wherein the virtual model comprises image data associated with the robot in virtual reality (VR) ;displaying, on an electronic device, the robot in a first area and the virtual model in a second area;obtaining an input for the virtual model, wherein the input indicates a trajectory along which the robot is planned to move; andcontrolling, based on the input, the robot to move along the trajectory.2.The method of claim 1, wherein obtaining the set of point clouds of the robot comprises:using a camera of the electronic device from a plurality of angles to determine the set of point clouds of the robot in the first coordinate, wherein the camera comprises one or more sensors for determining depth information; andthe method further comprises:scanning a quick response (QR) code of the robot to locate the robot3.The method of claim 1, further comprising:obtaining an operation on the virtual model from a user;displaying, on the electronic device, a respective effect on the virtual model based on the operation; andcontrolling the robot to perform the operation to reach a same effect.4.The method of claim 1, wherein obtaining the input for the virtual model comprises:receiving a selection operation of a component of the virtual model from a user;receiving a drag operation of the component from the user; anddetermining the input based on the selection operation and the drag operation.5.The method of claim 4, wherein controlling, based on the input, the robot to move along the trajectory comprises:determining the trajectory based on the input;determining whether an obstacle presents on the trajectory; andcontrolling the robot to move along the trajectory based on determining that no obstacle presents on the trajectory; orsending an alarm indicating that a collision is to occur on the trajectory based on determining that the obstacle presents on the trajectory.6.The method of claim 5, further comprising:determining, based on determining that the obstacle presents on the trajectory, at least one new trajectory which avoids the collision; andcontrolling, based on the at least one new trajectory, the robot to move along one of the at least one new trajectory.7.The method of claim 6, further comprising:determining, based on an end effector being installed to the arm of the virtual model, the at least one new trajectory considering a position and a contour of the end effector.8.The method of claim 3, wherein the virtual model is associated with a second coordinate which is different from the first coordinate, and wherein the second coordinate and the first coordinate are overlapping such that the virtual model in the second area overlaps the robot in the first area.9.The method of claim 4, wherein:receiving the selection operation of the component of the virtual model comprises receiving a selection operation of a joint or an axis of an arm of the virtual model from the user as the input, wherein the component comprises the arm of the robot;receiving the drag operation of the component comprises receiving the dragging operation of the joint or the axis of the arm of the virtual model as the input; andthe method further comprises determining a trajectory along which the arm is planned to move based on the input.10.The method of claim 1, wherein the selection operation and the drag operation are performed by visually tagging, dragging, rotating or holding for the virtual model.11.The method of claim 1, wherein the selection operation comprises selecting one or more components of the virtual model and respective moving modes of the one or more components, and wherein the moving modes comprise a linear moving mode and an axis moving mode.12.The method of claim 1, wherein the robot is a first robot, and the trajectory is a first trajectory, and the method further comprises:determining a second trajectory for a second robot; andcontrolling the robot to move along the second trajectory.13.An apparatus for controlling a robot, comprising:a first obtaining module configured to obtain a set of point clouds of the robot, wherein the set of point clouds represents a position and a contour of the robot in a real world;a generating module configured to generate, based on the set of point clouds, a virtual model of the robot, wherein the virtual model comprises image data associated with the robot in virtual reality (VR) ;a displaying module configured to display, on an electronic device, the robot in a first area and the virtual model in a second area;a second obtaining module configured to obtain an input for the virtual model, wherein the input indicates a trajectory along which the robot is planned to move; anda controlling module configured to control, based on the input, the robot to move along the trajectory.14.An electronic device, comprising:a processor; anda memory coupled to the processor, wherein the memory has instructions stored therein, and the instructions, when executed by the processor, cause the device to execute actions of any of claims 1-11.15.A computer program product having instructions stored therein, which when executed by a processor, cause the processor to perform a method of any of claims 1-11.
Citation Information
Patent Citations
Method And System For Positioning Congifuration Of Virtual Robot In Virtual Environment
CN107065790A
Man-machine interaction method based on virtual reality
CN107263473A
Augmented reality for industrial robotics
CN112105486A
Man-machine interaction system and method based on handling robot teleoperation
CN113103230A
Visualizing a protective field
DE202020106491U1