WO2021013230A1 - Robot control method, robot, terminal, server, and control system - Google Patents

Robot control method, robot, terminal, server, and control system Download PDF

Info

Publication number
WO2021013230A1
WO2021013230A1 PCT/CN2020/103859 CN2020103859W WO2021013230A1 WO 2021013230 A1 WO2021013230 A1 WO 2021013230A1 CN 2020103859 W CN2020103859 W CN 2020103859W WO 2021013230 A1 WO2021013230 A1 WO 2021013230A1
Authority
WO
WIPO (PCT)
Prior art keywords
coordinate system
robot
coordinates
coordinate
server
Prior art date
Application number
PCT/CN2020/103859
Other languages
French (fr)
Chinese (zh)
Inventor
薛清风
彭洪彬
Original Assignee
华为技术有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 华为技术有限公司 filed Critical 华为技术有限公司
Publication of WO2021013230A1 publication Critical patent/WO2021013230A1/en

Links

Images

Classifications

    • AHUMAN NECESSITIES
    • A47FURNITURE; DOMESTIC ARTICLES OR APPLIANCES; COFFEE MILLS; SPICE MILLS; SUCTION CLEANERS IN GENERAL
    • A47LDOMESTIC WASHING OR CLEANING; SUCTION CLEANERS IN GENERAL
    • A47L11/00Machines for cleaning floors, carpets, furniture, walls, or wall coverings
    • A47L11/24Floor-sweeping machines, motor-driven
    • AHUMAN NECESSITIES
    • A47FURNITURE; DOMESTIC ARTICLES OR APPLIANCES; COFFEE MILLS; SPICE MILLS; SUCTION CLEANERS IN GENERAL
    • A47LDOMESTIC WASHING OR CLEANING; SUCTION CLEANERS IN GENERAL
    • A47L11/00Machines for cleaning floors, carpets, furniture, walls, or wall coverings
    • A47L11/40Parts or details of machines not provided for in groups A47L11/02 - A47L11/38, or not restricted to one of these groups, e.g. handles, arrangements of switches, skirts, buffers, levers
    • AHUMAN NECESSITIES
    • A47FURNITURE; DOMESTIC ARTICLES OR APPLIANCES; COFFEE MILLS; SPICE MILLS; SUCTION CLEANERS IN GENERAL
    • A47LDOMESTIC WASHING OR CLEANING; SUCTION CLEANERS IN GENERAL
    • A47L11/00Machines for cleaning floors, carpets, furniture, walls, or wall coverings
    • A47L11/40Parts or details of machines not provided for in groups A47L11/02 - A47L11/38, or not restricted to one of these groups, e.g. handles, arrangements of switches, skirts, buffers, levers
    • A47L11/4011Regulation of the cleaning machine by electric means; Control systems and remote control systems therefor
    • AHUMAN NECESSITIES
    • A47FURNITURE; DOMESTIC ARTICLES OR APPLIANCES; COFFEE MILLS; SPICE MILLS; SUCTION CLEANERS IN GENERAL
    • A47LDOMESTIC WASHING OR CLEANING; SUCTION CLEANERS IN GENERAL
    • A47L11/00Machines for cleaning floors, carpets, furniture, walls, or wall coverings
    • A47L11/40Parts or details of machines not provided for in groups A47L11/02 - A47L11/38, or not restricted to one of these groups, e.g. handles, arrangements of switches, skirts, buffers, levers
    • A47L11/4061Steering means; Means for avoiding obstacles; Details related to the place where the driver is accommodated
    • AHUMAN NECESSITIES
    • A47FURNITURE; DOMESTIC ARTICLES OR APPLIANCES; COFFEE MILLS; SPICE MILLS; SUCTION CLEANERS IN GENERAL
    • A47LDOMESTIC WASHING OR CLEANING; SUCTION CLEANERS IN GENERAL
    • A47L2201/00Robotic cleaning machines, i.e. with automatic control of the travelling movement or the cleaning operation
    • AHUMAN NECESSITIES
    • A47FURNITURE; DOMESTIC ARTICLES OR APPLIANCES; COFFEE MILLS; SPICE MILLS; SUCTION CLEANERS IN GENERAL
    • A47LDOMESTIC WASHING OR CLEANING; SUCTION CLEANERS IN GENERAL
    • A47L2201/00Robotic cleaning machines, i.e. with automatic control of the travelling movement or the cleaning operation
    • A47L2201/04Automatic control of the travelling movement; Automatic obstacle detection

