Nvidia Jetson Projects

An Introduction

The Nvidia Jetson platform of products is quickly becoming a favorite platform to base edge machine learning(ML) projects/POCs on. It has a decent amount of power but also offers the ability to use CUDA, giving it an extra boost for ML workloads. Nvidia Jetson consists of ARM based platforms paired with an Nvidia GPU. Depending on the platform, you get more or less GPU. Eventually, I may migrate my DIY Robocar from Pi to Nano.  

As A Controller

These two projects were focused on getting ROS up and running on the Nano, controlling Robotis Dynamixel Servos and testing the stability of the interaction. Sometimes getting things to play together is 95% of the problem when building a solution. The second solution was taking the same software stack and adding a depth camera. Getting all of this working in the ROS ecosystem is pretty powerful because of the ability to make things work together. For example, you can build a robot to roam your house, looking for your cat, using machine learning. If she’s some where she shouldn’t be, the robot can warn you or even distract the cat by shining a laser pointer near it and lure it away. Of course, that’s a very whimsical kind of device, but it shows the power of ROS at being able to pull different types of sensors and actuators together for a larger purpose. More on ROS in the future.  

What Am I doing differently?

I’m working on a POC using many of the components I’ve shown here and some that I haven’t shown yet, to solve a number of business problems. I’ve already learned so much about what can be done, what takes more effort and what needs to be rethought. Overall, it’s amazing what can be done with technology today versus just 2 years ago!

I expect there will be many more explorations of what this board can do in a rapid prototyping/POC environment. Stay tuned. Let me know if you have any questions. mwalker@icecodeatl.com

Robot Operating System (ROS)

A huge discovery for me was that there was a whole ecosystem of software and tools that could be used to program, monitor, simulate, debug, share capabilities and network robots with other sensors and platforms on a network. This was amazing to me. This is one of the reasons ROS (Robot Operating System) is critical in the Robotics world. It is notorious for having a steep learning curve, but after working with it for a couple of years I’ve become pretty proficient. ROS led me to enroll and complete the Udacity Robotics Engineer Nanodegree. The experience from which has been indispensable. 

Machine Learning

Because of the great existing amount of data (about almost anything), and the rate and ease in which new data is acquired and stored, Machine Learning (ML) has become an important way in which computers can make decisions. ML is like a tiny brain that takes ingests a bunch of data, images, sounds, etc. and depending on the context of that data, can make future decsions based on what’s already been input. Given a bunch of images of cats and dogs, a computer can decide whether a new image not seen before is a cat or dog. This is one type of Machine Learning algorithm, but can be extrapolated to purchase suggestions, next word or phrase estimation, problem solving, image editing, etc. There are so many applications for ML that according to Grand View Research, the global machine learning market size is expected to reach USD 96.7 billion by 2025. 

 

Python, TensorFlow

Python was a welcome addition to my coding skillset. Not quite as fast as C/C++ but really powerful and, as I discovered, has tons of extending libraries and extensions. Python is a great language to learn if you plan on building robots. TensorFlow is one of a few frameworks for creating Machine Learning models. See Machine Learning above. TensorFlow is Google’s version, PyTorch is Facebook’s version, here’s a good blog article outlining more ML frameworks. Also check out Kaggle for a great ML ecosystem.

 

CUDA

Because Nvidia is a GPU company it makes sense for them to showcase the power and performance inherent in their GPUs to help with Machine Learning and AI problems. GPUs excel in this space. CUDA is the plaform that allows programmers to access the GPU performace. See this link for more details. 

Nvidia Jetson Nano

The Nvidia Jetson platform of products is quickly becoming a favorite platform to a base edge machine learning(ML) projects/POCs on. It has a decent amount of power but also offers the ability to use CUDA, giving it an extra boost for ML workloads. Nvidia Jetson consists of ARM based platforms paired with an Nvidia GPU. Depending on the platform you get more or less GPU. See Nvidia’s AV site for more details. Also check out JetsonHacks.com for some good content.