OVERVIEW
DETAILS
DOWNLOAD
GENERATE PANORAMIC IMAGES
CITATION
VISIT ALSO
|
OVERVIEW
The OIDDO DB is a set of omnidirectional images and point clouds captured in an outdoor environment (Innova building sorroundings) at Miguel Hernandez University in Elche, Spain. This database is intended to test navigation, mapping and localization algoritmhs for mobile robots.
It contains rangefinder-based geometric representation, omnidirectional images (captured by a catadioptric camera and a fish-eye lens camera) and GPS positioning information of outdoor environments.
The database includes the following sensorial information: Odometry, GPS, IMU, laser and omnidirectional color images. It has been captured during different times of the day (Morning, Midday, Afternoon and Evening) and also in different days.
The next figures show a bird eye's view of one trajectory (2022-12-07-15-22-43) where the robot captured the sets and an image of the robot used for it.
DETAILS
Technical data
- Robot platform: Husky A200 @ maximum speed 1 m/s
- Lidar: Ouster OS1-128 @ 10/20 Hz
- IMU:UM7 from redshiftlabs
- Catadioptric camera: Imaging Source DFK 37BUX264 (2448x2048) @ 1 FPS
- Fish-eye lens camera: Garmin VIRB 360, 2 images (2496x2496), FoV: 201.8° @ 30 FPS
- GPS: Harxon Ts100 @1Hz
Format
Sensors data are stored in a folders with their name (camera, gps, imu, odom, lidar, etc.).
Their file names are in the format of {TIMESTAMP}.ext, where .ext is the corresponding extension (.png, .csv, .pcd, etc.) .
For example, 2022-11-28-11-24-49/robot0/camera/data/1669631090139103000.png encodes the following information.
- The place scan was captured on 28/11/2022 and started at 11:24:49 .
- The timestamp in Unix epoch time is 1669631090139103.000.
DOWNLOAD
The whole database is downloadable through the next links:
Route |
Illumination condition |
# Sequence |
File |
Innova-gardens (Trajectory map) |
Sunny |
Sequence 1 |
.bag file euroc asl images laser Fish-eye images |
Cloudy |
Sequence 1 |
.bag file euroc asl images laser Fish-eye images |
Night |
Sequence 1 |
.bag file euroc asl images laser Fish-eye images |
Innova->Altet (Trajectory map) |
Sunny |
Sequence 1 |
.bag file euroc asl images laser Fish-eye images |
Cloudy |
Sequence 1 |
.bag file euroc asl images laser Fish-eye images |
Night |
Sequence 1 |
.bag file euroc asl images laser Fish-eye images |
The database was captured with an Imaging Source DFK 33UX264 camera, which takes pictures of a hyperbolic mirror (Eizoh Wide 70). The mirror is mounted over the camera, with its axis aligned with the camera optic axis. The Fish-eye images were captured with a Garmin VIRB 360 camera (two files of 2496x2496). The laser data were captured with a Ouster OS1-128 at 10/20 Hz.
GENERATE PANORAMIC IMAGES
We provide some code to convert a omnidirectional images to panoramic:
import numpy as np
def o2p(omni_img, r_int, r_ext):
#r_int: internal radius (radius of the black point in the centre)
#r_ext: external radius (edge of the omnidirectional image)
dimensions = omni_img.shape
[Cx, Cy] = [dimensions[0], dimensions[1]]
#Centre of the image
Cx = Cx/2
Cy = Cy/2
r1 = r_ext
r2 = r_int
i = 0
j = 0
pi=np.pi
w = int(np.floor((r1 + r2) * pi))
l1=int(len(range(r1, r2 - 1, -1)))
l2=int(len(range(w, -1, -1)))
panoramic_matrix = np.zeros([l1, l2, 3])
for r in range(r1,r2-1,-1):
for var in range(w,-1,-1):
coorx1 = int(np.floor(r * np.sin(var * 2 * pi / w) + (Cx)))
valorx1 = (r * np.sin(var * 2 * pi / w) + (Cx)) - np.floor(r * np.sin(var * 2 * pi / w) + (Cx))
coory1 = int(np.floor(r * np.cos(var * 2 * pi / w) + (Cy)))
valory1 = (r * np.cos(var * 2 * pi / w) + (Cy)) - np.floor(r * np.cos(var * 2 * pi / w) + (Cy))
A=((2 - valorx1 - valory1) * omni_img[coorx1, coory1, 0:])
B=((1 - valorx1 + valory1) * omni_img[coorx1, coory1 + 1,0:])
C=((1 + valorx1 - valory1) * omni_img[coorx1 + 1, coory1,0:])
D=((valorx1 + valory1) * omni_img[coorx1 + 1, coory1 + 1,0:])
[red,green,blue]=(A + B + C + D)/ 4
# panoramic_matrix[i, j, 0:] = int((A + B + C + D)/ 4)
panoramic_matrix[i, j, 0]=int(red)
panoramic_matrix[i, j, 1]=int(green)
panoramic_matrix[i, j, 2] = int(blue)
j = j + 1
j=0
i=i+1
return panoramic_matrix.astype(np.uint8)
Publications
Pending Publication...
Visit also
- ARVC (Automation,
Robotics and Computer Vision group): Visit our research group.
|