Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Make visiond more HW portable - open source it all except DNN part #96

Closed
kozuch opened this issue May 12, 2017 · 8 comments
Closed

Make visiond more HW portable - open source it all except DNN part #96

kozuch opened this issue May 12, 2017 · 8 comments

Comments

@kozuch
Copy link

kozuch commented May 12, 2017

Hi there,

this thread is aimed primarily at comma.ai staff (@geohot etc. - others wecome to comment too though!). You guys want openpilot to be successful and have as many people as possible using it, right? I see a big obstacle here towards that path in the visiond binary being locked down a single high-end $700 smartphone model. Let's make the whole project more accessible by changing this. Seems like the project is still in experimental stage and you need loads of field testing to validate your code and to push it closer to production. You may be getting many more testers when the HW needed costs (just guessing) $100 instead of $700.

I see your business model in keeping your deep neural network closed source and I am perfectly fine with it. But would you want to open-source the most of visiond except your DNN blob so that you keep your intellectual property while allowing for a much wider variety of HW that can be used? Let's open source all visiond (the camera stuff etc.) except your DNN blob and also make that blob as portable as possible (I guess there are ways to making DNN portable?). You will have much better reach and could test performance on various HW and the project may gain more popularity like this. I know this may hurt by having to support various CPU/GPU architectures but I think the benefits may outweigh the drawbacks.

Hope you will be hearing to my post! :)

@geohot
Copy link
Contributor

geohot commented May 12, 2017

This is a duplicate issue, see #4

One issue is even if you ported it, performance of the network won't be good with other cameras. And you really wouldn't be able to bring costs down much, since you need an 820. Currently we have no plans to open source visiond. If I saw substantial pull requests and contributions to other parts of the code I'd be more open to it.

@geohot geohot closed this as completed May 12, 2017
@kozuch
Copy link
Author

kozuch commented May 12, 2017

You are killing the community by insisting on (rather) expensive and limited set of hardware. This is not the way community projects work, but I guess you know this and you do not need to grow probably.

@geohot
Copy link
Contributor

geohot commented May 12, 2017

It won't work on (much) cheaper hardware. Show me a $100 phone with an 820 equivalent GPU, and we'll happily port it to that. We didn't choose the OnePlus 3 because we want people to have to spend needless money, it's the cheapest open 820 phone available.

If you are talking about a PC port, the ACC portion will run on a PC without visiond. Show me that you have that working first. Then you can connect your own camera to a PC and use whatever DL library you'd like.

@kozuch
Copy link
Author

kozuch commented May 12, 2017

I am not accusing you of pushing people to spend endless money and I dont have anything working but I am trying to say that a successful community project needs to have the barriers to entry as low as possible...

Even though I do not have experience with DNN performance I do have some with classical computer vision algos - often they perform well on low resolution input images. I did some research with stereo vision and found that performance did not really scale with resolution (16x more pixels had only 4x less vision error). In other words one was able to downscale the image to speed things up without hurting the performance (in terms of errors) much. Maybe something similar could be done with DNNs.

What input resolution do you use for your DNN? Have you tried to lower the resolution to speed things up and see how it performs (in terms of both speed and errors)?

@johnnwvs
Copy link

@kozuch

I was just at a symposium where similar topics were discussed. I did hear some experts saying that higher resolution tended to have diminishing returns with respect to neural nets, pattern recognition, etc.

Also, if there were an interest in opening up more of the code, or just a general need for a port, I will offer my time to help.

I would like to have this running to test on my car (which has LKAS, etc) but I do not want to spend $700 to do the testing up front. I might spend that much once I am convinced it will work though.

@geohot
Copy link
Contributor

geohot commented May 13, 2017

Just out of curiosity, what would you spend?

@johnnwvs
Copy link

In order to differentiate, I would be willing to spend anywhere from $750-1000 for a fully working system that is guaranteed to work with my vehicle. IE: a production level device.

For testing a system I am thinking around $150-$300.

