Slam with external camera device

I don't currently have any knowledge about slam.
Is it possible to connect an external camera device such as realsense and perform slam with the image of that camera when performing slam with matlab?

3 Comments

What is "slam" in this context ?
Slam is a general term for technologies that simultaneously estimate the self-position of a moving object and create an environmental map. Matlab has support for doing slam.
Ah, "Simultaneous Localization and Mapping"

Sign in to comment.

Answers (1)

Walter Roberson
Walter Roberson on 21 Jun 2021

11 Comments

I will try it as a reference.
I ran the code with reference to that site, but I get the following error:
Error: imageDatastore (line 138)
No matching file or folder found:
Error: Untitled (line 19)
imds = imageDatastore (imageFolder)
I would like someone to tell me how to solve it.
When I run
openExample('vision/MonocularVisualSimultaneousLocalizationAndMappingExample')
on my R2021a Mac, it seems to execute without problem.
It has to download some data, which takes some time; you could have a problem if your disk filled up. You could also have a problem if you are running automated cleanup software that is cleaning out your temporary directories.
Which MATLAB release are you using, and which operating system?
I'm using R2021a on Windows 10.
For the time being, I tried to execute only the code of "Download and confirm the input image sequence", but the error occurs without the download starting.
You appear to be using https://github.com/IntelRealSense/librealsense/tree/master/wrappers/matlab but you have also created your own file of code, "Untitled" .
How is the variable dataFolder being created in your code? I suspect you might need to convert the ¥ into \ or / as I suspect the ¥ is not being treated as a folder separator. https://en.wikipedia.org/wiki/Yen_and_yuan_sign
圭介 川邉
圭介 川邉 on 25 Jun 2021
Edited: 圭介 川邉 on 28 Jun 2021
I want to put RealSense on a mobile robot and slam it with the footage I shot. I'm looking for code that can run it in matlab.
Also, ¥ is treated as a folder delimiter.
Qu Cao
Qu Cao on 16 Jul 2021
Edited: Qu Cao on 16 Jul 2021
The first part of the code of the example downloads image data to run the SLAM algorithm. If you have your own data, you can skip that part. You just need to save your image data collected by RealSense to a folder and use imagedatastore to manage the images. imagedatastore should work with Japanese locale as well.
@Qu Cao Do you think is possible to use a live camera such as the web cam in this monocular example? and how can we do it.
Thank you!
Yes, it is possible. However, it would require some editing.
Get rid of the image data store -- no downloading, just do not create it at all. Initialize the camera instead.
Change the while loop that checks numel(imds.Files) to remove that part of the test.
Change every read of an image into a call to get the next live camera image.
Thank you! . I did it and it works fine. The only problem I face is the "focalLength", which is different for another camera and it is hard to find that technical value.
iam getting an error : Unrecognized function or variable 'helperDetectAndExtractFeatures'.

Sign in to comment.

Asked:

on 17 Jun 2021

Commented:

on 19 Nov 2022

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!