NVIDIA-AI-IOT / jetbot

An educational AI robot based on NVIDIA Jetson Nano.
MIT License
2.98k stars 1.02k forks source link

Jetbot for tracking runner and lines on track (long) #94

Closed aplouie closed 2 years ago

aplouie commented 5 years ago

This is a follow-up to a conversation with Jaybdub at the Maker Faire back in May. I assembled the jetbot (thanks for the spare 3d printed chassis!) and finished the Jupyter notebook examples, except for the road_following where I just posted an error I can't figure out.

I'd like to use the Jetson Nano as a basis of a robot that follows the lane lines on a high school track while simultaneously staying perpendicular to a person running 2-3 lanes over. I'll need two cameras, one to follow the lane line and look for obstacles (controlling direction) and one to follow the runner (controlling speed). The goal is to get video of the runner to analyze and then improve their running form and thus speed.

Questions for the Jetbot team and general community:

(1) since the jetbot is a good learning platform but too slow for this application, Jaybdub mentioned a faster chassis closer to an 'rc car' might be coming out soon -- any ETA on that or pointers on hooking up the nano to an existing RC car chassis like a Traxxas?

(2) any suggestions adding a 2nd MIPI CSI-2 camera (at least 720p60)? I'd like to mount it on a pole at waist height so could Adafruit's thingy (https://www.adafruit.com/product/3671) if another MIPI interface can be exposed.

(3) if a 2nd MIPI CSI-2 camera is not possible, any suggested USB 3.0 cameras?

Thanks, Alan

jaybdub commented 5 years ago

Hi aplouie,

Thanks for following up! I remember discussing this project, it is very interesting!

Regarding 1 - RC Car

Yes, this is certainly possible. We hope to document instructions for this soon. With the exception of the motor driver, you could essentially fasten JetBot directly on top of an RC car chassis. There are a few modifications that must be made

Modification 1 - Motor Driver

You'll need a motor driver that accepts I2C commands and generates servo signals. We've tested that this works well

https://www.adafruit.com/product/815

It is best to buy an RC car chassis that is able to accept servo signals for both the steering and throttle. (@tokk-nv may be able to help here on good RC chassis selections). Once the motor driver is connected to the RC chassis, you can use the Adafruit ServoKit library to control the throttle and steering.

Modification 2 - Safety Switch

Some RC cars come with a 3rd channel on the transmitter / receiver that can be used to control a multiplexer. This multiplexer may select between manual control (from the RC controller), or the control signal coming from the motor driver. We've tested that this servo signal multiplexer works well for this purpose

https://www.pololu.com/product/2806

We hope to document these instructions soon. I would consider this this hardware-level override switch essential.

Regarding 2 - Camera

I think the easiest way would be to use a USB camera for this purpose. We just recently posted a new repository that lists some compatible cameras. Currently we list just one USB camera, but there are likely many others. We hope to populate this list further soon.

https://github.com/NVIDIA-AI-IOT/jetcam

Please let me know if you have any further questions.

Very excited to see this project come to life!

Best, John