Skip to content

Commit

Permalink
openpilot v0.4.3 release
Browse files Browse the repository at this point in the history
  • Loading branch information
Vehicle Researcher committed Mar 17, 2018
1 parent 19010d3 commit 9a411eb
Show file tree
Hide file tree
Showing 72 changed files with 3,109 additions and 742 deletions.
18 changes: 18 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
# How to contribute

Our software is open source so you can solve your own problems without needing help from others. And if you solve a problem and are so kind, you can upstream it for the rest of the world to use.

Most open source development activity is coordinated through our [slack](https://slack.comma.ai). A lot of documentation is available on our [medium](https://medium.com/@comma_ai/)

## Getting Started

* Join our slack [slack.comma.ai](https://slack.comma.ai)
* Make sure you have a [GitHub account](https://github.com/signup/free)
* Fork the repository on GitHub

## Car Ports (openpilot)

We've released a guide for porting to Toyota cars [here](https://medium.com/@comma_ai/openpilot-port-guide-for-toyota-models-e5467f4b5fe6)

If you port openpilot to a substantially new car, you might be eligible for a bounty. See our bounties at [comma.ai/bounties.html](https://comma.ai/bounties.html)

2 changes: 1 addition & 1 deletion LICENSE.openpilot → LICENSE
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
Copyright (c) 2016, Comma.ai, Inc.
Copyright (c) 2018, Comma.ai, Inc.

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

Expand Down
36 changes: 36 additions & 0 deletions README_chffrplus.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
Welcome to chffrplus
======

[chffrplus](https://github.com/commaai/chffrplus) is an open source dashcam.

This is the shipping reference software for the comma EON Dashcam DevKit. It keeps many of the niceities of [openpilot](https://github.com/commaai/openpilot), like high quality sensors, great camera, and good autostart and stop. Though unlike openpilot, it cannot control your car. chffrplus can interface with your car through a [panda](https://shop.comma.ai/products/panda-obd-ii-dongle), but just like our dashcam app [chffr](https://getchffr.com/), it is read only.

It integrates with the rest of the comma ecosystem, so you can view your drives on the [chffr](https://getchffr.com/) app for Android or iOS, and reverse engineer your car with [cabana](https://community.comma.ai/cabana/?demo=1).


Hardware
------

Right now chffrplus supports the [EON Dashcam DevKit](https://shop.comma.ai/products/eon-dashcam-devkit) for hardware to run on.

Install chffrplus on a EON device by entering ``https://chffrplus.comma.ai`` during NEOS setup.


User Data / chffr Account / Crash Reporting
------

By default chffrplus creates an account and includes a client for chffr, our dashcam app.

It's open source software, so you are free to disable it if you wish.

It logs the road facing camera, CAN, GPS, IMU, magnetometer, thermal sensors, crashes, and operating system logs.
It does not log the user facing camera or the microphone.

By using it, you agree to [our privacy policy](https://beta.comma.ai/privacy.html). You understand that use of this software or its related services will generate certain types of user data, which may be logged and stored at the sole discretion of comma.ai. By accepting this agreement, you grant an irrevocable, perpetual, worldwide right to comma.ai for the use of this data.


Licensing
------

chffrplus is released under the MIT license.

12 changes: 12 additions & 0 deletions RELEASES.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,15 @@
Version 0.4.3 (2018-03-13)
==========================
* Add HDR and autofocus
* Update UI aesthetic
* Grey panda works in Waze
* Add alpha support for 2017 Honda Pilot
* Slight increase in acceleration response from stop
* Switch CAN sending to use CANPacker
* Fix pulsing acceleration regression on Honda
* Fix openpilot bugs when stock system is in use
* Change starting logic for chffrplus to use battery voltage

Version 0.4.2 (2018-02-05)
==========================
* Add alpha support for 2017 Lexus RX Hybrid
Expand Down
Binary file modified apk/ai.comma.plus.frame.apk
Binary file not shown.
Binary file modified apk/external/com.waze.apkpatch
Binary file not shown.
2 changes: 1 addition & 1 deletion apk/external/patcher.py
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@
'src': 'https://apkcache.s3.amazonaws.com/com.waze_1021278.apk',
'src_sha256': 'f00957e93e2389f9e30502ac54994b98ac769314b0963c263d4e8baa625ab0c2',
'patch': 'com.waze.apkpatch',
'out_sha256': '9ec8b0ea3c78c666342865b1bfb66e368a3f5c911df2ad12835206ec8b19f444'
'out_sha256': 'fee880a91a44c738442cd05fd1b6d9b5817cbf755aa61c86325ada2bc443d5cf'
},
'com.spotify.music': {
'src': 'https://apkcache.s3.amazonaws.com/com.spotify.music_24382006.apk',
Expand Down
1 change: 1 addition & 0 deletions cereal/car.capnp
Original file line number Diff line number Diff line change
Expand Up @@ -207,6 +207,7 @@ struct CarControl {
brake @1: Float32;
# range from -1.0 - 1.0
steer @2: Float32;
steerAngle @3: Float32;
}

struct CruiseControl {
Expand Down
133 changes: 127 additions & 6 deletions cereal/log.capnp
Original file line number Diff line number Diff line change
Expand Up @@ -117,6 +117,8 @@ struct FrameData {
frameLength @3 :Int32;
integLines @4 :Int32;
globalGain @5 :Int32;
lensPos @11 :Int32;
lensSag @12 :Float32;
image @6 :Data;

frameType @7 :FrameType;
Expand Down Expand Up @@ -515,6 +517,7 @@ struct Plan {
aCruise @17 :Float32;
vTarget @3 :Float32;
vTargetFuture @14 :Float32;
vMax @20 :Float32;
aTargetMinDEPRECATED @4 :Float32;
aTargetMaxDEPRECATED @5 :Float32;
aTarget @18 :Float32;
Expand Down Expand Up @@ -576,12 +579,14 @@ struct LiveLocationData {
source @14 :SensorSource;
# if we are fixing a location in the past
fixMonoTime @15 :UInt64;

gpsWeek @16 :Int32;
timeOfWeek @17 :Float64;

positionECEF @18 :List(Float64);
poseQuatECEF @19 :List(Float32);
pitchCalibration @20 :Float32;
yawCalibration @21 :Float32;

struct Accuracy {
pNEDError @0 :List(Float32);
Expand All @@ -599,6 +604,7 @@ struct LiveLocationData {
kalman @1;
orbslam @2;
timing @3;
dummy @4;
}
}

Expand Down Expand Up @@ -1283,6 +1289,11 @@ struct UbloxGnss {
fitInterval @35 :Float64;

toc @36 :Float64;

ionoCoeffsValid @37 :Bool;
ionoAlpha @38 :List(Float64);
ionoBeta @39 :List(Float64);

}

struct IonoData {
Expand Down Expand Up @@ -1341,30 +1352,38 @@ struct GPSPlannerPoints {
points @1 :List(ECEFPoint);
valid @2 :Bool;
trackName @3 :Text;
instructionProgress @4 :Float32;
speedLimit @4 :Float32;
accelTarget @5 :Float32;
}

struct GPSPlannerPlan {
valid @0 :Bool;
poly @1 :List(Float32);
trackName @2 :Text;
speed @3 :Float32;
acceleration @4 :Float32;
points @5 :List(ECEFPoint);
}

struct TrafficSigns {
struct TrafficEvent @0xacfa74a094e62626 {
type @0 :Type;
distance @1 :Float32;
action @2 :Action;
resuming @3 :Bool;

enum Type {
light @0;
stopSign @0;
lightRed @1;
lightYellow @2;
lightGreen @3;
stopLight @4;
}

enum Action {
none @0;
yield @1;
stop @2;
resumeReady @3;
}

}
Expand All @@ -1378,6 +1397,97 @@ struct OrbslamCorrection {
numInliers @5 :UInt32;
}

struct OrbObservation {
observationMonoTime @0 :UInt64;
normalizedCoordinates @1 :List(Float32);
locationECEF @2 :List(Float64);
matchDistance @3: UInt32;
}

struct UiNavigationEvent {
type @0: Type;
status @1: Status;
distanceTo @2: Float32;
endRoadPoint @3: ECEFPoint;

enum Type {
none @0;
laneChangeLeft @1;
laneChangeRight @2;
mergeLeft @3;
mergeRight @4;
turnLeft @5;
turnRight @6;
}

enum Status {
none @0;
passive @1;
approaching @2;
active @3;
}
}

struct UiLayoutState {
activeApp @0 :App;
sidebarCollapsed @1 :Bool;
mapEnabled @2 :Bool;

enum App {
home @0;
music @1;
nav @2;
}
}

struct Joystick {
# convenient for debug and live tuning
axes @0: List(Float32);
buttons @1: List(Bool);
}

struct OrbOdometry {
# timing first
startMonoTime @0 :UInt64;
endMonoTime @1 :UInt64;

# fundamental matrix and error
f @2: List(Float64);
err @3: Float64;

# number of inlier points
inliers @4: Int32;

# for debug only
# indexed by endMonoTime features
# value is startMonoTime feature match
# -1 if no match
matches @5: List(Int16);
}

struct OrbFeatures {
timestampEof @0 :UInt64;
# transposed arrays of normalized image coordinates
# len(xs) == len(ys) == len(descriptors) * 32
xs @1 :List(Float32);
ys @2 :List(Float32);
descriptors @3 :Data;
octaves @4 :List(Int8);
}

struct OrbKeyFrame {
# this is a globally unique id for the KeyFrame
id @0: UInt64;

# this is the location of the KeyFrame
pos @1: ECEFPoint;

# these are the features in the world
# len(dpos) == len(descriptors) * 32
dpos @2 :List(ECEFPoint);
descriptors @3 :Data;
}

struct Event {
# in nanoseconds?
logMonoTime @0 :UInt64;
Expand Down Expand Up @@ -1425,9 +1535,20 @@ struct Event {
gpsPlannerPoints @40 :GPSPlannerPoints;
gpsPlannerPlan @41 :GPSPlannerPlan;
applanixRaw @42 :Data;
trafficSigns @43 :List(TrafficSigns);
trafficEvents @43 :List(TrafficEvent);
liveLocationTiming @44 :LiveLocationData;
orbslamCorrection @45 :OrbslamCorrection;
orbslamCorrectionDEPRECATED @45 :OrbslamCorrection;
liveLocationCorrected @46 :LiveLocationData;
orbObservation @47 :List(OrbObservation);
gpsLocationExternal @48 :GpsLocationData;
location @49 :LiveLocationData;
uiNavigationEvent @50 :UiNavigationEvent;
liveLocationKalman @51 :LiveLocationData;
testJoystick @52 :Joystick;
orbOdometry @53 :OrbOdometry;
orbFeatures @54 :OrbFeatures;
applanixLocation @55 :LiveLocationData;
orbKeyFrame @56 :OrbKeyFrame;
uiLayoutState @57 :UiLayoutState;
}
}
Loading

0 comments on commit 9a411eb

Please sign in to comment.