geohot pushed a commit that referenced this issue Apr 14, 2018
2253dd3 fix volt ign detect
3b299d7 add ignition and refactor
af9af6d Merge pull request #110 from Jamezz/volt
13e850e more correct
f295063 add new define to tests
fec9758 gate that with debug
5516ebf one more ifdef
cac7b31 only panda has float
938d474 fpu enable
ffbf0c7 cleaner
de30f27 Revert "need f to not be double"
4142acf need f to not be double
3eb15c8 refactor to share code
a4c8b64 change to O2 to fix make recover
711fd11 Enable compiler optimizations, fix things it breaks
2e6f774 block IPAS in main toyota safety mode
e7a2b3a add ipas tests
894572c fix tests
367c9ad add safety toyota ipas
95919b9 Bounty: panda high quality CAN autobaud (#96)
6557cd2 Toyota Safety: allow controls only on rising edge of cruise_engaged
02c1ddf Revert "added steer override check when IPAS is in control (#106)"
9f925ba Fix the merge mess
23d3833 Merge from comma upstream
a0cc51a Undo safety mode override
ea1c1dc make wlan interface name generic
6dbd8c9 Implement WebUSB and upgrade WinUSB to 2.0 (#107)
4fc83a5 Add safety hook for ignition and have GM use gear selector to determine ignition
52b2ac0 switch from travis to circleci
48e2374 build panda esp image
065572a circleci build stm image
7a1f319 add panda python package test and fix safety test
021dde7 move saftey test helper files into safety folder
ce0545f add ci files
6a3307c no LIN over ELM
7d21acb added steer override check when IPAS is in control (#106)
1c88caf Safety code testing (#104)
f4efd1f Merge pull request #101 from adhintz/master
c02618b Merge pull request #102 from quillford/master
1ba5f8a added link to wiki for user scripts
de2b19e add support for multiple buses to can_unique and can_bittransition output data in sorted order.

git-subtree-dir: panda
git-subtree-split: 2253dd3
@kozuch
Copy link
Author

kozuch commented Mar 10, 2019

Bump here. The visiond was open sourced lately. I created #562 for new discussion.

springermac pushed a commit to springermac/openpilot that referenced this issue Mar 14, 2019
avolmensky pushed a commit to avolmensky/openpilot that referenced this issue Jun 30, 2019
* CAN auto-baud

* Disable autobaud when exiting silent mode
SippieCup pushed a commit to SippieCup/openpilot that referenced this issue Aug 21, 2019
* do not use

* radar_interface logic improvements

* remove radar logging

* radar_interface refactoring

* Update radar_interface.py

* fixing push per Raf's comments
rafcabezas pushed a commit to rafcabezas/openpilot that referenced this issue Oct 31, 2019
* Fix for mock car crash

* fix ALCA module

* do not use

* radar_interface logic improvements

* remove radar logging

* radar_interface refactoring

* Log radar_interface CAN error, Process Comm Errors (commaai#95)

* Log radar_interface CAN error

* Add support for process comm error logging

* Improve Process Comm error logging

* Can and CommError throttling

* Update radar_interface.py

* fixing push per Raf's comments

* ALCA and radar_interface work (commaai#96) (commaai#97)

* do not use

* radar_interface logic improvements

* remove radar logging

* radar_interface refactoring

* Update radar_interface.py

* fixing push per Raf's comments

* fix process comm issue

* switch radard from lane_parser to model

* radar/ALCA changes

* fix lane width

* switched back to not deleting CarParams to avoid radar failure when rebooting EON while driving

* cleanup some debug info to be able to restart ALCA research

* tweaks on safety_tesla.h for can bus isolation

* few more cleanups to safety_tesla.h

* fix start signal logic
SippieCup pushed a commit to SippieCup/openpilot that referenced this issue Nov 14, 2019
* fix ALCA module

* Update ALCA_module.py

* Promote panda fixes from alpha to devel (commaai#98)

* Fix for mock car crash

* fix ALCA module

* do not use

* radar_interface logic improvements

* remove radar logging

* radar_interface refactoring

* Log radar_interface CAN error, Process Comm Errors (commaai#95)

* Log radar_interface CAN error

* Add support for process comm error logging

* Improve Process Comm error logging

* Can and CommError throttling

* Update radar_interface.py

* fixing push per Raf's comments

* ALCA and radar_interface work (commaai#96) (commaai#97)

* do not use

* radar_interface logic improvements

* remove radar logging

* radar_interface refactoring

* Update radar_interface.py

* fixing push per Raf's comments

* fix process comm issue

* switch radard from lane_parser to model

* radar/ALCA changes

* fix lane width

* switched back to not deleting CarParams to avoid radar failure when rebooting EON while driving

* cleanup some debug info to be able to restart ALCA research

* tweaks on safety_tesla.h for can bus isolation

* few more cleanups to safety_tesla.h

* fix start signal logic

* Increase LEXUS_IS safetyParam to 77 (commaai#841)

* use list comprehension (commaai#839)

* use list comprehension

* oops index range fix

* simplify encode/decode in dbc (commaai#840)

* simplify encode/decode

* 2019 Highlander Hybrid Limited Platinum (commaai#843)

fingerprint from ogdragonzypher on Discord

* Allow to lock safety mode to keep gm/tesla cars supported (commaai#844)

* Force subaru to assume the stock camera is connected (commaai#849)

* Revert to using the sum of the lane line probabilities instead of the the product

* Add core OP support for CRC validation, with extra support for Volkswagen MQB (commaai#836)

* Generalized core OP CRC support plus extra bits for Volkswagen MQB.

* Update ref to process_replay regression test

* Remove unneded use of replace, causing json to fail loading the alert

* Add supported car for 2019 Toyota Altis Hybrid (commaai#859)

* add supported car for 2019 Toyota Altis Hybird / Corolla hybrid 2020 (US market)

* remove unnecessary comprehensions (commaai#863)

* Added fingerprint from Sienna XLE AWD (commaai#848)

* Added fingerprint from Sienna XLE AWD

* Update driver_monitor.py

* Update driver_monitor.py

* Update driver_monitor.py

* fix stupid merge issue

* Adds 2019 Lexus ES (non hybrid) (commaai#866)

* Adds 2019 Lexus ES (non hybrid)

* Updated test route

* merge issues

* Update README with now supported Subaru Harness

* Disable LDW for 4 seconds after blinker transition from on to off (commaai#112)

If we want to change lanes with a blinker tap (3 blink mode), then we need to disable LDW for enough time to allow a smooth manual lane change. 4 seconds as it seems the freq is actually around 50Hz, not 100Hz.

* Disable HSO for 3 seconds after blinker has been active (commaai#111)

Avoid HSO will deactivate and try to take the car back into the lane during a manual lane change with blinker tapped (3 blinks mode)

* params learner to only learn @ cons speed

Acceleration/deceleration in turns affect yaw as measured by phone and will create potential issues with learner. This code changes the learner to only adjust parameters when speed is constant

* Update to match new version of python in eons

* python 3 fixes for test client / server

* async/await server

* Don't log for action message as it's too often, and we throttle it internally.

* fix merge issue in thermald

* fixes and tweaks; code simplification

* Saving P,I,F parameters from pid controller (commaai#116)

Added separate save/load functions, try catch - and saving the right constants to the params file.

* Feature/tinklad throttling + linting (commaai#118)

* Throttle tinlkad's attemptToSendPendingMessages

* Remove get_git_remote from registration. It's defined in version already.

* tinklad linting

* tesla linting

* Prevent multiple readings of the pid params file (commaai#119)

..only load the pid values when we initiate the LoC

* missing V_PID_FILE constant (commaai#121)

* show cars in IC for non-radar users (commaai#120)

* bug fixes

* Fix issue where user info was being dropped on no connectivity (commaai#122)

* move pisParams, fix GPS logging

* Bugfix tinklad throttling (commaai#124)

* ALCA4 (still in dev)

* ALCA4 tuning

* ALCA4 alpha release

* ALCA4 tweak for turns

* ACC fix; LDW mite during ALCA

* ALCA polishing

* fix enter_canloader.py for python 3

* should_ldw changes

moved the should_ldw code closer together and added status messages for when LDW is active and inactive

* thermald and ALCA

* ALCA sinplified logic
weimou pushed a commit to SFtoLA/openpilot that referenced this issue May 6, 2021
carleeno pushed a commit to carleeno/openpilot that referenced this issue Aug 2, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants