Permalink
Browse files

openpilot v0.4.3 release

  • Loading branch information...
Vehicle Researcher
Vehicle Researcher committed Mar 17, 2018
1 parent 19010d3 commit 9a411ebf32ae6908156badae25c16839ada7ad99
Showing with 3,109 additions and 742 deletions.
  1. +18 −0 CONTRIBUTING.md
  2. +1 −1 LICENSE.openpilot → LICENSE
  3. +36 −0 README_chffrplus.md
  4. +12 −0 RELEASES.md
  5. BIN apk/ai.comma.plus.frame.apk
  6. BIN apk/external/com.waze.apkpatch
  7. +1 −1 apk/external/patcher.py
  8. +1 −0 cereal/car.capnp
  9. +127 −6 cereal/log.capnp
  10. +28 −29 common/fingerprints.py
  11. +6 −7 common/profiler.py
  12. 0 common/transformations/__init__.py
  13. +104 −0 common/transformations/coordinates.py
  14. +44 −0 launch_chffrplus.sh
  15. +2 −36 launch_openpilot.sh
  16. +1 −0 requirements_openpilot.txt
  17. BIN selfdrive/assets/OpenSans-Bold.ttf
  18. BIN selfdrive/assets/img_chffr_wheel.png
  19. BIN selfdrive/assets/img_trafficLight_green.png
  20. BIN selfdrive/assets/img_trafficLight_none.png
  21. BIN selfdrive/assets/img_trafficLight_red.png
  22. BIN selfdrive/assets/img_trafficLight_yellow.png
  23. BIN selfdrive/assets/img_trafficSign_stop.png
  24. +16 −27 selfdrive/boardd/boardd.cc
  25. +1 −1 selfdrive/boardd/boardd.py
  26. +3 −3 selfdrive/can/libdbc_py.py
  27. +7 −1 selfdrive/can/packer.py
  28. +10 −5 selfdrive/can/parser.cc
  29. +3 −6 selfdrive/can/parser.py
  30. +19 −22 selfdrive/car/honda/carcontroller.py
  31. +13 −10 selfdrive/car/honda/carstate.py
  32. +68 −36 selfdrive/car/honda/hondacan.py
  33. +21 −6 selfdrive/car/honda/interface.py
  34. +1 −1 selfdrive/car/honda/values.py
  35. +84 −21 selfdrive/car/toyota/carcontroller.py
  36. +6 −4 selfdrive/car/toyota/carstate.py
  37. +9 −6 selfdrive/car/toyota/interface.py
  38. +57 −46 selfdrive/car/toyota/toyotacan.py
  39. +1 −1 selfdrive/common/version.h
  40. +3 −1 selfdrive/common/visionipc.h
  41. +7 −2 selfdrive/controls/controlsd.py
  42. +151 −150 selfdrive/controls/lib/alertmanager.py
  43. +14 −0 selfdrive/controls/lib/drive_helpers.py
  44. +10 −5 selfdrive/controls/lib/latcontrol.py
  45. +0 −1 selfdrive/controls/lib/lateral_mpc/generator.cpp
  46. +2 −3 selfdrive/controls/lib/lateral_mpc/libmpc_py.py
  47. +11 −10 selfdrive/controls/lib/lateral_mpc/mpc.c
  48. +0 −1 selfdrive/controls/lib/longitudinal_mpc/generator.cpp
  49. +2 −3 selfdrive/controls/lib/longitudinal_mpc/libmpc_py.py
  50. +10 −9 selfdrive/controls/lib/longitudinal_mpc/mpc.c
  51. +7 −5 selfdrive/controls/lib/planner.py
  52. +1 −1 selfdrive/controls/lib/radar_helpers.py
  53. +3 −2 selfdrive/controls/radard.py
  54. +2 −2 selfdrive/crash.py
  55. +48 −13 selfdrive/debug/dump.py
  56. 0 selfdrive/locationd/__init__.py
  57. +140 −0 selfdrive/locationd/ephemeris.py
  58. +73 −0 selfdrive/locationd/locationd_dummy.py
  59. +995 −0 selfdrive/locationd/ublox.py
  60. +286 −0 selfdrive/locationd/ubloxd.py
  61. BIN selfdrive/loggerd/loggerd
  62. +32 −20 selfdrive/manager.py
  63. BIN selfdrive/sensord/gpsd
  64. BIN selfdrive/sensord/sensord
  65. +10 −1 selfdrive/service_list.yaml
  66. +1 −1 selfdrive/test/plant/plant.py
  67. +2 −2 selfdrive/tombstoned.py
  68. +576 −232 selfdrive/ui/ui.c
  69. +8 −1 selfdrive/updated.py
  70. +14 −0 selfdrive/version.py
  71. +1 −1 selfdrive/visiond/README
  72. BIN selfdrive/visiond/visiond
@@ -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)

@@ -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:

@@ -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.

@@ -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
BIN +27.9 KB (100%) apk/ai.comma.plus.frame.apk
Binary file not shown.
BIN +6.77 KB (100%) apk/external/com.waze.apkpatch
Binary file not shown.
@@ -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',
@@ -207,6 +207,7 @@ struct CarControl {
brake @1: Float32;
# range from -1.0 - 1.0
steer @2: Float32;
steerAngle @3: Float32;
}

struct CruiseControl {
@@ -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;
@@ -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;
@@ -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);
@@ -599,6 +604,7 @@ struct LiveLocationData {
kalman @1;
orbslam @2;
timing @3;
dummy @4;
}
}

@@ -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 {
@@ -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;
}

}
@@ -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;
@@ -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;
}
}
Oops, something went wrong.

0 comments on commit 9a411eb

Please sign in to comment.