-
nuscenes_tutorial.ipynb -
nuscenes_lidarseg_panoptic_tutorial.ipynb -
nuimages_tutorial.ipynb -
can_bus_tutorial.ipynb -
map_expansion_tutorial.ipynb -
prediction_tutorial.ipynb
background
preparation
Reading Datasets
initialization
from nuscenes.can_bus.can_bus_api import NuScenesCanBus nusc_can = NuScenesCanBus(dataroot='/Users/lau/data_sets/nuscenes')
Overview
scene_name = 'scene-0001' nusc_can.print_all_message_stats(scene_name) #Output results { "ms_imu": [ "ms_imu", "pose", "steeranglefeedback", "vehicle_monitor", "zoe_veh_info", "zoesensors" ], "pose": [ "ms_imu", "pose", "steeranglefeedback", "vehicle_monitor", "zoe_veh_info", "zoesensors" ], "steeranglefeedback": [ "ms_imu", "pose", "steeranglefeedback", "vehicle_monitor", "zoe_veh_info", "zoesensors" ], "vehicle_monitor": [ "ms_imu", "pose", "steeranglefeedback", "vehicle_monitor", "zoe_veh_info", "zoesensors" ], "zoesensors": [ "ms_imu", "pose", "steeranglefeedback", "vehicle_monitor", "zoe_veh_info", "zoesensors" ], "zoe_veh_info": [ "ms_imu", "pose", "steeranglefeedback", "vehicle_monitor", "zoe_veh_info", "zoesensors" ] }
visualization
message_name = 'steeranglefeedback' key_name = 'value' nusc_can.plot_message_data(scene_name, message_name, key_name)
message_name = 'pose' key_name = 'accel' nusc_can.plot_message_data(scene_name, message_name, key_name, dimension=1)
import numpy as np import matplotlib.pyplot as plt # Retrieve raw data. wheel_speed = nusc_can.get_messages(scene_name, 'zoe_veh_info') wheel_speed = np.array([(m['utime'], m['FL_wheel_speed']) for m in wheel_speed]) veh_speed = nusc_can.get_messages(scene_name, 'vehicle_monitor') veh_speed = np.array([(m['utime'], m['vehicle_speed']) for m in veh_speed]) # Convert to m/s. radius = 0.305 # Known Zoe wheel radius in meters. circumference = 2 * np.pi * radius wheel_speed[:, 1] *= circumference / 60 veh_speed[:, 1] *= 1 / 3.6 # Normalize time. wheel_speed[:, 0] = (wheel_speed[:, 0] - wheel_speed[0, 0]) / 1e6 veh_speed[:, 0] = (veh_speed[:, 0] - veh_speed[0, 0]) / 1e6 plt.plot(wheel_speed[:, 0], wheel_speed[:, 1]) plt.plot(veh_speed[:, 0], veh_speed[:, 1]) plt.xlabel('Time in s') plt.ylabel('Speed in m/s') plt.legend(['Wheel speed', 'Vehicle speed']);
nusc_can.plot_baseline_route(scene_name)
error handling
print(nusc_can.list_misaligned_routes())
print(nusc_can.can_blacklist)
reference resources
-
https://github.com/nutonomy/nuscenes-devkit/blob/master/python-sdk/nuscenes/can_bus/README.md -
https://colab.research.google.com/github/nutonomy/nuscenes-devkit/blob/master/python-sdk/tutorials/can_bus_tutorial.ipynb