Top Related Projects
Build and run Docker containers leveraging NVIDIA GPUs
An open autonomous driving platform
Autoware - the world's leading open-source software project for autonomous driving
The Udacity open source self-driving car project
Open-source simulator for autonomous driving research.
Open source simulator for autonomous vehicles built on Unreal Engine / Unity, from Microsoft AI & Research
Quick Overview
The commaai/research repository is an open-source project by Comma.ai that focuses on autonomous driving research. It contains various machine learning models, datasets, and tools for developing self-driving car technology, with a particular emphasis on end-to-end learning approaches.
Pros
- Provides access to cutting-edge autonomous driving research and models
- Includes large, real-world datasets for training and testing
- Offers open-source implementations of various deep learning architectures
- Encourages collaboration and innovation in the self-driving car community
Cons
- May require significant computational resources for training and running models
- Some components might be outdated or not actively maintained
- Limited documentation for certain parts of the project
- Potential legal and safety concerns when implementing in real-world scenarios
Code Examples
- Loading and preprocessing data:
from tools.lib.loaders import load_segment
from tools.lib.framereader import FrameReader
segment = load_segment('path/to/segment')
fr = FrameReader('path/to/camera.hevc')
for i, img in enumerate(fr):
# Process each frame
pass
- Training a model:
from models import comma_model
model = comma_model()
model.compile(optimizer='adam', loss='mse')
model.fit(X_train, y_train, epochs=10, validation_data=(X_val, y_val))
- Running inference:
import numpy as np
from tools.lib.model_runner import ModelRunner
runner = ModelRunner('path/to/model.h5')
frame = np.random.rand(1, 874, 1164, 3) # Example input shape
output = runner.run(frame)
print(output)
Getting Started
-
Clone the repository:
git clone https://github.com/commaai/research.git cd research
-
Install dependencies:
pip install -r requirements.txt
-
Download datasets and models:
python tools/lib/download_data.py
-
Run example scripts:
python examples/steering_model.py
Competitor Comparisons
Build and run Docker containers leveraging NVIDIA GPUs
Pros of nvidia-docker
- Focuses on containerization and GPU acceleration for AI/ML workloads
- Provides seamless integration with NVIDIA GPUs in Docker environments
- Widely adopted in enterprise and cloud computing scenarios
Cons of nvidia-docker
- Limited to Docker and NVIDIA GPU ecosystems
- Less emphasis on autonomous driving research compared to research
- Requires more setup and configuration for specific use cases
Code Comparison
research:
def calc_curvature(v_ego, angle_steers, angle_offset=0):
deg_to_rad = np.pi/180.
slip_fator = 0.0014 # slip factor obtained from real data
steer_ratio = 15.3 # from http://www.edmunds.com/acura/ilx/2016/road-test-specs/
wheel_base = 2.67 # from http://www.edmunds.com/acura/ilx/2016/sedan/features-specs/
angle_steers_rad = (angle_steers - angle_offset) * deg_to_rad
curvature = angle_steers_rad/(steer_ratio * wheel_base * (1. + slip_fator * v_ego**2))
return curvature
nvidia-docker:
FROM nvidia/cuda:11.0-base
LABEL com.nvidia.volumes.needed="nvidia_driver"
ENV PATH /usr/local/nvidia/bin:/usr/local/cuda/bin:${PATH}
ENV LD_LIBRARY_PATH /usr/local/nvidia/lib:/usr/local/nvidia/lib64
ENV NVIDIA_VISIBLE_DEVICES all
ENV NVIDIA_DRIVER_CAPABILITIES compute,utility
An open autonomous driving platform
Pros of Apollo
- Comprehensive, production-ready autonomous driving platform
- Extensive documentation and community support
- Regular updates and active development
Cons of Apollo
- Steeper learning curve due to complexity
- Requires more computational resources
- Larger codebase, potentially harder to customize
Code Comparison
Apollo (C++):
void Planning::RunOnce(const LocalView& local_view,
ADCTrajectory* const trajectory_pb) {
// Complex planning logic
}
research (Python):
def plan(self, cs, sm):
# Simpler planning approach
return self.planner.plan(cs, sm)
Key Differences
- Apollo: Full-stack solution for autonomous driving
- research: Focused on research and experimentation
- Apollo: More structured, enterprise-level approach
- research: Lightweight, easier to understand and modify
Use Cases
- Apollo: Suitable for large-scale autonomous vehicle projects
- research: Ideal for researchers and hobbyists exploring self-driving technology
Community and Support
- Apollo: Large community, corporate backing
- research: Smaller community, more DIY-oriented
Both projects contribute significantly to autonomous driving technology, with Apollo offering a more comprehensive solution and research providing a simpler, more accessible approach for experimentation and learning.
Autoware - the world's leading open-source software project for autonomous driving
Pros of Autoware
- More comprehensive and production-ready autonomous driving stack
- Larger community and industry support, including ROS integration
- Extensive documentation and tutorials for easier adoption
Cons of Autoware
- Higher complexity and steeper learning curve
- Requires more computational resources and hardware
- Less focus on end-to-end learning approaches
Code Comparison
research:
def process_model(model, img_in, state_in):
x = model.forward(img_in, state_in)
return x
Autoware:
void PlanningNode::run()
{
rclcpp::Rate rate(config_.update_rate);
while (rclcpp::ok()) {
updatePlan();
rate.sleep();
}
}
The research code snippet shows a simple model processing function, while the Autoware code demonstrates a more complex planning node implementation in C++, reflecting the differences in scope and complexity between the two projects.
The Udacity open source self-driving car project
Pros of self-driving-car
- More comprehensive curriculum covering various aspects of autonomous driving
- Includes real-world datasets and challenges for practical learning
- Active community engagement and contributions from students and professionals
Cons of self-driving-car
- Less focused on a specific implementation, which may be overwhelming for beginners
- Requires more time investment to work through all materials and projects
Code Comparison
research:
def update_status():
if state == STARTUP:
# startup procedure
elif state == DISENGAGED:
# disengaged behavior
elif state == ENGAGED:
# engaged behavior
self-driving-car:
def process_image(image):
# Preprocess image
processed = preprocess(image)
# Detect lane lines
lanes = detect_lanes(processed)
# Determine steering angle
angle = calculate_steering(lanes)
return angle
The research code focuses on state management for an autonomous system, while the self-driving-car code demonstrates image processing for lane detection and steering control. This reflects the different approaches of the two repositories, with research emphasizing system architecture and self-driving-car focusing on specific autonomous driving tasks.
Open-source simulator for autonomous driving research.
Pros of CARLA
- More comprehensive and feature-rich simulation environment
- Active development with regular updates and community support
- Extensive documentation and tutorials for easier adoption
Cons of CARLA
- Higher system requirements and more complex setup process
- Steeper learning curve for beginners
- Potentially slower execution due to its comprehensive nature
Code Comparison
CARLA example (Python):
import carla
client = carla.Client('localhost', 2000)
world = client.get_world()
blueprint = world.get_blueprint_library().find('vehicle.tesla.model3')
spawn_point = world.get_map().get_spawn_points()[0]
vehicle = world.spawn_actor(blueprint, spawn_point)
commaai/research example (Python):
from selfdrive.car.honda.interface import CarInterface
from selfdrive.controls.lib.drive_helpers import create_event
CI = CarInterface(CP, CarController)
can_sends = CI.apply(CC)
The CARLA code demonstrates setting up a simulation environment and spawning a vehicle, while the commaai/research code shows interfacing with a specific car model and applying control commands. CARLA provides a more generalized simulation framework, while commaai/research focuses on real-world vehicle integration.
Open source simulator for autonomous vehicles built on Unreal Engine / Unity, from Microsoft AI & Research
Pros of AirSim
- More comprehensive simulation environment for autonomous systems
- Better documentation and community support
- Offers photorealistic environments and physics simulation
Cons of AirSim
- Steeper learning curve due to complexity
- Requires more computational resources
- Less focused on real-world driving scenarios
Code Comparison
AirSim (Python API example):
import airsim
client = airsim.MultirotorClient()
client.enableApiControl(True)
client.armDisarm(True)
client.takeoffAsync().join()
client.moveToPositionAsync(-10, 10, -10, 5).join()
research (OpenPilot example):
from selfdrive.car.honda.interface import CarInterface
from selfdrive.controls.lib.longcontrol import LongControl
CI = CarInterface(CP, CarController, CarState)
long_control = LongControl(CP, CI.compute_gb)
Both repositories focus on autonomous systems, but AirSim provides a more general-purpose simulation environment, while research is specifically tailored for real-world driving scenarios. AirSim offers more flexibility and realism in simulations, but research is more directly applicable to on-road autonomous driving development.
Convert designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual CopilotREADME
the people's comma
the paper
the comma.ai driving dataset
7 and a quarter hours of largely highway driving. Enough to train what we had in Bloomberg.
Examples
We present two Machine Learning Experiments to show possible ways to use this dataset:
Training a steering angle predictor
Training a generative image model
Downloading the dataset
./get_data.sh
or get it at archive.org comma dataset
45 GB compressed, 80 GB uncompressed
dog/2016-01-30--11-24-51 (7.7G)
dog/2016-01-30--13-46-00 (8.5G)
dog/2016-01-31--19-19-25 (3.0G)
dog/2016-02-02--10-16-58 (8.1G)
dog/2016-02-08--14-56-28 (3.9G)
dog/2016-02-11--21-32-47 (13G)
dog/2016-03-29--10-50-20 (12G)
emily/2016-04-21--14-48-08 (4.4G)
emily/2016-05-12--22-20-00 (7.5G)
frodo/2016-06-02--21-39-29 (6.5G)
frodo/2016-06-08--11-46-01 (2.7G)
Dataset referenced on this page is copyrighted by comma.ai and published under the Creative Commons Attribution-NonCommercial-ShareAlike 3.0 License. This means that you must attribute the work in the manner specified by the authors, you may not use this work for commercial purposes and if you alter, transform, or build upon this work, you may distribute the resulting work only under the same license.
Dataset structure
The dataset consists of 10 videos clips of variable size recorded at 20 Hz
with a camera mounted on the windshield of an Acura ILX 2016. In parallel to the videos
we also recorded some measurements such as car's speed, acceleration,
steering angle, GPS coordinates, gyroscope angles. See the full log
list here.
These measurements are transformed into a uniform 100 Hz time base.
The dataset folder structure is the following:
+-- dataset
| +-- camera
| | +-- 2016-04-21--14-48-08
| | ...
| +-- log
| | +-- 2016-04-21--14-48-08
| | ...
All the files come in hdf5 format and are named with the time they were recorded.
The camera dataset has shape number_frames x 3 x 160 x 320
and uint8
type.
One of the log
hdf5-datasets is called cam1_ptr
and addresses the alignment
between camera frames and the other measurements.
Requirements
anaconda
tensorflow-0.9
keras-1.0.6
cv2
Hiring
Want a job at comma.ai?
Show us amazing stuff on this dataset
Credits
Riccardo Biasini, George Hotz, Sam Khalandovsky, Eder Santana, and Niel van der Westhuizen
Top Related Projects
Build and run Docker containers leveraging NVIDIA GPUs
An open autonomous driving platform
Autoware - the world's leading open-source software project for autonomous driving
The Udacity open source self-driving car project
Open-source simulator for autonomous driving research.
Open source simulator for autonomous vehicles built on Unreal Engine / Unity, from Microsoft AI & Research
Convert designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual Copilot