發表文章

Configuration for running ICE-BA on VIM3 Pro

VIM3 Pro 1. Download Ubuntu image [1] * Version 4.9 is a relatively stable version through testing. 2. Create a Booting Card for VIM3 [3] 3. Insert the card into the SD-Card slot on your VIM3. 4. Connect the USB-C & HDMI cables, and VIM will power-on automatically. 5. Place your VIM3 into Upgrade Mode to complete your Firmware upgrade. [4] * Recommend: Upgrade via a USB-C Cable. [5] * Always remember to connect HDMI cable and USB3.0 cable after VIM3 has correctly booted up.  * Create the SD card partition using NTFS format, and then use it as a external storage. (Mini tool will be helpful.) Build ICE-BA 1. Follow [6] to install boost, Eigen, Gflags, Glog, Yaml, brisk. * libtool should be installed before installing Glog. $ sudo apt-get update -y $ sudo apt-get install -y libtool * Modify the content of CMakeLists.txt before compiling Yaml as following. set(yaml_c_flags ${CMAKE_C_FLAGS}) =>  set(yaml_c_flags "${CMAKE_C_FLAGS} -fPIC" ) set(yaml...

Running ROVIO

1. Installation (1) ROS (2) kindr $ git clone  https://github.com/ethz-asl/kindr $ mkdir build $ cd build  $ cmake ..  $ sudo make install (3) lightweight_filtering $ mkdir -p ~/workspace_rovio/src $ cd ~/workspace_rovio $ catkin_make $ cd src $ git clone https://github.com/ethz-asl/rovio.git $ cd rovio $ git submodule update --init --recursive  2. Compile $ cd ~/workspace_rovio $ catkin_make rovio --cmake-args -DCMAKE_BUILD_TYPE=Release -DMAKE_SCENE=ON $ catkin_make 3. Testing *Modify the bagfile path in rovio_rosbag_node.launch $ roscore $ cd ~/workspace_rovio $ source devel/setup.bash $ roslaunch rovio rovio_node.launch $ rosbag play "bagfile path" Reference: [1]  https://github.com/ethz-asl/rovio [2]  https://github.com/ethz-asl/kindr [2]  https://www.cnblogs.com/Jessica-jie/p/6607719.html

Keypoints for building msckf_mono

1. Requirements (1) ROS Kinetic (2) OpenCV (3) Boost (4) Eigen (5) fast $ git clone https://github.com/uzh-rpg/fast $ cd fast $ mdkir build $ cd build $ cmake .. $ make 2. Compile $ cd ANY_PATH $ mkdir catkin_ws  $ cd catkin_ws  $ mkdir src $ cd src   $ git clone https://github.com/daniilidis-group/msckf_mono $ cd ANY_PATH/catkin_ws  $ catkin_make  $ source devel/setup.bash *Solution for the fatal error:  msckf_mono/StageTiming.h: No such file or directory [2] Reference: [1]  https://github.com/daniilidis-group/msckf_mono [2]  https://github.com/daniilidis-group/msckf_mono/issues/21 [3]  csdn blog

Running ICE-BA

1. Installation (1) boost $ sudo apt-get install libboost-dev libboost-thread-dev libboost-filesystem-dev (2) Eigen $ sudo apt-get install libeigen3-dev (3) Gflags $ git clone https://github.com/gflags/gflags $ mkdir build $ cd build $ cmake .. -DBUILD_SHARED_LIBS=ON -DBUILD_STATIC_LIBS=ON -DBUILD_gflags_LIB=ON $ make -j2 $ sudo make install (4) Glog $ git clone https://github.com/google/glog $ export LDFLAGS='-L/usr/local/lib' $ ./autogen.sh $ ./configure  $ make -j2  $ sudo make install (5) OpenCV [3] $ cd ~ $ wget -O opencv.zip https://github.com/Itseez/opencv/archive/4.3.0.zip $ unzip opencv.zip $ cd opencv $ wget -O opencv_contrib.zip https://github.com/Itseez/opencv_contrib/archive/4.3.0.zip $ unzip opencv_contrib.zip $ mkdir build $ cd build $ cmake .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX= /usr/local -D OPENCV_GENERATE_PKGCONFIG=ON -DOPENCV_EXTRA_MODULES_PATH=../opencv_contrib-4.3.0/modules $ make -j2 $ su...

Run VINS-Mono and save its result as a .tum output for evo analysis

圖片
1. Install prerequisites [1] *Solution for the eigen installation problem: reinstall eigen $ git clone https://gitlab.com/libeigen/eigen.git ... ... $ sudo make install *check current eigen version: $ pkg-config --modversion eigen3 (3.2.2 or later strongly recommended, 3.1.0 or later required.) 2. Build VINS-Mono on ROS *Remember  to recompile Ceres with the same Eigen version as you plan to use in the VINS-mono project. In my case, since the Ceres was compiled once in the maplab project with different Eigen version, a problem with the Eigen version confliction was reported as following picture. Solution: assign the desired Eigen path and recompile maplab ( $ catkin build maplab) After solving the problem mentioned above, you should be good to go... cd ~/catkin_ws/src git clone https://github.com/HKUST-Aerial-Robotics/VINS-Mono.git cd ../ catkin_make source ~/catkin_ws/devel/setup.bash 3. Run VINS-Mono using EuRoC dataset $ roslaunch vi...

Analytical tool for VIO perfromance: evo

圖片
1. Install evo in the virtual environment [1] 2. Prepare the ground-truth data  Supported trajectory formats: 'TUM' trajectory files 'KITTI' pose files 'EuRoC MAV' (.csv groundtruth and TUM trajectory file) [2] ROS bagfile with: geometry_msgs/PoseStamped, geometry_msgs/TransformStamped, geometry_msgs/PoseWithCovarianceStamped or nav_msgs/Odometry topics 3. Plot ground-truth $ workon evaluation ( start evo ) $ evo_traj euroc data.csv --save_as_tum ( euroc => tum )  * There is no necessary to substract the original offset by yourself, just add "--align" in the command. $ evo_traj tum data.tum -p (tum format) $ deactivate ( stop evo ) 4. Generate trajectory data (ex: maplab) (1) Run VIO mode (2) load map in the maplab_console (3) Export .csv file ex: $ csv_export --csv_export_path '/home/shomin/maplab_ws/bagfiles/save_folder_0' (4) Open vertices.csv , delete first column and row, and save as a new file. (5) Trans...

maplab(3) - Localization mode

1. Preparing a localization map source ~/maplab_ws/devel/setup.bash  roscore& rosrun rovioli tutorial_euroc save_folder_loc_map MH_01_easy.bag --optimize_map_to_localization_map save_folder_loc_map: save path of VI map optimize_map_to_localization_map : flag for creating optimized localization map * A folder named " save_folder_loc_map_localization " will be created in this process. 2. Running ROVIOLI with localization source ~/maplab_ws/devel/setup.bash roscore& rosrun rovioli tutorial_euroc_localization save_folder_loc_map_localization save_map_with_localization MH_02_easy.bag tutorial_euroc_localization: localization script save_folder_loc_map_localization:  reference map for localization MH_02_easy.bag:  A dataset to run, where a live source can also be used. 3. Visualization during ROVIOLI with localization [2] Useful topics: # Pose graph  /vi_map_baseframe  /vi_map_landmarks  /vi_map_vertices...