DRIVE Datasets - norlab-ulaval/Norlab_wiki GitHub Wiki
This page is dedicated to sharing our datasets for our paper entitled "DRIVE: Data-driven Robot Input Vector Exploration". The datasets for each experiment are available in post-processed Pandas data frames. The protocol code used to automate dataset gathering is available open-source.
- Husky Snow Dataframe
- Husky Tile Dataframe
- HD2 Snow Dataframe
- HD2 Tile Dataframe
- Warthog Gravel Dataframe
- Warthog Ice Dataframe
For each Dataframe, each row represents a two-second training step. Each set of three consecutive rows represent a 6-second training interval, consisting of one transitory training step and two steady training steps. For each column, we have the data sampled at a rate of 20 Hz, leading to 40 timesteps for each training step. We provide our Ground-truth localization as well as smoothed ground-truth velocity and acceleration for training models. We also provide commanded and measured wheel and body velocities. Lastly, we provide the pre-computed single-step body slip velocity, which can be used to train learned slip models. To extract a specific set of data from the Dataframe, the following Python code can be used :
idd_body_vel_x_str_list = []
idd_body_vel_y_str_list = []
idd_body_vel_yaw_str_list = []
for i in range(0, 40):
str_idd_vel_x_i = 'idd_vel_x_' + str(i)
str_idd_vel_y_i = 'idd_vel_y_' + str(i)
str_idd_vel_yaw_i = 'idd_vel_yaw_' + str(i)
idd_body_vel_x_str_list.append(str_idd_vel_x_i)
idd_body_vel_y_str_list.append(str_idd_vel_y_i)
idd_body_vel_yaw_str_list.append(str_idd_vel_yaw_i)
idd_body_vel_x_array = dataframe[idd_body_vel_x_str_list].to_numpy()
idd_body_vel_y_array = dataframe[idd_body_vel_y_str_list].to_numpy()
idd_body_vel_yaw_array = dataframe[idd_body_vel_yaw_str_list].to_numpy()
Update
Since Dominic's dataset and the original publication, Nicolas and all have continued to gather more data. The final dataset in Dominic's original format is not ready yet to be published. However, if you want to have access to the rosbags, you can. If you are from the lab, you need to have access to the Yeti. On it, there is a folder named DRIVE that contains all the work of the drive. The rosbags are organized in the following logic :
- robot
- Locomotion mechanism, if the robot has more than one (track and wheel)
- the terrain (grass)
- The process to have the localization (offline mapping Vs online_mapping)
- all the different bags.
Here is an example of accessing a rosbag with its online mapping:
A raw rosbag does not give a lot of context on the number of steps that have been done with the warthog. Thus, you can access more information for most of the experiments. Here is a short procedure on how to find that information. I'll fix that on Monday, but for now, go to slack in drive_publication and find the message by searching drive_dataset_update_2025, and you will have access to two zip containing the dataset postprocess in the format used for the publication of Nicolas Samson and all:
- Download them
- Then go into the folder data_including_subsampling_and_online
- Then search by robot/locomotion_mechanism/terrain/
- Select the experience of your choice (Note that the timestamp will always differ a bit from the rosbag )
- Then, in the metadata, you will have a bit more context. For more info, go into the folder config_file_used and into the different config files. The number of steps is in the _robot.config.yaml
Note for the users. If you are interested in warthog, I suggest starting with grass because the online and offline mapping are more similar. The mapping on the asphalt was hard because of the sparsity of the features. Ice does not contain all the drive topics in the rosbag. I developed scripts to reverse engineer the command change, but they are not accessible yet. Sand data collection was really efficient and fast. However, the robot was deforming the terrain while executing the motions, so be careful with your usage of the data. The contact between the wheels and the warthog is not always maintained due to the bumpiness of the sand. If you are interested in Husky, Husky mud is really interesting. Both vehicles show asymmetric behavior for different reasons, so take this into consideration when using them.