Skip to content

Conversation

@bfulkers-i
Copy link
Contributor

@bfulkers-i bfulkers-i commented Nov 8, 2019

This PR removes libtm completely and makes T265 a first class driver in librealsense. In more detail, it:

  • Removes libtm and remnants of older products and directly communicates with T265
  • Uses the librealsense usb abstraction for booting T265 and communicating with it
  • Unifies firmware download into common/fw
  • Fixes many issues on macOS
  • Fixes multi-process issues caused by libtm greedily claiming the device
  • Adds hardware reset support
  • Allows export of map while running
  • Logs an error when the user tries to stream video data over USB 2 connections
  • Fixes the pipeline resolution bug mentioned in Fix config resolution issue on initial T265 plug in #4506

@bfulkers-i bfulkers-i added the T260 series Intel® T265 library label Nov 8, 2019
@bfulkers-i
Copy link
Contributor Author

This PR is currently a draft, it is not ready for merging but is provided here to allow for wider visibility / testing as it is being completed.

*/
int rs2_loopback_is_enabled(const rs2_device* device, rs2_error** error);

/**
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'd prefer to keep the APIs, to not break any existing code.
At runtime these APIs check if controllers are available and on the T265 will always return false

@neilyoung
Copy link
Contributor

This PR removes libtm completely and makes T265 a first class driver in librealsense. In more detail, it:

Removes libtm and remnants of older products and directly communicates with T265
Uses the librealsense usb abstraction for booting T265 and communicating with it
Unifies firmware download into common/fw
Fixes many issues on macOS
Fixes multi-process issues caused by libtm greedily claiming the device
Adds hardware reset support
Allows export of map while running
Logs an error when the user tries to stream video data over USB 2 connections
Fixes the pipeline resolution bug mentioned in #4506

I'm all the time running into merge conflicts when I try to pull a new commit to this PR.

~/Documents/librealsense/build $  git pull origin pull/5213/head
remote: Enumerating objects: 82, done.
remote: Counting objects: 100% (82/82), done.
remote: Compressing objects: 100% (10/10), done.
remote: Total 126 (delta 75), reused 79 (delta 72), pack-reused 44
Receiving objects: 100% (126/126), 58.08 KiB | 4.15 MiB/s, done.
Resolving deltas: 100% (89/89), completed with 6 local objects.
From https://github.com/IntelRealSense/librealsense
 * branch                refs/pull/5213/head -> FETCH_HEAD
Performing inexact rename detection: 100% (17385/17385), done.
Auto-merging src/tm2/tm-device.h
CONFLICT (content): Merge conflict in src/tm2/tm-device.h
Auto-merging src/tm2/tm-device.cpp
CONFLICT (content): Merge conflict in src/tm2/tm-device.cpp
Auto-merging src/tm2/t265-messages.h
Automatic merge failed; fix conflicts and then commit the result.

My usual answer is to do all from scratch (clone repo, checkout development, apply patch), but would there be a smarter solution?

@neilyoung
Copy link
Contributor

@radfordi Hi Jim, ea5712c and 2ef96a0 do fix issue #5394

Thanks! Good job

@radfordi
Copy link
Contributor

Glad to hear, @neilyoung. Thanks for testing.

@neilyoung
Copy link
Contributor

Yesterday I installed from scratch on a brand new Raspbian Buster, used development branch and #5213, compiled and built everything from scratch. Works like a charm.

Copy link
Contributor

@ev-mp ev-mp left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@bfulkers-i ,this is a significant contribution and major accomplishment.
Thanks you very much for your work!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

T260 series Intel® T265 library

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants