UI Design
App Startup page

Navigation menu bar

Function is introduced
Camera stream settings
Whether to record camera stream
If you choose , When you press the record button, the camera stream will open according to the settings , The camera stream preview window will display the camera picture in real time , The resulting data folder will contain... Named after the timestamp of a single frame image png File and a list of all image timestamps ; If you don't choose , Camera stream will not open , The resulting data folder will not contain picture and image timestamp data .
The camera id selection
app At startup, it will automatically check the camera on the device that meets the following requirements , And put their id Add to the drop-down menu for selection . These requirements are :
- On Android camera api In the definition , The camera is physical camera, instead of logical camera;
- This camera is a rear camera ;
- The camera is on AE when , Support 60hz Frame rate ;
- The camera supports yuv_420_888 Image format ;
- The camera also supports 640x480,1080x720,1920x1080 The resolution of the ;
If you do not find a camera that meets the above requirements , By default, a... Will be added to the drop-down menu id “0”, This is the camera number that most Android devices can turn on .
Camera stream resolution selection
From include 640x480,1080x720,1920x1080 Select a desired image resolution from the drop-down menu of . The size of the camera stream preview window will change according to the selected resolution .
Recording 60hz Camera stream
If you choose , The camera will work on AE In mode , And try to achieve 60hz Frame rate . But according to the light and darkness of the current shooting scene , The actual frame rate of the camera stream will be 30~60hz Range float . If you don't choose , The camera stream frame rate will be kept at 30hz, Working in AE Pattern .
Image timestamp file format
From include csv, txt Select the desired file format from the drop-down menu of .
imu Data flow settings
Whether to record imu data
If you choose ,acc and gyr The sensor data stream will open , The resulting data folder will contain at least one acc Data and a gyr A text file of data . Be careful , The inertial sensor chip on the mobile phone ,acc and gyr For two independent sensor Share a data bus output , Not directly aligned imu data .
Whether to generate timestamp aligned imu data
If you choose , The resulting data folder will contain an additional alignment imu A text file of data .
imu Frame rate selection
app Startup time , It will automatically query the inertial sensor frame rate supported by the current device and add the query results to the drop-down menu for selection , It is generally called imu Frame rate , In fact, some Android devices acc and gyr The frame rate can be different . The possible frame rate values provided in the drop-down menu are 200,400,800, The frame rate of the actual data stream may not always be , It depends on the inertial sensor chip and HAL The realization of the layer .
imu Data file format
From include csv, txt Select the desired file format from the drop-down menu of .
The alignment of the imu In the data file ,acc and gyr The order of priority
If you select generate timestamp aligned imu data , In this drop-down menu acc in front and gyr in front Corresponding to imu In the data file acc Before and after gyr before .
Data folder name
Data folder name You can enter a text box
If you don't type , The default value is "default".
postfix with time
If you choose , Will be entered in data folder name Add the following format as '-D'yyyy-MM-dd'-T'HH-mm-ss Year, day, hour, minute and second suffixes of .
Data stream frame rate and packet size
Camera stream frame rate
It should be noted that , there current cam fps For real data stream frame rate , Instead of previewing the frame rate . such as , When choosing 1920x1080 Resolution time , For the same 60hz The preview of does not appear 640x480 Resolution down 60hz The preview of is smooth , That's because , When the image is too large , Preview window background memory swap It may not be that fast , This causes the preview frame rate to be lower than the real data stream frame rate . however , The resulting data folder , Images are still saved in real data streams .
Packet size
When selecting a larger image resolution or 60hz Frame rate ,current data size The displayed packet size will lag behind the actual folder size at the current time . This is because , In order not to block the data flow , The file is stored in asynchronous working mode . in other words , The current data cache may contain content that has not been written to the storage device , and current data size It shows the space occupied by the written device storage .
Recording switch
About pressing the end recording button will not reset immediately
When selecting a larger image resolution or 60hz Frame rate , When you press the button to end recording , The recording switch will block app Reset after a period of time . This is to indicate that there is something in the data cache that has not been written to the storage device , Wait for the data cache to be emptied , The recording switch will reset , And you can restart the next recording .
About reusing the same folder name
If the data folder name of this time uses the same value as that of the previous recording , Press the record switch app The last recording result will be completely cleared first , Then start the recording .
Recording data storage path
App The storage root directory used in the device is /sdcard/slam_app/, The data folder from each recording is saved in /sdcard/slam_app/RecordedData/" Name of this recording folder "/ Under the directory of . This directory will also contain a file named record_config Of json file , The content is the configuration used for this recording , Such as :
{
"folder_name": "",
"post_with_time": false,
"time_postfix": "-D2022-03-01-T18-26-30",
"record_camera": true,
"save_image": true,
"camera_id": "0",
"camera_resolution": 0,
"enable60hz": true,
"image_ts_file_type": "csv",
"record_imu": true,
"sync_acc_gyr": true,
"imu_freq": 0,
"imu_file_type": "csv",
"acc_gyr_order": 0,
"pack_rosbag": false
}
App Permanent download link
Download QR code
follow-up App When there is an update , It will automatically download updates and prompt for installation when connected to the network .
Written in the back
SLAM APP Some more interesting functions are planned later , I will take the time to implement and push updates one by one , Coming soon ~
If you think the tool I made has helped you , You can reward me with the QR code provided below , Unlimited amount , Thank you very much. ~


![[signal denoising] signal denoising based on FFT and fir with matlab code](/img/4c/782afe2652a674d64fccd8d28304ed.png)
![[image denoising] image denoising based on Markov random field with matlab code](/img/ef/d28b89a47723b43705fca07261c958.png)