Definitions

  • This application relates to the field of artificial intelligence technology, and in particular to a robot control method, robot, terminal, server and control system.
  • the other is that the user manually selects the target point through the electronic map drawn in the mobile APP (as shown in Figure 1) and sends it to the sweeper.
  • the main interactive operation relies on the electronic map generated by SLAM (Simultaneous Localization and Mapping, real-time positioning and mapping) technology.
  • SLAM Simultaneous Localization and Mapping, real-time positioning and mapping
  • the embodiments of the present application provide a robot control method, robot, terminal, server, and control system to control the robot to accurately move to a target point.
  • the first aspect of the embodiments of the present application provides a method for controlling a robot.
  • This method is applied to a system composed of robots, terminals, and servers.
  • the robot carries a camera and lidar.
  • the method includes: the robot creates a visual SLAM map through its own camera, creates a laser SLAM map through its own lidar, takes the coordinate system of the visual SLAM map on the horizontal plane as the first coordinate system, and uses the laser SLAM map
  • the robot uploads the coordinate conversion relationship between the first coordinate system and the second coordinate system and the visual SLAM map to the server;
  • the terminal intercepts the current interface to obtain the target image frame, and the terminal extracts the characteristic data of the target point, and Upload the target image frame and the characteristic data of the target point to the server;
  • the server receives the target image frame, the characteristic data of the target point, and determines the target point in the first coordinate system according to the target image frame, the characteristic data of the target point and the visual SLAM map
  • the server
  • the user does not need to select the target point on the electronic map with a low degree of restoration, but directly selects the target point on the interface of the terminal. Therefore, the user can accurately select the position where the robot wants to control the movement. So the robot can accurately move to the target point.
  • the origin of the first coordinate system and the origin of the second coordinate system may or may not overlap.
  • the coordinate conversion relationship between the two coordinate systems is more complicated; in the case where the origin of the first coordinate system coincides with the origin of the second coordinate system Below, the coordinate conversion relationship between the two coordinate systems is relatively simple. If the origin of the first coordinate system does not coincide with the origin of the second coordinate system, the coordinate conversion relationship includes the angle between the axial direction of the first coordinate system and the axial direction of the second coordinate system, the origin of the first coordinate system and the second coordinate system. The relative position of the origin of the coordinate system.
  • the coordinate conversion relationship includes the coordinates of the same point in the first coordinate system and the second coordinate system, or the axial direction of the first coordinate system and the second coordinate system The axial angle of the coordinate system.
  • the included angle ⁇ can be measured before the robot leaves the factory, or can be measured after the robot reaches the user's hands.
  • a second aspect of the embodiments of the present application provides a method for controlling a robot, which is applied to a robot including a camera and a lidar.
  • the method includes: the robot creates a visual SLAM map through the camera and a laser SLAM map through the lidar; Upload the coordinate conversion relationship between the first coordinate system and the second coordinate system to the server; where the first coordinate system is the projected coordinate system of the visual SLAM map on the horizontal plane, and the second coordinate system is the coordinate system of the laser SLAM map;
  • the robot uploads the visual SLAM map to the server; the robot receives the second coordinates obtained by the server based on the visual SLAM map and the coordinate conversion relationship between the first coordinate system and the second coordinate system.
  • the second coordinates are the coordinates of the target point in the second coordinate system ;
  • the robot determines the movement path according to the second coordinates and the coordinates of the current position of the robot in the second coordinate system; the robot moves to the target point according to the movement path.
  • the coordinate conversion relationship includes the angle between the axial direction of the first coordinate system and the axial direction of the second coordinate system, and the origin of the first coordinate system and The relative position of the origin of the second coordinate system.
  • the coordinate conversion relationship includes the coordinates of the same point in the first coordinate system and the second coordinate system, or the axial direction of the first coordinate system and The axial angle of the second coordinate system.
  • the third aspect of the embodiments of the present application provides a robot control method, which is applied to a terminal.
  • the method includes: the terminal receives a user's touch operation; the terminal intercepts the current interface to obtain the target image frame; the terminal determines the characteristic data of the target point ; The terminal uploads the target image frame and the characteristic data of the target point to the server.
  • control method of the robot further includes: the terminal extracts feature points from the target image frame according to a preset feature extraction algorithm; the terminal determines the feature data of the feature points; and the terminal uploads the feature data of the feature points to the server.
  • control method of the robot further includes: the terminal determines the screen coordinates of the target point and the screen coordinates of the feature point; the terminal according to the screen coordinates of the target point and the screen coordinates of the feature point, and the feature data of the target point and the feature point
  • the characteristic data determines the relative position of the target point and the characteristic point; the terminal uploads the relative position of the target point and the characteristic point to the server.
  • the fourth aspect of the embodiments of the present application provides a robot control method, which is applied to a server.
  • the method includes: the server receives the visual SLAM map sent by the robot; the server receives the coordinates of the first coordinate system and the second coordinate system sent by the robot Conversion relationship; where the first coordinate system is the projected coordinate system of the visual SLAM map on the horizontal plane, and the second coordinate system is the coordinate system of the laser SLAM map acquired by the robot; the visual SLAM map and the laser SLAM map are the robot’s Created in the same environment; the server receives the target image frame and the characteristic data of the target point uploaded by the terminal; the server determines the first coordinate of the target point in the first coordinate system according to the target image frame, the characteristic data of the target point and the visual SLAM map ; The server converts the first coordinate into the second coordinate, and the second coordinate is the coordinate of the target point in the second coordinate system; the server sends the second coordinate to the robot.
  • the server determines the first coordinate of the target point in the first coordinate system according to the target image frame, the characteristic data of the target point and the visual SLAM map, including: the server obtains the characteristic data of the characteristic point in the target image frame; The feature data of the feature point is matched with the feature data in the visual SLAM map to determine the coordinate of the feature point in the first coordinate system; the server determines the relative position of the target point and the feature point; the server determines the position of the feature point in the first coordinate system The coordinates, the relative position of the target point and the characteristic point determine the first coordinate of the target point in the first coordinate system.
  • the server determines the relative position of the target point and the characteristic point, including: the server receives the screen coordinates of the target point and the screen coordinates of the characteristic point uploaded by the terminal, and the characteristic data of the target point and the characteristic data of the characteristic point; The screen coordinates of the point and the screen coordinates of the feature point, as well as the feature data of the target point and the feature data of the feature point, determine the relative position of the target point and the feature point.
  • the server converts the first coordinate to the second coordinate, including: the server according to the relative position of the origin of the first coordinate system and the origin of the second coordinate system, and the relationship between the axis of the first coordinate system and the second coordinate system
  • the included angle of the axis converts the first coordinate to the second coordinate.
  • the origin of the first coordinate system coincides with the origin of the second coordinate system
  • a robot including a memory and a processor.
  • the memory is used to store information including program instructions.
  • the processor is used to control the execution of the program instructions. When the program instructions are loaded and executed by the processor, Make the robot execute the method described in the second aspect.
  • a sixth aspect of the embodiments of the present application provides a terminal, including a memory and a processor, the memory is used to store information including program instructions, the processor is used to control the execution of the program instructions, and when the program instructions are loaded and executed by the processor, The terminal is caused to execute the method described in the third aspect.
  • a server including a memory and a processor, the memory is used to store information including program instructions, and the processor is used to control the execution of the program instructions.
  • the server is caused to execute the method described in the fourth aspect.
  • An eighth aspect of the embodiments of the present application provides a control system.
  • the control system includes the robot described in the fifth aspect, the terminal described in the sixth aspect, and the server described in the seventh aspect.
  • the robot constructs two maps, the visual SLAM map and the laser SLAM map, and the robot or the server can learn the difference between the two maps. Conversion relationship. Then based on the user's selection in the image of the actual environment provided by the terminal, the server can learn the position of the target point selected by the user in the visual SLAM map, and based on the conversion relationship between the two maps, obtain the target point in the laser SLAM map Therefore, the robot can be conveniently controlled to move to the target point selected by the user based on the laser SLAM map.
  • the user does not need to select the target point on the electronic map with a low degree of restoration, but directly selects the target point on the interface of the terminal. Therefore, the user can accurately select the position where the robot wants to control the movement, so that the robot can accurately Move to the target point.
  • Figure 1 is a schematic diagram of an electronic map provided by the prior art
  • FIG. 2A is a schematic diagram of a control system provided by an embodiment of the application.
  • 2B is a schematic structural diagram of a robot provided by an embodiment of the application.
  • 2C is a software structure block diagram of a robot provided by an embodiment of this application.
  • FIG. 3 is a schematic diagram of selecting a target point through a terminal according to an embodiment of the application.
  • 4A is a schematic diagram of an image obtained by a terminal photographing an indoor environment according to an embodiment of the application.
  • 4B is a schematic diagram of feature points in an image obtained by a terminal photographing an indoor environment according to an embodiment of the application;
  • FIG. 5A is a flowchart of interaction between a robot, a terminal, and a server provided by an embodiment of this application;
  • FIG. 5B is a flowchart of another robot, terminal, and server interaction provided by an embodiment of the application.
  • FIG. 6 is a schematic diagram of the right-hand coordinate system and the ground provided by an embodiment of the application.
  • FIG. 7 is a schematic diagram of the positional relationship between the first coordinate system and the second coordinate system provided by an embodiment of the application.
  • FIG. 8 is a flowchart of a method for controlling a robot provided by an embodiment of the application.
  • Fig. 9 is a flowchart of a method for controlling a robot provided by an embodiment of the application.
  • At least one refers to one or more, and “multiple” refers to two or more.
  • “And/or” describes the association relationship of the associated objects, indicating that there can be three relationships, for example, A and/or B, which can mean: A alone exists, both A and B exist, and B exists alone, where A, B can be singular or plural.
  • the character “/” generally indicates that the associated objects are in an "or” relationship.
  • "The following at least one item (a)” or similar expressions refers to any combination of these items, including any combination of a single item (a) or plural items (a).
  • at least one item (a) of a, b, or c can represent: a, b, c, ab, ac, bc, or abc, where a, b, and c can be single or multiple .
  • an embodiment of the present application provides a control system, including a terminal 100, a server 200, and a robot 300.
  • the terminal 100 is also called user equipment (User Equipment, UE), which is a device that provides voice and/or data connectivity to users.
  • UE user equipment
  • UE user equipment
  • Common terminals include, for example, mobile phones, tablet computers, notebook computers, palmtop computers, and mobile Internet devices (MID).
  • the terminal 100 can control the robot 300 through the server 200.
  • the robot 300 can also be replaced with other electronic devices that have functions similar to those described in the embodiments of the present application and can be controlled by the terminal 100.
  • FIG. 2B shows a schematic structural diagram of the terminal 100.
  • the terminal 100 may include a processor 110, an external memory interface 120, an internal memory 121, a universal serial bus (USB) interface 130, a charging management module 140, a power management module 141, a battery 142, an antenna 1, an antenna 2, Mobile communication module 150, wireless communication module 160, audio module 170, speaker 170A, receiver 170B, microphone 170C, earphone interface 170D, sensor module 180, buttons 190, motor 191, indicator 192, camera 193, display screen 194, and user An identification module (subscriber identification module, SIM) card interface 195, etc.
  • SIM subscriber identification module
  • the sensor module 180 may include pressure sensor 180A, gyroscope sensor 180B, air pressure sensor 180C, magnetic sensor 180D, acceleration sensor 180E, distance sensor 180F, proximity light sensor 180G, fingerprint sensor 180H, temperature sensor 180J, touch sensor 180K, ambient light Sensor 180L, bone conduction sensor 180M, etc.
  • the structure illustrated in the embodiment of the present application does not constitute a specific limitation on the terminal 100.
  • the terminal 100 may include more or fewer components than shown, or combine certain components, or split certain components, or arrange different components.
  • the illustrated components can be implemented in hardware, software, or a combination of software and hardware.
  • the processor 110 may include one or more processing units.
  • the processor 110 may include an application processor (AP), a modem processor, a graphics processing unit (GPU), and an image signal processor. (image signal processor, ISP), controller, video codec, digital signal processor (digital signal processor, DSP), baseband processor, and/or neural-network processing unit (NPU), etc.
  • AP application processor
  • modem processor modem processor
  • GPU graphics processing unit
  • image signal processor image signal processor
  • ISP image signal processor
  • controller video codec
  • digital signal processor digital signal processor
  • DSP digital signal processor
  • NPU neural-network processing unit
  • the different processing units may be independent devices or integrated in one or more processors.
  • the controller can generate operation control signals according to the instruction operation code and timing signals to complete the control of fetching and executing instructions.
  • a memory may also be provided in the processor 110 to store instructions and data.
  • the memory in the processor 110 is a cache memory.
  • the memory can store instructions or data that have just been used or recycled by the processor 110. If the processor 110 needs to use the instruction or data again, it can be directly called from the memory. Repeated accesses are avoided, the waiting time of the processor 110 is reduced, and the efficiency of the system is improved.
  • the processor 110 may include one or more interfaces.
  • the interface may include an integrated circuit (inter-integrated circuit, I2C) interface, an integrated circuit built-in audio (inter-integrated circuit sound, I2S) interface, a pulse code modulation (pulse code modulation, PCM) interface, and a universal asynchronous transmitter (universal asynchronous transmitter) interface.
  • I2C integrated circuit
  • I2S integrated circuit built-in audio
  • PCM pulse code modulation
  • PCM pulse code modulation
  • UART universal asynchronous transmitter
  • MIPI mobile industry processor interface
  • GPIO general-purpose input/output
  • SIM subscriber identity module
  • USB Universal Serial Bus
  • the I2C interface is a two-way synchronous serial bus, including a serial data line (SDA) and a serial clock line (SCL).
  • the processor 110 may include multiple sets of I2C buses.
  • the processor 110 may be coupled to the touch sensor 180K, charger, flash, camera 193, etc. through different I2C bus interfaces.
  • the processor 110 may couple the touch sensor 180K through an I2C interface, so that the processor 110 and the touch sensor 180K communicate through the I2C bus interface to implement the touch function of the terminal 100.
  • the I2S interface can be used for audio communication.
  • the processor 110 may include multiple sets of I2S buses.
  • the processor 110 may be coupled with the audio module 170 through an I2S bus to realize communication between the processor 110 and the audio module 170.
  • the audio module 170 may transmit audio signals to the wireless communication module 160 through an I2S interface, so as to realize the function of answering calls through a Bluetooth headset.
  • the PCM interface can also be used for audio communication to sample, quantize and encode analog signals.
  • the audio module 170 and the wireless communication module 160 may be coupled through a PCM bus interface.
  • the audio module 170 may also transmit audio signals to the wireless communication module 160 through the PCM interface, so as to realize the function of answering calls through the Bluetooth headset. Both the I2S interface and the PCM interface can be used for audio communication.
  • the UART interface is a universal serial data bus used for asynchronous communication.
  • the bus can be a two-way communication bus. It converts the data to be transmitted between serial communication and parallel communication.
  • the UART interface is generally used to connect the processor 110 and the wireless communication module 160.
  • the processor 110 communicates with the Bluetooth module in the wireless communication module 160 through the UART interface to implement the Bluetooth function.
  • the audio module 170 may transmit audio signals to the wireless communication module 160 through a UART interface, so as to realize the function of playing music through a Bluetooth headset.
  • the MIPI interface can be used to connect the processor 110 with the display screen 194, the camera 193 and other peripheral devices.
  • the MIPI interface includes camera serial interface (camera serial interface, CSI), display serial interface (display serial interface, DSI), etc.
  • the processor 110 and the camera 193 communicate through a CSI interface to implement the shooting function of the terminal 100.
  • the processor 110 and the display screen 194 communicate through a DSI interface to realize the display function of the terminal 100.
  • the GPIO interface can be configured through software.
  • the GPIO interface can be configured as a control signal or as a data signal.
  • the GPIO interface can be used to connect the processor 110 with the camera 193, the display screen 194, the wireless communication module 160, the audio module 170, the sensor module 180, and so on.
  • GPIO interface can also be configured as I2C interface, I2S interface, UART interface, MIPI interface, etc.
  • the USB interface 130 is an interface that complies with the USB standard specification, and specifically may be a Mini USB interface, a Micro USB interface, a USB Type C interface, and so on.
  • the USB interface 130 can be used to connect a charger to charge the terminal 100, and can also be used to transfer data between the terminal 100 and peripheral devices. It can also be used to connect headphones and play audio through the headphones. This interface can also be used to connect other electronic devices, such as AR devices.
  • the interface connection relationship between the modules illustrated in the embodiment of the present application is merely a schematic description, and does not constitute a structural limitation of the terminal 100.
  • the terminal 100 may also adopt different interface connection modes in the foregoing embodiments, or a combination of multiple interface connection modes.
  • the charging management module 140 is used to receive charging input from the charger.
  • the charger can be a wireless charger or a wired charger.
  • the charging management module 140 may receive the charging input of the wired charger through the USB interface 130.
  • the charging management module 140 may receive the wireless charging input through the wireless charging coil of the terminal 100. While the charging management module 140 charges the battery 142, it can also supply power to the terminal 100 through the power management module 141.
  • the power management module 141 is used to connect the battery 142, the charging management module 140 and the processor 110.
  • the power management module 141 receives input from the battery 142 and/or the charging management module 140, and supplies power to the processor 110, the internal memory 121, the display screen 194, the camera 193, and the wireless communication module 160.
  • the power management module 141 can also be used to monitor parameters such as battery capacity, battery cycle times, and battery health status (leakage, impedance).
  • the power management module 141 may also be provided in the processor 110.
  • the power management module 141 and the charging management module 140 may also be provided in the same device.
  • the wireless communication function of the terminal 100 can be implemented by the antenna 1, the antenna 2, the mobile communication module 150, the wireless communication module 160, the modem processor, and the baseband processor.
  • the antenna 1 and the antenna 2 are used to transmit and receive electromagnetic wave signals.
  • Each antenna in the terminal 100 can be used to cover a single or multiple communication frequency bands. Different antennas can also be reused to improve antenna utilization.
  • antenna 1 can be multiplexed as a diversity antenna of a wireless local area network.
  • the antenna can be used in combination with a tuning switch.
  • the mobile communication module 150 can provide a wireless communication solution including 2G/3G/4G/5G and the like applied to the terminal 100.
  • the mobile communication module 150 may include at least one filter, switch, power amplifier, low noise amplifier (LNA), etc.
  • the mobile communication module 150 can receive electromagnetic waves by the antenna 1, and perform processing such as filtering, amplifying and transmitting the received electromagnetic waves to the modem processor for demodulation.
  • the mobile communication module 150 can also amplify the signal modulated by the modem processor, and convert it into electromagnetic waves for radiation via the antenna 1.
  • at least part of the functional modules of the mobile communication module 150 may be provided in the processor 110.
  • at least part of the functional modules of the mobile communication module 150 and at least part of the modules of the processor 110 may be provided in the same device.
  • the modem processor may include a modulator and a demodulator.
  • the modulator is used to modulate the low frequency baseband signal to be sent into a medium and high frequency signal.
  • the demodulator is used to demodulate the received electromagnetic wave signal into a low-frequency baseband signal. Then the demodulator transmits the demodulated low-frequency baseband signal to the baseband processor for processing.
  • the low-frequency baseband signal is processed by the baseband processor and then passed to the application processor.
  • the application processor outputs a sound signal through an audio device (not limited to the speaker 170A, the receiver 170B, etc.), or displays an image or video through the display screen 194.
  • the modem processor may be an independent device.
  • the modem processor may be independent of the processor 110 and be provided in the same device as the mobile communication module 150 or other functional modules.
  • the wireless communication module 160 can provide applications on the terminal 100, including wireless local area networks (WLAN) (such as wireless fidelity (Wi-Fi) networks), Bluetooth (BT), and global navigation satellite systems. (global navigation satellite system, GNSS), frequency modulation (FM), near field communication (NFC), infrared technology (infrared, IR) and other wireless communication solutions.
  • the wireless communication module 160 may be one or more devices integrating at least one communication processing module.
  • the wireless communication module 160 receives electromagnetic waves via the antenna 2, frequency modulates and filters the electromagnetic wave signals, and sends the processed signals to the processor 110.
  • the wireless communication module 160 can also receive the signal to be sent from the processor 110, perform frequency modulation, amplify it, and convert it into electromagnetic wave radiation via the antenna 2.
  • the antenna 1 of the terminal 100 is coupled with the mobile communication module 150, and the antenna 2 is coupled with the wireless communication module 160, so that the terminal 100 can communicate with the network and other devices through wireless communication technology.
  • the wireless communication technologies may include global system for mobile communications (GSM), general packet radio service (GPRS), code division multiple access (CDMA), broadband Code division multiple access (wideband code division multiple access, WCDMA), time-division code division multiple access (TD-SCDMA), long term evolution (LTE), BT, GNSS, WLAN, NFC , FM, and/or IR technology, etc.
  • the GNSS may include global positioning system (GPS), global navigation satellite system (GLONASS), Beidou navigation satellite system (BDS), quasi-zenith satellite system (quasi -zenith satellite system, QZSS) and/or satellite-based augmentation systems (SBAS).
  • GPS global positioning system
  • GLONASS global navigation satellite system
  • BDS Beidou navigation satellite system
  • QZSS quasi-zenith satellite system
  • SBAS satellite-based augmentation systems
  • the terminal 100 implements a display function through a GPU, a display screen 194, and an application processor.
  • the GPU is a microprocessor for image processing, connected to the display 194 and the application processor.
  • the GPU is used to perform mathematical and geometric calculations for graphics rendering.
  • the processor 110 may include one or more GPUs, which execute program instructions to generate or change display information.
  • the display screen 194 is used to display images, videos, etc.
  • the display screen 194 includes a display panel.
  • the display panel can adopt liquid crystal display (LCD), organic light-emitting diode (OLED), active-matrix organic light-emitting diode or active-matrix organic light-emitting diode (active-matrix organic light-emitting diode).
  • LCD liquid crystal display
  • OLED organic light-emitting diode
  • active-matrix organic light-emitting diode active-matrix organic light-emitting diode
  • AMOLED flexible light-emitting diode (FLED), Miniled, MicroLed, Micro-oLed, quantum dot light-emitting diode (QLED), etc.
  • the terminal 100 may include one or N display screens 194, and N is a positive integer greater than one.
  • the terminal 100 can realize a shooting function through an ISP, a camera 193, a video codec, a GPU, a display screen 194, and an application processor.
  • the ISP is used to process the data fed back from the camera 193. For example, when taking a picture, the shutter is opened, the light is transmitted to the photosensitive element of the camera through the lens, the light signal is converted into an electrical signal, and the photosensitive element of the camera transfers the electrical signal to the ISP for processing and is converted into an image visible to the naked eye.
  • ISP can also optimize the image noise, brightness, and skin color. ISP can also optimize the exposure, color temperature and other parameters of the shooting scene.
  • the ISP may be provided in the camera 193.
  • the camera 193 is used to capture still images or videos.
  • the object generates an optical image through the lens and projects it to the photosensitive element.
  • the photosensitive element may be a charge coupled device (CCD) or a complementary metal-oxide-semiconductor (CMOS) phototransistor.
  • CMOS complementary metal-oxide-semiconductor
  • the photosensitive element converts the optical signal into an electrical signal, and then transmits the electrical signal to the ISP to convert it into a digital image signal.
  • ISP outputs digital image signals to DSP for processing.
  • DSP converts digital image signals into standard RGB, YUV and other formats.
  • the terminal 100 may include 1 or N cameras 193, and N is a positive integer greater than 1.
  • Digital signal processors are used to process digital signals. In addition to digital image signals, they can also process other digital signals. For example, when the terminal 100 selects a frequency point, the digital signal processor is used to perform Fourier transform on the energy of the frequency point.
  • Video codecs are used to compress or decompress digital video.
  • the terminal 100 may support one or more video codecs.
  • the terminal 100 can play or record videos in multiple encoding formats, for example: moving picture experts group (MPEG) 1, MPEG2, MPEG3, MPEG4, and so on.
  • MPEG moving picture experts group
  • NPU is a neural-network (NN) computing processor.
  • NN neural-network
  • applications such as intelligent cognition of the terminal 100 can be implemented, such as image recognition, face recognition, voice recognition, text understanding, etc.
  • the external memory interface 120 may be used to connect an external memory card, such as a Micro SD card, to expand the storage capacity of the terminal 100.
  • the external memory card communicates with the processor 110 through the external memory interface 120 to realize the data storage function. For example, save music, video and other files in an external memory card.
  • the internal memory 121 may be used to store computer executable program code, where the executable program code includes instructions.
  • the internal memory 121 may include a storage program area and a storage data area.
  • the storage program area can store an operating system, at least one application program (such as a sound playback function, an image playback function, etc.) required by at least one function.
  • the data storage area can store data (such as audio data, phone book, etc.) created during the use of the terminal 100.
  • the internal memory 121 may include a high-speed random access memory, and may also include a non-volatile memory, such as at least one magnetic disk storage device, a flash memory device, a universal flash storage (UFS), etc.
  • the processor 110 executes various functional applications and data processing of the terminal 100 by running instructions stored in the internal memory 121 and/or instructions stored in a memory provided in the processor.
  • the terminal 100 can implement audio functions through the audio module 170, the speaker 170A, the receiver 170B, the microphone 170C, the earphone interface 170D, and the application processor. For example, music playback, recording, etc.
  • the audio module 170 is used to convert digital audio information into an analog audio signal for output, and is also used to convert an analog audio input into a digital audio signal.
  • the audio module 170 can also be used to encode and decode audio signals.
  • the audio module 170 may be provided in the processor 110, or part of the functional modules of the audio module 170 may be provided in the processor 110.
  • the speaker 170A also called a “speaker” is used to convert audio electrical signals into sound signals.
  • the terminal 100 can listen to music through the speaker 170A, or listen to a hands-free call.
  • the receiver 170B also called “earpiece” is used to convert audio electrical signals into sound signals.
  • the terminal 100 answers a call or voice message, it can receive the voice by bringing the receiver 170B close to the human ear.
  • the microphone 170C also called “microphone”, “microphone”, is used to convert sound signals into electrical signals.
  • the user can approach the microphone 170C through the mouth to make a sound, and input the sound signal to the microphone 170C.
  • the terminal 100 may be provided with at least one microphone 170C. In other embodiments, the terminal 100 may be provided with two microphones 170C, which can implement noise reduction functions in addition to collecting sound signals. In other embodiments, the terminal 100 may also be provided with three, four or more microphones 170C to collect sound signals, reduce noise, identify sound sources, and realize directional recording functions.
  • the earphone interface 170D is used to connect wired earphones.
  • the earphone interface 170D may be a USB interface 130, or a 3.5mm open mobile terminal platform (OMTP) standard interface, and a cellular telecommunications industry association (cellular telecommunications industry association of the USA, CTIA) standard interface.
  • OMTP open mobile terminal platform
  • CTIA cellular telecommunications industry association of the USA, CTIA
  • the pressure sensor 180A is used to sense the pressure signal and can convert the pressure signal into an electrical signal.
  • the pressure sensor 180A may be provided on the display screen 194. Pressure sensor 180A
  • the capacitive pressure sensor may include at least two parallel plates with conductive material.
  • the terminal 100 determines the intensity of the pressure according to the change in capacitance.
  • the terminal 100 detects the intensity of the touch operation according to the pressure sensor 180A.
  • the terminal 100 may also calculate the touched position according to the detection signal of the pressure sensor 180A.
  • touch operations that act on the same touch location but have different touch operation strengths may correspond to different operation instructions.
  • the gyro sensor 180B may be used to determine the movement posture of the terminal 100.
  • the angular velocity of the terminal 100 around three axes ie, x, y, and z axes
  • the gyro sensor 180B can be used for image stabilization.
  • the gyro sensor 180B detects the shake angle of the terminal 100, calculates the distance that the lens module needs to compensate according to the angle, and allows the lens to counteract the shake of the terminal 100 through a reverse movement to achieve anti-shake.
  • the gyro sensor 180B can also be used for navigation and somatosensory game scenes.
  • the air pressure sensor 180C is used to measure air pressure.
  • the terminal 100 calculates the altitude based on the air pressure value measured by the air pressure sensor 180C to assist positioning and navigation.
  • the magnetic sensor 180D includes a Hall sensor.
  • the terminal 100 may use the magnetic sensor 180D to detect the opening and closing of the flip holster.
  • the terminal 100 can detect the opening and closing of the flip according to the magnetic sensor 180D.
  • features such as automatic unlocking of the flip cover are set.
  • the acceleration sensor 180E can detect the magnitude of the acceleration of the terminal 100 in various directions (generally three axes). When the terminal 100 is stationary, the magnitude and direction of gravity can be detected. It can also be used to identify the posture of the terminal 100, and be used in applications such as horizontal and vertical screen switching, and pedometer.
  • the terminal 100 can measure the distance by infrared or laser. In some embodiments, when shooting a scene, the terminal 100 may use the distance sensor 180F to measure the distance to achieve fast focusing.
  • the proximity light sensor 180G may include, for example, a light emitting diode (LED) and a light detector such as a photodiode.
  • the light emitting diode may be an infrared light emitting diode.
  • the terminal 100 emits infrared light to the outside through the light emitting diode.
  • the terminal 100 uses a photodiode to detect infrared reflected light from nearby objects. When sufficient reflected light is detected, it can be determined that there is an object near the terminal 100. When insufficient reflected light is detected, the terminal 100 may determine that there is no object near the terminal 100.
  • the terminal 100 can use the proximity light sensor 180G to detect that the user holds the terminal 100 close to the ear to talk, so as to automatically turn off the screen to save power.
  • the proximity light sensor 180G can also be used in leather case mode, and the pocket mode will automatically unlock and lock the screen.
  • the ambient light sensor 180L is used to sense the brightness of the ambient light.
  • the terminal 100 can adjust the brightness of the display screen 194 automatically according to the perceived brightness of the ambient light.
  • the ambient light sensor 180L can also be used to automatically adjust the white balance when taking pictures.
  • the ambient light sensor 180L can also cooperate with the proximity light sensor 180G to detect whether the terminal 100 is in a pocket to prevent accidental touch.
  • the fingerprint sensor 180H is used to collect fingerprints.
  • the terminal 100 can use the collected fingerprint characteristics to realize fingerprint unlocking, access application locks, fingerprint photographs, fingerprint answering calls, and so on.
  • the temperature sensor 180J is used to detect temperature.
  • the terminal 100 uses the temperature detected by the temperature sensor 180J to execute a temperature processing strategy. For example, when the temperature reported by the temperature sensor 180J exceeds a threshold value, the terminal 100 executes to reduce the performance of the processor located near the temperature sensor 180J, so as to reduce power consumption and implement thermal protection.
  • the terminal 100 when the temperature is lower than another threshold, the terminal 100 heats the battery 142 to avoid abnormal shutdown of the terminal 100 due to low temperature.
  • the terminal 100 boosts the output voltage of the battery 142 to avoid abnormal shutdown caused by low temperature.
  • Touch sensor 180K also called “touch panel”.
  • the touch sensor 180K may be disposed on the display screen 194, and the touch screen is composed of the touch sensor 180K and the display screen 194, which is also called a “touch screen”.
  • the touch sensor 180K is used to detect touch operations acting on or near it.
  • the touch sensor can pass the detected touch operation to the application processor to determine the type of touch event.
  • the visual output related to the touch operation can be provided through the display screen 194.
  • the touch sensor 180K may also be disposed on the surface of the terminal 100, which is different from the position of the display screen 194.
  • the bone conduction sensor 180M can acquire vibration signals.
  • the bone conduction sensor 180M can obtain the vibration signal of the vibrating bone mass of the human voice.
  • the bone conduction sensor 180M can also contact the human pulse and receive the blood pressure pulse signal.
  • the bone conduction sensor 180M may also be provided in the earphone, combined with the bone conduction earphone.
  • the audio module 170 can parse the voice signal based on the vibration signal of the vibrating bone block of the voice obtained by the bone conduction sensor 180M, and realize the voice function.
  • the application processor may analyze the heart rate information based on the blood pressure beat signal obtained by the bone conduction sensor 180M, and realize the heart rate detection function.
  • the button 190 includes a power button, a volume button, and so on.
  • the button 190 may be a mechanical button. It can also be a touch button.
  • the terminal 100 may receive key input, and generate key signal input related to user settings and function control of the terminal 100.
  • the motor 191 can generate vibration prompts.
  • the motor 191 can be used for incoming call vibration notification, and can also be used for touch vibration feedback.
  • touch operations applied to different applications can correspond to different vibration feedback effects.
  • Acting on touch operations in different areas of the display screen 194, the motor 191 can also correspond to different vibration feedback effects.
  • Different application scenarios for example: time reminding, receiving information, alarm clock, games, etc.
  • the touch vibration feedback effect can also support customization.
  • the indicator 192 may be an indicator light, which may be used to indicate the charging status, power change, or to indicate messages, missed calls, notifications, and so on.
  • the SIM card interface 195 is used to connect to the SIM card.
  • the SIM card can be inserted into the SIM card interface 195 or pulled out from the SIM card interface 195 to achieve contact and separation with the terminal 100.
  • the terminal 100 may support 1 or N SIM card interfaces, and N is a positive integer greater than 1.
  • the SIM card interface 195 can support Nano SIM cards, Micro SIM cards, SIM cards, etc.
  • the same SIM card interface 195 can insert multiple cards at the same time. The types of the multiple cards can be the same or different.
  • the SIM card interface 195 can also be compatible with different types of SIM cards.
  • the SIM card interface 195 may also be compatible with external memory cards.
  • the terminal 100 interacts with the network through the SIM card to implement functions such as call and data communication.
  • the terminal 100 adopts an eSIM, that is, an embedded SIM card.
  • the eSIM card can be embedded in the terminal 100 and cannot be separated from the terminal 100.
  • the software system of the terminal 100 may adopt a layered architecture, an event-driven architecture, a microkernel architecture, a microservice architecture, or a cloud architecture.
  • the embodiment of the present application takes an Android system with a layered architecture as an example to illustrate the software structure of the terminal 100 by way of example.
  • FIG. 2C is a block diagram of the software structure of the terminal 100 according to an embodiment of the present application.
  • the layered architecture divides the software into several layers, and each layer has a clear role and division of labor. Communication between layers through software interface.
  • the Android system is divided into four layers, from top to bottom, the application layer, the application framework layer, the Android runtime and system library, and the kernel layer.
  • the application layer can include a series of application packages.
  • the application package may include applications such as camera, gallery, calendar, call, map, navigation, WLAN, Bluetooth, music, video, short message, etc.
  • the application framework layer provides application programming interfaces (application programming interface, API) and programming frameworks for applications in the application layer.
  • the application framework layer includes some predefined functions.
  • the application framework layer may include a window manager, a content provider, a view system, a phone manager, a resource manager, a notification manager, and so on.
  • the window manager is used to manage window programs.
  • the window manager can obtain the size of the display, determine whether there is a status bar, lock the screen, take a screenshot, etc.
  • the content provider is used to store and retrieve data and make these data accessible to applications.
  • the data may include video, image, audio, phone calls made and received, browsing history and bookmarks, phone book, etc.
  • the view system includes visual controls, such as controls that display text and controls that display pictures.
  • the view system can be used to build applications.
  • the display interface can be composed of one or more views.
  • a display interface that includes a short message notification icon may include a view that displays text and a view that displays pictures.
  • the phone manager is used to provide the communication function of the terminal 100. For example, the management of the call status (including connecting, hanging up, etc.).
  • the resource manager provides various resources for the application, such as localized strings, icons, pictures, layout files, video files, etc.
  • the notification manager enables the application to display notification information in the status bar, which can be used to convey notification-type messages, and it can disappear automatically after a short stay without user interaction.
  • the notification manager is used to notify the download completion, message reminder, etc.
  • the notification manager can also be a notification that appears in the status bar at the top of the system in the form of a chart or scroll bar text, such as a notification of an application running in the background, or a notification that appears on the screen in the form of a dialog window.
  • prompt text messages in the status bar sound prompts, robot vibrations, flashing lights, etc.
  • Android Runtime includes core libraries and virtual machines. Android runtime is responsible for the scheduling and management of the Android system.
  • the core library consists of two parts: one part is the function functions that the java language needs to call, and the other part is the core library of Android.
  • the application layer and the application framework layer run in a virtual machine.
  • the virtual machine executes the java files in the application layer and application framework layer as binary files.
  • the virtual machine is used to perform functions such as object life cycle management, stack management, thread management, security and exception management, and garbage collection.
  • the system library can include multiple functional modules. For example: surface manager (surface manager), media library (Media Libraries), three-dimensional graphics processing library (for example: OpenGL ES), 2D graphics engine (for example: SGL), etc.
  • the surface manager is used to manage the display subsystem and provides a combination of 2D and 3D layers for multiple applications.
  • the media library supports playback and recording of a variety of commonly used audio and video formats, as well as still image files.
  • the media library can support multiple audio and video encoding formats, such as: MPEG4, H.264, MP3, AAC, AMR, JPG, PNG, etc.
  • the 3D graphics processing library is used to realize 3D graphics drawing, image rendering, synthesis, and layer processing.
  • the 2D graphics engine is a drawing engine for 2D drawing.
  • the kernel layer is the layer between hardware and software.
  • the kernel layer contains at least display driver, camera driver, audio driver, and sensor driver.
  • the corresponding hardware interrupt is sent to the kernel layer.
  • the kernel layer processes the touch operation into the original input event (including touch coordinates (in the embodiment of the present application), the time stamp of the touch operation, etc.).
  • the original input events are stored in the kernel layer.
  • the application framework layer obtains the original input event from the kernel layer, and identifies the control corresponding to the input event. Taking the touch operation as a touch click operation, and the control corresponding to the click operation is the control of the camera application icon as an example, the camera application calls the interface of the application framework layer to start the camera application, and then starts the camera driver by calling the kernel layer.
  • the camera 193 captures still images or videos.
  • the user can use the terminal to download an APP for controlling the robot.
  • the APP associates the terminal with the robot, and uploads the association relationship to the server.
  • the server stores the association relationship between the terminal and the robot.
  • a robot can be associated with one terminal, or with two or more terminals. For example, if A purchases the robot R1, the server stores the association relationship between A's mobile phone and the robot R1, so that when A opens the APP of his mobile phone, he can control the movement of the robot R1. For another example, someone buys a robot R2 and gives it to B.
  • B associates all 3 people’s mobile phones with robot R2, so that when any one of the 3 people in B’s family opens the app on their mobile phone, Able to control the movement of the robot R2.
  • the robot By associating the terminal with the robot and storing the association relationship between the terminal and the robot, the robot can be controlled by the terminal associated with the robot.
  • the robot After the user purchases the robot, he puts the robot in an indoor environment, for example, in his own home, and turns on the robot, and the robot will construct a laser SLAM map and a visual SLAM map of the indoor environment.
  • Simultaneous Localization And Mapping usually refers to a system that collects and calculates various sensor data on a robot or other carrier to generate its own position and posture positioning and scene map information .
  • SLAM technology is critical to the action and interaction capabilities of robots or other agents, because it represents the basis of this ability: knowing where you are, knowing the surrounding environment, and knowing how to act autonomously next. It has a wide range of applications in areas such as autonomous driving, service robots, unmanned aerial vehicles, AR/VR, etc. It can be said that all agents with certain mobility have some form of SLAM system.
  • SLAM systems usually contain multiple sensors and multiple functional modules.
  • the current common robot SLAM system generally has two forms: SLAM based on lidar (laser SLAM) and SLAM based on vision (Visual SLAM, VSLAM or visual SLAM).
  • Laser SLAM was born out of early ranging-based positioning methods (such as ultrasonic and infrared single-point ranging).
  • the emergence and popularization of lidar makes the measurement faster and more accurate, and the information is richer.
  • the object information collected by lidar presents a series of scattered points with accurate angle and distance information, which are called point clouds.
  • the laser SLAM system calculates the relative movement distance and posture change of the lidar by matching and comparing two point clouds at different times, thus completing the positioning of the robot itself.
  • Lidar distance measurement is more accurate, the error model is simple, it runs stably in environments other than direct sunlight, and it is easier to process point clouds.
  • the point cloud information itself contains direct geometric relationships, making the path planning and navigation of the robot intuitive.
  • Eyes are the main source of information from the outside world.
  • Visual SLAM also has similar characteristics. It can obtain massive and redundant texture information from the environment and has super-strong scene recognition capabilities.
  • the early visual SLAM was based on filtering theory, and its nonlinear error model and huge amount of calculation became obstacles to its practical implementation. In recent years, with the sparse nonlinear optimization theory (Bundle Adjustment) and the advancement of camera technology and computing performance, visual SLAM running in real time is no longer a dream.
  • a visual SLAM system consists of a front end and a back end.
  • the front end is responsible for calculating the robot's pose through visual incremental, which is faster.
  • the back end is mainly responsible for two functions: one is when a loop occurs (that is, when the robot is determined to have returned to the place it has visited before), the loop is found and the position and posture of the two visits are corrected; the other is when the front end tracking is lost , Reposition the robot according to the visual texture information. Simply put, the front end is responsible for fast positioning, and the back end is responsible for slower map maintenance.
  • the robot after the robot constructs the laser SLAM map and the visual SLAM map of the indoor environment, it transmits the constructed visual SLAM map to the server, and the server receives and stores the visual SLAM map.
  • the user is in an indoor space and wants to control the movement of the robot through the terminal.
  • the robot can be a sweeping robot, and the user wants to control the sweeping robot to move to a certain position in a certain room through the terminal to clean. , For the convenience of description, this position is called the target point.
  • the user’s terminal downloads the APP for controlling the robot
  • the user opens the terminal’s APP
  • the APP calls the terminal’s camera. See Figure 3.
  • the user can tilt the terminal at an appropriate angle so that The camera can collect images containing the target point, and the current image captured by the camera is displayed on the terminal interface.
  • the user touches a point on the terminal interface with a finger to select the target point.
  • the contact point between the user's finger and the terminal screen is called the touch point. Take a screenshot of the current interface to get the target image frame.
  • the touch point is a point on the screen of the terminal
  • the target point is the position the user wants the robot to move to.
  • the terminal can be adjusted to tilt or rotate to adjust the direction of the terminal’s camera, Or change the touch point on the screen, etc.
  • the target point in the image that is, in the indoor three-dimensional space
  • Figure 4A shows the target image frame obtained by the mobile phone taking a screenshot of the current interface.
  • point A is the touch point.
  • the terminal uses a preset feature extraction algorithm to extract feature points in the target image frame, for example, point B1, point B2, ..., point B9 are the extracted feature points, and the terminal determines the screen coordinates of the feature point.
  • the preset feature extraction algorithm may be a SIFT algorithm or the like.
  • SIFT or Scale-invariant Feature Transform (SIFT)
  • SIFT Scale-invariant Feature Transform
  • the first coordinate system is the projected coordinate system of the coordinate system of the visual SLAM map on the horizontal plane
  • the second coordinate system is the coordinate system of the laser SLAM map
  • both the first coordinate system and the second coordinate system are two-dimensional coordinate systems.
  • the terminal uploads the screen coordinates of the feature point and the target point, and the feature data of the feature point and the target point to the server; it can also upload the data of the target image frame to the server.
  • the server determines the relative position of the target point and each feature point according to the feature data of each feature point and the target point, and finds the coordinates of these feature points from the visual SLAM map according to the feature data of each feature point; and based on the target point and each feature The relative position of the point, the coordinates of the target point in the visual SLAM map are obtained. That is, the first coordinate of the target point in the first coordinate system is acquired.
  • the server converts the coordinates of the target point in the first coordinate system into the coordinates of the target point in the second coordinate system.
  • the server sends the coordinates of the target point in the second coordinate system to the sweeping robot, and the sweeping robot plans the movement path according to the coordinates of the target point in the second coordinate system and the coordinates of its current position in the second coordinate system.
  • the movement path moves to the target point, and then the position of the target point is cleaned.
  • the robot control method provided by the embodiment of the present application involves the interaction between the terminal, the server, and the robot.
  • the control method of the robot shown in FIG. 5A includes the following steps S1 to S10.
  • the robot control method shown in FIG. 5B includes the following steps S1-S4, steps S5'-S7', and steps S8-S10.
  • Figure 5A is described in detail below.
  • Step S1 The robot constructs a visual SLAM map and a laser SLAM map.
  • the process of the robot constructing the laser SLAM map includes step S400 to step S403.
  • Lidar is installed in the robot, which can emit laser light and receive the laser light reflected by obstacles.
  • the obstacles refer to objects placed indoors and generally stationary.
  • Step S400 Predetermine the origin and coordinate system of the laser SLAM map to be created.
  • the selection rule of the origin may be set before the factory. Wherein, the origin may be, for example, the position of the charging pile of the robot.
  • Step S401 When the robot is moving indoors, the lidar continuously emits laser light, and the laser light is reflected by the obstacle point before being received by the lidar.
  • the obstacle point refers to a point in the obstacle.
  • the laser is usually fired to a point in the obstacle.
  • Step S402 the robot determines the direction of the obstacle point according to the orientation of the lidar; and determines the distance between the obstacle point and the robot according to the length of time from when the laser is emitted to when the laser is received.
  • the robot can obtain the coordinates of its current location based on its own sensors. In this way, based on the length of the laser round trip, the distance between the obstacle point and the current position of the robot can be determined; the distance between the obstacle point and the origin can also be determined.
  • Step S403 The robot can obtain the direction of each obstacle point and the distance between each obstacle point and the origin by moving indoors and continuously emitting laser, and then the robot can create based on the direction of the obstacle point and the distance between the obstacle point and the origin Laser SLAM map.
  • the process of the robot constructing the visual SLAM map includes steps S501 to S505.
  • a camera is installed in the robot to take pictures of the surrounding environment.
  • Step S501 Predetermine the origin and coordinate system of the visual SLAM map to be created.
  • the selection rule of the origin may be set before the factory. Wherein, the origin may be, for example, the position of the charging pile of the robot.
  • Step S502 the robot moves indoors and takes pictures of the surrounding environment through the camera. Among them, after the origin and coordinate system are determined, during the movement of the robot, the robot can obtain the coordinates of its current location based on its own sensors.
  • Step S503 The robot extracts feature points of the captured image according to a preset feature extraction algorithm, and obtains the positions of these feature points relative to the robot.
  • the preset feature extraction algorithm may be a SIFT algorithm or the like.
  • SIFT Scale-invariant Feature Transform
  • This description is scale-invariant, and key points can be detected in the image.
  • Step S504 The robot calculates the coordinates of the feature point in the coordinate system of the visual SLAM map according to the position of the feature point relative to the robot and the current coordinate of the robot in the coordinate system of the visual SLAM map.
  • Step S505 The robot draws a visual SLAM map based on the coordinates in the coordinate system of the visual SLAM map by moving indoors and continuously acquiring the coordinates of the surrounding feature points.
  • the first coordinate system is the projected coordinate system of the coordinate system of the visual SLAM map on the horizontal plane.
  • the abscissa of the point in the visual SLAM map is the same as the point in the first coordinate.
  • the abscissa of the system is the same; and the ordinate of the point in the visual SLAM map is the same as the ordinate of the point in the first coordinate system.
  • the second coordinate system is the coordinate system of the laser SLAM map.
  • the abscissa of the point in the laser SLAM map is the same as the abscissa of the point in the second coordinate system; and the point is in the laser SLAM
  • the ordinate in the map is the same as the ordinate of the point in the second coordinate system.
  • the laser SLAM map can be used to correct the visual SLAM map.
  • the abscissa X 0 and ordinate Y 0 of a point in the visual SLAM map (for convenience of description, the point is called point B)
  • the abscissa and ordinate of the point are determined in the laser SLAM map, respectively X 0 ', Y 0 '
  • the coordinates of the point in the visual SLAM map can be corrected according to the coordinates of the point in the laser SLAM map.
  • K1 and K2 are constants, and the values of K1 and K2 can be equal or unequal.
  • both K1 and K2 can be set to 1/2.
  • the horizontal coordinate in the SLAM map is X 0 ', and the vertical coordinate is Y 0 '.
  • Step S2 The robot uploads the visual SLAM map to the server.
  • Step S3 The robot uploads the relative position of the origin of the first coordinate system and the origin of the second coordinate system, and the angle between the axial direction of the first coordinate system and the axial direction of the second coordinate system to the server.
  • the relative position of the two origins can be known. If the coordinates of the origin of the first coordinate system in the second coordinate system are known, or the coordinates of the origin of the second coordinate system in the first coordinate system are known, the relative positions of the two origins can also be known. In step S3, the robot uploads the relative position of the origin of the first coordinate system and the origin of the second coordinate system to the server.
  • the server uploads the following information to the server: the distance between the origin of the first coordinate system and the origin of the second coordinate system Distance, and the direction of one origin relative to another origin; or, the coordinates of the origin of the first coordinate system in the second coordinate system, or the coordinates of the origin of the second coordinate system in the first coordinate system.
  • the origin of the first coordinate system and the origin of the second coordinate system may or may not coincide.
  • the formula for calculating the second coordinate based on the first coordinate is more complicated when the two origins do not overlap.
  • the robot only needs to upload the angle between the axial direction of the first coordinate system and the axial direction of the second coordinate system to the server.
  • the angle between the axial direction of the first coordinate system and the axial direction of the second coordinate system specifically refers to the angle between the horizontal axis of the first coordinate system and the horizontal axis of the second coordinate system, or, the first coordinate system The angle between the vertical axis of and the vertical axis of the second coordinate system.
  • the included angle lies between [0, ⁇ ].
  • xOy represents the first coordinate system
  • x'Oy' represents the second coordinate system
  • is the axial angle between the two coordinate systems.
  • Step S4 The terminal displays a visual interface.
  • the user can open an APP installed on the terminal for controlling the robot.
  • the APP calls the camera of the terminal to take an image of the current environment and provides a visual interface for the user.
  • the user can see the indoor environment in the image taken by the camera, for example, the user can see the sofa, desk, chair, bookcase, etc. in the image taken by the camera. If the user wants the robot to move to a certain position in front of the sofa, the position in front of the sofa is the target point; if the user wants the robot to move to a certain position beside the bookcase, the position beside the bookcase is the target point.
  • Step S5 The terminal receives the user's touch operation, takes a screenshot of the interface to obtain the target image frame, extracts the feature points in the target image frame, and determines the feature data of each feature point and the relative position of the target point and each feature point. Generally speaking, the number of extracted feature points is greater than 2.
  • the terminal takes a screenshot of the interface displayed on the screen to obtain the target image frame, and the terminal extracts the characteristic points in the target image frame.
  • Figure 4B shows some of the extracted characteristic points (for example, point B1, point B2, ..., point B9) .
  • the terminal determines the relative position of the target point and each feature point.
  • the feature extraction algorithm used by the terminal to extract feature points in the target image frame in step S5 is the same as the feature extraction algorithm used when the robot constructs the SLAM map.
  • Step S6 The terminal uploads the characteristic data of each characteristic point and the relative position of the target point and each characteristic point to the server.
  • Step S7 The server finds the coordinates of these characteristic points from the visual SLAM map according to the characteristic data of each characteristic point; and obtains the coordinates of the target point in the visual SLAM map based on the relative position of the target point and each characteristic point. That is, the coordinates of the target point in the first coordinate system are acquired. For the convenience of description, the coordinates are called the first coordinates.
  • the server receives the feature data of the feature points uploaded by the terminal, searches for the corresponding feature points in the visual SLAM map stored by itself, and determines the coordinates of the feature points in the visual SLAM map.
  • the coordinates of the feature points in the visual SLAM map can be three-dimensional coordinates.
  • the coordinates of the three dimensions are: abscissa, ordinate, and vertical.
  • the abscissa is taken as the abscissa of the target point in the first coordinate system
  • the ordinate is taken as the ordinate of the target point in the first coordinate system.
  • the coordinates of the target point in the first coordinate system are determined according to the coordinates of the characteristic point in the first coordinate system and the relative position of the characteristic point and the target point, that is, the first coordinate is determined.
  • Step S8 The server converts the first coordinate into the second coordinate according to the relative position of the origin of the first coordinate system and the second coordinate system, and the angle between the axial direction of the first coordinate system and the axial direction of the second coordinate system.
  • xOy represents the first coordinate system
  • x'Oy' represents the second coordinate system
  • the angle between the horizontal axis of the first coordinate system and the horizontal axis of the second coordinate system is ⁇ , in the first coordinate system
  • the coordinates of point A in the first coordinate system are (X, Y)
  • the coordinates in the second coordinate system are (X′, Y′)
  • the distance between the origin O of the system is r
  • the angle between the line segment OA and the horizontal axis of the first coordinate system is ⁇ .
  • the coordinates (X', Y') of the target point in the second coordinate system can be calculated.
  • The angle between the horizontal axis of the first coordinate system and the horizontal axis of the second coordinate system is ⁇ , the positive direction of the horizontal axis of the first coordinate system is determined by the fixed parameters of the camera, and the positive direction of the horizontal axis of the second coordinate system Determined by the fixed parameters of the lidar.
  • is determined and is a fixed constant. ⁇ can be deduced from the coordinates of the same point in the first coordinate system and the coordinates in the second coordinate system.
  • the method of deducing ⁇ will be introduced in detail below. Determine a point (for the convenience of description, call this point C), make the robot move to point C, and check the coordinates of the robot in the first coordinate system and the second coordinate system. Assume that the coordinates in the first coordinate system are (X 1 , Y 1 ), the coordinates in the second coordinate system are (X 1 ′, Y 1 ′), that is, the coordinates of point C in the first coordinate system are (X 1 , Y 1 ), point C The coordinates in the second coordinate system are (X 1 ′, Y 1 ′).
  • the first coordinate system is the coordinate system of the projection of the visual SLAM coordinate system on the horizontal plane. Therefore, there is also cumulative error in the first coordinate system. The more inaccurate the coordinates of the point. Therefore, by selecting a position close to the origin (for example, the distance between the point C and the origin is within 30 cm), the obtained coordinates of the robot in the first coordinate system are more accurate, and the ⁇ calculated accordingly is also more accurate.
  • Step S9 The server sends the second coordinates to the robot.
  • the second coordinate is the coordinate of the target point in the laser SLAM map.
  • Step S10 the robot determines the movement path according to the second coordinates, and moves to the target point according to the movement path.
  • the robot knows the coordinates of its current position in the second coordinate system, and also knows the coordinates of the target point in the second coordinate system, determines the motion path according to the laser SLAM map, and moves to the target point according to the motion path.
  • Steps S1-S4 in the robot control method shown in FIG. 5B are the same as steps S1-S4 shown in FIG. 5A. After step S4, the method further includes the following steps S5'-S7'.
  • Step S5' The terminal receives the user's touch operation, and takes a screenshot of the interface to obtain the target image frame.
  • the terminal takes a screenshot of the interface displayed on the screen to obtain the target image frame.
  • Step S6' The terminal uploads the target image frame to the server.
  • Step S7' The server extracts feature points from the target image frame, determines the feature data of each feature point, determines the relative position of the target point and each feature point, and finds these features from the visual SLAM map based on the feature data of each feature point.
  • the coordinates of the point; and based on the relative position of the target point and each feature point, the coordinates of the target point in the visual SLAM map are obtained. That is, the coordinates of the target point in the first coordinate system are acquired. For the convenience of description, the coordinates are called the first coordinates.
  • FIG. 4B shows some extracted feature points (for example, point B1, point B2, ..., point B9).
  • the server receives the feature data of the feature points uploaded by the terminal, searches for the corresponding feature points in the visual SLAM map stored by itself, and determines the coordinates of the feature points in the visual SLAM map.
  • the coordinates of the feature points in the visual SLAM map can be three-dimensional coordinates.
  • the coordinates of the three dimensions are: abscissa, ordinate, and vertical.
  • the abscissa is taken as the abscissa of the target point in the first coordinate system
  • the ordinate is taken as the ordinate of the target point in the first coordinate system.
  • the coordinates of the target point in the first coordinate system are determined according to the coordinates of the characteristic point in the first coordinate system and the relative position of the characteristic point and the target point, that is, the first coordinate is determined.
  • the robot control method shown in FIG. 5B further includes steps S8-S10.
  • the steps S8-S10 included in the robot control method shown in FIG. 5B are the same as the steps S8-S10 shown in FIG. 5A.
  • the user does not need to select the target point on the electronic map with a low degree of restoration, but directly selects the target point on the interface of the terminal. Therefore, the user can accurately select the position where the robot wants to control the movement. So the robot can accurately move to the target point.
  • the terminal extracts the feature points from the target image frame, and then uploads the feature data of the feature points to the server instead of uploading the target image frame to the server.
  • the advantage of this method is that the server The target image frame cannot be deduced based on the data of the feature points, thereby effectively protecting user privacy.
  • the terminal uploads the target image frame to the server, and the server extracts the feature points in the target image frame.
  • the advantage of this method is that the calculation amount of the terminal is effectively reduced, and the occupation of the calculation resources of the terminal is reduced, so that the configuration requirements of the terminal are lower.
  • the computing power of the server is much stronger than that of the terminal, the computing speed in this way is faster, so the robot responds faster.
  • FIG. 8 shows a flowchart of a control method for executing a robot provided by an embodiment of the application.
  • the embodiment shown in FIG. 8 is described by taking mobile phones and robot cleaners as examples, and the control method of this application can also be applied to other terminals except mobile phones and robot cleaners, for example, a tablet computer. Control mopping robots or control other movable equipment.
  • the first part mainly includes that after the user purchases the cleaning robot, before using the cleaning robot to clean, it is necessary to download an APP for controlling the cleaning robot on the mobile phone and associate the mobile phone with the cleaning robot, specifically including steps S101 to S103.
  • Step S101 The user opens the APP installed on the mobile phone for controlling the sweeping robot.
  • Step S102 The user associates the mobile phone with the sweeping robot on the APP, and the mobile phone uploads the association relationship to the server.
  • the purpose of associating the mobile phone with the cleaning robot is to make the cleaning robot be controlled by the specific terminal associated with it.
  • Step S103 The server receives the association relationship between the mobile phone and the cleaning robot uploaded by the mobile phone, and stores the association relationship.
  • the second part mainly includes the construction of laser SLAM maps and visual SLAM maps for the indoor environment by the sweeping robot.
  • the server stores the visual SLAM maps uploaded by the sweeping robot, which specifically includes steps S201 to S206.
  • Step S201 The sweeping robot separately establishes a laser SLAM map and a visual SLAM map of the indoor environment.
  • Step S202 The sweeping robot uploads the visual SLAM map to the server.
  • Step S203 The cleaning robot uploads the coordinates (X 1 , Y 1 ) in the first coordinate system and the coordinates (X 1 ′, Y 1 ′) in the second coordinate system of the same point in the indoor environment to the server.
  • Step S204 The server receives the visual SLAM map uploaded by the cleaning robot, and associates the visual SLAM map with the cleaning robot.
  • Step S205 The server receives the coordinates (X 1 , Y 1 ) in the first coordinate system and the coordinates (X 1 ′, Y 1 ′) in the second coordinate system of the same point uploaded by the cleaning robot.
  • the first coordinate system is the projected coordinate system of the coordinate system of the visual SLAM map on the horizontal plane
  • the second coordinate system is the coordinate system of the laser SLAM map.
  • Step S206 The server calculates the horizontal axis of the first coordinate system and the coordinates (X 1 ′, Y 1 ′) of the same point in the first coordinate system (X 1 , Y 1 ) and the coordinates (X 1 ′, Y 1 ′) in the second coordinate system.
  • the included angle ⁇ between the horizontal axes of the second coordinate system, and the included angle ⁇ is associated with the sweeping robot.
  • the angle between the horizontal axis of the first coordinate system and the horizontal axis of the second coordinate system is ⁇ .
  • the positive direction of the horizontal axis of the first coordinate system is determined by the fixed parameters of the camera.
  • the positive direction of the horizontal axis is determined by the fixed parameters of the lidar.
  • the purpose of associating the included angle ⁇ with the cleaning robot is to make the server know which included angle ⁇ converts the first coordinate into the second coordinate.
  • the mobile phone P1 and the cleaning robot R1 have an associated relationship; the mobile phone P2 and the cleaning robot R2 have an associated relationship; the mobile phone P3 and the cleaning robot R3 have an associated relationship, as shown in Table 2, the cleaning robot R1 and the included angle ⁇ 1 has an associated relationship; the cleaning robot R2 has an associated relationship with the included angle ⁇ 2; the cleaning robot R3 has an associated relationship with an included angle ⁇ 3.
  • the server stores the above-mentioned association relationship.
  • the server When the server receives the screen coordinates of the feature point and the screen coordinates of the target point uploaded by the mobile phone P1, it searches for the association relationship stored by itself, and knows that the mobile phone P1 and the cleaning robot R1 have an association relationship. R1 and the included angle ⁇ 1 have an associated relationship. In the process of calculating the second coordinate, ⁇ 1 is substituted into formula (7), (8), or formula (9).
  • the server When the server receives the screen coordinates of the feature points uploaded by the mobile phone P3 and the screen coordinates of the target point, it searches for the stored association relationship, and knows that the mobile phone P3 has an association relationship with the cleaning robot R3, and the cleaning robot R3 has an association relationship with the included angle ⁇ 3 In the process of calculating the second coordinate, ⁇ 3 is substituted into formula (7), (8), or formula (9).
  • the third part mainly includes the user using the mobile phone to control the sweeping robot to move to the target point for cleaning, specifically including step S301 to step S316.
  • Step S301 After the robot is associated with the terminal, when the user wants to use the cleaning robot to clean, for example, the user wants the cleaning robot to move to the target point to clean the location of the target point.
  • the user opens the APP on the mobile phone, and the APP calls the mobile phone camera.
  • Step S302 The camera of the mobile phone collects an image of the current environment, and displays the image on the screen of the mobile phone.
  • Step S303 The user selects the target point by touching the screen.
  • the user touches a certain point on the phone screen (the point is the touch point).
  • the user can tilt the phone at an appropriate angle so that the camera can capture images containing the target point.
  • the current image captured by the camera is displayed on the phone interface.
  • the user touches a certain point on the phone interface to select the target point. Among them, the contact point between the user's finger and the mobile phone screen is called the touch point.
  • the mobile phone can obtain the target point in the actual scene that the user wants to select through the position of the touch point and the current tilt angle of the mobile phone.
  • Step S304 The mobile phone takes a screenshot of the current screen interface, and the obtained screenshot is the aforementioned target image frame.
  • Step S305 the mobile phone extracts N feature points in the target image frame.
  • N is a natural number greater than 1.
  • Step S306 the mobile phone separately determines the feature data of the N feature points and the relative positions of the target point and the N feature points.
  • Step S307 the mobile phone uploads the feature data of the N feature points and the relative positions of the target point and the N feature points to the server.
  • Step S308 The server receives the feature data of the N feature points and the relative positions of the target point and the N feature points uploaded by the mobile phone.
  • the mobile phone can also just upload the target image frame to the server, and the server extracts the characteristic data of the characteristic point, and calculates the relative position between the target point and the characteristic point.
  • Step S309 The server finds the coordinates of the N feature points from the visual SLAM map according to the feature data of the N feature points.
  • the coordinates of the N feature points refer to the coordinates of the N feature points in the first coordinate system.
  • Step S310 The server determines the coordinates (X, Y) of the target point in the first coordinate system according to the coordinates of the N feature points and the relative positions of the target point and the N feature points.
  • Step S312 The server sends the second coordinates (X', Y') to the cleaning robot.
  • Step S313 The cleaning robot receives the second coordinates (X', Y') sent by the server.
  • Step S314 The sweeping robot determines the coordinates of its current position in the second coordinate system.
  • Step S315 the cleaning robot plans a movement path according to the second coordinates (X′, Y′) and the coordinates of the current position of the cleaning robot in the second coordinate system.
  • Step S316 the sweeping robot controls itself to move to the target point according to the planned movement path.
  • the first coordinate is calculated according to the coordinates (X 1 , Y 1 ) of the same point in the first coordinate system and the coordinates (X 1 ′, Y 1 ′) in the second coordinate system.
  • the angle ⁇ between the horizontal axis of the system and the horizontal axis of the second coordinate system.
  • This step can also be completed by the sweeping robot.
  • the sweeping robot calculates the distance between the horizontal axis of the first coordinate system and the horizontal axis of the second coordinate system.
  • the included angle ⁇ is uploaded to the server, and the server can directly associate the included angle ⁇ with the sweeping robot and use it in the process of converting the first coordinate into the second coordinate.
  • the user does not need to select the target point on the electronic map with a low degree of restoration, but directly selects the target point on the interface of the terminal. Therefore, the user can accurately select the position where the robot wants to control the movement. So the robot can accurately move to the target point.
  • a robot control method provided by an embodiment of the present application involves interaction between a mobile phone, a server, and a cleaning robot, and includes the following steps S901 to S907.
  • the sweeping robot collects environmental information and constructs a laser SLAM map and a visual SLAM map.
  • S902 The sweeping robot uploads the visual SLAM map to the server.
  • S903 The mobile phone takes a screenshot of the current interface to obtain a target image frame, and extracts feature points in the target image frame.
  • the user can tilt the phone at an appropriate angle so that the camera can capture images containing the target point.
  • the current image captured by the camera is displayed on the phone interface.
  • the user touches a certain point on the phone interface to select the target point. Among them, the contact point between the user's finger and the mobile phone screen is called the touch point.
  • the mobile phone can obtain the target point in the actual scene that the user wants to select through the position of the touch point and the current tilt angle of the mobile phone.
  • the mobile phone takes a screenshot of the current interface to obtain the target image frame.
  • the mobile phone extracts the feature points in the target image frame, and determines the feature data of each feature point and the relative position of the target point and each feature point.
  • S904 The mobile phone uploads the characteristic data of each characteristic point and the relative position of the target point and each characteristic point to the server.
  • S905 The server calculates the coordinates of the target point in the first coordinate system, and converts the coordinates of the target point in the first coordinate system into the coordinates of the target point in the second coordinate system.
  • the server finds the coordinates of each feature point from the visual SLAM map according to the feature data of each feature point.
  • the coordinates of each feature point refer to the coordinates of each feature point in the first coordinate system.
  • S906 The server delivers the coordinates of the target point in the second coordinate system to the cleaning robot.
  • S907 The cleaning robot plans a movement path according to the coordinates of the target point in the second coordinate system and the coordinates of its current position in the second coordinate system, and autonomously moves to the target point.
  • the embodiments of the present application also provide a computer-readable storage medium in which a computer program is stored, and when the computer program is run on a computer, the computer executes the communication method described in the foregoing embodiment.
  • embodiments of the present application also provide a computer program product, which includes a computer program, which when running on a computer, causes the computer to execute the communication method described in the foregoing embodiment.
  • the computer program product includes one or more computer instructions.
  • the computer may be a general-purpose computer, a special-purpose computer, a computer network, or other programmable devices.
  • the computer instructions may be stored in a computer-readable storage medium or transmitted from one computer-readable storage medium to another computer-readable storage medium. For example, the computer instructions may be transmitted from a website, computer, server, or data center.
  • the computer-readable storage medium may be any available medium that can be accessed by a computer or a data storage device such as a server or a data center integrated with one or more available media.
  • the usable medium may be a magnetic medium (for example, a floppy disk, a hard disk, and a magnetic tape), an optical medium (for example, a DVD), or a semiconductor medium (for example, a solid state disk).

