IP Library › Granted Patent US 12,288,349
Granted Patent B2
US 12,288,349 · App. 17/516,990 · Granted Apr 29, 2025

Method for performing simultaneous localization and mapping and device using same

Inventors: Myungjae Jeon (Yongin-si, KR); Kichul Kim (Seoul, KR); Yongkyu Kim (Hwaseong-si, KR); Hongseok Lee (Seoul, KR); San Kim (Changwon-si, KR); Hyekwan Yun (Seoul, KR); Donggeun Lee (Bucheon-si, KR)
Assignees: SAMSUNG ELECTRONICS CO., LTD.; University of Seoul Industry Cooperation Foundation
G06T7/579G02B27/0101G02B27/017G02B27/0179G06T7/80G02B2027/0138G02B2027/0178G02B2027/0187G06T2207/10028G06T2207/20021
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,288,349
App. No.
17/516,990
Granted
Apr 29, 2025
Kind
B2
Abstract

Provided is an accelerator provided in an electronic device and configured to perform simultaneous localization and mapping (SLAM), the accelerator including a factor graph database, a memory, and a back-end processor, wherein the back-end processor is configured to receive a first piece of data corresponding to map points and camera positions from the factor graph database, convert the received first piece of data into a matrix for the map points and a matrix for the camera positions, store, in the memory, results obtained by performing an optimization calculation on the matrix for the map points and a matrix for at least one camera position, among the camera positions, corresponding to the map points, and obtain a second piece of data optimized with respect to the first piece of data based on the results stored in the memory.

Claims (47)

1. An accelerator provided in an electronic device and configured to perform simultaneous localization and mapping (SLAM), the accelerator comprising:

a factor graph database;

a memory; and

a back-end processor configured to:

receive a first piece of data corresponding to map points and camera positions from the factor graph database;

convert the received first piece of data into a matrix for the map points and a matrix for the camera positions;

divide the matrix for the map points and the matrix for at least one camera position corresponding to the map points into a plurality of sub-tracks, the plurality of sub-tracks having a track length set based on a number of camera positions on which the back-end processor is configured to simultaneously perform calculations;

store, in the memory, results obtained by performing an optimization calculation on the matrix for the map points and a matrix for at least one camera position, among the camera positions, corresponding to the map points; and

obtain a second piece of data optimized with respect to the first piece of data based on the results stored in the memory,

wherein the back-end processor is further configured to perform an optimization calculation on matrices corresponding to the plurality of sub-tracks based on a plurality of shift registers, the plurality of shift registers corresponding to the plurality of sub-tracks, and

wherein pieces of data processed through the plurality of shift registers are sequentially input to a timing controller and the timing controller is configured to simultaneously transmit the pieces of data.

2. The accelerator of claim 1 , wherein the back-end processor is further configured to perform an optimization calculation on matrices corresponding to the plurality of sub-tracks based on a shift register.

3. The accelerator of claim 1 , wherein the back-end processor is further configured to:

store, in the memory, a first result obtained by performing an optimization calculation on a matrix for a first map point corresponding to a first sub-track of the plurality of sub-tracks, and on a matrix for at least one camera position corresponding to the first map point; and

obtain a second result by performing an optimization calculation on a matrix for a second map point corresponding to a second sub-track following the first sub-track in the plurality of sub-tracks, and on a matrix for at least one camera position corresponding to the second map point.

4. The accelerator of claim 3 , wherein the back-end processor is further configured to store the obtained second result in the memory in which the first result is stored.

5. The accelerator of claim 3 , wherein based on obtaining the second result, the back-end processor is further configured to reuse a matrix corresponding to at least a portion of the second sub-track, the portion corresponding to the first sub-track.

6. The accelerator of claim 1 , wherein based on performing the optimization calculation, the back-end processor is further configured to perform a matrix calculation and a vector calculation in parallel.

7. A method of performing simultaneous localization and mapping (SLAM) by an accelerator provided in an electronic device, the method comprising:

receiving a first piece of data corresponding to map points and camera positions from a factor graph database;

converting the received first piece of data into a matrix for the map points and a matrix for the camera positions;

dividing the matrix for the map points and the matrix for the at least one camera position corresponding to the map points into a plurality of sub-tracks, the plurality of sub-tracks having a track length which is set based on a number camera positions simultaneously calculated;

storing, in a memory, results obtained by performing an optimization calculation on the matrix for the map points and a matrix for at least one camera position, among the camera positions, corresponding to the map points; and

obtaining a second piece of data optimized with respect to the first piece of data based on the results stored in the memory,

wherein the method further comprises performing an optimization calculation on matrices corresponding to the plurality of sub-tracks based on a plurality of shift registers, the plurality of shift registers corresponding to the plurality of sub-tracks, and

wherein pieces of data processed through the plurality of shift registers are sequentially input to a timing controller and the timing controller is configured to simultaneously transmit the pieces of data.

8. The method of claim 7 , further comprising performing an optimization calculation on matrices corresponding to the plurality of sub-tracks based on a shift register.

9. The method of claim 7 , further comprising:

storing, in the memory, a first result obtained by performing an optimization calculation on a matrix for a first map point corresponding to a first sub-track of the plurality of sub-tracks, and on a matrix for a camera position corresponding to the first map point; and

obtaining a second result by performing an optimization calculation on a matrix for a second map point corresponding to a second sub-track following the first sub-track in the plurality of sub-tracks, and on a matrix for a camera position corresponding to the second map point.

10. The method of claim 9 , further comprising storing the obtained second result in the memory in which the first result is stored.

11. The method of claim 9 , wherein based on obtaining the second result, the method further comprises reusing a matrix corresponding to at least a portion of the second sub-track, the portion corresponding to the first sub-track.

12. An electronic device configured to perform simultaneous localization and mapping (SLAM), the electronic device comprising:

a sensor;

a factor graph database;

a memory; and a processor configured to control the sensor and the memory,

wherein the processor is further configured to:

perform a key point extraction calculation and a coordinate calculation on sensing data received from the sensor, and transmit results of the key point extraction calculation and the coordinate calculation to the factor graph database;

obtain a first piece of data corresponding to map points and camera positions from the factor graph database;

convert the obtained first piece of data into a matrix for the map points and a matrix for the camera positions;

divide the matrix for the map points and the matrix for at least one camera position corresponding to the map points into a plurality of sub-tracks, the plurality of sub-tracks having a track length set based on a number of camera positions on which the processor is configured to simultaneously perform calculations;

store, in the memory, results obtained by performing an optimization calculation on the matrix for the map points and a matrix for at least one camera position, among the camera positions, corresponding to the map points; and

based on the results stored in the memory,

wherein the processor is further configured to perform an optimization calculation on matrices corresponding to the plurality of sub-tracks based on a plurality of shift registers, the plurality of shift registers corresponding to the plurality of sub-tracks, and

wherein pieces of data processed through the plurality of shift registers are sequentially input to a timing controller and the timing controller is configured to simultaneously transmit the pieces of data.

13. The electronic device of claim 12 , wherein the processor is further configured to: store, in the memory, a first result obtained by performing an optimization calculation on a matrix for a first map point corresponding to a first sub-track of the plurality of sub-tracks, and on a matrix for a camera position corresponding to the first map point; and obtain a second result by performing an optimization calculation on a matrix for a second map point corresponding to a second sub-track following the first sub-track in the plurality of sub-tracks, and on a matrix for a camera position corresponding to the second map point.

14. The electronic device of claim 13 , wherein based on obtaining the second result, the processor is further configured to reuse a matrix in at least a portion of the second sub-track, the portion corresponding to the first sub-track.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 2, 2021
From: JEON, MYUNGJAE; KIM, KICHUL; KIM, YONGKYU; LEE, HONGSEOK; KIM, SAN; YUN, HYEKWAN; LEE, DONGGEUN
To: SAMSUNG ELECTRONICS CO., LTD.; UNIVERSITY OF SEOUL INDUSTRY COOPERATION FOUNDATION
Reel/Frame 057994/0915 →
Priority Claims (1)
KR 10-2021-0016286 · Feb 4, 2021 · national
Continuity (1)
Related Publication 20220254046A1 · Aug 11, 2022
References Cited (20)
US 5764231A · Ray · 1998 [cited by examiner]
US 20160327395A1 · Roumeliotis et al. · 2016 [cited by applicant]
US 20170186164A1 · Seetharaman · 2017 [cited by examiner]
US 20180189587A1 · Mandal et al. · 2018 [cited by applicant]
US 20200043189A1 · Bao et al. · 2020 [cited by applicant]
CN 201811058356 · 2018 [cited by examiner]
CN 108648240 · 2018 [cited by examiner]
CN 110076277 · 2019 [cited by examiner]
CN 110189382 · 2019 [cited by examiner]
CN 110675307 · 2020 [cited by examiner]
CN 108986037 · 2020 [cited by examiner]
KR 101206213B1 · 2012 [cited by applicant]
KR 101499384B1 · 2015 [cited by applicant]
KR 1020170006587A · 2017 [cited by applicant]
Zhang et al., “Visual-Inertial Odometry on Chip: An Algorithm-and-Hardware Co-design Approach,” MIT, 2017, Total 10 pages. [cited by applicant]
Suleiman et al., “Navion: A 2mW Fully Integrated Real-Time Visual-Inertial Odometry Accelerator for Autonomous Navigation of Nano Drones,” MIT, 2019, Total 14 pages. [cited by applicant]
Liu et al., “ICE-BA: Incremental, Consistent and Efficient Bundle Adjustment for Visual-Inertial SLAM,” 2018 IEEE/CVF Conference on Computer Vision and Pattern Recognition, Dec. 17, 2018, pp. 1974-1982. [cited by applicant]
Communication issued Jul. 11, 2022 by the European Patent Office in counterpart European Patent Application No. 21218438.6. [cited by applicant]
Carlone, Luca et al., “Attention and Anticipation in Fast Visual-inertial Navigation”, IEEE Transactions on Robotics, IEEE Service Center, Piscataway, NJ, US, vol. 35, No. 1, Feb. 1, 2019, pp. 1-20, XP011708901. [cited by applicant]
Liu, Haomin et al., “ICE-BA: Incremental, Consistent and Efficient Bundle Adjustment for Visual-Inertial SLAM”, 2018 IEEE/CVF Conference on Computer Vision and Pattern Recognition, IEEE, Jun. 18, 2018, pp. 1974-1982, XP… [cited by applicant]