MIT-SPARK / Kimera-VIO-ROS

ROS wrapper for Kimera-VIO
BSD 2-Clause "Simplified" License
375 stars 157 forks source link

how run on live from a Realsense camera? #24

Closed FPSychotic closed 4 years ago

FPSychotic commented 4 years ago

I have a realsense camera, but I cannot find how run it on live slam, only I can find ros bag based .launch files. Other question is can Kimera use Imu data from a Pix 4 or t265 and the stereo from d435? what name should have the IMU msg and what kind of coordinate system (quaternions or other)

thanks

violetteavi commented 4 years ago

Yes, you can run Kimera on live slam! Below is a picture of it performing live SLAM on the infrared stereo + IMU of a d435i.

For now, you need a system like the D435i that provides synchronized stereo images and imu data. You can specify what topics you are publishing the data on in the launch file, and camera calibration parameters in the VIO params folder. We'll release a launch file and calibration files at some point in the near future. In the meantime, feel free to consult this doc for how to do it yourself!

dataprovider_testing_functional

violetteavi commented 4 years ago

Working parameters and launch file have not yet been merged into master, but are available in these pull requests: Kimera-VIO Kimera-VIO-ROS You can check them out with:

cd /PATH/TO/Kimera-VIO
git checkout feature/centralized_params_with_realsense
cd /PATH/TO/Kimera-VIO-ROS
git checkout feature/realsense_metric_reconstruction_demo

This guide has tips for setting up the RealSense drivers/firmware/etc as well as the command line commands to get the RealSense running with the given launch files.

violetteavi commented 4 years ago

You can pair the stereo images from the d435i with IMU data from another device if you can get the device clocks synchronized. That said, the d435i has a pretty good on board accelerometer and gyroscope-- I would recommend using those.

All messages sent/accepted over ROS are in ROS standard formats. For the IMU data, it follows this format.

BarzelS commented 4 years ago

You can pair the stereo images from the d435i with IMU data from another device if you can get the device clocks synchronized. That said, the d435i has a pretty good on board accelerometer and gyroscope-- I would recommend using those.

All messages sent/accepted over ROS are in ROS standard formats. For the IMU data, it follows this format.

Hi, Have you managed to perform a stable localization/odometry with only the d435i? I'm running the Kimera-VIO-ROS here with my D435i and I'm getting large localization errors (Running with the kimera_vio_ros_realsense_IR.launch)

BarzelS commented 4 years ago

You can pair the stereo images from the d435i with IMU data from another device if you can get the device clocks synchronized. That said, the d435i has a pretty good on board accelerometer and gyroscope-- I would recommend using those.

All messages sent/accepted over ROS are in ROS standard formats. For the IMU data, it follows this format.

Have you managed to perform stable localization with only the d435i and the Kimera-VIO?

violetteavi commented 4 years ago

Yep! I got it to do stable localization with kimera_vio_ros_realsense_IR.launch. If you are experiencing unstable localization, it could be a problem with a) your device b) your device driver c) your Kimera parameters d) Kimera itself Given that I've gotten it working (resolving some device issues along the way) I suspect it's b) or c). Can you run Kimera on this sample rosbag collected from my D435i? https://drive.google.com/open?id=1ipuwygPzKnTu7I5df97dcVih_1oxqpmq This will allow us to narrow down the possible sources of failure

violetteavi commented 4 years ago

Also, what is your environment like? The current set of parameters is tuned for indoor environments-- close range, fairly feature dense. They may need additional tuning if you are operating outside.