Chief Delphi

Chief Delphi (http://www.chiefdelphi.com/forums/index.php)
-   Programming (http://www.chiefdelphi.com/forums/forumdisplay.php?f=51)
-   -   Definitive Guide to Using the Jetson TK1/TX1? (http://www.chiefdelphi.com/forums/showthread.php?t=152313)

Penchant 28-12-2016 03:46

Re: Definitive Guide to Using the Jetson TK1/TX1?
 
Quote:

Originally Posted by sanddrag (Post 1623703)
I was looking for a "Getting started with the Jetson TX1 for Dummies" type of guide and came up empty handed. Our unit from FIRST Choice arrived today, and I'm already kind of regretting getting it. I understand what you're supposed to be able to do with it, and it seems like it has a lot of potential, but actually using this thing seems way over my head. Other than Team 900, I haven't really found any accounts of a FIRST team successfully using it. Does anyone have any kind of FIRST-specific easy guide for this thing? If not, maybe someone wants to trade me for something simple that I can figure out, like a bunch of hex shaft collars....

I am no expert with the Jetson TX1 but I do have some experience from last year when the team I was on got one. I will say it certainly requires some time to be put in use but it is quite powerful and as a student on the team at the time I know I learned a lot from it. As to how to set up, use Jetpack with a guide mentioned above in the thread to get OpenCV installed and start small.

We started late due to focusing on other things with programming since we were switching to C++ that year but that was definitely a mistake on not getting started earlier. As well, we looked at going very ambitious right away with it which meant a lot of development time to get something made but starting small and continually ramping up would have been the much better way to go about it to ensure we had something ready in time for our competitions.

Now the above was generic approach advice but that is mostly because other than the resources Marshall already recommended above, there aren't a ton of things I can specifically recommend you look into since I don't really know your knowledge with networking or working with Linux systems. To try to give a little specific help, for networking an option that may be easier for you to integrate would be Network Tables although its not hard to make an argument for pursuing a custom option with TCP or UDP. As well, something I have found advised is using something like the NavX for timestamps so that you know exactly how long it was from when the picture was first taken to when you are about to act on that data so you can account for robot movement in that time.

Now beyond that I would be happy to give answer any specific questions you have about how to get started with the TX1 with my limited experience. If you are more so wondering on how to design your vision program, we did eventually get a successful vision program made so I can certainly give you a general overview of what I would recommend to do on that end as well.

JamesBrown 28-12-2016 17:34

Re: Definitive Guide to Using the Jetson TK1/TX1?
 
I'm actually about to go pick up our TX1 that came in with our first choice shipment. This is going to be a bit of a pet project for me, with the plan being to use it for the robot this year if practical. We spent time this off season exploring other vision options so this may get delayed if something like pixy cam is sufficient for this year.

I will do my best to document as I go, and I will try to be active on here to discuss and answer questions when I can. I don't think there is a single source for reference at this point, but I am happy to contribute. I don't think there will be a definitive reference for this season, but perhaps the best solution is to have a go to thread for discussion and help, and then in the offseason we can work to compile a guide.

Poseidon5817 28-12-2016 19:35

Re: Definitive Guide to Using the Jetson TK1/TX1?
 
Quote:

Originally Posted by sanddrag (Post 1623703)
I was looking for a "Getting started with the Jetson TX1 for Dummies" type of guide and came up empty handed. Our unit from FIRST Choice arrived today, and I'm already kind of regretting getting it. I understand what you're supposed to be able to do with it, and it seems like it has a lot of potential, but actually using this thing seems way over my head. Other than Team 900, I haven't really found any accounts of a FIRST team successfully using it. Does anyone have any kind of FIRST-specific easy guide for this thing? If not, maybe someone wants to trade me for something simple that I can figure out, like a bunch of hex shaft collars....

This is exactly how I feel about it: that it might be a little too complex for some people to figure out without a step by step guide, and I'm definitely in that group.

s-taylor 05-01-2017 16:28

Re: Definitive Guide to Using the Jetson TK1/TX1?
 
One BIG thing for software updates:::
**DO NOT UPDATE YOUR UBUNTU O/S to 16.04 on host or on the Jetson!!!!**
(more on this in a moment)

I've been hoping to write such a guide this fall before the kickoff, but work (coincidentally at Nvidia) sort of overwhelmed me between Thanksgiving and New Years, and I don't have anything useful to report. I have written an initial guide for doing the software install, but have not yet gotten into the nuts and bolts of using the new Grip-generated pipeline class. It requires writing a wrapper around the generated OpenCV classes, and hooking into that from a camera source (can't use the new WPILIB cameraServer because that is only ported to work on the rio), and hooking it to a NetworkTables driver to send final target data to the Rio. My research thus far indicates the latencies should be fine if you are just getting your distance-to-setpoint (in degrees) from the coprocessor, and then using a gyro for fast feedback on your PID loop to get to the setpoint.

There is some conflicting info "out there" about what languages will support GPU acceleration in openCV. I'll be asking the local developers within the company for the DEFINITIVE answer w.r.t. Jetsons, and will put that in whatever docs I generate over the next couple weeks (Before I'm utterly buried by build season).

Back to the O/S upgrade comment: the systems currently require Ubuntu 14.04, and upgrading to 16.04 will render the system unusable (it disables all the USB ports, for one thing... so you can't actually log in and type anything to recover the system). You have to reflash, which turns out to be difficult given the requirements of having an Ubuntu14.04 host machine to do the flashing. I have a working recipe for developing a VirtualBox VM of the required Ubuntu image for re-flashing, and making the necessary passthroughs so a physical usb can be driven from the VM to the Jetson. It's not straightforward, and is not officially supported (The local team didn't even think it was possible...). I have a virtual disk image now, but it's surprisingly large (25G of content w/ all the jetpack installation stuff) and I have not yet succesfully transferred it from my work laptop to my personal laptop without errors. Still working on that.

16.04 support requires CUDA9 for some debians or somesuch, which isn't production (or even alpha) ready for Jetsons, so don't rely on having it for this competition build season. Thus, stay with 14.04 and don't ever let the onboard O/S do an update (like I did)!!!!!

That's about all I can say for now, and will (with any luck) get some better data/docs posted to this thread soon-ish. Sorry it's not ready for kickoff.

Poseidon5817 05-01-2017 18:07

Re: Definitive Guide to Using the Jetson TK1/TX1?
 
Quote:

Originally Posted by s-taylor (Post 1625591)
One BIG thing for software updates:::
**DO NOT UPDATE YOUR UBUNTU O/S to 16.04 on host or on the Jetson!!!!**
(more on this in a moment)

I've been hoping to write such a guide this fall before the kickoff, but work (coincidentally at Nvidia) sort of overwhelmed me between Thanksgiving and New Years, and I don't have anything useful to report. I have written an initial guide for doing the software install, but have not yet gotten into the nuts and bolts of using the new Grip-generated pipeline class. It requires writing a wrapper around the generated OpenCV classes, and hooking into that from a camera source (can't use the new WPILIB cameraServer because that is only ported to work on the rio), and hooking it to a NetworkTables driver to send final target data to the Rio. My research thus far indicates the latencies should be fine if you are just getting your distance-to-setpoint (in degrees) from the coprocessor, and then using a gyro for fast feedback on your PID loop to get to the setpoint.

There is some conflicting info "out there" about what languages will support GPU acceleration in openCV. I'll be asking the local developers within the company for the DEFINITIVE answer w.r.t. Jetsons, and will put that in whatever docs I generate over the next couple weeks (Before I'm utterly buried by build season).

Back to the O/S upgrade comment: the systems currently require Ubuntu 14.04, and upgrading to 16.04 will render the system unusable (it disables all the USB ports, for one thing... so you can't actually log in and type anything to recover the system). You have to reflash, which turns out to be difficult given the requirements of having an Ubuntu14.04 host machine to do the flashing. I have a working recipe for developing a VirtualBox VM of the required Ubuntu image for re-flashing, and making the necessary passthroughs so a physical usb can be driven from the VM to the Jetson. It's not straightforward, and is not officially supported (The local team didn't even think it was possible...). I have a virtual disk image now, but it's surprisingly large (25G of content w/ all the jetpack installation stuff) and I have not yet succesfully transferred it from my work laptop to my personal laptop without errors. Still working on that.

16.04 support requires CUDA9 for some debians or somesuch, which isn't production (or even alpha) ready for Jetsons, so don't rely on having it for this competition build season. Thus, stay with 14.04 and don't ever let the onboard O/S do an update (like I did)!!!!!

That's about all I can say for now, and will (with any luck) get some better data/docs posted to this thread soon-ish. Sorry it's not ready for kickoff.

Wow! Thank you so much! We were about to get started on our TX1 as well, and you may have just saved us a lot of headache!

SamCarlberg 05-01-2017 21:37

Re: Definitive Guide to Using the Jetson TK1/TX1?
 
Quote:

Originally Posted by s-taylor (Post 1625591)
There is some conflicting info "out there" about what languages will support GPU acceleration in openCV

I can clarify this. With OpenCV 3.1, only C++ has support for GPU acceleration (CUDA or OpenCL). This is the version bundled with the 2017 image, and is the version that GRIP-generated code targets.

OpenCV 3.2, released two weeks ago, added Python support for the TAPI, which allows the library to decide to run certain algorithms on the CPU or GPU via OpenCL. Unfortunately, Jetsons (and other Tegra-based Nvidia boards) don't support OpenCL. So you'd still be stuck with C++ if you want GPU acceleration.

KJaget 05-01-2017 23:18

Re: Definitive Guide to Using the Jetson TK1/TX1?
 
Quote:

Originally Posted by Poseidon5817 (Post 1625616)
Wow! Thank you so much! We were about to get started on our TX1 as well, and you may have just saved us a lot of headache!

For another point of view, we've been running a stock Jetpack 2.3 OS install on all of our TX1 boards throughout pre-season and have had no significant issues. We're using CUDA (version 8 is the one provided) both via OpenCV and in stand-alone CUDA code and it works fine. Not sure if s-taylor is using a TK1 or TX1 - if it is a TX1 his experience was much worse than ours.

marshall 06-01-2017 09:37

Re: Definitive Guide to Using the Jetson TK1/TX1?
 
Quote:

Originally Posted by s-taylor (Post 1625591)
One BIG thing for software updates:::
**DO NOT UPDATE YOUR UBUNTU O/S to 16.04 on host or on the Jetson!!!!**
(more on this in a moment)

I've been hoping to write such a guide this fall before the kickoff, but work (coincidentally at Nvidia) sort of overwhelmed me between Thanksgiving and New Years, and I don't have anything useful to report. I have written an initial guide for doing the software install, but have not yet gotten into the nuts and bolts of using the new Grip-generated pipeline class. It requires writing a wrapper around the generated OpenCV classes, and hooking into that from a camera source (can't use the new WPILIB cameraServer because that is only ported to work on the rio), and hooking it to a NetworkTables driver to send final target data to the Rio. My research thus far indicates the latencies should be fine if you are just getting your distance-to-setpoint (in degrees) from the coprocessor, and then using a gyro for fast feedback on your PID loop to get to the setpoint.

There is some conflicting info "out there" about what languages will support GPU acceleration in openCV. I'll be asking the local developers within the company for the DEFINITIVE answer w.r.t. Jetsons, and will put that in whatever docs I generate over the next couple weeks (Before I'm utterly buried by build season).

Back to the O/S upgrade comment: the systems currently require Ubuntu 14.04, and upgrading to 16.04 will render the system unusable (it disables all the USB ports, for one thing... so you can't actually log in and type anything to recover the system). You have to reflash, which turns out to be difficult given the requirements of having an Ubuntu14.04 host machine to do the flashing. I have a working recipe for developing a VirtualBox VM of the required Ubuntu image for re-flashing, and making the necessary passthroughs so a physical usb can be driven from the VM to the Jetson. It's not straightforward, and is not officially supported (The local team didn't even think it was possible...). I have a virtual disk image now, but it's surprisingly large (25G of content w/ all the jetpack installation stuff) and I have not yet succesfully transferred it from my work laptop to my personal laptop without errors. Still working on that.

16.04 support requires CUDA9 for some debians or somesuch, which isn't production (or even alpha) ready for Jetsons, so don't rely on having it for this competition build season. Thus, stay with 14.04 and don't ever let the onboard O/S do an update (like I did)!!!!!

That's about all I can say for now, and will (with any luck) get some better data/docs posted to this thread soon-ish. Sorry it's not ready for kickoff.

This post is terrible and contains very large unfriendly text as well as bad info. It's just spreading FUD (Fear, Uncertainty, and Doubt) without actually helping anyone.

Read the Nvidia docs. You need a 14.04 OS to run the JetPack installer (It says so in the docs). The JetPack installer will then install 16.04 onto the Jetson and all of the OpenCV goodness.

Some Googling will tell you that only C/C++ is supported for the OpenCV CUDA accelerated libraries. Python is not supported for this (I've been telling people this on CD for at least 2 seasons now and no one listens).

While this board is complicated to use. It's not that complicated and doesn't deserve a bad reputation with massive red text.

EDIT: YOU'RE WRONG.

Sm0oth_kriminal 06-01-2017 13:00

Re: Definitive Guide to Using the Jetson TK1/TX1?
 
Quote:

Originally Posted by marshall (Post 1625849)
This post is terrible and contains very large unfriendly text as well as bad info. It's just spreading FUD (Fear, Uncertainty, and Doubt) without actually helping anyone.

Read the Nvidia docs. You need a 14.04 OS to run the JetPack installer (It says so in the docs). The JetPack installer will then install 16.04 onto the Jetson and all of the OpenCV goodness.

Some Googling will tell you that only C/C++ is supported for the OpenCV CUDA accelerated libraries. Python is not supported for this (I've been telling people this on CD for at least 2 seasons now and no one listens).

While this board is complicated to use. It's not that complicated and doesn't deserve a bad reputation with massive red text.

EDIT: YOU'RE WRONG.

While a lot of what he says seems to be quite restrictive (only Ubuntu 14.04), technically, that is what the Nvidia docs requires for the GUI. However, there are instructions which require some shell commands here. You could probably flash the TX1 using any GNU/Linux OS (probably BSD too).

I used Ubuntu 15.10 with these instructions, and it worked like a charm. The GUI essentially just does this, but the GUI was extremely messed up on my VM (screen size caused weird adjusting).

In any case, you only need a shell, `tar`, and likely `dd` (I'm not sure what is used internally) to install the L4T suite. This comes with: https://developer.nvidia.com/embedded/linux-tegra-r242

marshall 06-01-2017 13:27

Re: Definitive Guide to Using the Jetson TK1/TX1?
 
Quote:

Originally Posted by Sm0oth_kriminal (Post 1625941)
While a lot of what he says seems to be quite restrictive (only Ubuntu 14.04), technically, that is what the Nvidia docs requires for the GUI. However, there are instructions which require some shell commands here. You could probably flash the TX1 using any GNU/Linux OS (probably BSD too).

I used Ubuntu 15.10 with these instructions, and it worked like a charm. The GUI essentially just does this, but the GUI was extremely messed up on my VM (screen size caused weird adjusting).

In any case, you only need a shell, `tar`, and likely `dd` (I'm not sure what is used internally) to install the L4T suite. This comes with: https://developer.nvidia.com/embedded/linux-tegra-r242

OP specifically said upgrading from 14.04 to 16.04 on the Jetson rendered the USB ports unusable and that is simply untrue.

EDIT: Also, you don't need any of those command line tools. Use JetPack.

PLEASE STOP and READ THE DOCUMENTATION.

https://developer.nvidia.com/embedded/jetpack-notes

Quote:

Originally Posted by NVIDIA JETPACK DOCS
System Requirements
Supported Host Platform Requirements:

Ubuntu Linux x64 (v14.04)
JetPack for L4T runs on the host Ubuntu x86_64 machine and sets up your development environment and Jetson Development Kit target via remote access.
Note: A valid Internet connection and at least 10GB of disk space is needed for the complete installation of JetPack.

Note the requirement of a host OS running v14.04 of Ubuntu. Specifically the 64 bit version. This is required for JetPack. JetPack will install 16.04 on the Jetson and it will work afterwards. I've done this about 2 dozen times and it works. I've also recompiled the Kernel for Jetson.

900 is going to be working on a guide for this that doesn't contain a bunch of nonsense. Stay tuned.

Poseidon5817 06-01-2017 13:45

Re: Definitive Guide to Using the Jetson TK1/TX1?
 
Quote:

Originally Posted by marshall (Post 1625954)
OP specifically said upgrading from 14.04 to 16.04 on the Jetson rendered the USB ports unusable and that is simply untrue.

EDIT: Also, you don't need any of those command line tools. Use JetPack.

PLEASE STOP and READ THE DOCUMENTATION.

https://developer.nvidia.com/embedded/jetpack-notes



Note the requirement of a host OS running v14.04 of Ubuntu. Specifically the 64 bit version. This is required for JetPack. JetPack will install 16.04 on the Jetson and it will work afterwards. I've done this about 2 dozen times and it works. I've also recompiled the Kernel for Jetson.

900 is going to be working on a guide for this that doesn't contain a bunch of nonsense. Stay tuned.

Huh, my mom was right. Not everything on the internet is true.

Large text is fun

s-taylor 06-01-2017 14:15

Re: Definitive Guide to Using the Jetson TK1/TX1?
 
Wow, with this reception I'm going to bow out of this thread.

I happened to be working directly with the Jetson developers internally, and was reading the documentation being referenced. They were aware of the issues and and the incompatibilities I mentioned. Yes, there appear to be people out there who are getting things to run properly. My TX1 (to answer that question) apparently had a worse time than theirs, and I don't yet know why. Glad there are folks out there who are getting things to work with the Jetsons.

marshall 06-01-2017 14:47

Re: Definitive Guide to Using the Jetson TK1/TX1?
 
Quote:

Originally Posted by s-taylor (Post 1625972)
Wow, with this reception I'm going to bow out of this thread.

I happened to be working directly with the Jetson developers internally, and was reading the documentation being referenced. They were aware of the issues and and the incompatibilities I mentioned. Yes, there appear to be people out there who are getting things to run properly. My TX1 (to answer that question) apparently had a worse time than theirs, and I don't yet know why. Glad there are folks out there who are getting things to work with the Jetsons.

We've been working with Dustin Franklin and some of the other folks at Nvidia for over a year now on the TX1 and before that we were using the TK1. I don't work for Nvidia and I'm not in direct contact with their internal development team.

What I do know is that you came into a thread and posted gigantic red text about not being able to update the Jetson TX1 to 16.04 and I can tell you I've used JetPack (and the command line utilities the other posted mentioned above) to do exactly this about a dozen times.

There are issues with using 16.04 as a host system. It's why the documentation says the requirement is a 14.04 system. I suppose you could say that it is incompatible but when the requirement states use 14.04... who is at fault?

You stated you were using VirtualBox, which you also stated is unsupported, and having issues transferring the VM to another system which probably points to issues with your host truthfully.

Personally, I've used VMWare Workstation, VMware Fusion, and a dedicated 14.04 host system to run JetPack to run these installs. All have worked fine. I suspect that WorkStation and Fusion use is unsupported but they worked and I've never had a major issue with USB ports not functioning or otherwise.

Also, from a professional standpoint, if you do work for Nvidia then you should take a more positive approach to discussing your company's products on a public forum. Your statements (particularly in big bold red text) could be taken as an official statement and lead to much more complicated trouble for you.

Look man, I care what you want to tell other teams about this thing because Nvidia has been a valuable partner for our team and an amazing resource for FRC. I've had the pleasure of meeting with the CEO to discuss what we do and he's a nice guy who is sponsoring something great with his company. I do not want to see that put in jeopardy because someone is going off half cocked and posting things on CD that aren't true.

Want to get an official statement from the dev folks you are talking to out to teams? Great! Awesome! Do it! Until then, 900 will be working on a guide teams can use. We've had a lot of success with this board.

s-taylor 06-01-2017 15:02

Re: Definitive Guide to Using the Jetson TK1/TX1?
 
Thanks for your clarifications, Marshall. It's a bit late for me to downgrade the red text since it has been referenced in quite a few replies now, but there are apparently some subtleties here that are not universally understood. (Hopefully "universally" doesn't mean "just me"!).


All times are GMT -5. The time now is 11:18.

Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Copyright © Chief Delphi