Feature Discussion: Collect data from OBD2 dongles

There are a lot of wifi or bluetooth OBD2 dongles available and also a lot of apps in the app store are offering car diagnostic by connecting to such a dongle. Beside a lot of debugging and error message features there are even a few metrics available which could be useful for Mapillary:

  • vehicle speed
  • steering angle

This data could improve the position data provided by GPS and capturing places without GPS signal (e. g. tunnels) could also be possible. Especially when I’m driving slow and/or there are a lot of huge buildings, forest, … some of the pictures are mapped far away from the actual position. By using the data from OBD2 and surrounded images the bad position could be corrected.

Have you ever thought about it or is it a bad idea in general?

1 Like

Is this your idea, or do you get it elsewhere ? :smiley:
You may be sure they know.

I’ve seen this feature in context of OpenStreetView.

PS: I’ve not tested it yet. But I’ve ordered a dongle on amazon and will play around with it.

@descilla I would love to play around with it - maybe it’s useful to improve GPS info for Mapillary if we can do an optional connection. There is http://blog.lemberg.co.uk/how-guide-obdii-reader-app-development that seems to describe this nicely. Is there GPS available or just speed?

/peter

Unfortunately I was only able to read the current seed until now. It looks like the steering angle Sensor isn’t part of OBD2 standard; because there is no PID that addresses it. Of course it should be possible to get this information by using the CAN-BUS “directly”. However everything behind ODB2 is very specific by manufacturer/model. There is a project called openXC that offers standardized access to data beyond OBD2 but it looks like it is focused on Ford and may not work with vehicles from other manufactures.

From that, it seems there is lat/lon/speed support in openXC. Is that part of the normal ODB2 standard? I see a benefit in using that with a higher accuracy for Mapillary. Otherwise, mainly I can see ODB2 coming in handy if we were to use a cars camera or otherwise skip a phone and build dedicated devices that sit in the car with a camera and without GPS.

/peter

lat/lon - is not ODB2 standard. This data (lat/lon) can be received via OpenXC or directly from CAN-bus by specific PIDs, but it can be used only on car’s with built in GPS (from factory).
My Ford Fiesta do not have built-in GPS and no data about coordinates.
Speed can be received over standart OBD2 protocol. RAW CAN-data from my car You can see here.
I use CAR DVR for record picture and phone GPS for record track.

The people from Openstreetview have OBD2 integration and seem to like it. They have given a talk at SOTM 2016 in Brussels. Here is the video from the livestream. The first part of the audio is broken, but is fine after the nine minute mark. The part about OBD2 starts at 19m52s.

1 Like

In contrast to the talk and the wiki it looks like the apps do not provide steering angle from OBD2 (or CANbus in general). It seems the android app supports speed only and the iOS app supports speed and RPM only.

:frowning:

it looks like the apps do not provide steering angle from OBD2

While OBD2 standard provides many information from the vehicle it does not provide steering angle (is simply not part of the OBD2 values). If the OBD port provides access to the vehicles CAN bus (and it usually does) you can try to read the steering wheel angle directly from can bus (if the particular vehicle provides that info on can bus at all). In my experience this highly depends on vehicle brand and model. If you want to hit many car models with little coding and CAN reverse engineering you can try OpenXC project which provides steering angle for several Ford models. Apart from OpenXC you really have to go back to CAN bus and reverse engineer…

obd data could be useful for gps correction, but on its own it seems quite limited. plus, you are limited to cars, and processing that data is another question