Landscapes

  • User Interface Of Digital Computer (AREA)
  • Control Of Position, Course, Altitude, Or Attitude Of Moving Bodies (AREA)
  • Manipulator (AREA)

Abstract

A robot (300) control method, the robot (300), a terminal (100), a server (200), and a control system. The control method comprises: the robot (300) uploads to the server (200) the coordination conversion relation between a first coordinate system and a second coordinate system and a visual SLAM map; the terminal (100) uploads a target image frame and feature data of a target point to the server (200); the server (200) determines coordinates of the target point in the first coordinate system according to the target image frame, the feature data of the target point, and the visual SLAM map; the server (200) converts the first coordinates of the target point in the first coordinate system into second coordinates of the target point in the second coordinate system, and the server (200) sends the second coordinates to the robot (300); the robot (300) receives the second coordinates, determines a movement path according to the second coordinates and coordinates of the current location of the robot (300) in the second coordinate system, and moves to the target point according to the movement path. A user can precisely select a position to which the robot (300) is expected to move, so that the robot (300) can accurately moves to the target point.

Description

机器人的控制方法、机器人、终端、服务器及控制系统Robot control method, robot, terminal, server and control system
本申请要求于2019年07月24日提交中国专利局、申请号为“201910673025.0”、申请名称为“机器人的控制方法、机器人、终端、服务器及控制系统”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。This application claims the priority of the Chinese patent application filed with the Chinese Patent Office on July 24, 2019, with the application number "201910673025.0" and the application name "Robot control method, robot, terminal, server and control system", all of which The content is incorporated in this application by reference.
技术领域Technical field
本申请涉及人工智能技术领域,具体涉及一种机器人的控制方法、机器人、终端、服务器及控制系统。This application relates to the field of artificial intelligence technology, and in particular to a robot control method, robot, terminal, server and control system.
背景技术Background technique
目前家用扫地机器人越来越普及,用户需要给机器人下发指令任务,控制机器人清扫指定区域等。At present, household sweeping robots are becoming more and more popular, and users need to issue instructions to the robots and control the robots to clean designated areas.
目前主流的控制方式有两种,一种通过遥控器来实现,用户按遥控器的上、下、左、右键控制机器人运动到指定目标。这种控制方式扫地机必须在人的视野范围内,而扫地机处于工作状态时满屋跑,此方式使用体验会差。At present, there are two mainstream control methods. One is realized by a remote control. The user presses the up, down, left, and right buttons of the remote control to control the robot to move to a specified target. The sweeper of this control mode must be within the human's field of vision, and the sweeper runs across the house when it is working, and the experience of using this method will be poor.
另一种是用户通过手机APP中绘制的电子地图(如图1所示)人工选取目标点并下发给扫地机。主要的交互操作依赖SLAM(Simultaneous Localization and Mapping,即时定位与建图)技术生成的电子地图。所绘制的电子地图还原度还很低,人工在地图上选目标点时误差较大(米级),从而机器人无法准确运动到目标点。The other is that the user manually selects the target point through the electronic map drawn in the mobile APP (as shown in Figure 1) and sends it to the sweeper. The main interactive operation relies on the electronic map generated by SLAM (Simultaneous Localization and Mapping, real-time positioning and mapping) technology. The reproduction of the drawn electronic map is still very low, and the error when manually selecting the target point on the map is large (meter level), so that the robot cannot accurately move to the target point.
申请内容Application content
本申请实施例提供了一种机器人的控制方法、机器人、终端、服务器及控制系统,以控制机器人准确运动到目标点。The embodiments of the present application provide a robot control method, robot, terminal, server, and control system to control the robot to accurately move to a target point.
本申请实施例的第一方面,提供了一种机器人的控制方法。该方法应用于机器人、终端、服务器组成的系统。其中,机器人携带了摄像头和激光雷达。该方法包括:机器人通过自身携带的摄像头创建视觉SLAM地图,通过自身携带的激光雷达创建激光SLAM地图,将视觉SLAM地图的坐标系在水平面上的投影坐标系作为第一坐标系,将激光SLAM地图的坐标系作为第二坐标系,机器人向服务器上传第一坐标系与第二坐标系的坐标转换关系以及视觉SLAM地图;终端截取当前的界面得到目标图像帧,终端提取目标点的特征数据,并将目标图像帧和目标点的特征数据上传到服务器;服务器接收目标图像帧、目标点的特征数据,并根据目标图像帧、目标点的特征数据和视觉SLAM地图确定目标点在第一坐标系中的坐标;服务器将目标点在第一坐标系中的第一坐标转换为目标点在第二坐标系中的第二坐标,服务器向机器人发送第二坐标;机器人接收第二坐标,并根据第二坐标与机器人当前所处位置在第二坐标系中的坐标确定运动路径并按照运动路径向目标点运动。The first aspect of the embodiments of the present application provides a method for controlling a robot. This method is applied to a system composed of robots, terminals, and servers. Among them, the robot carries a camera and lidar. The method includes: the robot creates a visual SLAM map through its own camera, creates a laser SLAM map through its own lidar, takes the coordinate system of the visual SLAM map on the horizontal plane as the first coordinate system, and uses the laser SLAM map As the second coordinate system, the robot uploads the coordinate conversion relationship between the first coordinate system and the second coordinate system and the visual SLAM map to the server; the terminal intercepts the current interface to obtain the target image frame, and the terminal extracts the characteristic data of the target point, and Upload the target image frame and the characteristic data of the target point to the server; the server receives the target image frame, the characteristic data of the target point, and determines the target point in the first coordinate system according to the target image frame, the characteristic data of the target point and the visual SLAM map The server converts the first coordinate of the target point in the first coordinate system into the second coordinate of the target point in the second coordinate system, and the server sends the second coordinate to the robot; the robot receives the second coordinate, and according to the second coordinate The coordinates and the coordinates of the current position of the robot in the second coordinate system determine the motion path and move to the target point according to the motion path.
在本申请实施例中,用户不需要在还原度很低的电子地图上选择目标点,而是直接在终端的界面上选择目标点,因此,用户能够精确选择想要控制机器人运动到的位置,从而机器人能够准确运动到目标点。In the embodiment of this application, the user does not need to select the target point on the electronic map with a low degree of restoration, but directly selects the target point on the interface of the terminal. Therefore, the user can accurately select the position where the robot wants to control the movement. So the robot can accurately move to the target point.
可选的,第一坐标系的原点与第二坐标系的原点可以重合,也可以不重合。在第一坐标系的原点与第二坐标系的原点不重合的情况下,两个坐标系之间的坐标转换关系比较复杂;在第一坐标系的原点与第二坐标系的原点重合的情况下,两个坐标系之间的坐标转换关系比较简单。如果第一坐标系的原点与第二坐标系的原点不重合,则坐标转换关系包括第一坐标系的轴向与第二坐标系的轴向的夹角、第一坐标系的原点与第二坐标系的原点的相对位置。如果第一坐标系的原点与第二坐标系的原点重合,则坐标转换关系包括同一点分别在第一坐标系和第二坐标系中的坐标,或,第一坐标系的轴向与第二坐标系的轴向的夹角。在第一坐标系的原点与第二坐标系的原点重合的情况下,服务器可以根据以下公式将第一坐标转换为第二坐标:X'=X*cos(θ)-Y*sin(θ),Y'=X*sin(θ)+Y*cos(θ);其中,(X',Y')表示第二坐标,(X,Y)表示第一坐标,θ表示第一坐标系的轴向与第二坐标系的轴向的夹角。第一坐标系的轴向与第二坐标系的轴向的夹角θ满足以下公式:θ=arccos[(X 1X 1′+Y 1Y 1′)/(X 1 2+Y 1 2)],其中,(X 1,Y 1)、(X 1',Y 1')分别表示同一点在第一坐标系中的坐标和在第二坐标系中的坐标。 Optionally, the origin of the first coordinate system and the origin of the second coordinate system may or may not overlap. In the case where the origin of the first coordinate system does not coincide with the origin of the second coordinate system, the coordinate conversion relationship between the two coordinate systems is more complicated; in the case where the origin of the first coordinate system coincides with the origin of the second coordinate system Below, the coordinate conversion relationship between the two coordinate systems is relatively simple. If the origin of the first coordinate system does not coincide with the origin of the second coordinate system, the coordinate conversion relationship includes the angle between the axial direction of the first coordinate system and the axial direction of the second coordinate system, the origin of the first coordinate system and the second coordinate system. The relative position of the origin of the coordinate system. If the origin of the first coordinate system coincides with the origin of the second coordinate system, the coordinate conversion relationship includes the coordinates of the same point in the first coordinate system and the second coordinate system, or the axial direction of the first coordinate system and the second coordinate system The axial angle of the coordinate system. In the case where the origin of the first coordinate system coincides with the origin of the second coordinate system, the server can convert the first coordinate into the second coordinate according to the following formula: X'=X*cos(θ)-Y*sin(θ) , Y'=X*sin(θ)+Y*cos(θ); where (X',Y') represents the second coordinate, (X,Y) represents the first coordinate, and θ represents the axis of the first coordinate system The angle between the axis and the axis of the second coordinate system. The angle θ between the axial direction of the first coordinate system and the axial direction of the second coordinate system satisfies the following formula: θ=arccos[(X 1 X 1 ′+Y 1 Y 1 ′)/(X 1 2 +Y 1 2 ) ], where (X 1 , Y 1 ) and (X 1 ', Y 1 ') respectively represent the coordinates of the same point in the first coordinate system and the coordinates in the second coordinate system.
可选的,夹角θ可以在机器人出厂之前测算出来,也可以在机器人到达用户手中之后再测算。具体地,在机器人出厂之前,机器人对某一个环境构建激光SLAM地图和视觉SLAM地图。地图构建完成之后,使机器人运动到某一点,查看机器人在第一坐标系中的坐标(X 1,Y 1)和第二坐标系中的坐标(X 1',Y 1'),根据公式:θ=arccos[(X 1X 1′+Y 1Y 1′)/(X 1 2+Y 1 2)]计算夹角θ。或者,也可以在机器人出厂之前不测算θ,等机器人达到用户手中后再测算。用户将机器人带回家后,机器人对室内环境构建激光SLAM地图和视觉SLAM地图。地图构建完成之后,使机器人运动到室内某一点,查看机器人在第一坐标系中的坐标(X 1,Y 1)和第二坐标系中的坐标(X 1',Y 1'),根据公式:θ=arccos[(X 1X 1′+Y 1Y 1′)/(X 1 2+Y 1 2)]计算夹角θ。 Optionally, the included angle θ can be measured before the robot leaves the factory, or can be measured after the robot reaches the user's hands. Specifically, before the robot leaves the factory, the robot constructs a laser SLAM map and a visual SLAM map for a certain environment. After the map is constructed, move the robot to a certain point, and check the coordinates of the robot in the first coordinate system (X 1 , Y 1 ) and the coordinates (X 1 ', Y 1 ') in the second coordinate system, according to the formula: θ=arccos[(X 1 X 1 ′+Y 1 Y 1 ′)/(X 1 2 +Y 1 2 )] Calculate the included angle θ. Or, it is also possible not to measure θ before the robot leaves the factory, and wait for the robot to reach the user's hands before measuring. After the user takes the robot home, the robot constructs a laser SLAM map and a visual SLAM map of the indoor environment. After the map is constructed, make the robot move to a certain point in the room, check the coordinates of the robot in the first coordinate system (X 1 , Y 1 ) and the coordinates (X 1 ', Y 1 ') in the second coordinate system, according to the formula :Θ=arccos[(X 1 X 1 ′+Y 1 Y 1 ′)/(X 1 2 +Y 1 2 )] Calculate the included angle θ.
本申请实施例的第二方面,提供了一种机器人的控制方法,该方法应用于包括摄像头和激光雷达的机器人,方法包括:机器人通过摄像头创建视觉SLAM地图,通过激光雷达创建激光SLAM地图;机器人向服务器上传第一坐标系与第二坐标系的坐标转换关系;其中,第一坐标系为视觉SLAM地图的坐标系在水平面上的投影坐标系,第二坐标系为激光SLAM地图的坐标系;机器人向服务器上传视觉SLAM地图;机器人接收服务器基于视觉SLAM地图、以及第一坐标系与第二坐标系的坐标转换关系得到的第二坐标,第二坐标为目标点在第二坐标系中的坐标;机器人根据第二坐标与机器人当前所处位置在第二坐标系中的坐标确定运动路径;机器人按照运动路径向目标点运动。A second aspect of the embodiments of the present application provides a method for controlling a robot, which is applied to a robot including a camera and a lidar. The method includes: the robot creates a visual SLAM map through the camera and a laser SLAM map through the lidar; Upload the coordinate conversion relationship between the first coordinate system and the second coordinate system to the server; where the first coordinate system is the projected coordinate system of the visual SLAM map on the horizontal plane, and the second coordinate system is the coordinate system of the laser SLAM map; The robot uploads the visual SLAM map to the server; the robot receives the second coordinates obtained by the server based on the visual SLAM map and the coordinate conversion relationship between the first coordinate system and the second coordinate system. The second coordinates are the coordinates of the target point in the second coordinate system ; The robot determines the movement path according to the second coordinates and the coordinates of the current position of the robot in the second coordinate system; the robot moves to the target point according to the movement path.
其中,如果第一坐标系的原点与第二坐标系的原点不重合,则坐标转换关系包括第一坐标系的轴向与第二坐标系的轴向的夹角、第一坐标系的原点与第二坐标系的原点的相对位置。Among them, if the origin of the first coordinate system does not coincide with the origin of the second coordinate system, the coordinate conversion relationship includes the angle between the axial direction of the first coordinate system and the axial direction of the second coordinate system, and the origin of the first coordinate system and The relative position of the origin of the second coordinate system.
其中,如果第一坐标系的原点与第二坐标系的原点重合,则坐标转换关系包括同一点分别在第一坐标系和第二坐标系中的坐标,或,第一坐标系的轴向与第二坐标系的轴 向的夹角。第一坐标系的轴向与第二坐标系的轴向的夹角θ满足以下公式:θ=arccos[(X 1X 1′+Y 1Y 1′)/(X 1 2+Y 1 2)],其中,(X 1,Y 1)、(X 1',Y 1')分别表示同一点在第一坐标系中的坐标和在第二坐标系中的坐标。 Wherein, if the origin of the first coordinate system coincides with the origin of the second coordinate system, the coordinate conversion relationship includes the coordinates of the same point in the first coordinate system and the second coordinate system, or the axial direction of the first coordinate system and The axial angle of the second coordinate system. The angle θ between the axial direction of the first coordinate system and the axial direction of the second coordinate system satisfies the following formula: θ=arccos[(X 1 X 1 ′+Y 1 Y 1 ′)/(X 1 2 +Y 1 2 ) ], where (X 1 , Y 1 ) and (X 1 ', Y 1 ') respectively represent the coordinates of the same point in the first coordinate system and the coordinates in the second coordinate system.
本申请实施例的第三方面,提供了一种机器人的控制方法,应用于终端,方法包括:终端接收用户的触摸操作;终端截取当前的界面,得到目标图像帧;终端确定目标点的特征数据;终端向服务器上传目标图像帧以及目标点的特征数据。The third aspect of the embodiments of the present application provides a robot control method, which is applied to a terminal. The method includes: the terminal receives a user's touch operation; the terminal intercepts the current interface to obtain the target image frame; the terminal determines the characteristic data of the target point ; The terminal uploads the target image frame and the characteristic data of the target point to the server.
可选的,该机器人的控制方法还包括:终端根据预设特征提取算法从目标图像帧中提取特征点;终端确定特征点的特征数据;终端向服务器上传特征点的特征数据。Optionally, the control method of the robot further includes: the terminal extracts feature points from the target image frame according to a preset feature extraction algorithm; the terminal determines the feature data of the feature points; and the terminal uploads the feature data of the feature points to the server.
可选的,该机器人的控制方法还包括:终端确定目标点的屏幕坐标和特征点的屏幕坐标;终端根据目标点的屏幕坐标和特征点的屏幕坐标,以及目标点的特征数据和特征点的特征数据,确定目标点与特征点的相对位置;终端向服务器上传目标点与特征点的相对位置。Optionally, the control method of the robot further includes: the terminal determines the screen coordinates of the target point and the screen coordinates of the feature point; the terminal according to the screen coordinates of the target point and the screen coordinates of the feature point, and the feature data of the target point and the feature point The characteristic data determines the relative position of the target point and the characteristic point; the terminal uploads the relative position of the target point and the characteristic point to the server.
本申请实施例的第四方面,提供了一种机器人的控制方法,应用于服务器,方法包括:服务器接收机器人发送的视觉SLAM地图;服务器接收机器人发送的第一坐标系与第二坐标系的坐标转换关系;其中,第一坐标系为视觉SLAM地图的坐标系在水平面上的投影坐标系,第二坐标系为机器人获取到的激光SLAM地图的坐标系;视觉SLAM地图和激光SLAM地图为机器人在相同的环境中创建的;服务器接收终端上传的目标图像帧和目标点的特征数据;服务器根据目标图像帧、目标点的特征数据和视觉SLAM地图确定目标点在第一坐标系中的第一坐标;服务器将第一坐标转换为第二坐标,第二坐标为目标点在第二坐标系中的坐标;服务器向机器人发送第二坐标。The fourth aspect of the embodiments of the present application provides a robot control method, which is applied to a server. The method includes: the server receives the visual SLAM map sent by the robot; the server receives the coordinates of the first coordinate system and the second coordinate system sent by the robot Conversion relationship; where the first coordinate system is the projected coordinate system of the visual SLAM map on the horizontal plane, and the second coordinate system is the coordinate system of the laser SLAM map acquired by the robot; the visual SLAM map and the laser SLAM map are the robot’s Created in the same environment; the server receives the target image frame and the characteristic data of the target point uploaded by the terminal; the server determines the first coordinate of the target point in the first coordinate system according to the target image frame, the characteristic data of the target point and the visual SLAM map ; The server converts the first coordinate into the second coordinate, and the second coordinate is the coordinate of the target point in the second coordinate system; the server sends the second coordinate to the robot.
可选的,服务器根据目标图像帧、目标点的特征数据和视觉SLAM地图确定目标点在第一坐标系中的第一坐标,包括:服务器获取目标图像帧中的特征点的特征数据;服务器将特征点的特征数据与视觉SLAM地图中的特征数据进行匹配,确定特征点在第一坐标系中的坐标;服务器确定目标点与特征点的相对位置;服务器根据特征点在第一坐标系中的坐标、目标点与特征点的相对位置确定目标点在第一坐标系中的第一坐标。Optionally, the server determines the first coordinate of the target point in the first coordinate system according to the target image frame, the characteristic data of the target point and the visual SLAM map, including: the server obtains the characteristic data of the characteristic point in the target image frame; The feature data of the feature point is matched with the feature data in the visual SLAM map to determine the coordinate of the feature point in the first coordinate system; the server determines the relative position of the target point and the feature point; the server determines the position of the feature point in the first coordinate system The coordinates, the relative position of the target point and the characteristic point determine the first coordinate of the target point in the first coordinate system.
可选的,服务器确定目标点与特征点的相对位置,包括:服务器接收终端上传的目标点的屏幕坐标和特征点的屏幕坐标,以及目标点的特征数据和特征点的特征数据;服务器根据目标点的屏幕坐标和特征点的屏幕坐标,以及目标点的特征数据和特征点的特征数据,确定目标点与特征点的相对位置。Optionally, the server determines the relative position of the target point and the characteristic point, including: the server receives the screen coordinates of the target point and the screen coordinates of the characteristic point uploaded by the terminal, and the characteristic data of the target point and the characteristic data of the characteristic point; The screen coordinates of the point and the screen coordinates of the feature point, as well as the feature data of the target point and the feature data of the feature point, determine the relative position of the target point and the feature point.
可选的,服务器将第一坐标转换为第二坐标,包括:服务器根据第一坐标系的原点与第二坐标系的原点的相对位置、以及第一坐标系的轴向与第二坐标系的轴向的夹角,将第一坐标转换为第二坐标。Optionally, the server converts the first coordinate to the second coordinate, including: the server according to the relative position of the origin of the first coordinate system and the origin of the second coordinate system, and the relationship between the axis of the first coordinate system and the second coordinate system The included angle of the axis converts the first coordinate to the second coordinate.
可选的,第一坐标系的原点与第二坐标系的原点重合,第一坐标和第二坐标满足以下公式:X'=X*cos(θ)-Y*sin(θ),Y'=X*sin(θ)+Y*cos(θ);其中,(X',Y')表示第二坐标,(X,Y)表示第一坐标,θ表示第一坐标系的轴向与第二坐标系的轴向的夹角。θ由以下公式确定:θ=arccos[(X 1X 1′+Y 1Y 1′)/(X 1 2+Y 1 2)],其中,(X 1,Y 1)、(X 1',Y 1')分别表示同一点在第一坐标系中的坐标和在第二坐标系中的坐标。 Optionally, the origin of the first coordinate system coincides with the origin of the second coordinate system, and the first coordinate and the second coordinate satisfy the following formula: X'=X*cos(θ)-Y*sin(θ), Y'= X*sin(θ)+Y*cos(θ); where (X',Y') represents the second coordinate, (X,Y) represents the first coordinate, and θ represents the axis of the first coordinate system and the second The axial angle of the coordinate system. θ is determined by the following formula: θ=arccos[(X 1 X 1 ′+Y 1 Y 1 ′)/(X 1 2 +Y 1 2 )], where (X 1 ,Y 1 ), (X 1 ', Y 1 ') respectively represent the coordinates of the same point in the first coordinate system and the coordinates in the second coordinate system.
本申请实施例的第五方面,提供了一种机器人,包括存储器和处理器,存储器用于 存储包括程序指令的信息,处理器用于控制程序指令的执行,程序指令被处理器加载并执行时,使得机器人执行第二方面所述的方法。In a fifth aspect of the embodiments of the present application, a robot is provided, including a memory and a processor. The memory is used to store information including program instructions. The processor is used to control the execution of the program instructions. When the program instructions are loaded and executed by the processor, Make the robot execute the method described in the second aspect.
本申请实施例的第六方面,提供了一种终端,包括存储器和处理器,存储器用于存储包括程序指令的信息,处理器用于控制程序指令的执行,程序指令被处理器加载并执行时,使得终端执行第三方面所述的方法。A sixth aspect of the embodiments of the present application provides a terminal, including a memory and a processor, the memory is used to store information including program instructions, the processor is used to control the execution of the program instructions, and when the program instructions are loaded and executed by the processor, The terminal is caused to execute the method described in the third aspect.
本申请实施例的第七方面,提供了一种服务器,包括存储器和处理器,存储器用于存储包括程序指令的信息,处理器用于控制程序指令的执行,程序指令被处理器加载并执行时,使得服务器执行第四方面所述的方法。In a seventh aspect of the embodiments of the present application, a server is provided, including a memory and a processor, the memory is used to store information including program instructions, and the processor is used to control the execution of the program instructions. When the program instructions are loaded and executed by the processor, The server is caused to execute the method described in the fourth aspect.
本申请实施例的第八方面,提供了一种控制系统,控制系统包括第五方面所述的机器人、第六方面所述的终端、第七方面所述的服务器。An eighth aspect of the embodiments of the present application provides a control system. The control system includes the robot described in the fifth aspect, the terminal described in the sixth aspect, and the server described in the seventh aspect.
创建视觉SLAM地图,通过自身携带的激光雷达创建激光SLAM地图,在本申请实施例中,机器人构建视觉SLAM地图和激光SLAM地图这两个地图,并且机器人或者服务器可以获知这两个地图之间的转换关系。然后基于用户在终端提供的实际环境的图像中的选择,服务器可以获知用户选择的目标点在视觉SLAM地图中的位置,并基于两个地图之间的转换关系,得到目标点在激光SLAM地图中的位置,从而可以方便的控制机器人基于激光SLAM地图运动到用户选择的目标点。由此,用户不需要在还原度很低的电子地图上选择目标点,而是直接在终端的界面上选择目标点,因此,用户能够精确选择想要控制机器人运动到的位置,从而机器人能够准确运动到目标点。Create a visual SLAM map, and create a laser SLAM map through the lidar carried by itself. In the embodiment of this application, the robot constructs two maps, the visual SLAM map and the laser SLAM map, and the robot or the server can learn the difference between the two maps. Conversion relationship. Then based on the user's selection in the image of the actual environment provided by the terminal, the server can learn the position of the target point selected by the user in the visual SLAM map, and based on the conversion relationship between the two maps, obtain the target point in the laser SLAM map Therefore, the robot can be conveniently controlled to move to the target point selected by the user based on the laser SLAM map. Therefore, the user does not need to select the target point on the electronic map with a low degree of restoration, but directly selects the target point on the interface of the terminal. Therefore, the user can accurately select the position where the robot wants to control the movement, so that the robot can accurately Move to the target point.
附图说明Description of the drawings
图1为现有技术提供的一种电子地图的示意图;Figure 1 is a schematic diagram of an electronic map provided by the prior art;
图2A为本申请实施例提供的一种控制系统的示意图;2A is a schematic diagram of a control system provided by an embodiment of the application;
图2B为本申请实施例提供的一种机器人的结构示意图;2B is a schematic structural diagram of a robot provided by an embodiment of the application;
图2C为本申请实施例提供的一种机器人的软件结构框图;2C is a software structure block diagram of a robot provided by an embodiment of this application;
图3为本申请实施例提供的一种通过终端选择目标点的示意图;3 is a schematic diagram of selecting a target point through a terminal according to an embodiment of the application;
图4A为本申请实施例提供的终端拍摄室内环境得到的图像的示意图;4A is a schematic diagram of an image obtained by a terminal photographing an indoor environment according to an embodiment of the application;
图4B为本申请实施例提供的终端拍摄室内环境得到的图像中的特征点的示意图;4B is a schematic diagram of feature points in an image obtained by a terminal photographing an indoor environment according to an embodiment of the application;
图5A为本申请实施例提供的一种机器人、终端、服务器交互的流程图;FIG. 5A is a flowchart of interaction between a robot, a terminal, and a server provided by an embodiment of this application;
图5B为本申请实施例提供的另一种机器人、终端、服务器交互的流程图;FIG. 5B is a flowchart of another robot, terminal, and server interaction provided by an embodiment of the application;
图6为本申请实施例提供的右手坐标系和地面的示意图;6 is a schematic diagram of the right-hand coordinate system and the ground provided by an embodiment of the application;
图7为本申请实施例提供的第一坐标系与第二坐标系的位置关系的示意图;FIG. 7 is a schematic diagram of the positional relationship between the first coordinate system and the second coordinate system provided by an embodiment of the application;
图8为本申请实施例提供的一种机器人的控制方法的流程图;FIG. 8 is a flowchart of a method for controlling a robot provided by an embodiment of the application;
图9为本申请实施例提供的一种机器人的控制方法的流程图。Fig. 9 is a flowchart of a method for controlling a robot provided by an embodiment of the application.
具体实施方式Detailed ways
本申请的实施方式部分使用的术语仅用于对本申请的具体实施例进行解释,而非旨在限定本申请。The terminology used in the implementation mode of this application is only used to explain the specific embodiments of this application, and is not intended to limit this application.
本申请中,“至少一个”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独 存在A,同时存在A和B,单独存在B的情况,其中A,B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指的这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b,或c中的至少一项(个),可以表示:a,b,c,a-b,a-c,b-c,或a-b-c,其中a,b,c可以是单个,也可以是多个。In this application, "at least one" refers to one or more, and "multiple" refers to two or more. "And/or" describes the association relationship of the associated objects, indicating that there can be three relationships, for example, A and/or B, which can mean: A alone exists, both A and B exist, and B exists alone, where A, B can be singular or plural. The character "/" generally indicates that the associated objects are in an "or" relationship. "The following at least one item (a)" or similar expressions refers to any combination of these items, including any combination of a single item (a) or plural items (a). For example, at least one item (a) of a, b, or c can represent: a, b, c, ab, ac, bc, or abc, where a, b, and c can be single or multiple .
请参见图2A,本申请实施例提供了一种控制系统,包括终端100、服务器200、机器人300。Referring to FIG. 2A, an embodiment of the present application provides a control system, including a terminal 100, a server 200, and a robot 300.
终端100又称为用户设备(User Equipment,UE),是一种向用户提供语音和/或数据连通性的设备。例如,具有无线连接功能的手持式设备、车载设备等。常见的终端包括例如:手机、平板电脑、笔记本电脑、掌上电脑、移动互联网设备(mobile internet device,MID)等。终端100能够通过服务器200控制机器人300。其中机器人300也可以被替换为具有与本申请实施例中描述的机器人类似的功能,能够被终端100控制的其它电子设备。The terminal 100 is also called user equipment (User Equipment, UE), which is a device that provides voice and/or data connectivity to users. For example, handheld devices with wireless connectivity, vehicle-mounted devices, etc. Common terminals include, for example, mobile phones, tablet computers, notebook computers, palmtop computers, and mobile Internet devices (MID). The terminal 100 can control the robot 300 through the server 200. The robot 300 can also be replaced with other electronic devices that have functions similar to those described in the embodiments of the present application and can be controlled by the terminal 100.
图2B示出了终端100的结构示意图。FIG. 2B shows a schematic structural diagram of the terminal 100.
终端100可以包括处理器110,外部存储器接口120,内部存储器121,通用串行总线(universal serial bus,USB)接口130,充电管理模块140,电源管理模块141,电池142,天线1,天线2,移动通信模块150,无线通信模块160,音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,传感器模块180,按键190,马达191,指示器192,摄像头193,显示屏194,以及用户标识模块(subscriber identification module,SIM)卡接口195等。其中传感器模块180可以包括压力传感器180A,陀螺仪传感器180B,气压传感器180C,磁传感器180D,加速度传感器180E,距离传感器180F,接近光传感器180G,指纹传感器180H,温度传感器180J,触摸传感器180K,环境光传感器180L,骨传导传感器180M等。The terminal 100 may include a processor 110, an external memory interface 120, an internal memory 121, a universal serial bus (USB) interface 130, a charging management module 140, a power management module 141, a battery 142, an antenna 1, an antenna 2, Mobile communication module 150, wireless communication module 160, audio module 170, speaker 170A, receiver 170B, microphone 170C, earphone interface 170D, sensor module 180, buttons 190, motor 191, indicator 192, camera 193, display screen 194, and user An identification module (subscriber identification module, SIM) card interface 195, etc. The sensor module 180 may include pressure sensor 180A, gyroscope sensor 180B, air pressure sensor 180C, magnetic sensor 180D, acceleration sensor 180E, distance sensor 180F, proximity light sensor 180G, fingerprint sensor 180H, temperature sensor 180J, touch sensor 180K, ambient light Sensor 180L, bone conduction sensor 180M, etc.
可以理解的是,本申请实施例示意的结构并不构成对终端100的具体限定。在本申请另一些实施例中,终端100可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。It is understandable that the structure illustrated in the embodiment of the present application does not constitute a specific limitation on the terminal 100. In other embodiments of the present application, the terminal 100 may include more or fewer components than shown, or combine certain components, or split certain components, or arrange different components. The illustrated components can be implemented in hardware, software, or a combination of software and hardware.
处理器110可以包括一个或多个处理单元,例如:处理器110可以包括应用处理器(application processor,AP),调制解调处理器,图形处理器(graphics processing unit,GPU),图像信号处理器(image signal processor,ISP),控制器,视频编解码器,数字信号处理器(digital signal processor,DSP),基带处理器,和/或神经网络处理器(neural-network processing unit,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。The processor 110 may include one or more processing units. For example, the processor 110 may include an application processor (AP), a modem processor, a graphics processing unit (GPU), and an image signal processor. (image signal processor, ISP), controller, video codec, digital signal processor (digital signal processor, DSP), baseband processor, and/or neural-network processing unit (NPU), etc. Among them, the different processing units may be independent devices or integrated in one or more processors.
控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。The controller can generate operation control signals according to the instruction operation code and timing signals to complete the control of fetching and executing instructions.
处理器110中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器110中的存储器为高速缓冲存储器。该存储器可以保存处理器110刚用过或循环使用的指令或数据。如果处理器110需要再次使用该指令或数据,可从所述存储器中直接调用。 避免了重复存取,减少了处理器110的等待时间,因而提高了系统的效率。A memory may also be provided in the processor 110 to store instructions and data. In some embodiments, the memory in the processor 110 is a cache memory. The memory can store instructions or data that have just been used or recycled by the processor 110. If the processor 110 needs to use the instruction or data again, it can be directly called from the memory. Repeated accesses are avoided, the waiting time of the processor 110 is reduced, and the efficiency of the system is improved.
在一些实施例中,处理器110可以包括一个或多个接口。接口可以包括集成电路(inter-integrated circuit,I2C)接口,集成电路内置音频(inter-integrated circuit sound,I2S)接口,脉冲编码调制(pulse code modulation,PCM)接口,通用异步收发传输器(universal asynchronous receiver/transmitter,UART)接口,移动产业处理器接口(mobile industry processor interface,MIPI),通用输入输出(general-purpose input/output,GPIO)接口,用户标识模块(subscriber identity module,SIM)接口,和/或通用串行总线(universal serial bus,USB)接口等。In some embodiments, the processor 110 may include one or more interfaces. The interface may include an integrated circuit (inter-integrated circuit, I2C) interface, an integrated circuit built-in audio (inter-integrated circuit sound, I2S) interface, a pulse code modulation (pulse code modulation, PCM) interface, and a universal asynchronous transmitter (universal asynchronous transmitter) interface. receiver/transmitter, UART) interface, mobile industry processor interface (MIPI), general-purpose input/output (GPIO) interface, subscriber identity module (SIM) interface, and / Or Universal Serial Bus (USB) interface, etc.
I2C接口是一种双向同步串行总线,包括一根串行数据线(serial data line,SDA)和一根串行时钟线(derail clock line,SCL)。在一些实施例中,处理器110可以包含多组I2C总线。处理器110可以通过不同的I2C总线接口分别耦合触摸传感器180K,充电器,闪光灯,摄像头193等。例如:处理器110可以通过I2C接口耦合触摸传感器180K,使处理器110与触摸传感器180K通过I2C总线接口通信,实现终端100的触摸功能。The I2C interface is a two-way synchronous serial bus, including a serial data line (SDA) and a serial clock line (SCL). In some embodiments, the processor 110 may include multiple sets of I2C buses. The processor 110 may be coupled to the touch sensor 180K, charger, flash, camera 193, etc. through different I2C bus interfaces. For example, the processor 110 may couple the touch sensor 180K through an I2C interface, so that the processor 110 and the touch sensor 180K communicate through the I2C bus interface to implement the touch function of the terminal 100.
I2S接口可以用于音频通信。在一些实施例中,处理器110可以包含多组I2S总线。处理器110可以通过I2S总线与音频模块170耦合,实现处理器110与音频模块170之间的通信。在一些实施例中,音频模块170可以通过I2S接口向无线通信模块160传递音频信号,实现通过蓝牙耳机接听电话的功能。The I2S interface can be used for audio communication. In some embodiments, the processor 110 may include multiple sets of I2S buses. The processor 110 may be coupled with the audio module 170 through an I2S bus to realize communication between the processor 110 and the audio module 170. In some embodiments, the audio module 170 may transmit audio signals to the wireless communication module 160 through an I2S interface, so as to realize the function of answering calls through a Bluetooth headset.
PCM接口也可以用于音频通信,将模拟信号抽样,量化和编码。在一些实施例中,音频模块170与无线通信模块160可以通过PCM总线接口耦合。在一些实施例中,音频模块170也可以通过PCM接口向无线通信模块160传递音频信号,实现通过蓝牙耳机接听电话的功能。所述I2S接口和所述PCM接口都可以用于音频通信。The PCM interface can also be used for audio communication to sample, quantize and encode analog signals. In some embodiments, the audio module 170 and the wireless communication module 160 may be coupled through a PCM bus interface. In some embodiments, the audio module 170 may also transmit audio signals to the wireless communication module 160 through the PCM interface, so as to realize the function of answering calls through the Bluetooth headset. Both the I2S interface and the PCM interface can be used for audio communication.
UART接口是一种通用串行数据总线,用于异步通信。该总线可以为双向通信总线。它将要传输的数据在串行通信与并行通信之间转换。在一些实施例中,UART接口通常被用于连接处理器110与无线通信模块160。例如:处理器110通过UART接口与无线通信模块160中的蓝牙模块通信,实现蓝牙功能。在一些实施例中,音频模块170可以通过UART接口向无线通信模块160传递音频信号,实现通过蓝牙耳机播放音乐的功能。The UART interface is a universal serial data bus used for asynchronous communication. The bus can be a two-way communication bus. It converts the data to be transmitted between serial communication and parallel communication. In some embodiments, the UART interface is generally used to connect the processor 110 and the wireless communication module 160. For example, the processor 110 communicates with the Bluetooth module in the wireless communication module 160 through the UART interface to implement the Bluetooth function. In some embodiments, the audio module 170 may transmit audio signals to the wireless communication module 160 through a UART interface, so as to realize the function of playing music through a Bluetooth headset.
MIPI接口可以被用于连接处理器110与显示屏194,摄像头193等外围器件。MIPI接口包括摄像头串行接口(camera serial interface,CSI),显示屏串行接口(display serial interface,DSI)等。在一些实施例中,处理器110和摄像头193通过CSI接口通信,实现终端100的拍摄功能。处理器110和显示屏194通过DSI接口通信,实现终端100的显示功能。The MIPI interface can be used to connect the processor 110 with the display screen 194, the camera 193 and other peripheral devices. The MIPI interface includes camera serial interface (camera serial interface, CSI), display serial interface (display serial interface, DSI), etc. In some embodiments, the processor 110 and the camera 193 communicate through a CSI interface to implement the shooting function of the terminal 100. The processor 110 and the display screen 194 communicate through a DSI interface to realize the display function of the terminal 100.
GPIO接口可以通过软件配置。GPIO接口可以被配置为控制信号,也可被配置为数据信号。在一些实施例中,GPIO接口可以用于连接处理器110与摄像头193,显示屏194,无线通信模块160,音频模块170,传感器模块180等。GPIO接口还可以被配置为I2C接口,I2S接口,UART接口,MIPI接口等。The GPIO interface can be configured through software. The GPIO interface can be configured as a control signal or as a data signal. In some embodiments, the GPIO interface can be used to connect the processor 110 with the camera 193, the display screen 194, the wireless communication module 160, the audio module 170, the sensor module 180, and so on. GPIO interface can also be configured as I2C interface, I2S interface, UART interface, MIPI interface, etc.
USB接口130是符合USB标准规范的接口,具体可以是Mini USB接口,Micro USB接口,USB Type C接口等。USB接口130可以用于连接充电器为终端100充电,也可以用于终端100与外围设备之间传输数据。也可以用于连接耳机,通过耳机播放音频。 该接口还可以用于连接其他电子设备,例如AR设备等。The USB interface 130 is an interface that complies with the USB standard specification, and specifically may be a Mini USB interface, a Micro USB interface, a USB Type C interface, and so on. The USB interface 130 can be used to connect a charger to charge the terminal 100, and can also be used to transfer data between the terminal 100 and peripheral devices. It can also be used to connect headphones and play audio through the headphones. This interface can also be used to connect other electronic devices, such as AR devices.
可以理解的是,本申请实施例示意的各模块间的接口连接关系,只是示意性说明,并不构成对终端100的结构限定。在本申请另一些实施例中,终端100也可以采用上述实施例中不同的接口连接方式,或多种接口连接方式的组合。It can be understood that the interface connection relationship between the modules illustrated in the embodiment of the present application is merely a schematic description, and does not constitute a structural limitation of the terminal 100. In other embodiments of the present application, the terminal 100 may also adopt different interface connection modes in the foregoing embodiments, or a combination of multiple interface connection modes.
充电管理模块140用于从充电器接收充电输入。其中,充电器可以是无线充电器,也可以是有线充电器。在一些有线充电的实施例中,充电管理模块140可以通过USB接口130接收有线充电器的充电输入。在一些无线充电的实施例中,充电管理模块140可以通过终端100的无线充电线圈接收无线充电输入。充电管理模块140为电池142充电的同时,还可以通过电源管理模块141为终端100供电。The charging management module 140 is used to receive charging input from the charger. Among them, the charger can be a wireless charger or a wired charger. In some wired charging embodiments, the charging management module 140 may receive the charging input of the wired charger through the USB interface 130. In some embodiments of wireless charging, the charging management module 140 may receive the wireless charging input through the wireless charging coil of the terminal 100. While the charging management module 140 charges the battery 142, it can also supply power to the terminal 100 through the power management module 141.
电源管理模块141用于连接电池142,充电管理模块140与处理器110。电源管理模块141接收电池142和/或充电管理模块140的输入,为处理器110,内部存储器121,显示屏194,摄像头193,和无线通信模块160等供电。电源管理模块141还可以用于监测电池容量,电池循环次数,电池健康状态(漏电,阻抗)等参数。在其他一些实施例中,电源管理模块141也可以设置于处理器110中。在另一些实施例中,电源管理模块141和充电管理模块140也可以设置于同一个器件中。The power management module 141 is used to connect the battery 142, the charging management module 140 and the processor 110. The power management module 141 receives input from the battery 142 and/or the charging management module 140, and supplies power to the processor 110, the internal memory 121, the display screen 194, the camera 193, and the wireless communication module 160. The power management module 141 can also be used to monitor parameters such as battery capacity, battery cycle times, and battery health status (leakage, impedance). In some other embodiments, the power management module 141 may also be provided in the processor 110. In other embodiments, the power management module 141 and the charging management module 140 may also be provided in the same device.
终端100的无线通信功能可以通过天线1,天线2,移动通信模块150,无线通信模块160,调制解调处理器以及基带处理器等实现。The wireless communication function of the terminal 100 can be implemented by the antenna 1, the antenna 2, the mobile communication module 150, the wireless communication module 160, the modem processor, and the baseband processor.
天线1和天线2用于发射和接收电磁波信号。终端100中的每个天线可用于覆盖单个或多个通信频带。不同的天线还可以复用,以提高天线的利用率。例如:可以将天线1复用为无线局域网的分集天线。在另外一些实施例中,天线可以和调谐开关结合使用。The antenna 1 and the antenna 2 are used to transmit and receive electromagnetic wave signals. Each antenna in the terminal 100 can be used to cover a single or multiple communication frequency bands. Different antennas can also be reused to improve antenna utilization. For example, antenna 1 can be multiplexed as a diversity antenna of a wireless local area network. In other embodiments, the antenna can be used in combination with a tuning switch.
移动通信模块150可以提供应用在终端100上的包括2G/3G/4G/5G等无线通信的解决方案。移动通信模块150可以包括至少一个滤波器,开关,功率放大器,低噪声放大器(low noise amplifier,LNA)等。移动通信模块150可以由天线1接收电磁波,并对接收的电磁波进行滤波,放大等处理,传送至调制解调处理器进行解调。移动通信模块150还可以对经调制解调处理器调制后的信号放大,经天线1转为电磁波辐射出去。在一些实施例中,移动通信模块150的至少部分功能模块可以被设置于处理器110中。在一些实施例中,移动通信模块150的至少部分功能模块可以与处理器110的至少部分模块被设置在同一个器件中。The mobile communication module 150 can provide a wireless communication solution including 2G/3G/4G/5G and the like applied to the terminal 100. The mobile communication module 150 may include at least one filter, switch, power amplifier, low noise amplifier (LNA), etc. The mobile communication module 150 can receive electromagnetic waves by the antenna 1, and perform processing such as filtering, amplifying and transmitting the received electromagnetic waves to the modem processor for demodulation. The mobile communication module 150 can also amplify the signal modulated by the modem processor, and convert it into electromagnetic waves for radiation via the antenna 1. In some embodiments, at least part of the functional modules of the mobile communication module 150 may be provided in the processor 110. In some embodiments, at least part of the functional modules of the mobile communication module 150 and at least part of the modules of the processor 110 may be provided in the same device.
调制解调处理器可以包括调制器和解调器。其中,调制器用于将待发送的低频基带信号调制成中高频信号。解调器用于将接收的电磁波信号解调为低频基带信号。随后解调器将解调得到的低频基带信号传送至基带处理器处理。低频基带信号经基带处理器处理后,被传递给应用处理器。应用处理器通过音频设备(不限于扬声器170A,受话器170B等)输出声音信号,或通过显示屏194显示图像或视频。在一些实施例中,调制解调处理器可以是独立的器件。在另一些实施例中,调制解调处理器可以独立于处理器110,与移动通信模块150或其他功能模块设置在同一个器件中。The modem processor may include a modulator and a demodulator. Among them, the modulator is used to modulate the low frequency baseband signal to be sent into a medium and high frequency signal. The demodulator is used to demodulate the received electromagnetic wave signal into a low-frequency baseband signal. Then the demodulator transmits the demodulated low-frequency baseband signal to the baseband processor for processing. The low-frequency baseband signal is processed by the baseband processor and then passed to the application processor. The application processor outputs a sound signal through an audio device (not limited to the speaker 170A, the receiver 170B, etc.), or displays an image or video through the display screen 194. In some embodiments, the modem processor may be an independent device. In other embodiments, the modem processor may be independent of the processor 110 and be provided in the same device as the mobile communication module 150 or other functional modules.
无线通信模块160可以提供应用在终端100上的包括无线局域网(wireless local area networks,WLAN)(如无线保真(wireless fidelity,Wi-Fi)网络),蓝牙(bluetooth,BT),全球导航卫星系统(global navigation satellite system,GNSS),调频(frequency modulation, FM),近距离无线通信技术(near field communication,NFC),红外技术(infrared,IR)等无线通信的解决方案。无线通信模块160可以是集成至少一个通信处理模块的一个或多个器件。无线通信模块160经由天线2接收电磁波,将电磁波信号调频以及滤波处理,将处理后的信号发送到处理器110。无线通信模块160还可以从处理器110接收待发送的信号,对其进行调频,放大,经天线2转为电磁波辐射出去。The wireless communication module 160 can provide applications on the terminal 100, including wireless local area networks (WLAN) (such as wireless fidelity (Wi-Fi) networks), Bluetooth (BT), and global navigation satellite systems. (global navigation satellite system, GNSS), frequency modulation (FM), near field communication (NFC), infrared technology (infrared, IR) and other wireless communication solutions. The wireless communication module 160 may be one or more devices integrating at least one communication processing module. The wireless communication module 160 receives electromagnetic waves via the antenna 2, frequency modulates and filters the electromagnetic wave signals, and sends the processed signals to the processor 110. The wireless communication module 160 can also receive the signal to be sent from the processor 110, perform frequency modulation, amplify it, and convert it into electromagnetic wave radiation via the antenna 2.
在一些实施例中,终端100的天线1和移动通信模块150耦合,天线2和无线通信模块160耦合,使得终端100可以通过无线通信技术与网络以及其他设备通信。所述无线通信技术可以包括全球移动通讯系统(global system for mobile communications,GSM),通用分组无线服务(general packet radio service,GPRS),码分多址接入(code division multiple access,CDMA),宽带码分多址(wideband code division multiple access,WCDMA),时分码分多址(time-division code division multiple access,TD-SCDMA),长期演进(long term evolution,LTE),BT,GNSS,WLAN,NFC,FM,和/或IR技术等。所述GNSS可以包括全球卫星定位系统(global positioning system,GPS),全球导航卫星系统(global navigation satellite system,GLONASS),北斗卫星导航系统(beidou navigation satellite system,BDS),准天顶卫星系统(quasi-zenith satellite system,QZSS)和/或星基增强系统(satellite based augmentation systems,SBAS)。In some embodiments, the antenna 1 of the terminal 100 is coupled with the mobile communication module 150, and the antenna 2 is coupled with the wireless communication module 160, so that the terminal 100 can communicate with the network and other devices through wireless communication technology. The wireless communication technologies may include global system for mobile communications (GSM), general packet radio service (GPRS), code division multiple access (CDMA), broadband Code division multiple access (wideband code division multiple access, WCDMA), time-division code division multiple access (TD-SCDMA), long term evolution (LTE), BT, GNSS, WLAN, NFC , FM, and/or IR technology, etc. The GNSS may include global positioning system (GPS), global navigation satellite system (GLONASS), Beidou navigation satellite system (BDS), quasi-zenith satellite system (quasi -zenith satellite system, QZSS) and/or satellite-based augmentation systems (SBAS).
终端100通过GPU,显示屏194,以及应用处理器等实现显示功能。GPU为图像处理的微处理器,连接显示屏194和应用处理器。GPU用于执行数学和几何计算,用于图形渲染。处理器110可包括一个或多个GPU,其执行程序指令以生成或改变显示信息。The terminal 100 implements a display function through a GPU, a display screen 194, and an application processor. The GPU is a microprocessor for image processing, connected to the display 194 and the application processor. The GPU is used to perform mathematical and geometric calculations for graphics rendering. The processor 110 may include one or more GPUs, which execute program instructions to generate or change display information.
显示屏194用于显示图像,视频等。显示屏194包括显示面板。显示面板可以采用液晶显示屏(liquid crystal display,LCD),有机发光二极管(organic light-emitting diode,OLED),有源矩阵有机发光二极体或主动矩阵有机发光二极体(active-matrix organic light emitting diode的,AMOLED),柔性发光二极管(flex light-emitting diode,FLED),Miniled,MicroLed,Micro-oLed,量子点发光二极管(quantum dot light emitting diodes,QLED)等。在一些实施例中,终端100可以包括1个或N个显示屏194,N为大于1的正整数。The display screen 194 is used to display images, videos, etc. The display screen 194 includes a display panel. The display panel can adopt liquid crystal display (LCD), organic light-emitting diode (OLED), active-matrix organic light-emitting diode or active-matrix organic light-emitting diode (active-matrix organic light-emitting diode). AMOLED, flexible light-emitting diode (FLED), Miniled, MicroLed, Micro-oLed, quantum dot light-emitting diode (QLED), etc. In some embodiments, the terminal 100 may include one or N display screens 194, and N is a positive integer greater than one.
终端100可以通过ISP,摄像头193,视频编解码器,GPU,显示屏194以及应用处理器等实现拍摄功能。The terminal 100 can realize a shooting function through an ISP, a camera 193, a video codec, a GPU, a display screen 194, and an application processor.
ISP用于处理摄像头193反馈的数据。例如,拍照时,打开快门,光线通过镜头被传递到摄像头感光元件上,光信号转换为电信号,摄像头感光元件将所述电信号传递给ISP处理,转化为肉眼可见的图像。ISP还可以对图像的噪点,亮度,肤色进行算法优化。ISP还可以对拍摄场景的曝光,色温等参数优化。在一些实施例中,ISP可以设置在摄像头193中。The ISP is used to process the data fed back from the camera 193. For example, when taking a picture, the shutter is opened, the light is transmitted to the photosensitive element of the camera through the lens, the light signal is converted into an electrical signal, and the photosensitive element of the camera transfers the electrical signal to the ISP for processing and is converted into an image visible to the naked eye. ISP can also optimize the image noise, brightness, and skin color. ISP can also optimize the exposure, color temperature and other parameters of the shooting scene. In some embodiments, the ISP may be provided in the camera 193.
摄像头193用于捕获静态图像或视频。物体通过镜头生成光学图像投射到感光元件。感光元件可以是电荷耦合器件(charge coupled device,CCD)或互补金属氧化物半导体(complementary metal-oxide-semiconductor,CMOS)光电晶体管。感光元件把光信号转换成电信号,之后将电信号传递给ISP转换成数字图像信号。ISP将数字图像信号输出到DSP加工处理。DSP将数字图像信号转换成标准的RGB,YUV等格式的图像信号。在一些实施例中,终端100可以包括1个或N个摄像头193,N为大于1的正整数。The camera 193 is used to capture still images or videos. The object generates an optical image through the lens and projects it to the photosensitive element. The photosensitive element may be a charge coupled device (CCD) or a complementary metal-oxide-semiconductor (CMOS) phototransistor. The photosensitive element converts the optical signal into an electrical signal, and then transmits the electrical signal to the ISP to convert it into a digital image signal. ISP outputs digital image signals to DSP for processing. DSP converts digital image signals into standard RGB, YUV and other formats. In some embodiments, the terminal 100 may include 1 or N cameras 193, and N is a positive integer greater than 1.
数字信号处理器用于处理数字信号,除了可以处理数字图像信号,还可以处理其他数字信号。例如,当终端100在频点选择时,数字信号处理器用于对频点能量进行傅里叶变换等。Digital signal processors are used to process digital signals. In addition to digital image signals, they can also process other digital signals. For example, when the terminal 100 selects a frequency point, the digital signal processor is used to perform Fourier transform on the energy of the frequency point.
视频编解码器用于对数字视频压缩或解压缩。终端100可以支持一种或多种视频编解码器。这样,终端100可以播放或录制多种编码格式的视频,例如:动态图像专家组(moving picture experts group,MPEG)1,MPEG2,MPEG3,MPEG4等。Video codecs are used to compress or decompress digital video. The terminal 100 may support one or more video codecs. In this way, the terminal 100 can play or record videos in multiple encoding formats, for example: moving picture experts group (MPEG) 1, MPEG2, MPEG3, MPEG4, and so on.
NPU为神经网络(neural-network,NN)计算处理器,通过借鉴生物神经网络结构,例如借鉴人脑神经元之间传递模式,对输入信息快速处理,还可以不断的自学习。通过NPU可以实现终端100的智能认知等应用,例如:图像识别,人脸识别,语音识别,文本理解等。NPU is a neural-network (NN) computing processor. By drawing on the structure of biological neural networks, for example, the transfer mode between human brain neurons, it can quickly process input information and can continuously learn by itself. Through the NPU, applications such as intelligent cognition of the terminal 100 can be implemented, such as image recognition, face recognition, voice recognition, text understanding, etc.
外部存储器接口120可以用于连接外部存储卡,例如Micro SD卡,实现扩展终端100的存储能力。外部存储卡通过外部存储器接口120与处理器110通信,实现数据存储功能。例如将音乐,视频等文件保存在外部存储卡中。The external memory interface 120 may be used to connect an external memory card, such as a Micro SD card, to expand the storage capacity of the terminal 100. The external memory card communicates with the processor 110 through the external memory interface 120 to realize the data storage function. For example, save music, video and other files in an external memory card.
内部存储器121可以用于存储计算机可执行程序代码,所述可执行程序代码包括指令。内部存储器121可以包括存储程序区和存储数据区。其中,存储程序区可存储操作系统,至少一个功能所需的应用程序(比如声音播放功能,图像播放功能等)等。存储数据区可存储终端100使用过程中所创建的数据(比如音频数据,电话本等)等。此外,内部存储器121可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件,闪存器件,通用闪存存储器(universal flash storage,UFS)等。处理器110通过运行存储在内部存储器121的指令,和/或存储在设置于处理器中的存储器的指令,执行终端100的各种功能应用以及数据处理。The internal memory 121 may be used to store computer executable program code, where the executable program code includes instructions. The internal memory 121 may include a storage program area and a storage data area. Among them, the storage program area can store an operating system, at least one application program (such as a sound playback function, an image playback function, etc.) required by at least one function. The data storage area can store data (such as audio data, phone book, etc.) created during the use of the terminal 100. In addition, the internal memory 121 may include a high-speed random access memory, and may also include a non-volatile memory, such as at least one magnetic disk storage device, a flash memory device, a universal flash storage (UFS), etc. The processor 110 executes various functional applications and data processing of the terminal 100 by running instructions stored in the internal memory 121 and/or instructions stored in a memory provided in the processor.
终端100可以通过音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,以及应用处理器等实现音频功能。例如音乐播放,录音等。The terminal 100 can implement audio functions through the audio module 170, the speaker 170A, the receiver 170B, the microphone 170C, the earphone interface 170D, and the application processor. For example, music playback, recording, etc.
音频模块170用于将数字音频信息转换成模拟音频信号输出,也用于将模拟音频输入转换为数字音频信号。音频模块170还可以用于对音频信号编码和解码。在一些实施例中,音频模块170可以设置于处理器110中,或将音频模块170的部分功能模块设置于处理器110中。The audio module 170 is used to convert digital audio information into an analog audio signal for output, and is also used to convert an analog audio input into a digital audio signal. The audio module 170 can also be used to encode and decode audio signals. In some embodiments, the audio module 170 may be provided in the processor 110, or part of the functional modules of the audio module 170 may be provided in the processor 110.
扬声器170A,也称“喇叭”,用于将音频电信号转换为声音信号。终端100可以通过扬声器170A收听音乐,或收听免提通话。The speaker 170A, also called a "speaker", is used to convert audio electrical signals into sound signals. The terminal 100 can listen to music through the speaker 170A, or listen to a hands-free call.
受话器170B,也称“听筒”,用于将音频电信号转换成声音信号。当终端100接听电话或语音信息时,可以通过将受话器170B靠近人耳接听语音。The receiver 170B, also called "earpiece", is used to convert audio electrical signals into sound signals. When the terminal 100 answers a call or voice message, it can receive the voice by bringing the receiver 170B close to the human ear.
麦克风170C,也称“话筒”,“传声器”,用于将声音信号转换为电信号。当拨打电话或发送语音信息时,用户可以通过人嘴靠近麦克风170C发声,将声音信号输入到麦克风170C。终端100可以设置至少一个麦克风170C。在另一些实施例中,终端100可以设置两个麦克风170C,除了采集声音信号,还可以实现降噪功能。在另一些实施例中,终端100还可以设置三个,四个或更多麦克风170C,实现采集声音信号,降噪,还可以识别声音来源,实现定向录音功能等。The microphone 170C, also called "microphone", "microphone", is used to convert sound signals into electrical signals. When making a call or sending a voice message, the user can approach the microphone 170C through the mouth to make a sound, and input the sound signal to the microphone 170C. The terminal 100 may be provided with at least one microphone 170C. In other embodiments, the terminal 100 may be provided with two microphones 170C, which can implement noise reduction functions in addition to collecting sound signals. In other embodiments, the terminal 100 may also be provided with three, four or more microphones 170C to collect sound signals, reduce noise, identify sound sources, and realize directional recording functions.
耳机接口170D用于连接有线耳机。耳机接口170D可以是USB接口130,也可以 是3.5mm的开放移动电子设备平台(open mobile terminal platform,OMTP)标准接口,美国蜂窝电信工业协会(cellular telecommunications industry association of the USA,CTIA)标准接口。The earphone interface 170D is used to connect wired earphones. The earphone interface 170D may be a USB interface 130, or a 3.5mm open mobile terminal platform (OMTP) standard interface, and a cellular telecommunications industry association (cellular telecommunications industry association of the USA, CTIA) standard interface.
压力传感器180A用于感受压力信号,可以将压力信号转换成电信号。在一些实施例中,压力传感器180A可以设置于显示屏194。压力传感器180AThe pressure sensor 180A is used to sense the pressure signal and can convert the pressure signal into an electrical signal. In some embodiments, the pressure sensor 180A may be provided on the display screen 194. Pressure sensor 180A
的种类很多,如电阻式压力传感器,电感式压力传感器,电容式压力传感器等。电容式压力传感器可以是包括至少两个具有导电材料的平行板。当有力作用于压力传感器180A,电极之间的电容改变。终端100根据电容的变化确定压力的强度。当有触摸操作作用于显示屏194,终端100根据压力传感器180A检测所述触摸操作强度。终端100也可以根据压力传感器180A的检测信号计算触摸的位置。在一些实施例中,作用于相同触摸位置,但不同触摸操作强度的触摸操作,可以对应不同的操作指令。例如:当有触摸操作强度小于第一压力阈值的触摸操作作用于短消息应用图标时,执行查看短消息的指令。当有触摸操作强度大于或等于第一压力阈值的触摸操作作用于短消息应用图标时,执行新建短消息的指令。There are many types, such as resistive pressure sensors, inductive pressure sensors, capacitive pressure sensors and so on. The capacitive pressure sensor may include at least two parallel plates with conductive material. When a force is applied to the pressure sensor 180A, the capacitance between the electrodes changes. The terminal 100 determines the intensity of the pressure according to the change in capacitance. When a touch operation acts on the display screen 194, the terminal 100 detects the intensity of the touch operation according to the pressure sensor 180A. The terminal 100 may also calculate the touched position according to the detection signal of the pressure sensor 180A. In some embodiments, touch operations that act on the same touch location but have different touch operation strengths may correspond to different operation instructions. For example: when a touch operation whose intensity of the touch operation is less than the first pressure threshold is applied to the short message application icon, an instruction to view the short message is executed. When a touch operation with a touch operation intensity greater than or equal to the first pressure threshold acts on the short message application icon, an instruction to create a new short message is executed.
陀螺仪传感器180B可以用于确定终端100的运动姿态。在一些实施例中,可以通过陀螺仪传感器180B确定终端100围绕三个轴(即,x,y和z轴)的角速度。陀螺仪传感器180B可以用于拍摄防抖。示例性的,当按下快门,陀螺仪传感器180B检测终端100抖动的角度,根据角度计算出镜头模组需要补偿的距离,让镜头通过反向运动抵消终端100的抖动,实现防抖。陀螺仪传感器180B还可以用于导航,体感游戏场景。The gyro sensor 180B may be used to determine the movement posture of the terminal 100. In some embodiments, the angular velocity of the terminal 100 around three axes (ie, x, y, and z axes) can be determined by the gyro sensor 180B. The gyro sensor 180B can be used for image stabilization. Exemplarily, when the shutter is pressed, the gyro sensor 180B detects the shake angle of the terminal 100, calculates the distance that the lens module needs to compensate according to the angle, and allows the lens to counteract the shake of the terminal 100 through a reverse movement to achieve anti-shake. The gyro sensor 180B can also be used for navigation and somatosensory game scenes.
气压传感器180C用于测量气压。在一些实施例中,终端100通过气压传感器180C测得的气压值计算海拔高度,辅助定位和导航。The air pressure sensor 180C is used to measure air pressure. In some embodiments, the terminal 100 calculates the altitude based on the air pressure value measured by the air pressure sensor 180C to assist positioning and navigation.
磁传感器180D包括霍尔传感器。终端100可以利用磁传感器180D检测翻盖皮套的开合。在一些实施例中,当终端100是翻盖机时,终端100可以根据磁传感器180D检测翻盖的开合。进而根据检测到的皮套的开合状态或翻盖的开合状态,设置翻盖自动解锁等特性。The magnetic sensor 180D includes a Hall sensor. The terminal 100 may use the magnetic sensor 180D to detect the opening and closing of the flip holster. In some embodiments, when the terminal 100 is a flip machine, the terminal 100 can detect the opening and closing of the flip according to the magnetic sensor 180D. Furthermore, according to the detected opening and closing state of the leather case or the opening and closing state of the flip cover, features such as automatic unlocking of the flip cover are set.
加速度传感器180E可检测终端100在各个方向上(一般为三轴)加速度的大小。当终端100静止时可检测出重力的大小及方向。还可以用于识别终端100的姿态,应用于横竖屏切换,计步器等应用。The acceleration sensor 180E can detect the magnitude of the acceleration of the terminal 100 in various directions (generally three axes). When the terminal 100 is stationary, the magnitude and direction of gravity can be detected. It can also be used to identify the posture of the terminal 100, and be used in applications such as horizontal and vertical screen switching, and pedometer.
距离传感器180F,用于测量距离。终端100可以通过红外或激光测量距离。在一些实施例中,拍摄场景,终端100可以利用距离传感器180F测距以实现快速对焦。Distance sensor 180F, used to measure distance. The terminal 100 can measure the distance by infrared or laser. In some embodiments, when shooting a scene, the terminal 100 may use the distance sensor 180F to measure the distance to achieve fast focusing.
接近光传感器180G可以包括例如发光二极管(LED)和光检测器,例如光电二极管。发光二极管可以是红外发光二极管。终端100通过发光二极管向外发射红外光。终端100使用光电二极管检测来自附近物体的红外反射光。当检测到充分的反射光时,可以确定终端100附近有物体。当检测到不充分的反射光时,终端100可以确定终端100附近没有物体。终端100可以利用接近光传感器180G检测用户手持终端100贴近耳朵通话,以便自动熄灭屏幕达到省电的目的。接近光传感器180G也可用于皮套模式,口袋模式自动解锁与锁屏。The proximity light sensor 180G may include, for example, a light emitting diode (LED) and a light detector such as a photodiode. The light emitting diode may be an infrared light emitting diode. The terminal 100 emits infrared light to the outside through the light emitting diode. The terminal 100 uses a photodiode to detect infrared reflected light from nearby objects. When sufficient reflected light is detected, it can be determined that there is an object near the terminal 100. When insufficient reflected light is detected, the terminal 100 may determine that there is no object near the terminal 100. The terminal 100 can use the proximity light sensor 180G to detect that the user holds the terminal 100 close to the ear to talk, so as to automatically turn off the screen to save power. The proximity light sensor 180G can also be used in leather case mode, and the pocket mode will automatically unlock and lock the screen.
环境光传感器180L用于感知环境光亮度。终端100可以根据感知的环境光亮度自 适应调节显示屏194亮度。环境光传感器180L也可用于拍照时自动调节白平衡。环境光传感器180L还可以与接近光传感器180G配合,检测终端100是否在口袋里,以防误触。The ambient light sensor 180L is used to sense the brightness of the ambient light. The terminal 100 can adjust the brightness of the display screen 194 automatically according to the perceived brightness of the ambient light. The ambient light sensor 180L can also be used to automatically adjust the white balance when taking pictures. The ambient light sensor 180L can also cooperate with the proximity light sensor 180G to detect whether the terminal 100 is in a pocket to prevent accidental touch.
指纹传感器180H用于采集指纹。终端100可以利用采集的指纹特性实现指纹解锁,访问应用锁,指纹拍照,指纹接听来电等。The fingerprint sensor 180H is used to collect fingerprints. The terminal 100 can use the collected fingerprint characteristics to realize fingerprint unlocking, access application locks, fingerprint photographs, fingerprint answering calls, and so on.
温度传感器180J用于检测温度。在一些实施例中,终端100利用温度传感器180J检测的温度,执行温度处理策略。例如,当温度传感器180J上报的温度超过阈值,终端100执行降低位于温度传感器180J附近的处理器的性能,以便降低功耗实施热保护。在另一些实施例中,当温度低于另一阈值时,终端100对电池142加热,以避免低温导致终端100异常关机。在其他一些实施例中,当温度低于又一阈值时,终端100对电池142的输出电压执行升压,以避免低温导致的异常关机。The temperature sensor 180J is used to detect temperature. In some embodiments, the terminal 100 uses the temperature detected by the temperature sensor 180J to execute a temperature processing strategy. For example, when the temperature reported by the temperature sensor 180J exceeds a threshold value, the terminal 100 executes to reduce the performance of the processor located near the temperature sensor 180J, so as to reduce power consumption and implement thermal protection. In other embodiments, when the temperature is lower than another threshold, the terminal 100 heats the battery 142 to avoid abnormal shutdown of the terminal 100 due to low temperature. In some other embodiments, when the temperature is lower than another threshold, the terminal 100 boosts the output voltage of the battery 142 to avoid abnormal shutdown caused by low temperature.
触摸传感器180K,也称“触控面板”。触摸传感器180K可以设置于显示屏194,由触摸传感器180K与显示屏194组成触摸屏,也称“触控屏”。触摸传感器180K用于检测作用于其上或附近的触摸操作。触摸传感器可以将检测到的触摸操作传递给应用处理器,以确定触摸事件类型。可以通过显示屏194提供与触摸操作相关的视觉输出。在另一些实施例中,触摸传感器180K也可以设置于终端100的表面,与显示屏194所处的位置不同。Touch sensor 180K, also called "touch panel". The touch sensor 180K may be disposed on the display screen 194, and the touch screen is composed of the touch sensor 180K and the display screen 194, which is also called a “touch screen”. The touch sensor 180K is used to detect touch operations acting on or near it. The touch sensor can pass the detected touch operation to the application processor to determine the type of touch event. The visual output related to the touch operation can be provided through the display screen 194. In other embodiments, the touch sensor 180K may also be disposed on the surface of the terminal 100, which is different from the position of the display screen 194.
骨传导传感器180M可以获取振动信号。在一些实施例中,骨传导传感器180M可以获取人体声部振动骨块的振动信号。骨传导传感器180M也可以接触人体脉搏,接收血压跳动信号。在一些实施例中,骨传导传感器180M也可以设置于耳机中,结合成骨传导耳机。音频模块170可以基于所述骨传导传感器180M获取的声部振动骨块的振动信号,解析出语音信号,实现语音功能。应用处理器可以基于所述骨传导传感器180M获取的血压跳动信号解析心率信息,实现心率检测功能。The bone conduction sensor 180M can acquire vibration signals. In some embodiments, the bone conduction sensor 180M can obtain the vibration signal of the vibrating bone mass of the human voice. The bone conduction sensor 180M can also contact the human pulse and receive the blood pressure pulse signal. In some embodiments, the bone conduction sensor 180M may also be provided in the earphone, combined with the bone conduction earphone. The audio module 170 can parse the voice signal based on the vibration signal of the vibrating bone block of the voice obtained by the bone conduction sensor 180M, and realize the voice function. The application processor may analyze the heart rate information based on the blood pressure beat signal obtained by the bone conduction sensor 180M, and realize the heart rate detection function.
按键190包括开机键,音量键等。按键190可以是机械按键。也可以是触摸式按键。终端100可以接收按键输入,产生与终端100的用户设置以及功能控制有关的键信号输入。The button 190 includes a power button, a volume button, and so on. The button 190 may be a mechanical button. It can also be a touch button. The terminal 100 may receive key input, and generate key signal input related to user settings and function control of the terminal 100.
马达191可以产生振动提示。马达191可以用于来电振动提示,也可以用于触摸振动反馈。例如,作用于不同应用(例如拍照,音频播放等)的触摸操作,可以对应不同的振动反馈效果。作用于显示屏194不同区域的触摸操作,马达191也可对应不同的振动反馈效果。不同的应用场景(例如:时间提醒,接收信息,闹钟,游戏等)也可以对应不同的振动反馈效果。触摸振动反馈效果还可以支持自定义。The motor 191 can generate vibration prompts. The motor 191 can be used for incoming call vibration notification, and can also be used for touch vibration feedback. For example, touch operations applied to different applications (such as photographing, audio playback, etc.) can correspond to different vibration feedback effects. Acting on touch operations in different areas of the display screen 194, the motor 191 can also correspond to different vibration feedback effects. Different application scenarios (for example: time reminding, receiving information, alarm clock, games, etc.) can also correspond to different vibration feedback effects. The touch vibration feedback effect can also support customization.
指示器192可以是指示灯,可以用于指示充电状态,电量变化,也可以用于指示消息,未接来电,通知等。The indicator 192 may be an indicator light, which may be used to indicate the charging status, power change, or to indicate messages, missed calls, notifications, and so on.
SIM卡接口195用于连接SIM卡。SIM卡可以通过插入SIM卡接口195,或从SIM卡接口195拔出,实现和终端100的接触和分离。终端100可以支持1个或N个SIM卡接口,N为大于1的正整数。SIM卡接口195可以支持Nano SIM卡,Micro SIM卡,SIM卡等。同一个SIM卡接口195可以同时插入多张卡。所述多张卡的类型可以相同,也可以不同。SIM卡接口195也可以兼容不同类型的SIM卡。SIM卡接口195也可以 兼容外部存储卡。终端100通过SIM卡和网络交互,实现通话以及数据通信等功能。在一些实施例中,终端100采用eSIM,即:嵌入式SIM卡。eSIM卡可以嵌在终端100中,不能和终端100分离。The SIM card interface 195 is used to connect to the SIM card. The SIM card can be inserted into the SIM card interface 195 or pulled out from the SIM card interface 195 to achieve contact and separation with the terminal 100. The terminal 100 may support 1 or N SIM card interfaces, and N is a positive integer greater than 1. The SIM card interface 195 can support Nano SIM cards, Micro SIM cards, SIM cards, etc. The same SIM card interface 195 can insert multiple cards at the same time. The types of the multiple cards can be the same or different. The SIM card interface 195 can also be compatible with different types of SIM cards. The SIM card interface 195 may also be compatible with external memory cards. The terminal 100 interacts with the network through the SIM card to implement functions such as call and data communication. In some embodiments, the terminal 100 adopts an eSIM, that is, an embedded SIM card. The eSIM card can be embedded in the terminal 100 and cannot be separated from the terminal 100.
终端100的软件系统可以采用分层架构,事件驱动架构,微核架构,微服务架构,或云架构。本申请实施例以分层架构的Android系统为例,示例性说明终端100的软件结构。The software system of the terminal 100 may adopt a layered architecture, an event-driven architecture, a microkernel architecture, a microservice architecture, or a cloud architecture. The embodiment of the present application takes an Android system with a layered architecture as an example to illustrate the software structure of the terminal 100 by way of example.
图2C是本申请实施例的终端100的软件结构框图。FIG. 2C is a block diagram of the software structure of the terminal 100 according to an embodiment of the present application.
分层架构将软件分成若干个层,每一层都有清晰的角色和分工。层与层之间通过软件接口通信。在一些实施例中,将Android系统分为四层,从上至下分别为应用程序层,应用程序框架层,安卓运行时(Android runtime)和系统库,以及内核层。The layered architecture divides the software into several layers, and each layer has a clear role and division of labor. Communication between layers through software interface. In some embodiments, the Android system is divided into four layers, from top to bottom, the application layer, the application framework layer, the Android runtime and system library, and the kernel layer.
应用程序层可以包括一系列应用程序包。The application layer can include a series of application packages.
如图2C所示,应用程序包可以包括相机,图库,日历,通话,地图,导航,WLAN,蓝牙,音乐,视频,短信息等应用程序。As shown in Figure 2C, the application package may include applications such as camera, gallery, calendar, call, map, navigation, WLAN, Bluetooth, music, video, short message, etc.
应用程序框架层为应用程序层的应用程序提供应用编程接口(application programming interface,API)和编程框架。应用程序框架层包括一些预先定义的函数。The application framework layer provides application programming interfaces (application programming interface, API) and programming frameworks for applications in the application layer. The application framework layer includes some predefined functions.
如图2C所示,应用程序框架层可以包括窗口管理器,内容提供器,视图系统,电话管理器,资源管理器,通知管理器等。As shown in Figure 2C, the application framework layer may include a window manager, a content provider, a view system, a phone manager, a resource manager, a notification manager, and so on.
窗口管理器用于管理窗口程序。窗口管理器可以获取显示屏大小,判断是否有状态栏,锁定屏幕,截取屏幕等。The window manager is used to manage window programs. The window manager can obtain the size of the display, determine whether there is a status bar, lock the screen, take a screenshot, etc.
内容提供器用来存放和获取数据,并使这些数据可以被应用程序访问。所述数据可以包括视频,图像,音频,拨打和接听的电话,浏览历史和书签,电话簿等。The content provider is used to store and retrieve data and make these data accessible to applications. The data may include video, image, audio, phone calls made and received, browsing history and bookmarks, phone book, etc.
视图系统包括可视控件,例如显示文字的控件,显示图片的控件等。视图系统可用于构建应用程序。显示界面可以由一个或多个视图组成的。例如,包括短信通知图标的显示界面,可以包括显示文字的视图以及显示图片的视图。The view system includes visual controls, such as controls that display text and controls that display pictures. The view system can be used to build applications. The display interface can be composed of one or more views. For example, a display interface that includes a short message notification icon may include a view that displays text and a view that displays pictures.
电话管理器用于提供终端100的通信功能。例如通话状态的管理(包括接通,挂断等)。The phone manager is used to provide the communication function of the terminal 100. For example, the management of the call status (including connecting, hanging up, etc.).
资源管理器为应用程序提供各种资源,比如本地化字符串,图标,图片,布局文件,视频文件等等。The resource manager provides various resources for the application, such as localized strings, icons, pictures, layout files, video files, etc.
通知管理器使应用程序可以在状态栏中显示通知信息,可以用于传达告知类型的消息,可以短暂停留后自动消失,无需用户交互。比如通知管理器被用于告知下载完成,消息提醒等。通知管理器还可以是以图表或者滚动条文本形式出现在系统顶部状态栏的通知,例如后台运行的应用程序的通知,还可以是以对话窗口形式出现在屏幕上的通知。例如在状态栏提示文本信息,发出提示音,机器人振动,指示灯闪烁等。The notification manager enables the application to display notification information in the status bar, which can be used to convey notification-type messages, and it can disappear automatically after a short stay without user interaction. For example, the notification manager is used to notify the download completion, message reminder, etc. The notification manager can also be a notification that appears in the status bar at the top of the system in the form of a chart or scroll bar text, such as a notification of an application running in the background, or a notification that appears on the screen in the form of a dialog window. For example, prompt text messages in the status bar, sound prompts, robot vibrations, flashing lights, etc.
Android Runtime包括核心库和虚拟机。Android runtime负责安卓系统的调度和管理。Android Runtime includes core libraries and virtual machines. Android runtime is responsible for the scheduling and management of the Android system.
核心库包含两部分:一部分是java语言需要调用的功能函数,另一部分是安卓的核心库。The core library consists of two parts: one part is the function functions that the java language needs to call, and the other part is the core library of Android.
应用程序层和应用程序框架层运行在虚拟机中。虚拟机将应用程序层和应用程序框 架层的java文件执行为二进制文件。虚拟机用于执行对象生命周期的管理,堆栈管理,线程管理,安全和异常的管理,以及垃圾回收等功能。The application layer and the application framework layer run in a virtual machine. The virtual machine executes the java files in the application layer and application framework layer as binary files. The virtual machine is used to perform functions such as object life cycle management, stack management, thread management, security and exception management, and garbage collection.
系统库可以包括多个功能模块。例如:表面管理器(surface manager),媒体库(Media Libraries),三维图形处理库(例如:OpenGL ES),2D图形引擎(例如:SGL)等。The system library can include multiple functional modules. For example: surface manager (surface manager), media library (Media Libraries), three-dimensional graphics processing library (for example: OpenGL ES), 2D graphics engine (for example: SGL), etc.
表面管理器用于对显示子系统进行管理,并且为多个应用程序提供了2D和3D图层的融合。The surface manager is used to manage the display subsystem and provides a combination of 2D and 3D layers for multiple applications.
媒体库支持多种常用的音频,视频格式回放和录制,以及静态图像文件等。媒体库可以支持多种音视频编码格式,例如:MPEG4,H.264,MP3,AAC,AMR,JPG,PNG等。The media library supports playback and recording of a variety of commonly used audio and video formats, as well as still image files. The media library can support multiple audio and video encoding formats, such as: MPEG4, H.264, MP3, AAC, AMR, JPG, PNG, etc.
三维图形处理库用于实现三维图形绘图,图像渲染,合成,和图层处理等。The 3D graphics processing library is used to realize 3D graphics drawing, image rendering, synthesis, and layer processing.
2D图形引擎是2D绘图的绘图引擎。The 2D graphics engine is a drawing engine for 2D drawing.
内核层是硬件和软件之间的层。内核层至少包含显示驱动,摄像头驱动,音频驱动,传感器驱动。The kernel layer is the layer between hardware and software. The kernel layer contains at least display driver, camera driver, audio driver, and sensor driver.
下面结合捕获拍照场景,示例性说明终端100软件以及硬件的工作流程。In the following, the workflow of the software and hardware of the terminal 100 will be exemplarily described in conjunction with capturing a photo scene.
当触摸传感器180K接收到触摸操作,相应的硬件中断被发给内核层。内核层将触摸操作加工成原始输入事件(包括触摸坐标(在本申请实施例中可以为屏幕坐标),触摸操作的时间戳等信息)。原始输入事件被存储在内核层。应用程序框架层从内核层获取原始输入事件,识别该输入事件所对应的控件。以该触摸操作是触摸单击操作,该单击操作所对应的控件为相机应用图标的控件为例,相机应用调用应用框架层的接口,启动相机应用,进而通过调用内核层启动摄像头驱动,通过摄像头193捕获静态图像或视频。When the touch sensor 180K receives a touch operation, the corresponding hardware interrupt is sent to the kernel layer. The kernel layer processes the touch operation into the original input event (including touch coordinates (in the embodiment of the present application), the time stamp of the touch operation, etc.). The original input events are stored in the kernel layer. The application framework layer obtains the original input event from the kernel layer, and identifies the control corresponding to the input event. Taking the touch operation as a touch click operation, and the control corresponding to the click operation is the control of the camera application icon as an example, the camera application calls the interface of the application framework layer to start the camera application, and then starts the camera driver by calling the kernel layer. The camera 193 captures still images or videos.
用户购买机器人之后,可使用终端下载用于控制机器人的APP。该APP将终端与机器人进行关联,并将关联关系上传给服务器。服务器存储终端与机器人之间的关联关系。一个机器人可以与一个终端关联,也可以与两个及两个以上终端关联。例如,甲购买了机器人R1,服务器存储甲的手机与机器人R1之间的关联关系,这样当甲打开自己手机的APP时,便能够控制机器人R1运动。再例如,某人购买了机器人R2送给乙,乙家有3个人,乙将3个人的手机都关联了机器人R2,这样当乙家3个人中的任意一个人打开自己手机的APP时,都能够控制机器人R2运动。通过将终端与机器人进行关联,并存储终端与机器人之间的关联关系,使得机器人能够被与该机器人关联的终端控制。After purchasing the robot, the user can use the terminal to download an APP for controlling the robot. The APP associates the terminal with the robot, and uploads the association relationship to the server. The server stores the association relationship between the terminal and the robot. A robot can be associated with one terminal, or with two or more terminals. For example, if A purchases the robot R1, the server stores the association relationship between A's mobile phone and the robot R1, so that when A opens the APP of his mobile phone, he can control the movement of the robot R1. For another example, someone buys a robot R2 and gives it to B. There are 3 people in B’s family, and B associates all 3 people’s mobile phones with robot R2, so that when any one of the 3 people in B’s family opens the app on their mobile phone, Able to control the movement of the robot R2. By associating the terminal with the robot and storing the association relationship between the terminal and the robot, the robot can be controlled by the terminal associated with the robot.
用户购买机器人之后,将机器人放在室内环境中,例如放在自己家里,开启机器人,则机器人会构建室内环境的激光SLAM地图和视觉SLAM地图。After the user purchases the robot, he puts the robot in an indoor environment, for example, in his own home, and turns on the robot, and the robot will construct a laser SLAM map and a visual SLAM map of the indoor environment.
下面对同时定位与地图构建技术进行介绍。The following describes the simultaneous positioning and map construction technology.
同时定位与地图构建(Simultaneous Localization And Mapping,简称SLAM),通常是指在机器人或者其他载体上,通过对各种传感器数据进行采集和计算,生成对其自身位置姿态的定位和场景地图信息的系统。SLAM技术对于机器人或其他智能体的行动和交互能力至为关键,因为它代表了这种能力的基础:知道自己在哪里,知道周围环境如何,进而知道下一步该如何自主行动。它在自动驾驶、服务型机器人、无人机、AR/VR 等领域有着广泛的应用,可以说凡是拥有一定行动能力的智能体都拥有某种形式的SLAM系统。Simultaneous Localization And Mapping (SLAM), usually refers to a system that collects and calculates various sensor data on a robot or other carrier to generate its own position and posture positioning and scene map information . SLAM technology is critical to the action and interaction capabilities of robots or other agents, because it represents the basis of this ability: knowing where you are, knowing the surrounding environment, and knowing how to act autonomously next. It has a wide range of applications in areas such as autonomous driving, service robots, unmanned aerial vehicles, AR/VR, etc. It can be said that all agents with certain mobility have some form of SLAM system.
一般来讲,SLAM系统通常都包含多种传感器和多种功能模块。而按照核心的功能模块来区分,目前常见的机器人SLAM系统一般具有两种形式:基于激光雷达的SLAM(激光SLAM)和基于视觉的SLAM(Visual SLAM、VSLAM或视觉SLAM)。Generally speaking, SLAM systems usually contain multiple sensors and multiple functional modules. According to the core functional modules, the current common robot SLAM system generally has two forms: SLAM based on lidar (laser SLAM) and SLAM based on vision (Visual SLAM, VSLAM or visual SLAM).
激光SLAM脱胎于早期的基于测距的定位方法(如超声和红外单点测距)。激光雷达的出现和普及使得测量更快更准,信息更丰富。激光雷达采集到的物体信息呈现出一系列分散的、具有准确角度和距离信息的点,被称为点云。通常,激光SLAM系统通过对不同时刻两片点云的匹配与比对,计算激光雷达相对运动的距离和姿态的改变,也就完成了对机器人自身的定位。激光雷达距离测量比较准确,误差模型简单,在强光直射以外的环境中运行稳定,点云的处理也比较容易。同时,点云信息本身包含直接的几何关系,使得机器人的路径规划和导航变得直观。Laser SLAM was born out of early ranging-based positioning methods (such as ultrasonic and infrared single-point ranging). The emergence and popularization of lidar makes the measurement faster and more accurate, and the information is richer. The object information collected by lidar presents a series of scattered points with accurate angle and distance information, which are called point clouds. Generally, the laser SLAM system calculates the relative movement distance and posture change of the lidar by matching and comparing two point clouds at different times, thus completing the positioning of the robot itself. Lidar distance measurement is more accurate, the error model is simple, it runs stably in environments other than direct sunlight, and it is easier to process point clouds. At the same time, the point cloud information itself contains direct geometric relationships, making the path planning and navigation of the robot intuitive.
眼睛是人类获取外界信息的主要来源。视觉SLAM也具有类似特点,它可以从环境中获取海量的、富于冗余的纹理信息,拥有超强的场景辨识能力。早期的视觉SLAM基于滤波理论,其非线性的误差模型和巨大的计算量成为了它实用落地的障碍。近年来,随着具有稀疏性的非线性优化理论(Bundle Adjustment)以及相机技术、计算性能的进步,实时运行的视觉SLAM已经不再是梦想。Eyes are the main source of information from the outside world. Visual SLAM also has similar characteristics. It can obtain massive and redundant texture information from the environment and has super-strong scene recognition capabilities. The early visual SLAM was based on filtering theory, and its nonlinear error model and huge amount of calculation became obstacles to its practical implementation. In recent years, with the sparse nonlinear optimization theory (Bundle Adjustment) and the advancement of camera technology and computing performance, visual SLAM running in real time is no longer a dream.
通常,一个视觉SLAM系统由前端和后端组成。前端负责通过视觉增量式计算机器人的位姿,速度较快。后端主要负责两个功能:一是在出现回环(即判定机器人回到了之前访问过的地点附近)时,发现回环并修正两次访问中间各处的位置与姿态;二是当前端跟踪丢失时,根据视觉的纹理信息对机器人进行重新定位。简单说,前端负责快速定位,后端负责较慢的地图维护。Generally, a visual SLAM system consists of a front end and a back end. The front end is responsible for calculating the robot's pose through visual incremental, which is faster. The back end is mainly responsible for two functions: one is when a loop occurs (that is, when the robot is determined to have returned to the place it has visited before), the loop is found and the position and posture of the two visits are corrected; the other is when the front end tracking is lost , Reposition the robot according to the visual texture information. Simply put, the front end is responsible for fast positioning, and the back end is responsible for slower map maintenance.
在本申请实施例中,机器人构建室内环境的激光SLAM地图和视觉SLAM地图之后,将构建的视觉SLAM地图传输给服务器,服务器接收并存储该视觉SLAM地图。In the embodiment of the present application, after the robot constructs the laser SLAM map and the visual SLAM map of the indoor environment, it transmits the constructed visual SLAM map to the server, and the server receives and stores the visual SLAM map.
在本申请实施例中,用户处于室内的空间中,想通过终端控制机器人的运动,例如,该机器人可以是扫地机器人,用户想通过终端控制扫地机器人运动到某个房间的某个位置以打扫卫生,为方便描述,将该位置称为目标点。In the embodiment of this application, the user is in an indoor space and wants to control the movement of the robot through the terminal. For example, the robot can be a sweeping robot, and the user wants to control the sweeping robot to move to a certain position in a certain room through the terminal to clean. , For the convenience of description, this position is called the target point.
用户的终端下载用于控制机器人的APP之后,当用户想要控制机器人运动到目标点时,用户打开终端的APP,APP调用终端的摄像头,请参见图3,用户可以将终端倾斜适当角度,使得摄像头能够采集到包含目标点的图像,终端界面上显示摄像头当前采集的图像,用户用手指触摸终端界面上的某一点以选择目标点,将用户手指与终端屏幕的接触点称为触摸点,终端对当前界面进行截图,得到目标图像帧。After the user’s terminal downloads the APP for controlling the robot, when the user wants to control the robot to move to the target point, the user opens the terminal’s APP, and the APP calls the terminal’s camera. See Figure 3. The user can tilt the terminal at an appropriate angle so that The camera can collect images containing the target point, and the current image captured by the camera is displayed on the terminal interface. The user touches a point on the terminal interface with a finger to select the target point. The contact point between the user's finger and the terminal screen is called the touch point. Take a screenshot of the current interface to get the target image frame.
请参见图3,触摸点为终端的屏幕上的一个点,而目标点为用户希望机器人运动到的位置。当用户想要改变目标点的位置时,例如,将目标点的位置从沙发前面的一个点变为书柜前面的一个点时,可调整终端的倾斜程度、或旋转以调整终端的摄像头的方向、或改变屏幕上的触摸点等。基于触摸点的位置和终端当前的倾斜角度,能够识别出图像中(即室内三维空间中)用户想要选择的目标点。Referring to Figure 3, the touch point is a point on the screen of the terminal, and the target point is the position the user wants the robot to move to. When the user wants to change the position of the target point, for example, changing the position of the target point from a point in front of the sofa to a point in front of the bookcase, the terminal can be adjusted to tilt or rotate to adjust the direction of the terminal’s camera, Or change the touch point on the screen, etc. Based on the position of the touch point and the current tilt angle of the terminal, the target point in the image (that is, in the indoor three-dimensional space) that the user wants to select can be identified.
请参见图4A,所示为手机对当前界面截图得到的目标图像帧。Please refer to Figure 4A, which shows the target image frame obtained by the mobile phone taking a screenshot of the current interface.
请参见图4B,点A为触摸点。终端使用预设特征提取算法提取目标图像帧中的特征点,例如:点B1、点B2、……、点B9为提取得到的特征点,终端确定特征点的屏幕坐标。预设特征提取算法可以为SIFT算法等。SIFT,即尺度不变特征变换(Scale-invariant feature transform,SIFT),是用于图像处理领域的一种描述。这种描述具有尺度不变性,可在图像中检测出关键点。Refer to Figure 4B, point A is the touch point. The terminal uses a preset feature extraction algorithm to extract feature points in the target image frame, for example, point B1, point B2, ..., point B9 are the extracted feature points, and the terminal determines the screen coordinates of the feature point. The preset feature extraction algorithm may be a SIFT algorithm or the like. SIFT, or Scale-invariant Feature Transform (SIFT), is a description used in the field of image processing. This description is scale-invariant, and key points can be detected in the image.
接下来引入两个概念,第一坐标系和第二坐标系。Next, introduce two concepts, the first coordinate system and the second coordinate system.
第一坐标系为视觉SLAM地图的坐标系在水平面上的投影坐标系,第二坐标系为激光SLAM地图的坐标系,第一坐标系和第二坐标系均为二维坐标系。The first coordinate system is the projected coordinate system of the coordinate system of the visual SLAM map on the horizontal plane, the second coordinate system is the coordinate system of the laser SLAM map, and both the first coordinate system and the second coordinate system are two-dimensional coordinate systems.
终端向服务器上传特征点和目标点的屏幕坐标,以及特征点和目标点的特征数据;还可以将目标图像帧的数据也上传到服务器。服务器根据各个特征点和目标点的特征数据,确定目标点与各个特征点的相对位置,根据各个特征点的特征数据从视觉SLAM地图中查找到这些特征点的坐标;并基于目标点与各个特征点的相对位置,获取到目标点在视觉SLAM地图中的坐标。即,获取到目标点在第一坐标系中的第一坐标。服务器将目标点在第一坐标系中的坐标转换为目标点在第二坐标系中的坐标。服务器将目标点在第二坐标系中的坐标发送给扫地机器人,扫地机器人根据目标点在第二坐标系中的坐标以及当前自身所处位置在第二坐标系中的坐标规划运动路径,并按照该运动路径运动到目标点,然后对目标点的位置进行清扫。The terminal uploads the screen coordinates of the feature point and the target point, and the feature data of the feature point and the target point to the server; it can also upload the data of the target image frame to the server. The server determines the relative position of the target point and each feature point according to the feature data of each feature point and the target point, and finds the coordinates of these feature points from the visual SLAM map according to the feature data of each feature point; and based on the target point and each feature The relative position of the point, the coordinates of the target point in the visual SLAM map are obtained. That is, the first coordinate of the target point in the first coordinate system is acquired. The server converts the coordinates of the target point in the first coordinate system into the coordinates of the target point in the second coordinate system. The server sends the coordinates of the target point in the second coordinate system to the sweeping robot, and the sweeping robot plans the movement path according to the coordinates of the target point in the second coordinate system and the coordinates of its current position in the second coordinate system. The movement path moves to the target point, and then the position of the target point is cleaned.
请参见图5A和图5B,本申请实施例提供的机器人的控制方法涉及终端、服务器、机器人之间的交互。图5A所示出的机器人的控制方法包括以下步骤S1至步骤S10。图5B所示出的机器人的控制方法包括以下步骤S1-S4、步骤S5′-S7′以及步骤S8-S10。下面详细介绍图5A。Referring to FIG. 5A and FIG. 5B, the robot control method provided by the embodiment of the present application involves the interaction between the terminal, the server, and the robot. The control method of the robot shown in FIG. 5A includes the following steps S1 to S10. The robot control method shown in FIG. 5B includes the following steps S1-S4, steps S5'-S7', and steps S8-S10. Figure 5A is described in detail below.
步骤S1:机器人构建视觉SLAM地图和激光SLAM地图。Step S1: The robot constructs a visual SLAM map and a laser SLAM map.
其中,机器人构建激光SLAM地图的过程包括步骤S400至步骤S403。机器人中安装有激光雷达,可以发射激光,并接收经障碍物反射回来的激光。其中,所述的障碍物指的是室内摆放的、一般处于静止的物体。Among them, the process of the robot constructing the laser SLAM map includes step S400 to step S403. Lidar is installed in the robot, which can emit laser light and receive the laser light reflected by obstacles. Among them, the obstacles refer to objects placed indoors and generally stationary.
步骤S400:预先确定待创建的激光SLAM地图的原点和坐标系。该原点的选取规则例如可以是出厂前设置的。其中,该原点例如可以为机器人的充电桩所在的位置。Step S400: Predetermine the origin and coordinate system of the laser SLAM map to be created. The selection rule of the origin may be set before the factory. Wherein, the origin may be, for example, the position of the charging pile of the robot.
步骤S401:机器人在室内运动的过程中,激光雷达不断发射激光,激光经障碍点反射后再被激光雷达接收。其中,所述的障碍点指的是障碍物中的一点。激光通常被发射到障碍物中的一点。Step S401: When the robot is moving indoors, the lidar continuously emits laser light, and the laser light is reflected by the obstacle point before being received by the lidar. Wherein, the obstacle point refers to a point in the obstacle. The laser is usually fired to a point in the obstacle.
步骤S402:机器人根据激光雷达的朝向确定障碍点的方向;根据激光从发射到被返回接收的时长确定障碍点与机器人的距离。Step S402: the robot determines the direction of the obstacle point according to the orientation of the lidar; and determines the distance between the obstacle point and the robot according to the length of time from when the laser is emitted to when the laser is received.
其中,在原点和坐标系确定之后,机器人在运动的过程中,机器人可以基于自身的传感器获取到自身当前所在位置的坐标。由此,基于激光往返的时长,能够确定障碍点与机器人当前位置的距离;也能够确定障碍点与原点之间的距离。Among them, after the origin and coordinate system are determined, during the movement of the robot, the robot can obtain the coordinates of its current location based on its own sensors. In this way, based on the length of the laser round trip, the distance between the obstacle point and the current position of the robot can be determined; the distance between the obstacle point and the origin can also be determined.
步骤S403:机器人通过在室内运动和不断的发射激光,可以获取到各个障碍点的方向和各个障碍点与原点之间的距离,然后机器人基于障碍点的方向、障碍点与原点之 间的距离创建激光SLAM地图。Step S403: The robot can obtain the direction of each obstacle point and the distance between each obstacle point and the origin by moving indoors and continuously emitting laser, and then the robot can create based on the direction of the obstacle point and the distance between the obstacle point and the origin Laser SLAM map.
机器人构建视觉SLAM地图的过程包括步骤S501至步骤S505。机器人中安装有摄像头,用于拍摄周围环境。The process of the robot constructing the visual SLAM map includes steps S501 to S505. A camera is installed in the robot to take pictures of the surrounding environment.
步骤S501:预先确定待创建的视觉SLAM地图的原点和坐标系。该原点的选取规则例如可以是出厂前设置的。其中,该原点例如可以为机器人的充电桩所在的位置。Step S501: Predetermine the origin and coordinate system of the visual SLAM map to be created. The selection rule of the origin may be set before the factory. Wherein, the origin may be, for example, the position of the charging pile of the robot.
步骤S502:机器人在室内运动,并通过摄像头拍摄周围环境的图片。其中,在原点和坐标系确定之后,机器人在运动的过程中,机器人可以基于自身的传感器获取到自身当前所在位置的坐标。Step S502: the robot moves indoors and takes pictures of the surrounding environment through the camera. Among them, after the origin and coordinate system are determined, during the movement of the robot, the robot can obtain the coordinates of its current location based on its own sensors.
步骤S503:机器人根据预设特征提取算法提取拍摄得到的图像的特征点,并获取这些特征点相对于机器人的位置。预设特征提取算法可以为SIFT算法等。SIFT,即尺度不变特征变换(Scale-invariant feature transform,SIFT),是用于图像处理领域的一种描述。这种描述具有尺度不变性,可在图像中检测出关键点。Step S503: The robot extracts feature points of the captured image according to a preset feature extraction algorithm, and obtains the positions of these feature points relative to the robot. The preset feature extraction algorithm may be a SIFT algorithm or the like. SIFT, or Scale-invariant Feature Transform (SIFT), is a description used in the field of image processing. This description is scale-invariant, and key points can be detected in the image.
步骤S504:机器人根据特征点相对于机器人的位置、机器人当前在视觉SLAM地图的坐标系中的坐标,计算特征点在视觉SLAM地图的坐标系中的坐标。Step S504: The robot calculates the coordinates of the feature point in the coordinate system of the visual SLAM map according to the position of the feature point relative to the robot and the current coordinate of the robot in the coordinate system of the visual SLAM map.
步骤S505:机器人通过在室内运动和不断的获取周围特征点的坐标,在视觉SLAM地图的坐标系中的坐标绘制视觉SLAM地图。Step S505: The robot draws a visual SLAM map based on the coordinates in the coordinate system of the visual SLAM map by moving indoors and continuously acquiring the coordinates of the surrounding feature points.
请参见图6,在空间直角坐标系中,让右手拇指指向x轴的正方向,食指指向y轴的正方向,如果中指能指向z轴的正方向,则称这个坐标系为右手坐标系。视觉SLAM坐标系中XY平面描述的是以原点为切点的地球平面的切平面,本申请实施例中地球面可看成是地平面,则XY平面描述的即为地面,与激光SLAM的坐标系描述的平面相同。如前文所述,第一坐标系为视觉SLAM地图的坐标系在水平面上的投影坐标系,因此,对于三维空间的任一点,该点在视觉SLAM地图中的横坐标与该点在第一坐标系中的横坐标相同;并且,该点在视觉SLAM地图中的纵坐标与该点在第一坐标系中的纵坐标相同。第二坐标系为激光SLAM地图的坐标系,对于三维空间的任一点,该点在激光SLAM地图中的横坐标与该点在第二坐标系中的横坐标相同;并且,该点在激光SLAM地图中的纵坐标与该点在第二坐标系中的纵坐标相同。Refer to Figure 6. In the spatial rectangular coordinate system, let the right thumb point to the positive direction of the x-axis, and the index finger point to the positive direction of the y-axis. If the middle finger can point to the positive direction of the z-axis, this coordinate system is called the right-handed coordinate system. The XY plane in the visual SLAM coordinate system describes the tangent plane of the earth plane with the origin as the tangent point. In the embodiment of this application, the earth surface can be regarded as the ground plane, and the XY plane describes the ground and the coordinates of the laser SLAM The plane described by the department is the same. As mentioned above, the first coordinate system is the projected coordinate system of the coordinate system of the visual SLAM map on the horizontal plane. Therefore, for any point in the three-dimensional space, the abscissa of the point in the visual SLAM map is the same as the point in the first coordinate. The abscissa of the system is the same; and the ordinate of the point in the visual SLAM map is the same as the ordinate of the point in the first coordinate system. The second coordinate system is the coordinate system of the laser SLAM map. For any point in the three-dimensional space, the abscissa of the point in the laser SLAM map is the same as the abscissa of the point in the second coordinate system; and the point is in the laser SLAM The ordinate in the map is the same as the ordinate of the point in the second coordinate system.
视觉SLAM地图中存在特征点相对于机器人的位置的累计,所以存在累积误差。在构建视觉SLAM地图的过程中,可以使用激光SLAM地图对视觉SLAM地图进行纠偏。具体地,对于视觉SLAM地图中的某一点(为方便描述,将该点称为点B)的横坐标X 0和纵坐标Y 0,在激光SLAM地图中确定该点的横坐标和纵坐标分别为X 0'、Y 0',则可以根据该点在激光SLAM地图中的坐标对该点在视觉SLAM地图中的坐标进行纠偏。 In the visual SLAM map, there is an accumulation of feature points relative to the position of the robot, so there is a cumulative error. In the process of constructing the visual SLAM map, the laser SLAM map can be used to correct the visual SLAM map. Specifically, for the abscissa X 0 and ordinate Y 0 of a point in the visual SLAM map (for convenience of description, the point is called point B), the abscissa and ordinate of the point are determined in the laser SLAM map, respectively X 0 ', Y 0 ', the coordinates of the point in the visual SLAM map can be corrected according to the coordinates of the point in the laser SLAM map.
作为一种可能的方式,纠偏后点B在视觉SLAM地图中的横坐标为K1*X 0+K2*X 0',纵坐标为K1*Y 0+K2*Y 0'。K1、K2均为常量,K1、K2的值可以相等,也可以不相等。例如,作为一种可选的方式,可以令K1、K2均为1/2,此时,纠偏后点B在视觉SLAM地图中的横坐标为(X 0+X 0')/2,纵坐标为(Y 0+Y 0')/2;作为另一种可选的方式,可以令K1=0.25、K2=0.75,此时,纠偏后点B在视觉SLAM地图中的横坐标为0.25*X 0+0.75*X 0',纵坐标为0.25*Y 0+0.75*Y 0';作为又一种可选的方式,可以令K1=0,K2=1,此时,纠 偏后点B在视觉SLAM地图中的横坐标为X 0',纵坐标为Y 0'。 As a possible way, the abscissa of point B in the visual SLAM map after correction is K1*X 0 +K2*X 0 ', and the ordinate is K1*Y 0 +K2*Y 0 '. K1 and K2 are constants, and the values of K1 and K2 can be equal or unequal. For example, as an optional method, both K1 and K2 can be set to 1/2. At this time, the abscissa of point B in the visual SLAM map after correction is (X 0 +X 0 ')/2, and the ordinate is Is (Y 0 +Y 0 ')/2; as another alternative, you can set K1=0.25, K2=0.75, at this time, the abscissa of point B in the visual SLAM map after correction is 0.25*X 0 +0.75*X 0 ', the ordinate is 0.25*Y 0 +0.75*Y 0 '; as yet another optional way, you can set K1=0, K2=1, at this time, point B is in the visual The horizontal coordinate in the SLAM map is X 0 ', and the vertical coordinate is Y 0 '.
步骤S2:机器人将视觉SLAM地图上传给服务器。Step S2: The robot uploads the visual SLAM map to the server.
步骤S3:机器人将第一坐标系的原点与第二坐标系的原点的相对位置、第一坐标系的轴向与第二坐标系的轴向的夹角上传给服务器。Step S3: The robot uploads the relative position of the origin of the first coordinate system and the origin of the second coordinate system, and the angle between the axial direction of the first coordinate system and the axial direction of the second coordinate system to the server.
若已知两个原点之间的距离,以及一个原点相对于另一个原点的方向,则能够知道两个原点的相对位置。若已知第一坐标系的原点在第二坐标系中的坐标,或者,已知第二坐标系的原点在第一坐标系中的坐标,也能够知道两个原点的相对位置。步骤S3中机器人将第一坐标系的原点与第二坐标系的原点的相对位置上传给服务器,具体指将以下信息上传给服务器:第一坐标系的原点与第二坐标系的原点之间的距离,以及一个原点相对于另一个原点的方向;或者,第一坐标系的原点在第二坐标系中的坐标,或者,第二坐标系的原点在第一坐标系中的坐标。If the distance between two origins and the direction of one origin relative to the other origin are known, the relative position of the two origins can be known. If the coordinates of the origin of the first coordinate system in the second coordinate system are known, or the coordinates of the origin of the second coordinate system in the first coordinate system are known, the relative positions of the two origins can also be known. In step S3, the robot uploads the relative position of the origin of the first coordinate system and the origin of the second coordinate system to the server. Specifically, it uploads the following information to the server: the distance between the origin of the first coordinate system and the origin of the second coordinate system Distance, and the direction of one origin relative to another origin; or, the coordinates of the origin of the first coordinate system in the second coordinate system, or the coordinates of the origin of the second coordinate system in the first coordinate system.
第一坐标系的原点与第二坐标系的原点可以重合,也可以不重合。相比于两个原点重合的情况,两个原点不重合的情况下根据第一坐标计算第二坐标的公式更加复杂。在两个坐标系的原点重合这种情况下,机器人只需要将第一坐标系的轴向与第二坐标系的轴向之间的夹角上传给服务器。The origin of the first coordinate system and the origin of the second coordinate system may or may not coincide. Compared with the case where the two origins overlap, the formula for calculating the second coordinate based on the first coordinate is more complicated when the two origins do not overlap. In the case where the origins of the two coordinate systems coincide, the robot only needs to upload the angle between the axial direction of the first coordinate system and the axial direction of the second coordinate system to the server.
第一坐标系的轴向与第二坐标系的轴向之间的夹角具体指:第一坐标系的横轴与第二坐标系的横轴之间的夹角,或,第一坐标系的纵轴与第二坐标系的纵轴之间的夹角。该夹角位于[0,π]之间。请参见图7,xOy表示第一坐标系,x′Oy′表示第二坐标系,θ即为两坐标系的轴向的夹角。The angle between the axial direction of the first coordinate system and the axial direction of the second coordinate system specifically refers to the angle between the horizontal axis of the first coordinate system and the horizontal axis of the second coordinate system, or, the first coordinate system The angle between the vertical axis of and the vertical axis of the second coordinate system. The included angle lies between [0,π]. Referring to FIG. 7, xOy represents the first coordinate system, x'Oy' represents the second coordinate system, and θ is the axial angle between the two coordinate systems.
步骤S4:终端显示视觉界面。Step S4: The terminal displays a visual interface.
当用户想要控制机器人运动到目标点时,例如用户想要控制扫地机器人运动到目标点去打扫卫生时,用户可以打开安装在终端上的用于控制机器人的APP。APP调用终端的摄像头拍摄当前环境的图像,为用户提供视觉界面。用户在摄像头拍摄的图像中能够看到室内环境,例如,用户在摄像头拍摄的图像中能够看到沙发、桌椅、书柜等。如果用户想让机器人运动到沙发前面的某一个位置,则沙发前面的这个位置即为目标点;如果用户想让机器人运动到书柜旁边的某一个位置,则书柜旁边的这个位置即为目标点。When the user wants to control the robot to move to a target point, for example, when the user wants to control the sweeping robot to move to the target point to clean, the user can open an APP installed on the terminal for controlling the robot. The APP calls the camera of the terminal to take an image of the current environment and provides a visual interface for the user. The user can see the indoor environment in the image taken by the camera, for example, the user can see the sofa, desk, chair, bookcase, etc. in the image taken by the camera. If the user wants the robot to move to a certain position in front of the sofa, the position in front of the sofa is the target point; if the user wants the robot to move to a certain position beside the bookcase, the position beside the bookcase is the target point.
步骤S5:终端接收用户的触摸操作,对界面进行截图得到目标图像帧,提取目标图像帧中的特征点,并确定出各个特征点的特征数据和目标点与各个特征点的相对位置。一般来说,提取的特征点的数量大于2。Step S5: The terminal receives the user's touch operation, takes a screenshot of the interface to obtain the target image frame, extracts the feature points in the target image frame, and determines the feature data of each feature point and the relative position of the target point and each feature point. Generally speaking, the number of extracted feature points is greater than 2.
用户手指在终端的屏幕上触摸以选择目标点,假设触摸点(手指与屏幕接触的位置)为点A(请参见图4B)。终端基于点A的位置和终端当前的倾斜角度,识别出图像中(即室内三维空间中)用户想要选择的目标点。终端对屏幕上显示的界面进行截图,得到目标图像帧,终端提取目标图像帧中的特征点,图4B示出了提取出的一些特征点(例如点B1、点B2、……、点B9)。终端确定出目标点和每个特征点的相对位置。The user's finger touches on the screen of the terminal to select a target point, assuming that the touch point (the position where the finger contacts the screen) is point A (see FIG. 4B). Based on the position of point A and the current tilt angle of the terminal, the terminal recognizes the target point in the image (that is, in the indoor three-dimensional space) that the user wants to select. The terminal takes a screenshot of the interface displayed on the screen to obtain the target image frame, and the terminal extracts the characteristic points in the target image frame. Figure 4B shows some of the extracted characteristic points (for example, point B1, point B2, ..., point B9) . The terminal determines the relative position of the target point and each feature point.
需要注意的是:步骤S5中终端提取目标图像帧中的特征点所使用的特征提取算法与机器人构建SLAM地图时所采用的特征提取算法是相同的。It should be noted that the feature extraction algorithm used by the terminal to extract feature points in the target image frame in step S5 is the same as the feature extraction algorithm used when the robot constructs the SLAM map.
步骤S6:终端将各个特征点的特征数据和目标点与各个特征点的相对位置上传给服务器。Step S6: The terminal uploads the characteristic data of each characteristic point and the relative position of the target point and each characteristic point to the server.
步骤S7:服务器根据各个特征点的特征数据从视觉SLAM地图中查找到这些特征点的坐标;并基于目标点与各个特征点的相对位置,获取到目标点在视觉SLAM地图中的坐标。即,获取到目标点在第一坐标系中的坐标,为方便描述,将该坐标称为第一坐标。Step S7: The server finds the coordinates of these characteristic points from the visual SLAM map according to the characteristic data of each characteristic point; and obtains the coordinates of the target point in the visual SLAM map based on the relative position of the target point and each characteristic point. That is, the coordinates of the target point in the first coordinate system are acquired. For the convenience of description, the coordinates are called the first coordinates.
具体地,服务器接收终端上传的特征点的特征数据,在自身存储的视觉SLAM地图中查找对应的特征点,确定出特征点在视觉SLAM地图中的坐标。特征点在视觉SLAM地图中的坐标可以是三维的坐标,三个维度的坐标分别为:横坐标、纵坐标、竖坐标。其中,取上述横坐标作为目标点在第一坐标系中的横坐标,取上述纵坐标作为目标点在第一坐标系中的纵坐标。根据特征点在第一坐标系中的坐标、特征点与目标点的相对位置确定目标点在第一坐标系中的坐标,即,确定第一坐标。Specifically, the server receives the feature data of the feature points uploaded by the terminal, searches for the corresponding feature points in the visual SLAM map stored by itself, and determines the coordinates of the feature points in the visual SLAM map. The coordinates of the feature points in the visual SLAM map can be three-dimensional coordinates. The coordinates of the three dimensions are: abscissa, ordinate, and vertical. Wherein, the abscissa is taken as the abscissa of the target point in the first coordinate system, and the ordinate is taken as the ordinate of the target point in the first coordinate system. The coordinates of the target point in the first coordinate system are determined according to the coordinates of the characteristic point in the first coordinate system and the relative position of the characteristic point and the target point, that is, the first coordinate is determined.
步骤S8:服务器根据第一坐标系与第二坐标系的原点的相对位置、第一坐标系的轴向与第二坐标系的轴向的夹角,将第一坐标转换为第二坐标。Step S8: The server converts the first coordinate into the second coordinate according to the relative position of the origin of the first coordinate system and the second coordinate system, and the angle between the axial direction of the first coordinate system and the axial direction of the second coordinate system.
假设目标点在第一坐标系中横坐标为X,纵坐标为Y,在第二坐标系中横坐标为X′,纵坐标为Y′。则将第一坐标转换为第二坐标即为根据第一坐标计算第二坐标的过程。Assume that the abscissa of the target point is X and the ordinate is Y in the first coordinate system, and the abscissa is X'and the ordinate is Y'in the second coordinate system. Then, converting the first coordinate to the second coordinate is the process of calculating the second coordinate based on the first coordinate.
请参见图7,xOy表示第一坐标系,x′Oy′表示第二坐标系,第一坐标系的横轴与第二坐标系的横轴之间的夹角为θ,在第一坐标系与第二坐标系原点重合的情况下,点A在第一坐标系中的坐标为(X,Y),在第二坐标系中的坐标为(X′,Y′),点A与两坐标系的原点O之间的距离为r,线段OA与第一坐标系的横轴之间的夹角为β。以下公式成立:Please refer to Figure 7, xOy represents the first coordinate system, x'Oy' represents the second coordinate system, the angle between the horizontal axis of the first coordinate system and the horizontal axis of the second coordinate system is θ, in the first coordinate system In the case of coincidence with the origin of the second coordinate system, the coordinates of point A in the first coordinate system are (X, Y), and the coordinates in the second coordinate system are (X′, Y′), point A and the two coordinates The distance between the origin O of the system is r, and the angle between the line segment OA and the horizontal axis of the first coordinate system is β. The following formula holds:
X=r*cos(β)                (1)X=r*cos(β) (1)
Y=r*sin(β)                (2)Y=r*sin(β) (2)
X′=r*cos(θ+β)                        (3)X′=r*cos(θ+β) (3)
Y′=r*sin(θ+β)                        (4)Y′=r*sin(θ+β) (4)
公式(3)展开得到公式(5)Formula (3) is expanded to get formula (5)
X′=r*[cos(θ)*cos(β)-sin(θ)sin(β)]              (5)X′=r*[cos(θ)*cos(β)-sin(θ)sin(β)] (5)
公式(4)展开得到公式(6)Formula (4) is expanded to get formula (6)
Y′=r*[sin(θ)*cos(β)+cos(β)sin(θ)]              (6)Y′=r*[sin(θ)*cos(β)+cos(β)sin(θ)] (6)
将公式(1)和(2)代入公式(5)、(6)即得出以下结果Substituting formulas (1) and (2) into formulas (5) and (6) gives the following results
X′=X*cos(θ)–Y*sin(θ)                      (7)X′=X*cos(θ)–Y*sin(θ) (7)
Y′=X*sin(θ)+Y*cos(θ)                       (8)Y′=X*sin(θ)+Y*cos(θ) (8)
转换成矩阵计算即为:Converted to matrix calculation is:
Figure PCTCN2020103859-appb-000001
Figure PCTCN2020103859-appb-000001
根据公式(7)、(8),或者根据公式(9),即可计算出目标点在第二坐标系中的坐标(X′,Y′)。According to formula (7), (8), or formula (9), the coordinates (X', Y') of the target point in the second coordinate system can be calculated.
根据公式(7)、(8),或者根据公式(9)计算第二坐标,都需要知道θ的值。第一坐标系的横轴与第二坐标系的横轴之间的夹角为θ,第一坐标系的横轴的正方向由摄像 头的固定参数决定,第二坐标系的横轴的正方向由激光雷达的固定参数决定。一旦机器人生产制造出来,θ即确定下来,是一个固定的常量。可以根据同一点在第一坐标系中的坐标和第二坐标系中的坐标反推出θ。According to formula (7), (8), or according to formula (9) to calculate the second coordinate, it is necessary to know the value of θ. The angle between the horizontal axis of the first coordinate system and the horizontal axis of the second coordinate system is θ, the positive direction of the horizontal axis of the first coordinate system is determined by the fixed parameters of the camera, and the positive direction of the horizontal axis of the second coordinate system Determined by the fixed parameters of the lidar. Once the robot is manufactured, θ is determined and is a fixed constant. Θ can be deduced from the coordinates of the same point in the first coordinate system and the coordinates in the second coordinate system.
下面对反推出θ的方法进行详细介绍。确定一个点(为方便描述,称该点为点C),使机器人运动到点C,查看机器人分别在第一坐标系和第二坐标系中的坐标,假设在第一坐标系中的坐标为(X 1,Y 1),在第二坐标系中的坐标为(X 1′,Y 1′),即,点C在第一坐标系中的坐标为(X 1,Y 1),点C在第二坐标系中的坐标为(X 1′,Y 1′)。 The method of deducing θ will be introduced in detail below. Determine a point (for the convenience of description, call this point C), make the robot move to point C, and check the coordinates of the robot in the first coordinate system and the second coordinate system. Assume that the coordinates in the first coordinate system are (X 1 , Y 1 ), the coordinates in the second coordinate system are (X 1 ′, Y 1 ′), that is, the coordinates of point C in the first coordinate system are (X 1 , Y 1 ), point C The coordinates in the second coordinate system are (X 1 ′, Y 1 ′).
根据以上公式(7)和(8),有:According to the above formulas (7) and (8), there are:
X 1′=X 1*cos(θ)–Y 1*sin(θ)                     (10) X 1 ′=X 1 *cos(θ)–Y 1 *sin(θ) (10)
Y 1′=X 1*sin(θ)+Y 1*cos(θ)                      (11) Y 1 ′=X 1 *sin(θ)+Y 1 *cos(θ) (11)
将公式(10)左右两边同时乘以X 1,得到公式(12) Multiply both the left and right sides of formula (10) by X 1 to obtain formula (12)
X 1X 1′=X 1 2*cos(θ)–X 1Y 1*sin(θ)                 (12) X 1 X 1 ′=X 1 2 *cos(θ)–X 1 Y 1 *sin(θ) (12)
将公式(11)左右两边同时乘以Y 1,得到公式(13) Multiply both the left and right sides of formula (11) by Y 1 to obtain formula (13)
Y 1Y 1′=Y 1X 1*sin(θ)+Y 1 2*cos(θ)                (13) Y 1 Y 1 ′=Y 1 X 1 *sin(θ)+Y 1 2 *cos(θ) (13)
将公式(12)和公式(13)左右两边分别相加,得到公式(14)Add the left and right sides of formula (12) and formula (13) to obtain formula (14)
X 1X 1′+Y 1Y 1′=X 1 2*cos(θ)+Y 1 2*cos(θ)=(X 1 2+Y 1 2)*cos(θ)      (14) X 1 X 1 ′+Y 1 Y 1 ′=X 1 2 *cos(θ)+Y 1 2 *cos(θ)=(X 1 2 +Y 1 2 )*cos(θ) (14)
因此,therefore,
cos(θ)=(X 1X 1′+Y 1Y 1′)/(X 1 2+Y 1 2)             (15) cos(θ)=(X 1 X 1 ′+Y 1 Y 1 ′)/(X 1 2 +Y 1 2 ) (15)
知道cos(θ)之后,即可根据三角函数关系求得θ以及sin(θ)。After knowing cos(θ), you can obtain θ and sin(θ) according to the relationship of trigonometric functions.
需要注意的是,由于视觉SLAM坐标系中存在累积误差,第一坐标系为视觉SLAM坐标系在水平面上的投影的坐标系,因此,第一坐标系中也存在累积误差,距离原点越远的点的坐标越不准确。因此,通过选取距离原点近的位置(例如点C与原点之间的距离在30厘米以内),得到的机器人在第一坐标系中的坐标更加准确,据此计算出的θ也更加准确。It should be noted that due to the cumulative error in the visual SLAM coordinate system, the first coordinate system is the coordinate system of the projection of the visual SLAM coordinate system on the horizontal plane. Therefore, there is also cumulative error in the first coordinate system. The more inaccurate the coordinates of the point. Therefore, by selecting a position close to the origin (for example, the distance between the point C and the origin is within 30 cm), the obtained coordinates of the robot in the first coordinate system are more accurate, and the θ calculated accordingly is also more accurate.
步骤S9:服务器向机器人发送第二坐标。所述的第二坐标即为目标点在激光SLAM地图中的坐标。Step S9: The server sends the second coordinates to the robot. The second coordinate is the coordinate of the target point in the laser SLAM map.
步骤S10:机器人根据第二坐标确定运动路径,并按照该运动路径向目标点运动。Step S10: the robot determines the movement path according to the second coordinates, and moves to the target point according to the movement path.
具体地,机器人知道自身当前所处位置在第二坐标系中的坐标,也知道了目标点在第二坐标系中的坐标,根据激光SLAM地图确定运动路径,并按照运动路径向目标点运动。Specifically, the robot knows the coordinates of its current position in the second coordinate system, and also knows the coordinates of the target point in the second coordinate system, determines the motion path according to the laser SLAM map, and moves to the target point according to the motion path.
图5B所示出的机器人的控制方法中的步骤S1-S4与图5A所示的步骤S1-S4相同。在步骤S4之后,该方法还包括以下步骤S5′-S7′。Steps S1-S4 in the robot control method shown in FIG. 5B are the same as steps S1-S4 shown in FIG. 5A. After step S4, the method further includes the following steps S5'-S7'.
步骤S5′:终端接收用户的触摸操作,对界面进行截图得到目标图像帧。Step S5': The terminal receives the user's touch operation, and takes a screenshot of the interface to obtain the target image frame.
用户手指在终端的屏幕上触摸以选择目标点,假设触摸点(手指与屏幕接触的位置)为点A(请参见图4B)。终端基于点A的位置和终端当前的倾斜角度,识别出图像中(即室内三维空间中)用户想要选择的目标点。终端对屏幕上显示的界面进行截图,得到目标图像帧。The user's finger touches on the screen of the terminal to select a target point, assuming that the touch point (the position where the finger contacts the screen) is point A (see FIG. 4B). Based on the position of point A and the current tilt angle of the terminal, the terminal recognizes the target point in the image (that is, in the indoor three-dimensional space) that the user wants to select. The terminal takes a screenshot of the interface displayed on the screen to obtain the target image frame.
步骤S6′:终端将目标图像帧上传到服务器。Step S6': The terminal uploads the target image frame to the server.
步骤S7′:服务器从目标图像帧中提取特征点,确定出各个特征点的特征数据,确定目标点与各个特征点的相对位置,根据各个特征点的特征数据从视觉SLAM地图中查找到这些特征点的坐标;并基于目标点与各个特征点的相对位置,获取到目标点在视觉SLAM地图中的坐标。即,获取到目标点在第一坐标系中的坐标,为方便描述,将该坐标称为第一坐标。Step S7': The server extracts feature points from the target image frame, determines the feature data of each feature point, determines the relative position of the target point and each feature point, and finds these features from the visual SLAM map based on the feature data of each feature point The coordinates of the point; and based on the relative position of the target point and each feature point, the coordinates of the target point in the visual SLAM map are obtained. That is, the coordinates of the target point in the first coordinate system are acquired. For the convenience of description, the coordinates are called the first coordinates.
一般来说,提取的特征点的数量大于2。图4B示出了提取出的一些特征点(例如点B1、点B2、……、点B9)。Generally speaking, the number of extracted feature points is greater than 2. FIG. 4B shows some extracted feature points (for example, point B1, point B2, ..., point B9).
具体地,服务器接收终端上传的特征点的特征数据,在自身存储的视觉SLAM地图中查找对应的特征点,确定出特征点在视觉SLAM地图中的坐标。特征点在视觉SLAM地图中的坐标可以是三维的坐标,三个维度的坐标分别为:横坐标、纵坐标、竖坐标。其中,取上述横坐标作为目标点在第一坐标系中的横坐标,取上述纵坐标作为目标点在第一坐标系中的纵坐标。根据特征点在第一坐标系中的坐标、特征点与目标点的相对位置确定目标点在第一坐标系中的坐标,即,确定第一坐标。Specifically, the server receives the feature data of the feature points uploaded by the terminal, searches for the corresponding feature points in the visual SLAM map stored by itself, and determines the coordinates of the feature points in the visual SLAM map. The coordinates of the feature points in the visual SLAM map can be three-dimensional coordinates. The coordinates of the three dimensions are: abscissa, ordinate, and vertical. Wherein, the abscissa is taken as the abscissa of the target point in the first coordinate system, and the ordinate is taken as the ordinate of the target point in the first coordinate system. The coordinates of the target point in the first coordinate system are determined according to the coordinates of the characteristic point in the first coordinate system and the relative position of the characteristic point and the target point, that is, the first coordinate is determined.
在步骤S7′之后,图5B所示出的机器人的控制方法还包括步骤S8-S10。图5B所示出的机器人的控制方法包括的步骤S8-S10与图5A所示的步骤S8-S10相同。After step S7', the robot control method shown in FIG. 5B further includes steps S8-S10. The steps S8-S10 included in the robot control method shown in FIG. 5B are the same as the steps S8-S10 shown in FIG. 5A.
在本申请实施例中,用户不需要在还原度很低的电子地图上选择目标点,而是直接在终端的界面上选择目标点,因此,用户能够精确选择想要控制机器人运动到的位置,从而机器人能够准确运动到目标点。In the embodiment of this application, the user does not need to select the target point on the electronic map with a low degree of restoration, but directly selects the target point on the interface of the terminal. Therefore, the user can accurately select the position where the robot wants to control the movement. So the robot can accurately move to the target point.
在图5A所示出的流程中,终端从目标图像帧中提取特征点,然后将特征点的特征数据上传给服务器,而不会将目标图像帧上传给服务器,这种方式的好处在于由于服务器无法根据特征点的数据反推出目标图像帧,从而有效地保护了用户隐私。In the process shown in FIG. 5A, the terminal extracts the feature points from the target image frame, and then uploads the feature data of the feature points to the server instead of uploading the target image frame to the server. The advantage of this method is that the server The target image frame cannot be deduced based on the data of the feature points, thereby effectively protecting user privacy.
而在图5B所示出的流程中,终端将目标图像帧上传到服务器,由服务器提取目标图像帧中的特征点。这种方式的好处在于:有效减少了终端的计算量,减少了对终端的计算资源的占用,从而对终端的配置要求较低。而且,由于服务器的计算能力比终端强很多,这种方式的计算速度更快,从而机器人响应更快。In the process shown in FIG. 5B, the terminal uploads the target image frame to the server, and the server extracts the feature points in the target image frame. The advantage of this method is that the calculation amount of the terminal is effectively reduced, and the occupation of the calculation resources of the terminal is reduced, so that the configuration requirements of the terminal are lower. Moreover, since the computing power of the server is much stronger than that of the terminal, the computing speed in this way is faster, so the robot responds faster.
请参见图8,所示为本申请实施例提供的一种执行机器人的控制方法的流程图。需要注意的是,图8所示的实施例是以手机和扫地机器人为例进行说明的,本申请的控制方法也可以应用在除手机和扫地机器人以外的其它终端中,例如:可以是平板电脑控制拖地机器人或者控制其它可移动的设备。Please refer to FIG. 8, which shows a flowchart of a control method for executing a robot provided by an embodiment of the application. It should be noted that the embodiment shown in FIG. 8 is described by taking mobile phones and robot cleaners as examples, and the control method of this application can also be applied to other terminals except mobile phones and robot cleaners, for example, a tablet computer. Control mopping robots or control other movable equipment.
图8所示的方法的流程可以分为三个部分:The process of the method shown in Figure 8 can be divided into three parts:
第一部分,主要包括在用户购买扫地机器人之后,在使用扫地机器人打扫卫生之前,需要在手机上下载用于控制扫地机器人的APP,并关联手机和扫地机器人,具体包括步骤S101至步骤S103。The first part mainly includes that after the user purchases the cleaning robot, before using the cleaning robot to clean, it is necessary to download an APP for controlling the cleaning robot on the mobile phone and associate the mobile phone with the cleaning robot, specifically including steps S101 to S103.
步骤S101:用户打开安装在手机上的用于控制扫地机器人的APP。Step S101: The user opens the APP installed on the mobile phone for controlling the sweeping robot.
步骤S102:用户在APP上将手机与扫地机器人进行关联,手机将关联关系上传到 服务器。将手机与扫地机器人进行关联的目的是:使扫地机器人被与其关联的特定终端所控制。Step S102: The user associates the mobile phone with the sweeping robot on the APP, and the mobile phone uploads the association relationship to the server. The purpose of associating the mobile phone with the cleaning robot is to make the cleaning robot be controlled by the specific terminal associated with it.
步骤S103:服务器接收手机上传的手机与扫地机器人的关联关系,并存储该关联关系。Step S103: The server receives the association relationship between the mobile phone and the cleaning robot uploaded by the mobile phone, and stores the association relationship.
第二部分,主要包括扫地机器人对室内环境构建激光SLAM地图和视觉SLAM地图,服务器存储扫地机器人上传的视觉SLAM地图,具体包括步骤S201至步骤S206。The second part mainly includes the construction of laser SLAM maps and visual SLAM maps for the indoor environment by the sweeping robot. The server stores the visual SLAM maps uploaded by the sweeping robot, which specifically includes steps S201 to S206.
步骤S201:扫地机器人分别建立室内环境的激光SLAM地图、视觉SLAM地图。Step S201: The sweeping robot separately establishes a laser SLAM map and a visual SLAM map of the indoor environment.
步骤S202:扫地机器人将视觉SLAM地图上传给服务器。Step S202: The sweeping robot uploads the visual SLAM map to the server.
步骤S203:扫地机器人将室内环境中的同一点分别在第一坐标系中的坐标(X 1,Y 1),在第二坐标系中的坐标(X 1′,Y 1′)上传给服务器。 Step S203: The cleaning robot uploads the coordinates (X 1 , Y 1 ) in the first coordinate system and the coordinates (X 1 ′, Y 1 ′) in the second coordinate system of the same point in the indoor environment to the server.
步骤S204:服务器接收扫地机器人上传的视觉SLAM地图,并将该视觉SLAM地图与扫地机器人进行关联。Step S204: The server receives the visual SLAM map uploaded by the cleaning robot, and associates the visual SLAM map with the cleaning robot.
步骤S205:服务器接收扫地机器人上传的同一点分别在第一坐标系中的坐标(X 1,Y 1),在第二坐标系中的坐标(X 1′,Y 1′)。第一坐标系为视觉SLAM地图的坐标系在水平面上的投影坐标系,第二坐标系为激光SLAM地图的坐标系。 Step S205: The server receives the coordinates (X 1 , Y 1 ) in the first coordinate system and the coordinates (X 1 ′, Y 1 ′) in the second coordinate system of the same point uploaded by the cleaning robot. The first coordinate system is the projected coordinate system of the coordinate system of the visual SLAM map on the horizontal plane, and the second coordinate system is the coordinate system of the laser SLAM map.
步骤S206:服务器根据同一点分别在第一坐标系中的坐标(X 1,Y 1),在第二坐标系中的坐标(X 1′,Y 1′)计算第一坐标系的横轴与第二坐标系的横轴之间的夹角θ,并将夹角θ与扫地机器人进行关联。如前所述,第一坐标系的横轴与第二坐标系的横轴之间的夹角为θ,第一坐标系的横轴的正方向由摄像头的固定参数决定,第二坐标系的横轴的正方向由激光雷达的固定参数决定。一旦机器人生产制造出来,θ即确定下来,是一个固定的常量,一般来说,由于不同型号的机器人的摄像头和激光雷达的固定参数不同,因此,不同型号的机器人所对应的夹角θ可能不相同。 Step S206: The server calculates the horizontal axis of the first coordinate system and the coordinates (X 1 ′, Y 1 ′) of the same point in the first coordinate system (X 1 , Y 1 ) and the coordinates (X 1 ′, Y 1 ′) in the second coordinate system. The included angle θ between the horizontal axes of the second coordinate system, and the included angle θ is associated with the sweeping robot. As mentioned above, the angle between the horizontal axis of the first coordinate system and the horizontal axis of the second coordinate system is θ. The positive direction of the horizontal axis of the first coordinate system is determined by the fixed parameters of the camera. The positive direction of the horizontal axis is determined by the fixed parameters of the lidar. Once the robot is manufactured, θ is determined and is a fixed constant. Generally speaking, because the fixed parameters of the camera and lidar of different types of robots are different, the angle θ corresponding to different types of robots may not be the same. the same.
将夹角θ与扫地机器人进行关联的目的是:使得服务器知道根据哪个夹角θ将第一坐标转换为第二坐标。例如,如表1所示,手机P1与扫地机器人R1具有关联关系;手机P2与扫地机器人R2具有关联关系;手机P3与扫地机器人R3具有关联关系,如表2所示,扫地机器人R1与夹角θ1具有关联关系;扫地机器人R2与夹角θ2具有关联关系;扫地机器人R3与夹角θ3具有关联关系。服务器中存储着上述关联关系,当服务器接收手机P1上传的特征点的屏幕坐标和目标点的屏幕坐标后,查找自身存储的关联关系,从而知道,手机P1与扫地机器人R1具有关联关系,扫地机器人R1与夹角θ1具有关联关系,在计算第二坐标的过程中,则将θ1代入公式(7)、(8),或者公式(9)。当服务器接收手机P3上传的特征点的屏幕坐标和目标点的屏幕坐标后,查找自身存储的关联关系,从而知道,手机P3与扫地机器人R3具有关联关系,扫地机器人R3与夹角θ3具有关联关系,在计算第二坐标的过程中,则将θ3代入公式(7)、(8),或者公式(9)。The purpose of associating the included angle θ with the cleaning robot is to make the server know which included angle θ converts the first coordinate into the second coordinate. For example, as shown in Table 1, the mobile phone P1 and the cleaning robot R1 have an associated relationship; the mobile phone P2 and the cleaning robot R2 have an associated relationship; the mobile phone P3 and the cleaning robot R3 have an associated relationship, as shown in Table 2, the cleaning robot R1 and the included angle θ1 has an associated relationship; the cleaning robot R2 has an associated relationship with the included angle θ2; the cleaning robot R3 has an associated relationship with an included angle θ3. The server stores the above-mentioned association relationship. When the server receives the screen coordinates of the feature point and the screen coordinates of the target point uploaded by the mobile phone P1, it searches for the association relationship stored by itself, and knows that the mobile phone P1 and the cleaning robot R1 have an association relationship. R1 and the included angle θ1 have an associated relationship. In the process of calculating the second coordinate, θ1 is substituted into formula (7), (8), or formula (9). When the server receives the screen coordinates of the feature points uploaded by the mobile phone P3 and the screen coordinates of the target point, it searches for the stored association relationship, and knows that the mobile phone P3 has an association relationship with the cleaning robot R3, and the cleaning robot R3 has an association relationship with the included angle θ3 In the process of calculating the second coordinate, θ3 is substituted into formula (7), (8), or formula (9).
表1Table 1
手机Cell phone 扫地机器人Sweeping robot
P1P1 R1R1
P2P2 R2R2
P3P3 R3R3
表2Table 2
Figure PCTCN2020103859-appb-000002
Figure PCTCN2020103859-appb-000002
第三部分,主要包括用户通过手机控制扫地机器人运动到目标点打扫卫生,具体包括步骤S301至步骤S316。The third part mainly includes the user using the mobile phone to control the sweeping robot to move to the target point for cleaning, specifically including step S301 to step S316.
步骤S301:机器人与终端关联之后,当用户想要使用扫地机器人打扫卫生时,例如用户想要扫地机器人运动到目标点以对目标点所在位置打扫卫生,用户打开手机上的APP,APP调用手机的摄像头。Step S301: After the robot is associated with the terminal, when the user wants to use the cleaning robot to clean, for example, the user wants the cleaning robot to move to the target point to clean the location of the target point. The user opens the APP on the mobile phone, and the APP calls the mobile phone camera.
步骤S302:手机的摄像头采集当前环境的图像,并将该图像显示在手机屏幕上。Step S302: The camera of the mobile phone collects an image of the current environment, and displays the image on the screen of the mobile phone.
步骤S303:用户通过触摸屏幕来选择目标点。用户在手机屏幕上触摸某一个点(该点即为触摸点)。Step S303: The user selects the target point by touching the screen. The user touches a certain point on the phone screen (the point is the touch point).
请参见图3,用户可以将手机倾斜适当角度,使得摄像头能够采集到包含目标点的图像,手机界面上显示摄像头当前采集的图像,用户用手指触摸手机界面上的某一点以选择目标点。其中,用户手指与手机屏幕的接触点称为触摸点。手机通过触摸点的位置,以及手机当前的倾斜角,可以获取到用户想要选择的实际场景中的目标点。Referring to Figure 3, the user can tilt the phone at an appropriate angle so that the camera can capture images containing the target point. The current image captured by the camera is displayed on the phone interface. The user touches a certain point on the phone interface to select the target point. Among them, the contact point between the user's finger and the mobile phone screen is called the touch point. The mobile phone can obtain the target point in the actual scene that the user wants to select through the position of the touch point and the current tilt angle of the mobile phone.
步骤S304:手机对当前屏幕界面进行截图,得到的截图即为上述目标图像帧。Step S304: The mobile phone takes a screenshot of the current screen interface, and the obtained screenshot is the aforementioned target image frame.
步骤S305:手机提取目标图像帧中的N个特征点。N为大于1的自然数。Step S305: the mobile phone extracts N feature points in the target image frame. N is a natural number greater than 1.
步骤S306:手机分别确定N个特征点的特征数据、目标点与N个特征点的相对位置。Step S306: the mobile phone separately determines the feature data of the N feature points and the relative positions of the target point and the N feature points.
步骤S307:手机将N个特征点的特征数据、目标点与N个特征点的相对位置上传给服务器。Step S307: the mobile phone uploads the feature data of the N feature points and the relative positions of the target point and the N feature points to the server.
步骤S308:服务器接收手机上传的N个特征点的特征数据、目标点与N个特征点的相对位置。Step S308: The server receives the feature data of the N feature points and the relative positions of the target point and the N feature points uploaded by the mobile phone.
需要说明的是,手机也可以只是把目标图像帧上传给服务器,由服务器来提取特征点的特征数据,并计算目标点与特征点之间的相对位置。It should be noted that the mobile phone can also just upload the target image frame to the server, and the server extracts the characteristic data of the characteristic point, and calculates the relative position between the target point and the characteristic point.
步骤S309:服务器根据N个特征点的特征数据从视觉SLAM地图中查找到N个特征点的坐标。所述N个特征点的坐标指的是N个特征点在第一坐标系中的坐标。Step S309: The server finds the coordinates of the N feature points from the visual SLAM map according to the feature data of the N feature points. The coordinates of the N feature points refer to the coordinates of the N feature points in the first coordinate system.
步骤S310:服务器根据N个特征点的坐标、目标点与N个特征点的相对位置确定目标点在第一坐标系中的坐标(X,Y)。Step S310: The server determines the coordinates (X, Y) of the target point in the first coordinate system according to the coordinates of the N feature points and the relative positions of the target point and the N feature points.
步骤S311:服务器根据公式X'=X*cos(θ)-Y*sin(θ),Y'=X*sin(θ)+Y*cos(θ)计算目标点在第二坐标系中的坐标(X′,Y′),即,计算第二坐标。Step S311: The server calculates the coordinates of the target point in the second coordinate system according to the formula X'=X*cos(θ)-Y*sin(θ), Y'=X*sin(θ)+Y*cos(θ) (X', Y'), that is, calculate the second coordinate.
步骤S312:服务器向扫地机器人发送第二坐标(X′,Y′)。Step S312: The server sends the second coordinates (X', Y') to the cleaning robot.
步骤S313:扫地机器人接收服务器发送的第二坐标(X′,Y′)。Step S313: The cleaning robot receives the second coordinates (X', Y') sent by the server.
步骤S314:扫地机器人确定自身当前所处位置在第二坐标系中的坐标。Step S314: The sweeping robot determines the coordinates of its current position in the second coordinate system.
步骤S315:扫地机器人根据第二坐标(X′,Y′)和自身当前所处位置在第二坐标系中的坐标规划运动路径。Step S315: the cleaning robot plans a movement path according to the second coordinates (X′, Y′) and the coordinates of the current position of the cleaning robot in the second coordinate system.
步骤S316:扫地机器人控制自身按照规划好的运动路径运动到目标点。Step S316: the sweeping robot controls itself to move to the target point according to the planned movement path.
在一种可选的方式中,根据同一点分别在第一坐标系中的坐标(X 1,Y 1),在第二坐标系中的坐标(X 1′,Y 1′)计算第一坐标系的横轴与第二坐标系的横轴之间的夹角θ,这个步骤也可以由扫地机器人来完成,扫地机器人计算出第一坐标系的横轴与第二坐标系的横轴之间的夹角θ之后,将夹角θ上传给服务器,服务器可以直接将该夹角θ与扫地机器人进行关联,并用于将第一坐标转换为第二坐标的过程中。 In an optional manner, the first coordinate is calculated according to the coordinates (X 1 , Y 1 ) of the same point in the first coordinate system and the coordinates (X 1 ′, Y 1 ′) in the second coordinate system. The angle θ between the horizontal axis of the system and the horizontal axis of the second coordinate system. This step can also be completed by the sweeping robot. The sweeping robot calculates the distance between the horizontal axis of the first coordinate system and the horizontal axis of the second coordinate system. After the included angle θ, the included angle θ is uploaded to the server, and the server can directly associate the included angle θ with the sweeping robot and use it in the process of converting the first coordinate into the second coordinate.
在本申请实施例中,用户不需要在还原度很低的电子地图上选择目标点,而是直接在终端的界面上选择目标点,因此,用户能够精确选择想要控制机器人运动到的位置,从而机器人能够准确运动到目标点。In the embodiment of this application, the user does not need to select the target point on the electronic map with a low degree of restoration, but directly selects the target point on the interface of the terminal. Therefore, the user can accurately select the position where the robot wants to control the movement. So the robot can accurately move to the target point.
请参见图9,本申请实施例提供的一种机器人的控制方法涉及手机、服务器、扫地机器人之间的交互,包括以下步骤S901至步骤S907。Referring to FIG. 9, a robot control method provided by an embodiment of the present application involves interaction between a mobile phone, a server, and a cleaning robot, and includes the following steps S901 to S907.
S901:扫地机器人收集环境信息,构建激光SLAM地图和视觉SLAM地图。S901: The sweeping robot collects environmental information and constructs a laser SLAM map and a visual SLAM map.
S902:扫地机器人将视觉SLAM地图上传到服务器。S902: The sweeping robot uploads the visual SLAM map to the server.
S903:手机对当前界面进行截图,得到目标图像帧,提取目标图像帧中的特征点。S903: The mobile phone takes a screenshot of the current interface to obtain a target image frame, and extracts feature points in the target image frame.
请参见图3,用户可以将手机倾斜适当角度,使得摄像头能够采集到包含目标点的图像,手机界面上显示摄像头当前采集的图像,用户用手指触摸手机界面上的某一点以选择目标点。其中,用户手指与手机屏幕的接触点称为触摸点。手机通过触摸点的位置,以及手机当前的倾斜角,可以获取到用户想要选择的实际场景中的目标点。手机对当前界面进行截图,得到目标图像帧,手机提取目标图像帧中的特征点,并确定各个特征点的特征数据和目标点与各个特征点的相对位置。Referring to Figure 3, the user can tilt the phone at an appropriate angle so that the camera can capture images containing the target point. The current image captured by the camera is displayed on the phone interface. The user touches a certain point on the phone interface to select the target point. Among them, the contact point between the user's finger and the mobile phone screen is called the touch point. The mobile phone can obtain the target point in the actual scene that the user wants to select through the position of the touch point and the current tilt angle of the mobile phone. The mobile phone takes a screenshot of the current interface to obtain the target image frame. The mobile phone extracts the feature points in the target image frame, and determines the feature data of each feature point and the relative position of the target point and each feature point.
S904:手机将各个特征点的特征数据和目标点与各个特征点的相对位置上传到服务器。S904: The mobile phone uploads the characteristic data of each characteristic point and the relative position of the target point and each characteristic point to the server.
S905:服务器计算目标点在第一坐标系中的坐标,将目标点在第一坐标系中的坐标转换为目标点在第二坐标系中的坐标。S905: The server calculates the coordinates of the target point in the first coordinate system, and converts the coordinates of the target point in the first coordinate system into the coordinates of the target point in the second coordinate system.
具体地,服务器根据各个特征点的特征数据从视觉SLAM地图中查找到各个特征点的坐标。所述各个特征点的坐标指的是各个特征点在第一坐标系中的坐标。根据各个特征点在第一坐标系中的坐标、目标点和各个特征点的相对位置计算目标点在第一坐标系中的坐标,将目标点在第一坐标系中的坐标转换为目标点在第二坐标系中的坐标。Specifically, the server finds the coordinates of each feature point from the visual SLAM map according to the feature data of each feature point. The coordinates of each feature point refer to the coordinates of each feature point in the first coordinate system. Calculate the coordinates of the target point in the first coordinate system according to the coordinates of each feature point in the first coordinate system, the target point and the relative position of each feature point, and convert the coordinates of the target point in the first coordinate system to the target point in the first coordinate system. Coordinates in the second coordinate system.
S906:服务器向扫地机器人下发目标点在第二坐标系中的坐标。S906: The server delivers the coordinates of the target point in the second coordinate system to the cleaning robot.
S907:扫地机器人根据目标点在第二坐标系中的坐标和自身当前所处位置在第二坐标系中的坐标规划运动路径,并自主运动到目标点。S907: The cleaning robot plans a movement path according to the coordinates of the target point in the second coordinate system and the coordinates of its current position in the second coordinate system, and autonomously moves to the target point.
可以理解的是,上述实施例中的部分或全部步骤或操作仅是示例,本申请实施例还可以执行其它操作或者各种操作的变形。此外,各个步骤可以按照上述实施例呈现的不同的顺序来执行,并且有可能并非要执行上述实施例中的全部操作。It can be understood that some or all of the steps or operations in the above-mentioned embodiments are only examples, and the embodiments of the present application may also perform other operations or various operation modifications. In addition, each step may be executed in a different order presented in the foregoing embodiment, and it may not be necessary to perform all operations in the foregoing embodiment.
本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,当其在计算机上运行时,使得计算机执行上述实施例所述的通信方法。The embodiments of the present application also provide a computer-readable storage medium in which a computer program is stored, and when the computer program is run on a computer, the computer executes the communication method described in the foregoing embodiment.
此外,本申请实施例还提供一种计算机程序产品,该计算机程序产品包括计算机程序,当其在计算机上运行时,使得计算机执行上述实施例所述的通信方法。In addition, the embodiments of the present application also provide a computer program product, which includes a computer program, which when running on a computer, causes the computer to execute the communication method described in the foregoing embodiment.
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk)等。In the above embodiments, it may be implemented in whole or in part by software, hardware, firmware or any combination thereof. When implemented by software, it can be implemented in the form of a computer program product in whole or in part. The computer program product includes one or more computer instructions. When the computer program instructions are loaded and executed on the computer, the processes or functions described in this application are generated in whole or in part. The computer may be a general-purpose computer, a special-purpose computer, a computer network, or other programmable devices. The computer instructions may be stored in a computer-readable storage medium or transmitted from one computer-readable storage medium to another computer-readable storage medium. For example, the computer instructions may be transmitted from a website, computer, server, or data center. Transmission to another website, computer, server or data center via wired (such as coaxial cable, optical fiber, digital subscriber line) or wireless (such as infrared, wireless, microwave, etc.). The computer-readable storage medium may be any available medium that can be accessed by a computer or a data storage device such as a server or a data center integrated with one or more available media. The usable medium may be a magnetic medium (for example, a floppy disk, a hard disk, and a magnetic tape), an optical medium (for example, a DVD), or a semiconductor medium (for example, a solid state disk).

Claims (23)

  1. 一种机器人的控制方法,其特征在于,应用于机器人、终端、服务器组成的系统,所述方法包括:A method for controlling a robot, characterized in that it is applied to a system composed of a robot, a terminal, and a server, and the method includes:
    所述机器人通过自身携带的摄像头创建视觉SLAM地图,通过自身携带的激光雷达创建激光SLAM地图;The robot creates a visual SLAM map through its own camera, and creates a laser SLAM map through its own lidar;
    所述机器人向所述服务器上传第一坐标系与第二坐标系的坐标转换关系;其中,所述第一坐标系为所述视觉SLAM地图的坐标系在水平面上的投影坐标系,所述第二坐标系为所述激光SLAM地图的坐标系;The robot uploads the coordinate conversion relationship between the first coordinate system and the second coordinate system to the server; wherein, the first coordinate system is the projected coordinate system of the coordinate system of the visual SLAM map on the horizontal plane, and the first coordinate system The two coordinate system is the coordinate system of the laser SLAM map;
    所述机器人向所述服务器上传所述视觉SLAM地图;The robot uploads the visual SLAM map to the server;
    所述终端截取当前的界面得到目标图像帧,提取目标点的特征数据,并将所述目标图像帧和所述目标点的特征数据上传到所述服务器;The terminal intercepts the current interface to obtain a target image frame, extracts characteristic data of the target point, and uploads the target image frame and the characteristic data of the target point to the server;
    所述服务器接收所述目标图像帧、所述目标点的特征数据,并根据所述目标图像帧、所述目标点的特征数据和所述视觉SLAM地图确定所述目标点在所述第一坐标系中的第一坐标;The server receives the target image frame, the characteristic data of the target point, and determines that the target point is at the first coordinate according to the target image frame, the characteristic data of the target point, and the visual SLAM map The first coordinate in the system;
    所述服务器将所述第一坐标转换为第二坐标,所述第二坐标为所述目标点在所述第二坐标系中的坐标;The server converts the first coordinates into second coordinates, where the second coordinates are coordinates of the target point in the second coordinate system;
    所述服务器向所述机器人发送所述第二坐标;Sending the second coordinates to the robot by the server;
    所述机器人接收所述第二坐标,并根据所述第二坐标与所述机器人当前所处位置在所述第二坐标系中的坐标确定运动路径;The robot receives the second coordinates, and determines a movement path according to the second coordinates and the coordinates of the current position of the robot in the second coordinate system;
    所述机器人按照所述运动路径向所述目标点运动。The robot moves to the target point according to the movement path.
  2. 根据权利要求1所述的方法,其特征在于,如果所述第一坐标系的原点与所述第二坐标系的原点不重合,则所述坐标转换关系包括所述第一坐标系的轴向与所述第二坐标系的轴向的夹角、所述第一坐标系的原点与所述第二坐标系的原点的相对位置。The method according to claim 1, wherein if the origin of the first coordinate system does not coincide with the origin of the second coordinate system, the coordinate conversion relationship includes the axial direction of the first coordinate system The included angle with the axial direction of the second coordinate system, and the relative position of the origin of the first coordinate system and the origin of the second coordinate system.
  3. 根据权利要求1所述的方法,其特征在于,如果所述第一坐标系的原点与所述第二坐标系的原点重合,则所述坐标转换关系包括同一点分别在所述第一坐标系和所述第二坐标系中的坐标,或,所述第一坐标系的轴向与所述第二坐标系的轴向的夹角。The method according to claim 1, wherein if the origin of the first coordinate system coincides with the origin of the second coordinate system, the coordinate conversion relationship includes the same point in the first coordinate system. And the coordinates in the second coordinate system, or the angle between the axial direction of the first coordinate system and the axial direction of the second coordinate system.
  4. 根据权利要求3所述的方法,其特征在于,The method according to claim 3, wherein:
    所述第一坐标系的轴向与所述第二坐标系的轴向的夹角θ满足以下公式:θ=arccos[(X 1X 1′+Y 1Y 1′)/(X 1 2+Y 1 2)],其中,(X 1,Y 1)、(X 1',Y 1')分别表示同一点在所述第一坐标系中的坐标和在所述第二坐标系中的坐标。 The included angle θ between the axial direction of the first coordinate system and the axial direction of the second coordinate system satisfies the following formula: θ=arccos[(X 1 X 1 ′+Y 1 Y 1 ′)/(X 1 2 + Y 1 2 )], where (X 1 , Y 1 ), (X 1 ', Y 1 ') respectively represent the coordinates of the same point in the first coordinate system and the coordinates in the second coordinate system .
  5. 根据权利要求1至4任一项所述的方法,其特征在于,所述服务器将所述第一坐标转换为第二坐标,包括:The method according to any one of claims 1 to 4, wherein the server converting the first coordinate to the second coordinate comprises:
    所述服务器根据所述第一坐标系的原点与所述第二坐标系的原点的相对位置、以及所述第一坐标系的轴向与所述第二坐标系的轴向的夹角,将所述第一坐标转换为所述第二坐标。According to the relative position of the origin of the first coordinate system and the origin of the second coordinate system, and the angle between the axial direction of the first coordinate system and the axial direction of the second coordinate system, the server calculates The first coordinate is converted into the second coordinate.
  6. 根据权利要求5所述的方法,其特征在于,所述第一坐标系的原点与所述第二坐标系的原点重合,所述第一坐标和所述第二坐标满足以下公式:The method according to claim 5, wherein the origin of the first coordinate system coincides with the origin of the second coordinate system, and the first coordinate and the second coordinate satisfy the following formula:
    X'=X*cos(θ)-Y*sin(θ),Y'=X*sin(θ)+Y*cos(θ);其中,(X',Y')表示所述第二坐标,(X,Y)表示所述第一坐标,θ表示所述第一坐标系的轴向与所述第二坐标系的轴向的夹角。X'=X*cos(θ)-Y*sin(θ), Y'=X*sin(θ)+Y*cos(θ); where (X', Y') represents the second coordinate, (X, Y) represents the first coordinate, and θ represents the angle between the axial direction of the first coordinate system and the axial direction of the second coordinate system.
  7. 一种机器人的控制方法,其特征在于,应用于包括摄像头和激光雷达的机器人,所述 方法包括:A method for controlling a robot, characterized in that it is applied to a robot including a camera and a lidar, and the method includes:
    所述机器人通过所述摄像头创建视觉SLAM地图,通过所述激光雷达创建激光SLAM地图;The robot creates a visual SLAM map through the camera, and creates a laser SLAM map through the lidar;
    所述机器人向服务器上传第一坐标系与第二坐标系的坐标转换关系;其中,所述第一坐标系为所述视觉SLAM地图的坐标系在水平面上的投影坐标系,所述第二坐标系为所述激光SLAM地图的坐标系;The robot uploads the coordinate conversion relationship between the first coordinate system and the second coordinate system to the server; wherein, the first coordinate system is the projected coordinate system of the coordinate system of the visual SLAM map on the horizontal plane, and the second coordinate Is the coordinate system of the laser SLAM map;
    所述机器人向所述服务器上传所述视觉SLAM地图;The robot uploads the visual SLAM map to the server;
    所述机器人接收所述服务器基于所述视觉SLAM地图、以及所述第一坐标系与所述第二坐标系的坐标转换关系得到的第二坐标,所述第二坐标为目标点在所述第二坐标系中的坐标;The robot receives the second coordinate obtained by the server based on the visual SLAM map and the coordinate conversion relationship between the first coordinate system and the second coordinate system, where the second coordinate is the target point in the first coordinate system. Coordinates in the two coordinate system;
    所述机器人根据所述第二坐标与所述机器人当前所处位置在所述第二坐标系中的坐标确定运动路径;Determining the movement path of the robot according to the second coordinates and the coordinates of the current position of the robot in the second coordinate system;
    所述机器人按照所述运动路径向所述目标点运动。The robot moves to the target point according to the movement path.
  8. 根据权利要求7所述的方法,其特征在于,如果所述第一坐标系的原点与所述第二坐标系的原点不重合,则所述坐标转换关系包括所述第一坐标系的轴向与所述第二坐标系的轴向的夹角、所述第一坐标系的原点与所述第二坐标系的原点的相对位置。7. The method according to claim 7, wherein if the origin of the first coordinate system does not coincide with the origin of the second coordinate system, the coordinate conversion relationship includes the axial direction of the first coordinate system. The included angle with the axial direction of the second coordinate system, the relative position of the origin of the first coordinate system and the origin of the second coordinate system.
  9. 根据权利要求7所述的方法,其特征在于,如果所述第一坐标系的原点与所述第二坐标系的原点重合,则所述坐标转换关系包括同一点分别在所述第一坐标系和所述第二坐标系中的坐标,或,所述第一坐标系的轴向与所述第二坐标系的轴向的夹角。The method according to claim 7, wherein if the origin of the first coordinate system coincides with the origin of the second coordinate system, the coordinate conversion relationship includes that the same point is in the first coordinate system. And the coordinates in the second coordinate system, or the angle between the axial direction of the first coordinate system and the axial direction of the second coordinate system.
  10. 根据权利要求9所述的方法,其特征在于,The method according to claim 9, wherein:
    所述第一坐标系的轴向与所述第二坐标系的轴向的夹角θ满足以下公式:θ=arccos[(X 1X 1′+Y 1Y 1′)/(X 1 2+Y 1 2)],其中,(X 1,Y 1)、(X 1',Y 1')分别表示同一点在所述第一坐标系中的坐标和在所述第二坐标系中的坐标。 The included angle θ between the axial direction of the first coordinate system and the axial direction of the second coordinate system satisfies the following formula: θ=arccos[(X 1 X 1 ′+Y 1 Y 1 ′)/(X 1 2 + Y 1 2 )], where (X 1 , Y 1 ), (X 1 ', Y 1 ') respectively represent the coordinates of the same point in the first coordinate system and the coordinates in the second coordinate system .
  11. 一种机器人的控制方法,其特征在于,应用于终端,所述方法包括:A method for controlling a robot, characterized in that it is applied to a terminal, and the method includes:
    所述终端获取当前的环境图像;Acquiring the current environment image by the terminal;
    所述终端接收用户的操作;The terminal receives the user's operation;
    响应于所述用户的操作,所述终端根据所述当前的环境图像得到目标图像帧和位于所述目标图像帧中的目标点;In response to the user's operation, the terminal obtains a target image frame and a target point located in the target image frame according to the current environment image;
    所述终端确定目标点的特征数据;The terminal determines the characteristic data of the target point;
    所述终端向服务器上传所述目标图像帧以及所述目标点的特征数据。The terminal uploads the target image frame and the characteristic data of the target point to the server.
  12. 根据权利要求11所述的方法,其特征在于,所述方法还包括:The method of claim 11, wherein the method further comprises:
    所述终端根据预设特征提取算法从所述目标图像帧中提取特征点;The terminal extracts feature points from the target image frame according to a preset feature extraction algorithm;
    所述终端确定所述特征点的特征数据;The terminal determines the characteristic data of the characteristic point;
    所述终端向所述服务器上传所述特征点的特征数据。The terminal uploads the characteristic data of the characteristic point to the server.
  13. 根据权利要求12所述的方法,其特征在于,所述方法还包括:The method of claim 12, wherein the method further comprises:
    所述终端确定所述目标点的屏幕坐标和所述特征点的屏幕坐标;The terminal determines the screen coordinates of the target point and the screen coordinates of the feature point;
    所述终端根据所述目标点的屏幕坐标和所述特征点的屏幕坐标,以及所述目标点的特征数据和所述特征点的特征数据,确定所述目标点与所述特征点的相对位置;The terminal determines the relative position of the target point and the characteristic point according to the screen coordinates of the target point and the screen coordinates of the characteristic point, as well as the characteristic data of the target point and the characteristic data of the characteristic point ;
    所述终端向所述服务器上传所述目标点与所述特征点的相对位置。The terminal uploads the relative position of the target point and the characteristic point to the server.
  14. 一种机器人的控制方法,其特征在于,应用于服务器,所述方法包括:A method for controlling a robot, characterized in that it is applied to a server, and the method includes:
    所述服务器接收机器人发送的视觉SLAM地图;The server receives the visual SLAM map sent by the robot;
    所述服务器接收所述机器人发送的第一坐标系与第二坐标系的坐标转换关系;其中,所述第一坐标系为所述视觉SLAM地图的坐标系在水平面上的投影坐标系,所述第二坐标系为所述机器人获取到的激光SLAM地图的坐标系;所述视觉SLAM地图和所述激光SLAM地图为所述机器人在相同的环境中创建的;The server receives the coordinate conversion relationship between the first coordinate system and the second coordinate system sent by the robot; wherein, the first coordinate system is a projected coordinate system of the coordinate system of the visual SLAM map on a horizontal plane, and The second coordinate system is the coordinate system of the laser SLAM map acquired by the robot; the visual SLAM map and the laser SLAM map are created by the robot in the same environment;
    所述服务器接收终端上传的目标图像帧和目标点的特征数据;The server receives the target image frame and the characteristic data of the target point uploaded by the terminal;
    所述服务器根据所述目标图像帧、所述目标点的特征数据和所述视觉SLAM地图确定所述目标点在所述第一坐标系中的第一坐标;Determining, by the server, the first coordinate of the target point in the first coordinate system according to the target image frame, the characteristic data of the target point, and the visual SLAM map;
    所述服务器将所述第一坐标转换为第二坐标,所述第二坐标为所述目标点在所述第二坐标系中的坐标;The server converts the first coordinates into second coordinates, where the second coordinates are coordinates of the target point in the second coordinate system;
    所述服务器向所述机器人发送所述第二坐标。The server sends the second coordinates to the robot.
  15. 根据权利要求14所述的方法,其特征在于,所述服务器根据所述目标图像帧、所述目标点的特征数据和所述视觉SLAM地图确定所述目标点在所述第一坐标系中的第一坐标,包括:The method according to claim 14, wherein the server determines the position of the target point in the first coordinate system according to the target image frame, the characteristic data of the target point, and the visual SLAM map. The first coordinates include:
    所述服务器获取所述目标图像帧中的特征点的特征数据;Acquiring, by the server, characteristic data of characteristic points in the target image frame;
    所述服务器将所述特征点的特征数据与所述视觉SLAM地图中的特征数据进行匹配,确定所述特征点在所述第一坐标系中的坐标;The server matches the feature data of the feature point with the feature data in the visual SLAM map, and determines the coordinates of the feature point in the first coordinate system;
    所述服务器确定所述目标点与所述特征点的相对位置;Determining the relative position of the target point and the characteristic point by the server;
    所述服务器根据所述特征点在所述第一坐标系中的坐标、所述目标点与所述特征点的相对位置确定所述目标点在所述第一坐标系中的所述第一坐标。The server determines the first coordinate of the target point in the first coordinate system according to the coordinates of the characteristic point in the first coordinate system, and the relative position of the target point and the characteristic point .
  16. 根据权利要求15所述的方法,其特征在于,所述服务器确定所述目标点与所述特征点的相对位置,包括:The method according to claim 15, wherein the server determining the relative position of the target point and the characteristic point comprises:
    所述服务器接收所述终端上传的所述目标点的屏幕坐标和所述特征点的屏幕坐标,以及所述目标点的特征数据和所述特征点的特征数据;The server receives the screen coordinates of the target point and the screen coordinates of the feature point, and the feature data of the target point and the feature data of the feature point uploaded by the terminal;
    所述服务器根据所述目标点的屏幕坐标和所述特征点的屏幕坐标,以及所述目标点的特征数据和所述特征点的特征数据,确定所述目标点与所述特征点的相对位置。The server determines the relative position of the target point and the characteristic point according to the screen coordinates of the target point and the screen coordinates of the characteristic point, and the characteristic data of the target point and the characteristic data of the characteristic point .
  17. 根据权利要求14至16任一项所述的方法,其特征在于,所述服务器将所述第一坐标转换为第二坐标,包括:The method according to any one of claims 14 to 16, wherein the server converting the first coordinate into the second coordinate comprises:
    所述服务器根据所述第一坐标系的原点与所述第二坐标系的原点的相对位置、以及所述第一坐标系的轴向与所述第二坐标系的轴向的夹角,将所述第一坐标转换为所述第二坐标。According to the relative position of the origin of the first coordinate system and the origin of the second coordinate system, and the angle between the axial direction of the first coordinate system and the axial direction of the second coordinate system, the server calculates The first coordinate is converted into the second coordinate.
  18. 根据权利要求17所述的方法,其特征在于,所述第一坐标系的原点与所述第二坐标系的原点重合,所述第一坐标和所述第二坐标满足以下公式:The method according to claim 17, wherein the origin of the first coordinate system coincides with the origin of the second coordinate system, and the first coordinate and the second coordinate satisfy the following formula:
    X'=X*cos(θ)-Y*sin(θ),Y'=X*sin(θ)+Y*cos(θ);其中,(X',Y')表示所述第二坐标,(X,Y)表示所述第一坐标,θ表示所述第一坐标系的轴向与所述第二坐标系的轴向的夹角。X'=X*cos(θ)-Y*sin(θ), Y'=X*sin(θ)+Y*cos(θ); where (X', Y') represents the second coordinate, (X, Y) represents the first coordinate, and θ represents the angle between the axial direction of the first coordinate system and the axial direction of the second coordinate system.
  19. 根据权利要求18所述的方法,其特征在于,θ由以下公式确定:The method according to claim 18, wherein θ is determined by the following formula:
    θ=arccos[(X 1X 1′+Y 1Y 1′)/(X 1 2+Y 1 2)],其中,(X 1,Y 1)、(X 1',Y 1')分别表示同一点在所述第一坐标系中的坐标和在所述第二坐标系中的坐标。 θ=arccos[(X 1 X 1 ′+Y 1 Y 1 ′)/(X 1 2 +Y 1 2 )], where (X 1 ,Y 1 ), (X 1 ',Y 1 ') respectively represent The coordinates of the same point in the first coordinate system and the coordinates in the second coordinate system.
  20. 一种机器人,包括存储器和处理器,所述存储器用于存储包括程序指令的信息,所述处理器用于控制程序指令的执行,所述程序指令被处理器加载并执行时,使得所述机器人执行权利要求7至10任意一项所述的方法。A robot includes a memory and a processor, the memory is used to store information including program instructions, the processor is used to control the execution of the program instructions, and when the program instructions are loaded and executed by the processor, the robot executes The method of any one of claims 7 to 10.
  21. 一种终端,包括存储器和处理器,所述存储器用于存储包括程序指令的信息,所述 处理器用于控制程序指令的执行,所述程序指令被处理器加载并执行时,使得所述终端执行权利要求11至13任意一项所述的方法。A terminal includes a memory and a processor, the memory is used to store information including program instructions, the processor is used to control the execution of the program instructions, and the program instructions are loaded and executed by the processor to cause the terminal to execute The method of any one of claims 11 to 13.
  22. 一种服务器,包括存储器和处理器,所述存储器用于存储包括程序指令的信息,所述处理器用于控制程序指令的执行,所述程序指令被处理器加载并执行时,使得所述服务器执行权利要求14至19任意一项所述的方法。A server includes a memory and a processor. The memory is used to store information including program instructions. The processor is used to control the execution of the program instructions. When the program instructions are loaded and executed by the processor, the server executes The method of any one of claims 14 to 19.
  23. 一种控制系统,其特征在于,所述控制系统包括权利要求20所述的机器人、权利要求21所述的终端、权利要求22所述的服务器。A control system, characterized in that the control system includes the robot according to claim 20, the terminal according to claim 21, and the server according to claim 22.
PCT/CN2020/103859 2019-07-24 2020-07-23 Robot control method, robot, terminal, server, and control system WO2021013230A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201910673025.0 2019-07-24
CN201910673025.0A CN110495819B (en) 2019-07-24 2019-07-24 Robot control method, robot, terminal, server and control system

Publications (1)

Publication Number Publication Date
WO2021013230A1 true WO2021013230A1 (en) 2021-01-28

Family

ID=68586780

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2020/103859 WO2021013230A1 (en) 2019-07-24 2020-07-23 Robot control method, robot, terminal, server, and control system

Country Status (2)

Country Link
CN (1) CN110495819B (en)
WO (1) WO2021013230A1 (en)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110495819B (en) * 2019-07-24 2021-05-18 华为技术有限公司 Robot control method, robot, terminal, server and control system
CN113063426B (en) * 2020-01-02 2022-12-13 北京魔门塔科技有限公司 Position information determining method and device
CN111367278A (en) * 2020-03-04 2020-07-03 北京小狗智能机器人技术有限公司 Method for determining working coverage area of robot and related equipment
CN113679289B (en) * 2020-05-18 2023-02-21 云米互联科技(广东)有限公司 Sweeper control method, sweeper control equipment and computer readable storage medium
CN112578333A (en) * 2020-12-24 2021-03-30 江苏新冠亿科技有限公司 Intelligent trolley initial coordinate detection method, intelligent trolley and storage medium
CN112932338A (en) * 2021-02-05 2021-06-11 深圳拓邦股份有限公司 Fixed-point sweeping method of sweeping robot
CN112886670A (en) * 2021-03-04 2021-06-01 武汉联一合立技术有限公司 Charging control method and device for robot, robot and storage medium
CN113329071A (en) * 2021-05-26 2021-08-31 北京远度互联科技有限公司 Unmanned aerial vehicle scheduling method, service system and computer storage medium
CN113504790B (en) * 2021-07-08 2022-08-26 中国南方电网有限责任公司超高压输电公司大理局 Unmanned aerial vehicle flight control method and device and unmanned aerial vehicle
CN113569849B (en) * 2021-08-04 2023-11-21 北京交通大学 Automobile charging pile interface detection intelligent interaction system based on computer vision
CN114504285B (en) * 2022-04-21 2022-07-05 深圳市倍思科技有限公司 Cleaning position determining method, cleaning position determining device, cleaning position determining equipment and storage medium
CN117697769B (en) * 2024-02-06 2024-04-30 成都威世通智能科技有限公司 Robot control system and method based on deep learning

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005346477A (en) * 2004-06-03 2005-12-15 Toshiba Tec Corp Autonomous travelling body
CN101650891A (en) * 2008-08-12 2010-02-17 三星电子株式会社 Method and apparatus to build 3-dimensional grid map and method and apparatus to control automatic traveling apparatus using the same
EP2623010A2 (en) * 2012-02-04 2013-08-07 LG Electronics, Inc. Robot cleaner
TW201444515A (en) * 2013-05-17 2014-12-01 Lite On Electronics Guangzhou Robot cleaner and method for positioning the same
US20170203439A1 (en) * 2016-01-20 2017-07-20 Yujin Robot Co., Ltd. System for operating mobile robot based on complex map information and operating method thereof
CN107402567A (en) * 2016-05-19 2017-11-28 科沃斯机器人股份有限公司 Assembly robot and its cruise path generating method
CN107450561A (en) * 2017-09-18 2017-12-08 河南科技学院 The autonomous path planning of mobile robot and obstacle avoidance system and its application method
CN110495819A (en) * 2019-07-24 2019-11-26 华为技术有限公司 Control method, robot, terminal, server and the control system of robot

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06214639A (en) * 1993-01-18 1994-08-05 Fujita Corp Travel controller for mobile object
CN103092201B (en) * 2012-08-10 2015-03-04 江苏科技大学 Voice blind guiding robot with multiple sensors based on radio frequency identification and route planning method
CN106168805A (en) * 2016-09-26 2016-11-30 湖南晖龙股份有限公司 The method of robot autonomous walking based on cloud computing

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005346477A (en) * 2004-06-03 2005-12-15 Toshiba Tec Corp Autonomous travelling body
CN101650891A (en) * 2008-08-12 2010-02-17 三星电子株式会社 Method and apparatus to build 3-dimensional grid map and method and apparatus to control automatic traveling apparatus using the same
EP2623010A2 (en) * 2012-02-04 2013-08-07 LG Electronics, Inc. Robot cleaner
TW201444515A (en) * 2013-05-17 2014-12-01 Lite On Electronics Guangzhou Robot cleaner and method for positioning the same
US20170203439A1 (en) * 2016-01-20 2017-07-20 Yujin Robot Co., Ltd. System for operating mobile robot based on complex map information and operating method thereof
CN107402567A (en) * 2016-05-19 2017-11-28 科沃斯机器人股份有限公司 Assembly robot and its cruise path generating method
CN107450561A (en) * 2017-09-18 2017-12-08 河南科技学院 The autonomous path planning of mobile robot and obstacle avoidance system and its application method
CN110495819A (en) * 2019-07-24 2019-11-26 华为技术有限公司 Control method, robot, terminal, server and the control system of robot

