Size: 3566
Comment:
|
Size: 3853
Comment: config files
|
Deletions are marked like this. | Additions are marked like this. |
Line 5: | Line 5: |
There are no configuration files yet. All the constant variables in capital letters defined at the beginning of the file $JAFAR_DIR/modules/rtslam/demo_suite/demo_slam.cpp are open to tuning. Some important ones are described with more details below. | There are two configuration files : * {{{--config-setup=data/setup.cfg}}} that contains everything related to the hardware setup (camera, IMU, calibrations, hardware noise specs, ...). If none specified, the default file is data/setup.cfg in live mode, and <data-path>/setup.cfg in replay mode. * {{{--config-estimation=data/estimation.cfg}}} that contains everything related to estimation and Slam (size of map, number of landmarks, strategies, ...). If none specified, the default file is data/estimation.cfg. |
Line 7: | Line 9: |
=== Camera calibration === You have to modify the following lines in order to setup the camera calibration: {{{#!highlight cpp const unsigned IMG_WIDTH = 640; const unsigned IMG_HEIGHT = 480; const double INTRINSIC[4] = { 306.2969, 264.7741, 499.9177, 494.4829 }; const double DISTORTION[3] = { -0.2293129, 0.08793152, -0.01349877 }; }}} |
You can use the '@' character to refer to <data-path> when specifying the location of the config file to use : {{{--config-estimation=@/estimation.cfg}}} |
Line 28: | Line 22: |
* '''--data-path'''=/mnt/ram/rtslam | |
Line 34: | Line 27: |
* '''--verbose'''=0/1/2/3/4/5. Off/Trace/Warning/Debug/VerboseDebug/VeryVerboseDebug (if compiled in debug only) | * '''--data-path'''=/mnt/ram/rtslam * '''--config-setup'''=data/setup.cfg * '''--config-estimation'''=data/estimation.cfg * '''--verbose'''=0/1/2/3/4/5. Off/Trace/Warning/Debug/VerboseDebug/VeryVerboseDebug (only if compiled in debug) |
Line 39: | Line 35: |
* '''--robot''' 0=constant vel, 1=inertial * '''--trigger''' 0=internal, 1=external with MTI control, 2=external without control * '''--simu''' 0/1 |
* '''--robot'''=0(constant vel)/1(inertial) * '''--trigger'''=0(internal)/1(external with MTI control)/2(external without control) * '''--simu'''=0/1 |
Line 73: | Line 69: |
* too many landmarks are in the sensor frame and we didn't try to observe some of them (no matching score is present) | * too many landmarks are in the sensor frame and we didn't try to observe some of them (no matching score is present). In that case the landmark is regardless drawn with the "observed" color, because it wasn't due to a problem with the landmark. |
Using RT-SLAM
Configuration
There are two configuration files :
--config-setup=data/setup.cfg that contains everything related to the hardware setup (camera, IMU, calibrations, hardware noise specs, ...). If none specified, the default file is data/setup.cfg in live mode, and <data-path>/setup.cfg in replay mode.
--config-estimation=data/estimation.cfg that contains everything related to estimation and Slam (size of map, number of landmarks, strategies, ...). If none specified, the default file is data/estimation.cfg.
You can use the '@' character to refer to <data-path> when specifying the location of the config file to use : --config-estimation=@/estimation.cfg
Running the demo
Control options:
--disp-2d=0/1 use 2D display
--disp-3d=0/1 use 3D display
--render-all=0/1 (needs --replay 1)
--replay=0/1 (needs --data-path and having dumped here an online demo first)
--dump=0/1 dump the images (--replay=0) or the rendered views (--replay=1) (needs --data-path). If --replay=0, --data-path should be in a ram disk.
--log=0/1 log result in text file
--rand-seed=0/1/n. 0=generate new one, 1=in replay use the saved one, n=use seed n
--pause=0/n. 0=don't, n=pause for frames>n (needs --replay 1)
--data-path=/mnt/ram/rtslam
--config-setup=data/setup.cfg
--config-estimation=data/estimation.cfg
--verbose=0/1/2/3/4/5. Off/Trace/Warning/Debug/VerboseDebug/VeryVerboseDebug (only if compiled in debug)
--help
--usage
Slam options:
--robot=0(constant vel)/1(inertial)
--trigger=0(internal)/1(external with MTI control)/2(external without control)
--simu=0/1
--freq camera frequency in double Hz (with trigger==0/1)
--shutter shutter time in double seconds (with trigger==1)
Controlling the demo
When doing a replay, you can control how slam is running by interacting with the 2D viewer:
Press "[space]" to switch between play and pause mode.
Press "N" to process one image when in pause mode.
Press "F" to switch between render-all mode and fast mode.
Press "Q" to quit.
Click on an observation to get textual and visual information about the observation and associated landmark.
Click on an empty part of the image to get information about the sensor and the associated robot.
Interpreting the demo
Color code:
magenta: InitialParametrization landmarks that were observed this frame
dark red: InitialParametrization landmarks that were not observed this frame
cyan: ConvergedParametrization landmarks that were observed this frame
dark blue: ConvergedParametrization landmarks that were not observed this frame
2D landmark representation:
a colored + cross: the predicted position of the landmark
a colored ellipse: the 3-sigma prediction uncertainty
an orange x cross: the measured position of the landmark
a colored label: the id of the landmark, followed by the matching score (/100)
Reasons for a landmark not being observed:
- outside of the sensor frame (you can still see them in the 3D view)
- matching failed (you can see the matching score that is below the threshold)
- the observation was inconsistent (the measure is out of the uncertainty ellipse)
- too many landmarks are in the sensor frame and we didn't try to observe some of them (no matching score is present). In that case the landmark is regardless drawn with the "observed" color, because it wasn't due to a problem with the landmark.