Also Published As

Publication number Publication date
CN110495819B (en) 2021-05-18
CN110495819A (en) 2019-11-26

Similar Documents

Publication Publication Date Title
WO2021013230A1 (en) Robot control method, robot, terminal, server, and control system
WO2020244497A1 (en) Display method for flexible screen and electronic device
WO2020259452A1 (en) Full-screen display method for mobile terminal, and apparatus
WO2021213164A1 (en) Application interface interaction method, electronic device, and computer readable storage medium
CN112040361B (en) Earphone control method, earphone control device and storage medium
CN109766043A (en) The operating method and electronic equipment of electronic equipment
WO2021169394A1 (en) Depth-based human body image beautification method and electronic device
CN108462818A (en) Electronic equipment and in the electronic equipment show 360 degree of images method
WO2022027972A1 (en) Device searching method and electronic device
WO2022007707A1 (en) Home device control method, terminal device, and computer-readable storage medium
CN112134995A (en) Method, terminal and computer readable storage medium for searching application object
WO2022161386A1 (en) Pose determination method and related device
WO2022206494A1 (en) Target tracking method and device
WO2021170129A1 (en) Pose determination method and related device
WO2022152174A1 (en) Screen projection method and electronic device
WO2022062902A1 (en) File transfer method and electronic device
CN111294320B (en) Data conversion method and device
CN114812381A (en) Electronic equipment positioning method and electronic equipment
WO2022222705A1 (en) Device control method and electronic device
WO2022222702A1 (en) Screen unlocking method and electronic device
US20240193945A1 (en) Method for determining recommended scenario and electronic device
WO2024114785A1 (en) Image processing method, electronic device, and system
WO2024021691A1 (en) Display method and electronic device
WO2023216957A1 (en) Target positioning method and system, and electronic device
CN113220935B (en) Video data storage and query method and device

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: 20844557

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: 20844557

Country of ref document: EP

Kind code of ref document: A1