diff --git a/master/search/search_index.json b/master/search/search_index.json index 00d1c9a4..9aa73613 100644 --- a/master/search/search_index.json +++ b/master/search/search_index.json @@ -1 +1 @@ -{"config":{"lang":["en"],"separator":"[\\s\\-]+","pipeline":["stopWordFilter"]},"docs":[{"location":"index.html","title":"JetBot","text":"Go to GitHub Get Started
JetBot is an open-source robot based on NVIDIA Jetson Nano. You'll like it because...
"},{"location":"index.html#its-affordable","title":"It's Affordable","text":"JetBot costs less than $250 in parts, including Jetson Nano. The DIY kit includes a bill of materials which you must purchase and a 3D printed chassis that you can print, or order. If you're looking to get up and running as quick as possible, there are also many third party kits available that come pre-bundled."},{"location":"index.html#its-educational","title":"It's Educational","text":"JetBot includes a set of Jupyter notebooks which cover basic robotics concepts like programatic motor control, to more advanced topics like training a custom AI for avoiding collisions. What you'll learn isn't limited to JetBot. You'll learn concepts related to neural network data collection and training that extend as far as your imagination."},{"location":"index.html#its-easy-to-setup","title":"It's Easy to Setup","text":"JetBot is programmed from your web browser. Just connect your JetBot to Wifi and launch the JetBot Docker container. This enables JetBot's web programming environment, which is available even after the JetBot reboots. Once your JetBot boots, just type it's IP address into your web browser and start programming."},{"location":"index.html#its-fun","title":"It's Fun!","text":"We built JetBot to make exploring ideas related to robotics as fun as possible. In effect, it's a portable, battery powered AI computer with a camera that's super easy to program. This makes it the perfect platform for trying new ideas related to AI, image processing and robotics. Our experiments have led us to new projects like JetRacer, and we're excited to see where your experiments take you."},{"location":"index.html#get-started","title":"Get Started","text":"To get started with JetBot, follow the Getting Started instructions. If you run into any issues along the way, please let us know!
Go to GitHub Get Started"},{"location":"index.html#get-involved","title":"Get involved","text":"We really appreciate any feedback related to JetBot, and also just enjoy seeing what you're working on! There is a growing community of Jetson Nano and JetBot users. It's easy to get involved involved...
This page has useful information related to printing the JetBot chassis using a 3D printer. There are two methods for printing JetBot
If you have a 3D printer, we recommend printing the JetBot components yourself!
"},{"location":"3d_printing.html#print-facts","title":"Print facts","text":"Below are some facts related to printing a single JetBot.
We've tested that the following printers are able to print JetBot successfully.
Model Cost URL Monoprice Voxel $320 Amazon Ultimaker 2+ $2500 Amazon"},{"location":"3d_printing.html#tested-filaments","title":"Tested Filaments","text":"Based on our experience, we recommend using PLA filament when printing JetBot. Below is a collection of filaments that we have tested with the Monoprice Voxel 3D printer.
Brand Thickness Material Color URL Notes AmazonBasics 1.75mm PLA Silver Amazon Smooth, dark metallic finish AmazonBasics 1.75mm PLA Neon Green Amazon Smooth, pale finish AmazonBasics 1.75mm PLA Yellow Amazon Bold yellow, slightly translucent AmazonBasics 1.75mm PLA Purple Amazon Smooth, pale finish"},{"location":"3d_printing.html#printing-and-slicing-configuration","title":"Printing and slicing configuration","text":"STL unit: mm
Print orientation
If you don't have a 3D printer on hand, and are not interested in purchasing one, there are external services that can print the chassis for you. Below are some quotes from popular 3D printing services
Please note, we have not tested these services yet ourselves, so please proceed with caution. If you find a print service that worked well for you, we'd love to hear! Please let us know by creating an issue on GitHub or mentioning it in the chat channel
Service Quote 3DHubs $36.66 Jinxbot $91.42 Sculpteo ~$100"},{"location":"CHANGELOG.html","title":"Changes","text":""},{"location":"CHANGELOG.html#master","title":"Master","text":""},{"location":"CHANGELOG.html#043","title":"[0.4.3]","text":""},{"location":"CHANGELOG.html#added","title":"Added","text":"LocalController
class which allows users to directly connect controller to JetBotCamera
class now uses ZMQ Camera. This means you must run the ZMQ camera publisher to access the camera as before. If you wish to use the old Camera class, do from jetbot.camera.opencv_gst_camera import OpenCvGstCamera
and camera = OpenCvGstCamera()
systemctl restart nvargus-daemon
calls.We use mkdocs-material to easily generate documentation from markdown.
"},{"location":"CONTRIBUTING.html#installing-dependencies","title":"Installing Dependencies","text":"sudo apt-get update\nsudo apt-get -y install python3-pip\nsudo apt-get -y install mkdocs\npip3 install mkdocs-material mike\n
"},{"location":"CONTRIBUTING.html#testing","title":"Testing","text":"To quickly test the version of the documentation you're using, without commiting anything to the gh-pages
branch, run the following command.
mkdocs serve --dev-addr=0.0.0.0:8000\n
"},{"location":"CONTRIBUTING.html#deploying","title":"Deploying","text":"We use mike to maintain multiple versions of the documentation. To build the documentation with mike, call
mike deploy <tag>\n
This will build the documentation, and add a static version of the site under the gh-pages
branch. For example, to deploy the master documentation we do
mike deploy master\n
To set the default documentation version to master we would do.
mike set-default master\n
To push the documentation to Github Pages.
mike deploy master --push\n
"},{"location":"CONTRIBUTING.html#adding-a-new-page","title":"Adding a new page","text":"Mkdocs looks for documentation under the docs
folder. To add a new documentation page, you will need to first add the file either directly to the docs
folder, or to a different folder with a symbolic link to the docs
folder. For example, say we wanted to add a page named MAINTAINERS.md
to the root of the project
First, we create the file at the root of the project
touch MAINTAINERS.md\n
Next, we add a symbolic link to the docs folder
cd docs/reference\nln -s ../../MAINTAINERS.md .\n
Finally, we add the file to our navigation in mkdocs.yml
- nav:\n - Reference:\n - 'Maintainers': reference/MAINTAINERS.md\n
Now, when you build the documentation you should see the page that we've added in the \"Reference\" section with the title \"Maintainers\".
"},{"location":"CONTRIBUTING.html#updating-the-changelog","title":"Updating the Changelog","text":"We follow the guidance of Keep a Changelog for best practices in maintaining a chronological human-readable CHANGELOG.md file. If the change is worth developers and users knowing about, consider adding an entry to the change log.
"},{"location":"bill_of_materials.html","title":"Bill of Materials","text":"Note
JetBot was originally designed with Jetson Nano Developer Kit, which was discontinued.
For those newly starting, we recommend planning the JetBot assembly with Jetson Orin Nano 8GB Developer Kit. The Bill of Materials for Orin version of JetBot is laid out on Bill of Materials (Orin) page.
Please note that, currently, the software for the Orin version of JetBot is still work in progress.
This page lists everything you need to build JetBot, along with purchasing links from popular vendors.
Some of the parts are 3D printed. We provide the STL files needed to print these parts. Please see our 3d printing page for tips on printing.
"},{"location":"bill_of_materials.html#common-parts","title":"Common parts","text":"You need these components for each JetBot.
Part Quantity Cost URL Notes Jetson Nano 1 $99.00 NVIDIA Micro SD card 1 $13.99 Amazon 64GB Power supply 1 $7.50 Adafruit Micro USB, 5V, 2.5A Motor 2 $5.90 Adafruit, Amazon(1), Amazon(2) \"TT\" form factor Motor Driver 1 $19.95 Adafruit, Amazon Caster ball 1 $6.30 Amazon 1-inch diameter Battery 1 $15.99 Amazon 2x 5V/3A output, 10,000mAh USB cable pack 1 $6.99 Amazon Type A to Micro, right angle PiOLED display 1 $14.95 Adafruit, Amazon PiOLED header 1 $5.95 Adafruit, Amazon, Sparkfun 2x(3+) right angle male Chassis 1 -- STL file see 3D printing Camera Mount 1 -- STL file see 3D printing"},{"location":"bill_of_materials.html#camera","title":"Camera","text":"You need a camera with appropriate sensor and field of view for each JetBot. Select an option and get the parts specified.
"},{"location":"bill_of_materials.html#option-1-default-leopard-imaging-camera","title":"Option 1 (default) - Leopard Imaging Camera","text":"Part Quantity Cost URL Notes Camera 1 $29.00 Leopard Imaging LI-IMX219-MIPI-FF-NANO-H145"},{"location":"bill_of_materials.html#option-2-imx219-160-camera","title":"Option 2 - IMX219-160 Camera","text":"Part Quantity Cost URL Notes Camera 1 $29.90 Amazon IMX219-160 Camera"},{"location":"bill_of_materials.html#option-3-rpi-camera-v2-lens-attachment","title":"Option 3 - RPi Camera V2 + Lens Attachment","text":"Part Quantity Cost URL Notes Camera 1 $23.90 Amazon, Adafruit Raspberry Pi Camera V2 Camera lens attachment 1 $18.99 Amazon(1), Amazon(2), eBay 160-degree FoV"},{"location":"bill_of_materials.html#wifi","title":"WiFi","text":"You need a WiFi solution for each JetBot. Select an option and get the parts specified.
"},{"location":"bill_of_materials.html#option-1-default-m2-card-antennas","title":"Option 1 (default) - M2 Card + Antennas","text":"This option is a good choice if you're building JetBot with the original Jetson Nano 4GB. It has been widely tested and used for JetBot.
AttentionJetson Nano 2GB does not have a M.2 connector, so this option will not work with it.
Part Quantity Cost URL Notes WiFi card 1 $18.95 Amazon, NewEgg M2, Intel Wireless-AC 8265 WiFi antenna 2 $5.06 Arrow U.FL connectors"},{"location":"bill_of_materials.html#option-2-usb-dongle","title":"Option 2 - USB Dongle","text":"This option is compatible with both the original Jetson Nano (4GB) and Jetson Nano 2GB.
Part Quantity Cost URL Notes WiFi Dongle - TP-Link Archer T2U Nano 1 $17.99 Amazon RTL8811AU chipset WiFi Dongle - TP-Link Archer T2U Plus 1 $19.99 Amazon RTL8811AU chipset InfoFor other possible USB Wi-fi dongles that you can use on Jetson Nano, please check the Suported Components List.
You need wheels with a \"TT\" motor shaft connector for each JetBot. Select an option and get the parts specified.
"},{"location":"bill_of_materials.html#option-1-60mm","title":"Option 1 - 60mm","text":"Part Quantity Cost URL Notes Wheel 2 $5.00 Adafruit 60mm diameter Caster base 1 -- STL file for 60mm wheel Caster shroud 1 -- STL file for 60mm wheel"},{"location":"bill_of_materials.html#option-2-65mm","title":"Option 2 - 65mm","text":"Part Quantity Cost URL Notes Wheel 2 $3.00 Adafruit 65mm diameter Caster base 1 -- STL file for 65mm wheel Caster shroud 1 -- STL file for 65mm wheel"},{"location":"bill_of_materials.html#assembly-hardware","title":"Assembly Hardware","text":"You need the following parts to build JetBot. They come in packs, so order the quantity you need for the number of JetBots you are going to build.
Part Qty per JetBot Qty per pack Cost per JetBot URL Notes Adhesive pads 2 48 $0.14 Amazon M2 screw 20 100 $1.29 Amazon 8mm long, self tapping M3 screw 4 60 $0.47 Amazon 25mm long M3 nut 4 100 $0.24 Amazon Jumper wires 4 40 $0.13 Amazon Female-female, ~20cm"},{"location":"bill_of_materials_orin.html","title":"Bill of Materials - Jetson Orin Nano version","text":"Note
JetBot was originally designed with Jetson Nano Developer Kit, which was discontinued.
For those newly starting, we recommend planning the JetBot assembly with Jetson Orin Nano 8GB Developer Kit.
Please note that, currently, the software for the Orin version of JetBot is still work in progress.
This page lists all the parts you need to build the open-source JetBot with the new Jetson Orin Nano 8GB Developer Kit, along with purchasing links from popular vendors.
Some of the parts are 3D printed. We provide the STL files needed to print these parts. Please see our 3d printing page for tips on printing.
"},{"location":"bill_of_materials_orin.html#common-parts","title":"Common parts","text":"You need these components for each JetBot.
Part Quantity Cost URL Notes Jetson Orin Nano 8GB Developer Kit 1 $499.00 NVIDIA Micro SD card 1 $14.95 Amazon 128GB Motor 2 $5.90 Adafruit, Amazon(1), Amazon(2) \"TT\" form factor Motor Driver 1 $19.95 Adafruit, Amazon Caster ball 1 $10.99 Amazon 1-inch diameter USB cable pack 1 $6.99 Amazon Type A to Micro, right angle PiOLED display 1 $13.45 Adafruit, Amazon PiOLED header 1 $7.99 Adafruit, Amazon, Sparkfun 2x(3+) right angle male Chassis 1 -- STL file see 3D printing Camera Mount 1 -- STL file see 3D printing"},{"location":"bill_of_materials_orin.html#power-source","title":"Power source","text":"Part Quantity Cost URL Notes Battery 1 $12.99 Amazon PD 20W output, 10,000mAh USB-C PD cable 1 $10.99 Amazon USB-C to DC 5.5mm x 2.5mm, right angleNote
With this power source option, we recommend setting Jetson Orin Nano in 7W
mode (sudo nvpmodel -m 1
), as we observed Jetson in 15W
mode shutdown in certain scenarios like suddenly ramping up the motor from 0% to 100% speed or having motors stalled.
You need a camera module with 22pin cable for interfacing to Jetson Orin Nano 8GB Developer Kit carrier board and the appropriate wide field of view for each JetBot.
Select an option and get the parts specified.
"},{"location":"bill_of_materials_orin.html#option-1-default-imx219-175-degree-fov-camera","title":"Option 1 (default) - IMX219 175-degree FoV camera","text":"Part Quantity Cost URL Notes Camera 1 $19.99 ArduCam, Amazon ArduCam B0392 - IMX219 175-degree"},{"location":"bill_of_materials_orin.html#wheels","title":"Wheels","text":"You need wheels with a \"TT\" motor shaft connector for each JetBot. Select an option and get the parts specified.
"},{"location":"bill_of_materials_orin.html#option-1-60mm","title":"Option 1 - 60mm","text":"Part Quantity Cost URL Notes Wheel 2 $5.00 Adafruit 60mm diameter Caster base 1 -- STL file for 60mm wheel Caster shroud 1 -- STL file for 60mm wheel"},{"location":"bill_of_materials_orin.html#option-2-65mm","title":"Option 2 - 65mm","text":"Part Quantity Cost URL Notes Wheel 2 $3.00 Adafruit 65mm diameter Caster base 1 -- STL file for 65mm wheel Caster shroud 1 -- STL file for 65mm wheel"},{"location":"bill_of_materials_orin.html#assembly-hardware","title":"Assembly Hardware","text":"You need the following parts to build JetBot. They come in packs, so order the quantity you need for the number of JetBots you are going to build.
Part Qty per JetBot Qty per pack Cost per JetBot URL Notes Adhesive Strips (Poster Strips) 2 60 $0.14 Amazon M2 screw 20 100 $1.40 Amazon 8mm long, self tapping M3 screw 4 60 $0.47 Amazon 25mm long M3 nut 4 150 $0.20 Amazon Jumper wires 4 40 $0.56 Amazon Female-female, ~20cm"},{"location":"getting_started.html","title":"Getting Started","text":""},{"location":"getting_started.html#step-1-pick-your-vehicle","title":"Step 1 - Pick your vehicle!","text":"To get started with JetBot, first pick your vehicle (hardware) you want to make.
For details of NVIDIA-designed open-source JetBot hardware, check Bill of Materials page and Hardware Setup page.
To find kits available from third parties, check Third Party Kits page.
"},{"location":"getting_started.html#step-2-setup-your-jetbot","title":"Step 2 - Setup your JetBot","text":"After you've decided which vehicle you want to build, you'll need to source the parts and follow the setup instructions. After that, you're ready to move on to the JetBot examples!
"},{"location":"getting_started.html#option-1-diy-jetbot-kit","title":"Option 1 - DIY JetBot Kit","text":"To get started with the DIY open-source JetBot, follow these steps.
Get the parts from the bill of materials.
Follow the hardware setup
Follow the software setup
Third party JetBot kits may have different setup instructions from the DIY JetBot. To get started with a third party jetbot, we recommend referring to the third party kit's setup instructions for details on how to setup.
Check out the Third Party Kits page for links and information related to third party kits.
"},{"location":"getting_started.html#step-3-follow-the-examples","title":"Step 3 - Follow the examples","text":"JetBot comes with many examples to teach robotics and AI basics. These give you the experience you need to begin exploring your own applications with JetBot.
"},{"location":"getting_started.html#example-1-basic-motion","title":"Example 1 - Basic Motion","text":"The Basic Motion example teaches you how to program JetBot from your web browser with basic motor controls.
"},{"location":"getting_started.html#example-2-teleoperation","title":"Example 2 - Teleoperation","text":"The Teleoperation example teaches you how to stream live images from JetBot and control JetBot with a gamepad attached to your laptop.
"},{"location":"getting_started.html#example-3-collision-avoidance","title":"Example 3 - Collision Avoidance","text":"The Collision Avoidance example teaches you how to collect data and train a custom Image Classification model to enable JetBot to avoid collisions in a variety of scenarios. The method learned here can be extended to recognize arbitrary classes of image, which can be extended far beyond JetBot!
"},{"location":"getting_started.html#example-4-road-following","title":"Example 4 - Road Following","text":"The Road Following example teaches you how to collect data and train a custom Image Regression model to enable JetBot to follow a road. The method learned here can be extended to detect an arbitrary x, y coordinate in an image, which extends far beyond JetBot!
"},{"location":"getting_started.html#example-5-object-following","title":"Example 5 - Object Following","text":"The Object Following teaches you how to use a pre-trained object detection model for following an object, like a person, cup, or dog. The pre-trained network you'll learn to use here can be used for a variety of new AI projects.
"},{"location":"getting_started.html#and-more","title":"And more!","text":"Take the examples, modify them, make JetBot do something new, or create an entirely new AI project of your own.
If you do something cool with JetBot, let us know!
Happy JetBotting :)
"},{"location":"hardware_setup.html","title":"Hardware Setup","text":"This page details the hardware setup instructions for creating JetBot
"},{"location":"hardware_setup.html#tools-needed","title":"Tools needed","text":"To build JetBot you'll need the following tools
Pliers
Wire flush cutters/wire stripper
Remove support material from motor sockets using pliers
Remove support material from all surfaces, openings and screw holes using pliers, tweezers, and/or fingernails
Cut and remove the zip tie from each motor
Tuck the wires beneath transparent band to prevent stress on solder joints
Break away 3-pin and 2-pin male headers from header link that comes with motor driver package
Join two of the screw terminal blocks to create a 4-pin screw terminal
Solder the 2-pin and 3-pin male headers to motor driver
WarningPay careful attention to the position of the 3-pin header. It is offset by 1-pin from the corner.
Select the depicted micro USB from the pack
WarningPay careful attention to the image. The cables are not identical. The other micro USB cable will be used to power the Jetson Nano. Using the wrong power cable for Nano will block it's Ethernet port.
Cut the depicted cable roughly ~20cm from the type-A terminal
Route the spliced cable through chassis
Secure exposed red (+) and black (-) wires to the power terminals on motor driver
WarningPay attention to the markings on the motor driver. Incorrect wiring could damage the driver.
Route the spliced cable under the motor driver to organize and prevent stress on screw terminal
Secure left and right motor wires to motor screw terminals
InfoNotice (3/11/2019): We made a slight mistake: the red and black wires for the left and right motor are actually flipped in the image shown above. This will not cause damage, but the motors will spin backwards. Please flip them to the correct orientation.
Skip this step if you are using a USB WiFi dongle instead of the M.2 WiFi module
Secure one patch antenna to the underside of top plate
Secure the other patch antenna at edge of battery bay
Skip this step if you are using a USB WiFi dongle instead of the M.2 WiFi module
Remove standoff screws from Jetson Nano module
Release the side latches of SODIMM connector using hands
Skip this step if you are using a USB WiFi dongle instead of the M.2 WiFi module
Attach developer kit to chassis using self taping screws
Snap antennae on to WiFi module using fingers
Place the caster ball inside of shroud
Insert the caster base into shroud, securing the ball
TipDepending on how the print turns out, the ball socket enclosure may fit too tight. If this is the case, you can easily use a file to remove some excess material.
Attach the assembled caster onto the chassis with self taping screws
Secure the 6-pin right angle header to PiOLED display by some method
Solder the pins depicted (3.3V, SDA, SCL, and GND solder seen when zoomed in on right image)
WarningThe pins are close to the display screen, be careful to avoid the screen with soldering iron tip.
Select 4 wire segment of female-female jumper cables.
InfoWe use brown, red, orange, yellow segment. You can map the colors accordingly.
Attach 3.3V (red), GND (brown), SDA (orange), and SCL (yellow) to motor driver as shown
Attach red, brown, orange and yellow wires to right angle header as depicted
WarningPay close attention! Reversing the red / brown wires could damage the system.
Attach the camera to the camera mount using 4x self tapping screws
Attach the camera mount to chassis with 4x self tapping screws
Peel off the original camera sensor
Remove any excess adhesive material
Attach double sided adhesive tabs to each end of battery, leaving some tab exposed
Holding robot upside down, slide battery into battery bay
Once finished, your JetBot should look similar to this.
"},{"location":"third_party_kits.html","title":"Third Party Kits","text":"In addition to the open-source DIY version, several third party JetBot kits using Jetson Nano have emerged. This page details the kits that we're aware of
NotePlease note, we do not officially maintain these kits in this GitHub project. Please refer to the vendor's documentation. Please refer to the vendor URL for cost and availability. Some kits may have additional vendors that we aren't aware of or haven't listed yet. If you think these would be helpful for other developers to know, please let us know.
"},{"location":"third_party_kits.html#waveshare-jetbot","title":"Waveshare JetBot","text":"Kit URL WaveShare JetBot Kit Amazon.com, Waveshare.com, Waveshare.net(\u4e2d\u6587) WaveShare JetBot Kit (includes Jetson Nano Dev Kit) Amazon.com, Waveshare.com, Waveshare.net(\u4e2d\u6587)"},{"location":"third_party_kits.html#links","title":"Links","text":"In this notebook we'll control JetBot by programming from a web browser.
Connect to your robot by navigating to http://<jetbot_ip_address>:8888
Sign in with the default password jetbot
~/Notebooks/basic_motion/
basic_motion.ipynb
notebookJetBot will physically move in this notebook, make sure it has enough space to move around.
"},{"location":"examples/collision_avoidance.html","title":"Collision Avoidance","text":"In this example we'll collect an image classification dataset that will be used to help keep JetBot safe! We'll teach JetBot to detect two scenarios free
and blocked
. We'll use this AI classifier to prevent JetBot from entering dangerous territory.
http://<jetbot_ip_address>:8888
jetbot
Kernel
-> Shutdown All Kernels...
~/Notebooks/collision_avoidance/
data_collection.ipynb
notebookWe provide a pre-trained model so you can skip to step 3 if desired. This model was trained on a limited dataset using the Raspberry Pi V2 Camera with wide angle attachment.
"},{"location":"examples/collision_avoidance.html#step-2-train-neural-network","title":"Step 2 - Train neural network","text":""},{"location":"examples/collision_avoidance.html#option-1-train-on-jetson-nano","title":"Option 1 - Train on Jetson Nano","text":"http://<jetbot_ip_address>:8888
jetbot
~/collision_avoidance
train_model_resnet18.ipynb
notebooktrain_model_resnet18.ipynb
notebookhttps://<jetbot_ip_address>:8888
~/Notebooks/road_following
live_demo_resnet18_build_trt.ipynb
notebook to optimize the model with TensorRThttp://<jetbot_ip_address>:8888
jetbot
Kernel
-> Shutdown All Kernels...
~/Notebooks/collision_avoidance
live_demo_resnet18_trt.ipynb
notebook to run the optimized modelJetBot will physically move in this notebook, make sure it has enough space to move around.
"},{"location":"examples/community_examples.html","title":"Community Examples","text":"Here you can find community examples and extensions of JetBot.
"},{"location":"examples/community_examples.html#combined-collision-avoidance-and-road-following","title":"Combined Collision Avoidance and Road Following","text":"This example by @abuelgasimsaadeldin combines the JetBot road following and collision avoidance examples into a combined application. Watch your JetBot follow the road, while simulataneously avoiding traffic collisions.
Please note that example for now only works with the SD card image based software setup.
In this example we'll have JetBot follow an object using a pre-trained model capable of detecting common objects likePerson
, Cup
, and Dog
. While doing this, JetBot will run the collision avoidance model from Example 3 to make sure it stays safe!
Download the object detection model according to the table below
JetBot SD Card Version Model v0.3 ssd_mobilenet_v2_coco.engine v0.4 (latest) ssd_mobilenet_v2_coco.enginePlease note, the latest object detection engine targets Jetson Nano running software bundled with JetPack 4.3. This engine not be compatible with other versions of JetPack. For this reason, we recommend starting from the JetPack 4.3 JetBot SD Card image, or using the JetPack 4.3 base SD card image if you want to run the object detection example.
Connect to your robot by navigating to http://<jetbot_ip_address>:8888
Shutdown all other running notebooks by selecting Kernel
-> Shutdown All Kernels...
~/Notebooks/object_following/
Upload the pre-trained ssd_mobilenet_v2_coco.engine
model to this folder
This example also uses the collision avoidance model from example 3. We assume that it is already located at ~/Notebooks/collision_avoidance/best_model.pth
Open and follow the live_demo.ipynb
notebook
Start cautious and give JetBot enough space to move around.
In this example we'll collect an image regression dataset that will enable JetBot to follow a road! We'll teach JetBot to detect a target x, y
image coordinate that the JetBot will chase. As JetBot gets closer to the point, it moves further along the track.
http://<jetbot_ip_address>:8888
jetbot
Kernel
-> Shutdown All Kernels...
~/Notebooks/road_following/
data_collection.ipynb
notebookhttp://<jetbot_ip_address>:8888
jetbot
~/Notebooks/road_following
train_model.ipynb
notebookConnect to a GPU machine with PyTorch installed and a Jupyter Lab server running
Upload the road following avoidance training notebook to this machine
train_model.ipynb
notebookhttps://<jetbot_ip_address>:8888
jetbot
Kernel
-> Shutdown All Kernels...
~/Notebooks/road_following
live_demo_build_trt.ipynb
notebook to optimize the model with TensorRThttp://<jetbot_ip_address>:8888
jetbot
Kernel
-> Shutdown All Kernels...
~/Notebooks/road_following
live_demo_trt.ipynb
notebook to run the optimized modelStart cautious and give JetBot enough space to move around.
"},{"location":"examples/teleoperation.html","title":"Teleoperation","text":"InfoThis example requires a gamepad controller connected to your laptop/workstation.
In this example we'll drive JetBot remotely, view live streaming video, and save snapshots!
Connect to your robot by navigating to http://<jetbot_ip_address>:8888
Sign in with the default password jetbot
Kernel
-> Shutdown All Kernels...
~/Notebooks/teleoperation/
teleoperation.ipynb
notebookThis page provides various information related to using docker with JetBot.
"},{"location":"reference/docker_tips.html#establishing-access-to-the-docker-host-terminal","title":"Establishing access to the Docker host terminal","text":"The Jupyter Lab is running in the Docker container, thus the Terminal you open on Jupyter Lab only have access to the container environment. This means you cannot use commands like nvpmodel
, tegrastats
, journalctl
, systemctl
and others.
To get around this limitation, you can actually SSH in to the Docker host machine by;
ssh jetbot@0.0.0.0\n
"},{"location":"reference/docker_tips.html#using-nvidia-gpu-cloud-ngc","title":"Using Nvidia GPU Cloud (NGC)","text":"The standard JetBot containers are hosted on docker hub, but for development or testing purposes, you may wish to use Nvidia GPU Cloud. To access containers on NGC, you need to sign into the NGC registry. To do this:
Log into ngc.nvidia.com
Generated your API Key
On your Jetson, sign into the NGC registry using the generated key
$ sudo docker login nvcr.io\n\nUsername: $oauthtoken\nPassword: <Your Generated Key>\n
For the username, enter $oauthtoken
exactly as shown. It is a special authentication token for all users.
The argument you provide to the enable.sh script is mounted as a volume inside the docker container. Inside the docker container, this volume is located at /workspace. Any changes that you make inside this directory will be saved outside of the docker container. To use a different directory as the workspace for the Jupyter contianer, just provide the path as an argument when calling enable.sh. For example, to set the workspace to your home directory, you would do
cd jetbot/docker\n./enable.sh $HOME\n
"},{"location":"reference/docker_tips.html#disabling-containers","title":"Disabling containers","text":"Once you execute the enable.sh
script, the containers are set to restart automatically. This means you can shut down your Jetson, and when you reboot the containers will run and you don't need to repeat this process.
To prevent the containers from starting automatically, just call the disable.sh script.
cd ~/jetbot/docker\n./disable.sh\n
"},{"location":"software_setup/docker.html","title":"Software Setup (Docker)","text":"This page details how to set up JetBot using the pre-built JetBot docker containers. This is the best option if you want to use JetBot with an existing Jetson Nano SD card image.
NotePlease note, the JetBot containers described in this page currently target a Jetson Nano SD card image flashed with JetPack 4.4. These containers will not work with other version of JetPack.
"},{"location":"software_setup/docker.html#step-1-setup-jetson-nano","title":"Step 1 - Setup Jetson Nano","text":"If you haven't already, go through the initial setup of Jetson Nano. You can use your existing Jetson Nano set up (microSD card), as long as you have enough storage space left.
HintFor this, we'll assume you've set up your Jetson Nano using the online Getting Started guide.
If you haven't already, connect your Jetson Nano to your Wi-Fi network.
Follow this Wi-Fi setup guide.
"},{"location":"software_setup/docker.html#step-3-clone-jetbot-repo","title":"Step 3 - Clone JetBot repo","text":"Clone the official JetBot GitHub repo.
git clone http://github.com/NVIDIA-AI-IOT/jetbot.git\n
"},{"location":"software_setup/docker.html#step-4-configure-system","title":"Step 4 - Configure System","text":"First, call the scripts/configure_jetson.sh
script to configure the power mode and other parameters.
cd jetbot\n./scripts/configure_jetson.sh\n
Hint configure_jetson.sh
also disables the GUI for the interest of saving system memory (DRAM) consumption. If you want to re-enable the GUI, you can execute the following command.
sudo systemctl set-default graphical.target\n
Optionally, you can execute this script (./scripts/re_enable_gui.sh
).
Then, call the scripts/enable_swap.sh
script to enable swap memory if not set. Having extra 4GB swap memory is recommended even on Jetson Nano (4GB) Developer Kit.
./scripts/enable_swap.sh\n
"},{"location":"software_setup/docker.html#step-5-enable-all-containers","title":"Step 5 - Enable all containers","text":"Call the following to enable the JetBot docker containers
cd docker\n./enable.sh $HOME # we'll use home directory as working directory, set this as you please.\n
Now you can go to https://<jetbot_ip>:8888
from a web browser and start programming JetBot!
You can do this from any machine on your local network. The password to log in is jetbot
.
The enable.sh
script causes the docker containers to restart at boot. This means the next time you power on your JetBot, the containers will automatically start, and you should see the IP address displayed on the PiOLED display screen. All you need to do is type this into your web browser and start programming!
For more information on configuring and using docker with JetBot, check out the Docker Tips page.
Now that you've finished setting up you're JetBot, you're ready to run through the examples!
"},{"location":"software_setup/native_setup.html","title":"Native JetBot Setup (without Docker)","text":"This page details how you can configure your Jetson system to use JetBot without Docker. This is handy when you want to prototype without worrying about docker semantics, or have other reasons to work outside of a docker environment
If you see any issues with these instructions or have any questions, please feel free to open an issue on github here.
"},{"location":"software_setup/native_setup.html#instructions","title":"Instructions","text":""},{"location":"software_setup/native_setup.html#step-1-install-dependencies","title":"Step 1 - Install dependencies","text":"Install Node JS to support Jupyter Lab
curl -sL https://deb.nodesource.com/setup_10.x | bash -\nsudo apt-get install -y nodejs libffi-dev\n
Install Jupyter Lab to support web-programming JetBot
sudo python3 -m pip install jupyter jupyterlab\njupyter labextension install @jupyter-widgets/jupyterlab-manager\n
Install Jupyter Clickable Image widget (to support road following example).
sudo apt-get install -y libssl1.0-dev && \\\ngit clone https://github.com/jaybdub/jupyter_clickable_image_widget && \\\ncd jupyter_clickable_image_widget && \\\ngit checkout tags/v0.1 && \\\nsudo pip3 install -e . && \\\njupyter labextension install js && \\\njupyter lab build\ncd ..\n
Install other miscellaneous dependencies
sudo apt-get update && apt-get install -y supervisor unzip\nsudo apt install -y python3-smbus && pip3 install pyzmq\n
(optional) Install torch2trt to support TensorRT accelerated AI models
git clone https://github.com/NVIDIA-AI-IOT/torch2trt\ncd torch2trt\npython3 setup.py install\ncd ..\n
Install the JetBot Python package
git clone https://github.com/NVIDIA-AI-IOT/jetbot\ncd jetbot\nsudo python3 setup.py install\n# if you plan to modify the jetbot python package, call this instead: sudo python3 setup.py develop\n
Call the following from a terminal
jupyter notebook password\n# enter password\n
You could now test the JetBot notebooks by running
cd jetbot\njupyter lab --ip=0.0.0.0 --no-browser --allow-root\n
and then navigating to https://<jetbot_ip>:8888
and signing in with the password you set.
However, it is convenient to have this server start automatically, which we will detail next.
"},{"location":"software_setup/native_setup.html#step-3-create-a-system-service-to-start-the-jupyter-lab-server-at-boot","title":"Step 3 - Create a system service to start the Jupyter Lab server at boot","text":"Create file named jetbot_jupyter.service
and add the following content.
[Unit]\nDescription=Jupyter Notebook \n\n[Service]\nType=simple\nUser=jetson\nExecStart=/bin/sh -c \"jupyter lab --ip=0.0.0.0 --no-browser --allow-root\"\nWorkingDirectory=/home/jetson\nRestart=Always\n\n[Install]\nWantedBy=multi-user.target\n
Note: If you have a username other than \"jetson\" or want to launch Jupyter from a directory other than \"/home/jetson\", modify the file \"User\" and \"WorkingDirectory\" fields accordingly.
Copy the file to the directory /etc/systemd/system
so it can be discovered as a system service.
sudo cp jetbot_jupyter.service /etc/systemd/system/jetbot_jupyter.service\n
Enable the system service to run at boot
sudo systemctl enable jetbot_jupyter\n
Now, when you re-boot your Jetson, the Jupyter lab server should start in the background.
That's great, but in order to connect to the server, you need to know it's IP address. The last step will be to enable a system service that displays the IP address on the JetBot's PiOLED display upon boot.
"},{"location":"software_setup/native_setup.html#step-4-create-system-service-to-show-the-ip-address-upon-boot","title":"Step 4 - Create system service to show the IP address upon boot","text":"This is very similar to creating a service for the Jupyter Lab server, we're just changing the application that's launched
Create a file named jetbot_display.service
and add the following content.
[Unit]\nDescription=Jupyter Notebook \n\n[Service]\nType=simple\nUser=jetson\nExecStart=/bin/sh -c \"python3 -m jetbot.apps.stats\"\nWorkingDirectory=/home/jetson\nRestart=Always\n\n[Install]\nWantedBy=multi-user.target\n
Copy the file to the directory /etc/systemd/system
so it can be discovered as a system service.
sudo cp jetbot_display.service /etc/systemd/system/jetbot_display.service\n
Enable the system service to run at boot
sudo systemctl enable jetbot_display\n
That's it! Now you should be able to reboot the JetBot, and it's IP address should automatically show up on the PiOLED display.
We hope this helps you create a custom native system configuration for using JetBot. If you have any questions or see any issues with this guide, please create an issue on GitHub.
Happy hacking!
"},{"location":"software_setup/sd_card.html","title":"Software Setup (SD Card Image)","text":"Note
JetBot was originally designed with Jetson Nano Developer Kit, which was discontinued.
For those newly starting, we recommend planning the JetBot assembly with Jetson Orin Nano 8GB Developer Kit. The Bill of Materials for Orin version of JetBot is laid out on Bill of Materials (Orin) page.
Please note that, currently, the software for the Orin version of JetBot is still work in progress.
This page details how to set up JetBot using the pre-built JetBot SD card image. You may prefer this option if you are new to Jetson Nano, and do not have an existing SD card configured.
"},{"location":"software_setup/sd_card.html#step-1-download-the-pre-built-jetbot-sd-card-image","title":"Step 1 - Download the pre-built JetBot SD card image","text":"Download the pre-built JetBot SD card image from the table below. Make sure to select the version that matches the Jetson you're using (for example Jetson Nano 2GB).
Atention
10/4/2024:
Recently, you may face permission issues when attempting to download the files hosted on Google Drive below.
We hope to resolve these issues soon.
"},{"location":"software_setup/sd_card.html#latest-release","title":"Latest Release","text":"Platform JetPack Version JetBot Version Download MD5 Checksum Jetson Nano 2GB 4.5 0.4.3 jetbot-043_nano-2gb-jp45.zip e6dda4d13b1b1b31f648402b9b742152 Jetson Nano (4GB) 4.5 0.4.3 jetbot-043_nano-4gb-jp45.zip 760b1885646bfad8590633acca014289 AttentionTo use one of the JetBot sdcard images based on JetPack 4.5, you first need to boot your Jetson Nano using a plain JetPack 4.5 SD card image and run through the operating system setup. This will perform a one-time configuration which enables you to use SD card images based on JetPack 4.5 on your device. You can find the original JetPack SD card images here: JetPack SD card image for Jetson Nano 2GB and JetPack SD card image for Jetson Nano (4GB). After doing this procedure once, you can then use the JetPack 4.5 based JetBot SD card images listed above on your device.
"},{"location":"software_setup/sd_card.html#old-releases","title":"Old releases","text":"Platform JetPack Version JetBot Version Download Jetson Nano 2GB 4.4.1 0.4.2 jetbot-042_nano-2gb-jp441.zip Jetson Nano (4GB) 4.4.1 0.4.2 jetbot-042_nano-4gb-jp441.zip Jetson Nano 2GB 4.4.1 0.4.1 jetbot-041_nano-2gb-jp441.zip Jetson Nano (4GB) 4.4.1 0.4.1 jetbot-041_nano-4gb-jp441.zip Jetson Nano (4GB) 4.3 0.4.0 jetbot_image_v0p4p0.zip Jetson Nano (4GB) 4.2 0.3.2 jetbot_image_v0p3p2.zip"},{"location":"software_setup/sd_card.html#step-2-flash-jetbot-image-onto-sd-card","title":"Step 2 - Flash JetBot image onto SD card","text":"Insert an SD card into your desktop machine
Using Etcher, select the image you downloaded above and flash it onto the SD card.
Remove the SD card from your desktop machine
Insert the SD card into your Jetson Nano (the micro SD card slot is located under the module)
Connect the monitor, keyboard, and mouse to the Nano
Power on the Jetson Nano by connecting the micro USB (for Jetson Nano (4GB)) or USB-C (for Jetson Nano 2GB) charger to the port
AttentionWe recommend first booting the Jetson Nano once without the piOLED / motor driver connected.
This way you can check to make sure the system boots properly from the SD card image without worrying about hardware issues. After you've verified that it boots, reconnect the piOLED, double check your wiring, and boot again.
Next you'll need to connect to WiFi. To reduce memory consumption, we disable the Ubuntu GUI in the latest JetBot SD card image. For this reason, you'll need to use the command line to connect to WiFi.
Log in using the user jetbot
and password jetbot
Connect to a WiFi network using the following command
sudo nmcli device wifi connect <SSID> password <PASSWORD>\n
Your Jetson Nano should now automatically connect to the WiFi at boot and display it's IP address on the piOLED display.
TipIf you're having trouble figuring out how to get connected to Wi-Fi, check out the Wi-Fi setup page for more detailed instructions
"},{"location":"software_setup/sd_card.html#step-5-connect-to-jetbot-from-web-browser","title":"Step 5 - Connect to JetBot from web browser","text":"After your robot is connected to WiFi, you no longer need to have the robot connected by a monitor. You can connect to the robot from your laptop's web browser by performing the following steps
Shutdown JetBot using the command line
sudo shutdown now\n
Unplug your HDMI monitor, USB keyboard, mouse and power supply from Jetson Nano
Power the JetBot from the USB battery pack by plugging in the micro-USB cable
<jetbot_ip_address>
in the next commandhttp://<jetbot_ip_address>:8888
from your desktop's web browser. You can do this from any machine on your local network. jetbot
.That's it, you've now accessed JetBot's remote programming environment!
You will be presented with a view similar to the following.
Here you can easily access the JetBot examples! From this point on, when you power on the JetBot, it should automatically connect to WiFi and display it's IP address. So all you need to do is reconnect using your web browser to start programming!
Now that you're finished setting up your JetBot, you're ready to run the examples.
"},{"location":"software_setup/wifi_setup.html","title":"Wi-Fi connection setup","text":"InfoYou can skip this page if you already have a wireless connection to your JetBot from your computer.
To go through the actual example applications on JetBot, you interact with JetBot from your (laptop) PC through Wi-Fi network.
This document explains how you can initially set up the Wi-Fi connection on your Jetson.
"},{"location":"software_setup/wifi_setup.html#monitor-attached-mode","title":"Monitor-attached Mode","text":"The easiest way to set up the Wi-Fi connection on your Jetson, is to operate on the GUI desktop. For this you need to fisrt connect the following to the Jetson on your JetBot.
With this setup, you can use Jetson like a standard Linux computer. We call this Monitor-attached Mode.
HintIf you don't have above items handy, then you can also try the headless way of configuring Wi-Fi. Head down to the next section, Headless Mode.
"},{"location":"software_setup/wifi_setup.html#connect-to-wi-fi-ap","title":"Connect to Wi-Fi AP","text":"If a Wi-Fi adaptor (either Intel 8265 M.2 card or a USB Wi-Fi dongle) is attached, you can configure the wireless network from the desktop.
"},{"location":"software_setup/wifi_setup.html#check-ip-address","title":"Check IP address","text":"After the connection established, check the IP address.
Note this IP address.
"},{"location":"software_setup/wifi_setup.html#verify-the-ip-address","title":"Verify the IP address","text":"To test the IP address is valid and your Jetson is accesible, try connecting to the IP address from your separate (laptop) PC.
SSH server is enabled by default on Jetson. Open your SSH client software (PuTTY, etc) on your PC, and try to connect the SSH server on the IP address.
This is how you connect to your JetBot using SSH client software. Once you confirm you can connect to your Jetson remotely from your PC via Wi-Fi, you can now remove the HDMI monitor, keyboard and mouse from Jetson, and let your JetBot free!
And at this point, you are now using Jetson effectively in the Headless Mode.
HintAlternatively, even on the GUI deskop, you can open the terminal by pressing Ctrl
+ Alt
+ T
keys, and follow the command-line based setup described below for headless setup.
When you put your Jetson in a deployed system, like a mobile robot, it is often difficult to attach an HDMI monitor. We can still control such Jetson remotely through network from a (laptop) PC, WHEN you already know the IP address. We call this operation mode Headless Mode.
However you face a chiken-or-egg dillemna here, because you want to remotely login to the console to set up a Wi-Fi connection, but to do that you first need the IP address of your Jetson that you get after establishing the Wi-Fi connecton.
"},{"location":"software_setup/wifi_setup.html#usb-device-mode","title":"USB Device Mode","text":"What comes handy here is USB Device Mode.
You connect your (laptop) PC and Jetson using a Micro-USB cable. (Type-A end goes to your PC, Micro-B end goes to Jetson) Using this wired connection, you can access the terminal on Jetson from your (laptop) PC.
With USB Device Mode, Jetson presents 3 different USB Device Class end-points to the PC that it got connected to. They function as
L4T-README
drive mounted on your PC, like a USB thumbdrive)With the virtual Ethernet adapter functinality, Jetson forms a virutal local Ethernet network with Jetson being 192.168.55.1
and your PC being 192.168.55.100
. So you can actually SSH login from your (laptop) PC by specifying 192.168.55.1
, if you have already set up your acount (with username and password).
If you are using Jetson for the first time right after you flash your SD card, then you don't have this user account set up. In that case, you want to use the USB serial functinality, and use your serial terminal software on your PC to have accesss to the Jetson's serial terminal.
So either way, with a Micro USB cable, you can have an access to Jetson's terminal.
"},{"location":"software_setup/wifi_setup.html#connect-wi-fi-using-nmcli-command","title":"Connect Wi-Fi usingnmcli
command","text":"If a Wi-Fi adaptor (either Intel 8265 M.2 card or a USB Wi-Fi dongle) is attached, you can configure the wireless network using nmcli
command.
You can first check if you want a wireless adapter on your system. Look for wlan0
.
$ nmcli device\nDEVICE TYPE STATE CONNECTION\nl4tbr0 bridge connected l4tbr0\nwlan0 wifi disconnected --\neth0 ethernet unavailable --\ndummy0 dummy unmanaged --\nrndis0 ethernet unmanaged --\nusb0 ethernet unmanaged --\nlo loopback unmanaged --\n
Then you can list all the wirelss networks (SSDI) in the area.
$ nmcli device wifi list\nIN-USE SSID MODE CHAN RATE SIGNAL BARS SE\n -- Infra 6 195 Mbit/s 82 \u2582\u2584\u2586\u2588 WP\n -- Infra 6 195 Mbit/s 82 \u2582\u2584\u2586\u2588 WP\n -- Infra 6 195 Mbit/s 75 \u2582\u2584\u2586_ WP\n MY_WIFI_AP Infra 6 195 Mbit/s 70 \u2582\u2584\u2586_ WP\n -- Infra 6 195 Mbit/s 70 \u2582\u2584\u2586_ WP\n ********* Infra 1 405 Mbit/s 64 \u2582\u2584\u2586_ WP\n ************ Infra 153 405 Mbit/s 64 \u2582\u2584\u2586_ WP\n...\n
To connect to your wireless network (AP, access point), issue the commands below.
$ sudo nmcli device wifi connect <MY_WIFI_AP> password <MY_WIFI_PASSWORD>\nDevice 'wlan0' successfully activated with '2a26d5ca-****-****-****-**************'.\n
"},{"location":"software_setup/wifi_setup.html#check-ip-address_1","title":"Check IP address","text":"To check your IP address, use ifconfig
. Check the wlan0
part at the very bottom.
$ ifconfig\ndummy0: flags=195<UP,BROADCAST,RUNNING,NOARP> mtu 1500\n inet6 fe80::d854:8ff:fe87:e631 prefixlen 64 scopeid 0x20<link>\n ether da:54:08:87:e6:31 txqueuelen 1000 (Ethernet)\n RX packets 0 bytes 0 (0.0 B)\n RX errors 0 dropped 0 overruns 0 frame 0\n TX packets 24 bytes 3376 (3.3 KB)\n TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0\n\nl4tbr0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500\n inet 192.168.55.1 netmask 255.255.255.0 broadcast 192.168.55.255\n inet6 fe80::1 prefixlen 128 scopeid 0x20<link>\n inet6 fe80::943c:9dff:fe90:eb89 prefixlen 64 scopeid 0x20<link>\n ether 96:3c:9d:90:eb:89 txqueuelen 1000 (Ethernet)\n RX packets 15189 bytes 1343038 (1.3 MB)\n RX errors 0 dropped 0 overruns 0 frame 0\n TX packets 4344 bytes 411009 (411.0 KB)\n TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0\n\nlo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536\n inet 127.0.0.1 netmask 255.0.0.0\n inet6 ::1 prefixlen 128 scopeid 0x10<host>\n loop txqueuelen 1 (Local Loopback)\n RX packets 3954 bytes 287737 (287.7 KB)\n RX errors 0 dropped 0 overruns 0 frame 0\n TX packets 3954 bytes 287737 (287.7 KB)\n TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0\n\nrndis0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500\n inet6 fe80::943c:9dff:fe90:eb89 prefixlen 64 scopeid 0x20<link>\n ether 96:3c:9d:90:eb:89 txqueuelen 1000 (Ethernet)\n RX packets 15414 bytes 1360470 (1.3 MB)\n RX errors 0 dropped 7 overruns 0 frame 0\n TX packets 4378 bytes 667985 (667.9 KB)\n TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0\n\nusb0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500\n ether 96:3c:9d:90:eb:8b txqueuelen 1000 (Ethernet)\n RX packets 0 bytes 0 (0.0 B)\n RX errors 0 dropped 0 overruns 0 frame 0\n TX packets 0 bytes 0 (0.0 B)\n TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0\n\nwlan0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500\n inet 192.168.1.58 netmask 255.255.255.0 broadcast 192.168.1.255\n inet6 fe80::b5a0:c2e3:50bc:29a4 prefixlen 64 scopeid 0x20<link>\n ether b4:4b:d6:23:9a:12 txqueuelen 1000 (Ethernet)\n RX packets 26825 bytes 40675884 (40.6 MB)\n RX errors 0 dropped 32746 overruns 0 frame 0\n TX packets 16406 bytes 1673647 (1.6 MB)\n TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0\n
"},{"location":"software_setup/wifi_setup.html#verify-the-ip-address_1","title":"Verify the IP address","text":"To test the IP address is valid and your Jetson is accesible, try connecting to the IP address from your separate (laptop) PC under the same network.
Open your SSH client software (PuTTY, etc) on your PC, and try to connect the SSH server using the IP address you obtained on the wireless adapter.
This is how you connect to your JetBot over Wi-Fi. Once you confirm you can connect to your Jetson remotely from your PC via Wi-Fi, you can now remove the Micro USB cable and let your JetBot free!
InfoNext, you move on to either page below.
Once your JetBot software is configure, you should see JetBot's IP address on the small OLED display. You would only need to come back to this step to re-connect to the network or to find the IP address when your JetBot fails to get the IP address and show the current IP address on the OLED display.
"}]} \ No newline at end of file +{"config":{"lang":["en"],"separator":"[\\s\\-]+","pipeline":["stopWordFilter"]},"docs":[{"location":"index.html","title":"JetBot","text":"Go to GitHub Get StartedJetBot is an open-source robot based on NVIDIA Jetson Nano. You'll like it because...
"},{"location":"index.html#its-affordable","title":"It's Affordable","text":"JetBot costs less than $250 in parts, including Jetson Nano. The DIY kit includes a bill of materials which you must purchase and a 3D printed chassis that you can print, or order. If you're looking to get up and running as quick as possible, there are also many third party kits available that come pre-bundled."},{"location":"index.html#its-educational","title":"It's Educational","text":"JetBot includes a set of Jupyter notebooks which cover basic robotics concepts like programatic motor control, to more advanced topics like training a custom AI for avoiding collisions. What you'll learn isn't limited to JetBot. You'll learn concepts related to neural network data collection and training that extend as far as your imagination."},{"location":"index.html#its-easy-to-setup","title":"It's Easy to Setup","text":"JetBot is programmed from your web browser. Just connect your JetBot to Wifi and launch the JetBot Docker container. This enables JetBot's web programming environment, which is available even after the JetBot reboots. Once your JetBot boots, just type it's IP address into your web browser and start programming."},{"location":"index.html#its-fun","title":"It's Fun!","text":"We built JetBot to make exploring ideas related to robotics as fun as possible. In effect, it's a portable, battery powered AI computer with a camera that's super easy to program. This makes it the perfect platform for trying new ideas related to AI, image processing and robotics. Our experiments have led us to new projects like JetRacer, and we're excited to see where your experiments take you."},{"location":"index.html#get-started","title":"Get Started","text":"To get started with JetBot, follow the Getting Started instructions. If you run into any issues along the way, please let us know!
Go to GitHub Get Started"},{"location":"index.html#get-involved","title":"Get involved","text":"We really appreciate any feedback related to JetBot, and also just enjoy seeing what you're working on! There is a growing community of Jetson Nano and JetBot users. It's easy to get involved involved...
This page has useful information related to printing the JetBot chassis using a 3D printer. There are two methods for printing JetBot
If you have a 3D printer, we recommend printing the JetBot components yourself!
"},{"location":"3d_printing.html#print-facts","title":"Print facts","text":"Below are some facts related to printing a single JetBot.
We've tested that the following printers are able to print JetBot successfully.
Model Cost URL Monoprice Voxel $320 Amazon Ultimaker 2+ $2500 Amazon"},{"location":"3d_printing.html#tested-filaments","title":"Tested Filaments","text":"Based on our experience, we recommend using PLA filament when printing JetBot. Below is a collection of filaments that we have tested with the Monoprice Voxel 3D printer.
Brand Thickness Material Color URL Notes AmazonBasics 1.75mm PLA Silver Amazon Smooth, dark metallic finish AmazonBasics 1.75mm PLA Neon Green Amazon Smooth, pale finish AmazonBasics 1.75mm PLA Yellow Amazon Bold yellow, slightly translucent AmazonBasics 1.75mm PLA Purple Amazon Smooth, pale finish"},{"location":"3d_printing.html#printing-and-slicing-configuration","title":"Printing and slicing configuration","text":"STL unit: mm
Print orientation
If you don't have a 3D printer on hand, and are not interested in purchasing one, there are external services that can print the chassis for you. Below are some quotes from popular 3D printing services
Please note, we have not tested these services yet ourselves, so please proceed with caution. If you find a print service that worked well for you, we'd love to hear! Please let us know by creating an issue on GitHub or mentioning it in the chat channel
Service Quote 3DHubs $36.66 Jinxbot $91.42 Sculpteo ~$100"},{"location":"CHANGELOG.html","title":"Changes","text":""},{"location":"CHANGELOG.html#master","title":"Master","text":""},{"location":"CHANGELOG.html#043","title":"[0.4.3]","text":""},{"location":"CHANGELOG.html#added","title":"Added","text":"LocalController
class which allows users to directly connect controller to JetBotCamera
class now uses ZMQ Camera. This means you must run the ZMQ camera publisher to access the camera as before. If you wish to use the old Camera class, do from jetbot.camera.opencv_gst_camera import OpenCvGstCamera
and camera = OpenCvGstCamera()
systemctl restart nvargus-daemon
calls.We use mkdocs-material to easily generate documentation from markdown.
"},{"location":"CONTRIBUTING.html#installing-dependencies","title":"Installing Dependencies","text":"sudo apt-get update\nsudo apt-get -y install python3-pip\nsudo apt-get -y install mkdocs\npip3 install mkdocs-material mike\n
"},{"location":"CONTRIBUTING.html#testing","title":"Testing","text":"To quickly test the version of the documentation you're using, without commiting anything to the gh-pages
branch, run the following command.
mkdocs serve --dev-addr=0.0.0.0:8000\n
"},{"location":"CONTRIBUTING.html#deploying","title":"Deploying","text":"We use mike to maintain multiple versions of the documentation. To build the documentation with mike, call
mike deploy <tag>\n
This will build the documentation, and add a static version of the site under the gh-pages
branch. For example, to deploy the master documentation we do
mike deploy master\n
To set the default documentation version to master we would do.
mike set-default master\n
To push the documentation to Github Pages.
mike deploy master --push\n
"},{"location":"CONTRIBUTING.html#adding-a-new-page","title":"Adding a new page","text":"Mkdocs looks for documentation under the docs
folder. To add a new documentation page, you will need to first add the file either directly to the docs
folder, or to a different folder with a symbolic link to the docs
folder. For example, say we wanted to add a page named MAINTAINERS.md
to the root of the project
First, we create the file at the root of the project
touch MAINTAINERS.md\n
Next, we add a symbolic link to the docs folder
cd docs/reference\nln -s ../../MAINTAINERS.md .\n
Finally, we add the file to our navigation in mkdocs.yml
- nav:\n - Reference:\n - 'Maintainers': reference/MAINTAINERS.md\n
Now, when you build the documentation you should see the page that we've added in the \"Reference\" section with the title \"Maintainers\".
"},{"location":"CONTRIBUTING.html#updating-the-changelog","title":"Updating the Changelog","text":"We follow the guidance of Keep a Changelog for best practices in maintaining a chronological human-readable CHANGELOG.md file. If the change is worth developers and users knowing about, consider adding an entry to the change log.
"},{"location":"bill_of_materials.html","title":"Bill of Materials","text":"Note
JetBot was originally designed with Jetson Nano Developer Kit, which was discontinued.
For those newly starting, we recommend planning the JetBot assembly with Jetson Orin Nano 8GB Developer Kit. The Bill of Materials for Orin version of JetBot is laid out on Bill of Materials (Orin) page.
Please note that, currently, the software for the Orin version of JetBot is still work in progress.
This page lists everything you need to build JetBot, along with purchasing links from popular vendors.
Some of the parts are 3D printed. We provide the STL files needed to print these parts. Please see our 3d printing page for tips on printing.
"},{"location":"bill_of_materials.html#common-parts","title":"Common parts","text":"You need these components for each JetBot.
Part Quantity Cost URL Notes Jetson Nano 1 $99.00 NVIDIA Micro SD card 1 $13.99 Amazon 64GB Power supply 1 $7.50 Adafruit Micro USB, 5V, 2.5A Motor 2 $5.90 Adafruit, Amazon(1), Amazon(2) \"TT\" form factor Motor Driver 1 $19.95 Adafruit, Amazon Caster ball 1 $6.30 Amazon 1-inch diameter Battery 1 $15.99 Amazon 2x 5V/3A output, 10,000mAh USB cable pack 1 $6.99 Amazon Type A to Micro, right angle PiOLED display 1 $14.95 Adafruit, Amazon PiOLED header 1 $5.95 Adafruit, Amazon, Sparkfun 2x(3+) right angle male Chassis 1 -- STL file see 3D printing Camera Mount 1 -- STL file see 3D printing"},{"location":"bill_of_materials.html#camera","title":"Camera","text":"You need a camera with appropriate sensor and field of view for each JetBot. Select an option and get the parts specified.
"},{"location":"bill_of_materials.html#option-1-default-leopard-imaging-camera","title":"Option 1 (default) - Leopard Imaging Camera","text":"Part Quantity Cost URL Notes Camera 1 $29.00 Leopard Imaging LI-IMX219-MIPI-FF-NANO-H145"},{"location":"bill_of_materials.html#option-2-imx219-160-camera","title":"Option 2 - IMX219-160 Camera","text":"Part Quantity Cost URL Notes Camera 1 $29.90 Amazon IMX219-160 Camera"},{"location":"bill_of_materials.html#option-3-rpi-camera-v2-lens-attachment","title":"Option 3 - RPi Camera V2 + Lens Attachment","text":"Part Quantity Cost URL Notes Camera 1 $23.90 Amazon, Adafruit Raspberry Pi Camera V2 Camera lens attachment 1 $18.99 Amazon(1), Amazon(2), eBay 160-degree FoV"},{"location":"bill_of_materials.html#wifi","title":"WiFi","text":"You need a WiFi solution for each JetBot. Select an option and get the parts specified.
"},{"location":"bill_of_materials.html#option-1-default-m2-card-antennas","title":"Option 1 (default) - M2 Card + Antennas","text":"This option is a good choice if you're building JetBot with the original Jetson Nano 4GB. It has been widely tested and used for JetBot.
AttentionJetson Nano 2GB does not have a M.2 connector, so this option will not work with it.
Part Quantity Cost URL Notes WiFi card 1 $18.95 Amazon, NewEgg M2, Intel Wireless-AC 8265 WiFi antenna 2 $5.06 Arrow U.FL connectors"},{"location":"bill_of_materials.html#option-2-usb-dongle","title":"Option 2 - USB Dongle","text":"This option is compatible with both the original Jetson Nano (4GB) and Jetson Nano 2GB.
Part Quantity Cost URL Notes WiFi Dongle - TP-Link Archer T2U Nano 1 $17.99 Amazon RTL8811AU chipset WiFi Dongle - TP-Link Archer T2U Plus 1 $19.99 Amazon RTL8811AU chipset InfoFor other possible USB Wi-fi dongles that you can use on Jetson Nano, please check the Suported Components List.
You need wheels with a \"TT\" motor shaft connector for each JetBot. Select an option and get the parts specified.
"},{"location":"bill_of_materials.html#option-1-60mm","title":"Option 1 - 60mm","text":"Part Quantity Cost URL Notes Wheel 2 $5.00 Adafruit 60mm diameter Caster base 1 -- STL file for 60mm wheel Caster shroud 1 -- STL file for 60mm wheel"},{"location":"bill_of_materials.html#option-2-65mm","title":"Option 2 - 65mm","text":"Part Quantity Cost URL Notes Wheel 2 $3.00 Adafruit 65mm diameter Caster base 1 -- STL file for 65mm wheel Caster shroud 1 -- STL file for 65mm wheel"},{"location":"bill_of_materials.html#assembly-hardware","title":"Assembly Hardware","text":"You need the following parts to build JetBot. They come in packs, so order the quantity you need for the number of JetBots you are going to build.
Part Qty per JetBot Qty per pack Cost per JetBot URL Notes Adhesive pads 2 48 $0.14 Amazon M2 screw 20 100 $1.29 Amazon 8mm long, self tapping M3 screw 4 60 $0.47 Amazon 25mm long M3 nut 4 100 $0.24 Amazon Jumper wires 4 40 $0.13 Amazon Female-female, ~20cm"},{"location":"bill_of_materials_orin.html","title":"Bill of Materials - Jetson Orin Nano version","text":"Note
JetBot was originally designed with Jetson Nano Developer Kit, which was discontinued.
For those newly starting, we recommend planning the JetBot assembly with Jetson Orin Nano 8GB Developer Kit.
Please note that, currently, the software for the Orin version of JetBot is still work in progress.
This page lists all the parts you need to build the open-source JetBot with the new Jetson Orin Nano 8GB Developer Kit, along with purchasing links from popular vendors.
Some of the parts are 3D printed. We provide the STL files needed to print these parts. Please see our 3d printing page for tips on printing.
"},{"location":"bill_of_materials_orin.html#common-parts","title":"Common parts","text":"You need these components for each JetBot.
Part Quantity Cost URL Notes Jetson Orin Nano 8GB Developer Kit 1 $499.00 NVIDIA Micro SD card 1 $14.95 Amazon 128GB Motor 2 $5.90 Adafruit, Amazon(1), Amazon(2) \"TT\" form factor Motor Driver 1 $19.95 Adafruit, Amazon Caster ball 1 $10.99 Amazon 1-inch diameter USB cable pack 1 $6.99 Amazon Type A to Micro, right angle PiOLED display 1 $13.45 Adafruit, Amazon PiOLED header 1 $7.99 Adafruit, Amazon, Sparkfun 2x(3+) right angle male Chassis 1 -- STL file see 3D printing Camera Mount 1 -- STL file see 3D printing"},{"location":"bill_of_materials_orin.html#power-source","title":"Power source","text":"Part Quantity Cost URL Notes Battery 1 $12.99 Amazon PD 20W output, 10,000mAh USB-C PD cable 1 $10.99 Amazon USB-C to DC 5.5mm x 2.5mm, right angleNote
With this power source option, we recommend setting Jetson Orin Nano in 7W
mode (sudo nvpmodel -m 1
), as we observed Jetson in 15W
mode shutdown in certain scenarios like suddenly ramping up the motor from 0% to 100% speed or having motors stalled.
You need a camera module with 22pin cable for interfacing to Jetson Orin Nano 8GB Developer Kit carrier board and the appropriate wide field of view for each JetBot.
Select an option and get the parts specified.
"},{"location":"bill_of_materials_orin.html#option-1-default-imx219-175-degree-fov-camera","title":"Option 1 (default) - IMX219 175-degree FoV camera","text":"Part Quantity Cost URL Notes Camera 1 $19.99 ArduCam, Amazon ArduCam B0392 - IMX219 175-degree"},{"location":"bill_of_materials_orin.html#wheels","title":"Wheels","text":"You need wheels with a \"TT\" motor shaft connector for each JetBot. Select an option and get the parts specified.
"},{"location":"bill_of_materials_orin.html#option-1-60mm","title":"Option 1 - 60mm","text":"Part Quantity Cost URL Notes Wheel 2 $5.00 Adafruit 60mm diameter Caster base 1 -- STL file for 60mm wheel Caster shroud 1 -- STL file for 60mm wheel"},{"location":"bill_of_materials_orin.html#option-2-65mm","title":"Option 2 - 65mm","text":"Part Quantity Cost URL Notes Wheel 2 $3.00 Adafruit 65mm diameter Caster base 1 -- STL file for 65mm wheel Caster shroud 1 -- STL file for 65mm wheel"},{"location":"bill_of_materials_orin.html#assembly-hardware","title":"Assembly Hardware","text":"You need the following parts to build JetBot. They come in packs, so order the quantity you need for the number of JetBots you are going to build.
Part Qty per JetBot Qty per pack Cost per JetBot URL Notes Adhesive Strips (Poster Strips) 2 60 $0.14 Amazon M2 screw 20 100 $1.40 Amazon 8mm long, self tapping M3 screw 4 60 $0.47 Amazon 25mm long M3 nut 4 150 $0.20 Amazon Jumper wires 4 40 $0.56 Amazon Female-female, ~20cm"},{"location":"getting_started.html","title":"Getting Started","text":""},{"location":"getting_started.html#step-1-pick-your-vehicle","title":"Step 1 - Pick your vehicle!","text":"To get started with JetBot, first pick your vehicle (hardware) you want to make.
For details of NVIDIA-designed open-source JetBot hardware, check Bill of Materials page and Hardware Setup page.
To find kits available from third parties, check Third Party Kits page.
"},{"location":"getting_started.html#step-2-setup-your-jetbot","title":"Step 2 - Setup your JetBot","text":"After you've decided which vehicle you want to build, you'll need to source the parts and follow the setup instructions. After that, you're ready to move on to the JetBot examples!
"},{"location":"getting_started.html#option-1-diy-jetbot-kit","title":"Option 1 - DIY JetBot Kit","text":"To get started with the DIY open-source JetBot, follow these steps.
Get the parts from the bill of materials.
Follow the hardware setup
Follow the software setup
Third party JetBot kits may have different setup instructions from the DIY JetBot. To get started with a third party jetbot, we recommend referring to the third party kit's setup instructions for details on how to setup.
Check out the Third Party Kits page for links and information related to third party kits.
"},{"location":"getting_started.html#step-3-follow-the-examples","title":"Step 3 - Follow the examples","text":"JetBot comes with many examples to teach robotics and AI basics. These give you the experience you need to begin exploring your own applications with JetBot.
"},{"location":"getting_started.html#example-1-basic-motion","title":"Example 1 - Basic Motion","text":"The Basic Motion example teaches you how to program JetBot from your web browser with basic motor controls.
"},{"location":"getting_started.html#example-2-teleoperation","title":"Example 2 - Teleoperation","text":"The Teleoperation example teaches you how to stream live images from JetBot and control JetBot with a gamepad attached to your laptop.
"},{"location":"getting_started.html#example-3-collision-avoidance","title":"Example 3 - Collision Avoidance","text":"The Collision Avoidance example teaches you how to collect data and train a custom Image Classification model to enable JetBot to avoid collisions in a variety of scenarios. The method learned here can be extended to recognize arbitrary classes of image, which can be extended far beyond JetBot!
"},{"location":"getting_started.html#example-4-road-following","title":"Example 4 - Road Following","text":"The Road Following example teaches you how to collect data and train a custom Image Regression model to enable JetBot to follow a road. The method learned here can be extended to detect an arbitrary x, y coordinate in an image, which extends far beyond JetBot!
"},{"location":"getting_started.html#example-5-object-following","title":"Example 5 - Object Following","text":"The Object Following teaches you how to use a pre-trained object detection model for following an object, like a person, cup, or dog. The pre-trained network you'll learn to use here can be used for a variety of new AI projects.
"},{"location":"getting_started.html#and-more","title":"And more!","text":"Take the examples, modify them, make JetBot do something new, or create an entirely new AI project of your own.
If you do something cool with JetBot, let us know!
Happy JetBotting :)
"},{"location":"hardware_setup.html","title":"Hardware Setup","text":"This page details the hardware setup instructions for creating JetBot
"},{"location":"hardware_setup.html#tools-needed","title":"Tools needed","text":"To build JetBot you'll need the following tools
Pliers
Wire flush cutters/wire stripper
Remove support material from motor sockets using pliers
Remove support material from all surfaces, openings and screw holes using pliers, tweezers, and/or fingernails
Cut and remove the zip tie from each motor
Tuck the wires beneath transparent band to prevent stress on solder joints
Break away 3-pin and 2-pin male headers from header link that comes with motor driver package
Join two of the screw terminal blocks to create a 4-pin screw terminal
Solder the 2-pin and 3-pin male headers to motor driver
WarningPay careful attention to the position of the 3-pin header. It is offset by 1-pin from the corner.
Select the depicted micro USB from the pack
WarningPay careful attention to the image. The cables are not identical. The other micro USB cable will be used to power the Jetson Nano. Using the wrong power cable for Nano will block it's Ethernet port.
Cut the depicted cable roughly ~20cm from the type-A terminal
Route the spliced cable through chassis
Secure exposed red (+) and black (-) wires to the power terminals on motor driver
WarningPay attention to the markings on the motor driver. Incorrect wiring could damage the driver.
Route the spliced cable under the motor driver to organize and prevent stress on screw terminal
Secure left and right motor wires to motor screw terminals
InfoNotice (3/11/2019): We made a slight mistake: the red and black wires for the left and right motor are actually flipped in the image shown above. This will not cause damage, but the motors will spin backwards. Please flip them to the correct orientation.
Skip this step if you are using a USB WiFi dongle instead of the M.2 WiFi module
Secure one patch antenna to the underside of top plate
Secure the other patch antenna at edge of battery bay
Skip this step if you are using a USB WiFi dongle instead of the M.2 WiFi module
Remove standoff screws from Jetson Nano module
Release the side latches of SODIMM connector using hands
Skip this step if you are using a USB WiFi dongle instead of the M.2 WiFi module
Attach developer kit to chassis using self taping screws
Snap antennae on to WiFi module using fingers
Place the caster ball inside of shroud
Insert the caster base into shroud, securing the ball
TipDepending on how the print turns out, the ball socket enclosure may fit too tight. If this is the case, you can easily use a file to remove some excess material.
Attach the assembled caster onto the chassis with self taping screws
Secure the 6-pin right angle header to PiOLED display by some method
Solder the pins depicted (3.3V, SDA, SCL, and GND solder seen when zoomed in on right image)
WarningThe pins are close to the display screen, be careful to avoid the screen with soldering iron tip.
Select 4 wire segment of female-female jumper cables.
InfoWe use brown, red, orange, yellow segment. You can map the colors accordingly.
Attach 3.3V (red), GND (brown), SDA (orange), and SCL (yellow) to motor driver as shown
Attach red, brown, orange and yellow wires to right angle header as depicted
WarningPay close attention! Reversing the red / brown wires could damage the system.
Attach the camera to the camera mount using 4x self tapping screws
Attach the camera mount to chassis with 4x self tapping screws
Peel off the original camera sensor
Remove any excess adhesive material
Attach double sided adhesive tabs to each end of battery, leaving some tab exposed
Holding robot upside down, slide battery into battery bay
Once finished, your JetBot should look similar to this.
"},{"location":"third_party_kits.html","title":"Third Party Kits","text":"In addition to the open-source DIY version, several third party JetBot kits using Jetson Nano have emerged. This page details the kits that we're aware of
NotePlease note, we do not officially maintain these kits in this GitHub project. Please refer to the vendor's documentation. Please refer to the vendor URL for cost and availability. Some kits may have additional vendors that we aren't aware of or haven't listed yet. If you think these would be helpful for other developers to know, please let us know.
"},{"location":"third_party_kits.html#waveshare-jetbot","title":"Waveshare JetBot","text":"Kit URL WaveShare JetBot Kit Amazon.com, Waveshare.com, Waveshare.net(\u4e2d\u6587) WaveShare JetBot Kit (includes Jetson Nano Dev Kit) Amazon.com, Waveshare.com, Waveshare.net(\u4e2d\u6587)"},{"location":"third_party_kits.html#links","title":"Links","text":"In this notebook we'll control JetBot by programming from a web browser.
Connect to your robot by navigating to http://<jetbot_ip_address>:8888
Sign in with the default password jetbot
~/Notebooks/basic_motion/
basic_motion.ipynb
notebookJetBot will physically move in this notebook, make sure it has enough space to move around.
"},{"location":"examples/collision_avoidance.html","title":"Collision Avoidance","text":"In this example we'll collect an image classification dataset that will be used to help keep JetBot safe! We'll teach JetBot to detect two scenarios free
and blocked
. We'll use this AI classifier to prevent JetBot from entering dangerous territory.
http://<jetbot_ip_address>:8888
jetbot
Kernel
-> Shutdown All Kernels...
~/Notebooks/collision_avoidance/
data_collection.ipynb
notebookWe provide a pre-trained model so you can skip to step 3 if desired. This model was trained on a limited dataset using the Raspberry Pi V2 Camera with wide angle attachment.
"},{"location":"examples/collision_avoidance.html#step-2-train-neural-network","title":"Step 2 - Train neural network","text":""},{"location":"examples/collision_avoidance.html#option-1-train-on-jetson-nano","title":"Option 1 - Train on Jetson Nano","text":"http://<jetbot_ip_address>:8888
jetbot
~/collision_avoidance
train_model_resnet18.ipynb
notebooktrain_model_resnet18.ipynb
notebookhttps://<jetbot_ip_address>:8888
~/Notebooks/road_following
live_demo_resnet18_build_trt.ipynb
notebook to optimize the model with TensorRThttp://<jetbot_ip_address>:8888
jetbot
Kernel
-> Shutdown All Kernels...
~/Notebooks/collision_avoidance
live_demo_resnet18_trt.ipynb
notebook to run the optimized modelJetBot will physically move in this notebook, make sure it has enough space to move around.
"},{"location":"examples/community_examples.html","title":"Community Examples","text":"Here you can find community examples and extensions of JetBot.
"},{"location":"examples/community_examples.html#combined-collision-avoidance-and-road-following","title":"Combined Collision Avoidance and Road Following","text":"This example by @abuelgasimsaadeldin combines the JetBot road following and collision avoidance examples into a combined application. Watch your JetBot follow the road, while simulataneously avoiding traffic collisions.
Please note that example for now only works with the SD card image based software setup.
In this example we'll have JetBot follow an object using a pre-trained model capable of detecting common objects likePerson
, Cup
, and Dog
. While doing this, JetBot will run the collision avoidance model from Example 3 to make sure it stays safe!
Download the object detection model according to the table below
JetBot SD Card Version Model v0.3 ssd_mobilenet_v2_coco.engine v0.4 (latest) ssd_mobilenet_v2_coco.enginePlease note, the latest object detection engine targets Jetson Nano running software bundled with JetPack 4.3. This engine not be compatible with other versions of JetPack. For this reason, we recommend starting from the JetPack 4.3 JetBot SD Card image, or using the JetPack 4.3 base SD card image if you want to run the object detection example.
Connect to your robot by navigating to http://<jetbot_ip_address>:8888
Shutdown all other running notebooks by selecting Kernel
-> Shutdown All Kernels...
~/Notebooks/object_following/
Upload the pre-trained ssd_mobilenet_v2_coco.engine
model to this folder
This example also uses the collision avoidance model from example 3. We assume that it is already located at ~/Notebooks/collision_avoidance/best_model.pth
Open and follow the live_demo.ipynb
notebook
Start cautious and give JetBot enough space to move around.
In this example we'll collect an image regression dataset that will enable JetBot to follow a road! We'll teach JetBot to detect a target x, y
image coordinate that the JetBot will chase. As JetBot gets closer to the point, it moves further along the track.
http://<jetbot_ip_address>:8888
jetbot
Kernel
-> Shutdown All Kernels...
~/Notebooks/road_following/
data_collection.ipynb
notebookhttp://<jetbot_ip_address>:8888
jetbot
~/Notebooks/road_following
train_model.ipynb
notebookConnect to a GPU machine with PyTorch installed and a Jupyter Lab server running
Upload the road following avoidance training notebook to this machine
train_model.ipynb
notebookhttps://<jetbot_ip_address>:8888
jetbot
Kernel
-> Shutdown All Kernels...
~/Notebooks/road_following
live_demo_build_trt.ipynb
notebook to optimize the model with TensorRThttp://<jetbot_ip_address>:8888
jetbot
Kernel
-> Shutdown All Kernels...
~/Notebooks/road_following
live_demo_trt.ipynb
notebook to run the optimized modelStart cautious and give JetBot enough space to move around.
"},{"location":"examples/teleoperation.html","title":"Teleoperation","text":"InfoThis example requires a gamepad controller connected to your laptop/workstation.
In this example we'll drive JetBot remotely, view live streaming video, and save snapshots!
Connect to your robot by navigating to http://<jetbot_ip_address>:8888
Sign in with the default password jetbot
Kernel
-> Shutdown All Kernels...
~/Notebooks/teleoperation/
teleoperation.ipynb
notebookThis page provides various information related to using docker with JetBot.
"},{"location":"reference/docker_tips.html#establishing-access-to-the-docker-host-terminal","title":"Establishing access to the Docker host terminal","text":"The Jupyter Lab is running in the Docker container, thus the Terminal you open on Jupyter Lab only have access to the container environment. This means you cannot use commands like nvpmodel
, tegrastats
, journalctl
, systemctl
and others.
To get around this limitation, you can actually SSH in to the Docker host machine by;
ssh jetbot@0.0.0.0\n
"},{"location":"reference/docker_tips.html#using-nvidia-gpu-cloud-ngc","title":"Using Nvidia GPU Cloud (NGC)","text":"The standard JetBot containers are hosted on docker hub, but for development or testing purposes, you may wish to use Nvidia GPU Cloud. To access containers on NGC, you need to sign into the NGC registry. To do this:
Log into ngc.nvidia.com
Generated your API Key
On your Jetson, sign into the NGC registry using the generated key
$ sudo docker login nvcr.io\n\nUsername: $oauthtoken\nPassword: <Your Generated Key>\n
For the username, enter $oauthtoken
exactly as shown. It is a special authentication token for all users.
The argument you provide to the enable.sh script is mounted as a volume inside the docker container. Inside the docker container, this volume is located at /workspace. Any changes that you make inside this directory will be saved outside of the docker container. To use a different directory as the workspace for the Jupyter contianer, just provide the path as an argument when calling enable.sh. For example, to set the workspace to your home directory, you would do
cd jetbot/docker\n./enable.sh $HOME\n
"},{"location":"reference/docker_tips.html#disabling-containers","title":"Disabling containers","text":"Once you execute the enable.sh
script, the containers are set to restart automatically. This means you can shut down your Jetson, and when you reboot the containers will run and you don't need to repeat this process.
To prevent the containers from starting automatically, just call the disable.sh script.
cd ~/jetbot/docker\n./disable.sh\n
"},{"location":"software_setup/docker.html","title":"Software Setup (Docker)","text":"This page details how to set up JetBot using the pre-built JetBot docker containers. This is the best option if you want to use JetBot with an existing Jetson Nano SD card image.
NotePlease note, the JetBot containers described in this page currently target a Jetson Nano SD card image flashed with JetPack 4.4. These containers will not work with other version of JetPack.
"},{"location":"software_setup/docker.html#step-1-setup-jetson-nano","title":"Step 1 - Setup Jetson Nano","text":"If you haven't already, go through the initial setup of Jetson Nano. You can use your existing Jetson Nano set up (microSD card), as long as you have enough storage space left.
HintFor this, we'll assume you've set up your Jetson Nano using the online Getting Started guide.
If you haven't already, connect your Jetson Nano to your Wi-Fi network.
Follow this Wi-Fi setup guide.
"},{"location":"software_setup/docker.html#step-3-clone-jetbot-repo","title":"Step 3 - Clone JetBot repo","text":"Clone the official JetBot GitHub repo.
git clone http://github.com/NVIDIA-AI-IOT/jetbot.git\n
"},{"location":"software_setup/docker.html#step-4-configure-system","title":"Step 4 - Configure System","text":"First, call the scripts/configure_jetson.sh
script to configure the power mode and other parameters.
cd jetbot\n./scripts/configure_jetson.sh\n
Hint configure_jetson.sh
also disables the GUI for the interest of saving system memory (DRAM) consumption. If you want to re-enable the GUI, you can execute the following command.
sudo systemctl set-default graphical.target\n
Optionally, you can execute this script (./scripts/re_enable_gui.sh
).
Then, call the scripts/enable_swap.sh
script to enable swap memory if not set. Having extra 4GB swap memory is recommended even on Jetson Nano (4GB) Developer Kit.
./scripts/enable_swap.sh\n
"},{"location":"software_setup/docker.html#step-5-enable-all-containers","title":"Step 5 - Enable all containers","text":"Call the following to enable the JetBot docker containers
cd docker\n./enable.sh $HOME # we'll use home directory as working directory, set this as you please.\n
Now you can go to https://<jetbot_ip>:8888
from a web browser and start programming JetBot!
You can do this from any machine on your local network. The password to log in is jetbot
.
The enable.sh
script causes the docker containers to restart at boot. This means the next time you power on your JetBot, the containers will automatically start, and you should see the IP address displayed on the PiOLED display screen. All you need to do is type this into your web browser and start programming!
For more information on configuring and using docker with JetBot, check out the Docker Tips page.
Now that you've finished setting up you're JetBot, you're ready to run through the examples!
"},{"location":"software_setup/native_setup.html","title":"Native JetBot Setup (without Docker)","text":"This page details how you can configure your Jetson system to use JetBot without Docker. This is handy when you want to prototype without worrying about docker semantics, or have other reasons to work outside of a docker environment
If you see any issues with these instructions or have any questions, please feel free to open an issue on github here.
"},{"location":"software_setup/native_setup.html#instructions","title":"Instructions","text":""},{"location":"software_setup/native_setup.html#step-1-install-dependencies","title":"Step 1 - Install dependencies","text":"Install Node JS to support Jupyter Lab
curl -sL https://deb.nodesource.com/setup_10.x | bash -\nsudo apt-get install -y nodejs libffi-dev\n
Install Jupyter Lab to support web-programming JetBot
sudo python3 -m pip install jupyter jupyterlab\njupyter labextension install @jupyter-widgets/jupyterlab-manager\n
Install Jupyter Clickable Image widget (to support road following example).
sudo apt-get install -y libssl1.0-dev && \\\ngit clone https://github.com/jaybdub/jupyter_clickable_image_widget && \\\ncd jupyter_clickable_image_widget && \\\ngit checkout tags/v0.1 && \\\nsudo pip3 install -e . && \\\njupyter labextension install js && \\\njupyter lab build\ncd ..\n
Install other miscellaneous dependencies
sudo apt-get update && apt-get install -y supervisor unzip\nsudo apt install -y python3-smbus && pip3 install pyzmq\n
(optional) Install torch2trt to support TensorRT accelerated AI models
git clone https://github.com/NVIDIA-AI-IOT/torch2trt\ncd torch2trt\npython3 setup.py install\ncd ..\n
Install the JetBot Python package
git clone https://github.com/NVIDIA-AI-IOT/jetbot\ncd jetbot\nsudo python3 setup.py install\n# if you plan to modify the jetbot python package, call this instead: sudo python3 setup.py develop\n
Call the following from a terminal
jupyter notebook password\n# enter password\n
You could now test the JetBot notebooks by running
cd jetbot\njupyter lab --ip=0.0.0.0 --no-browser --allow-root\n
and then navigating to https://<jetbot_ip>:8888
and signing in with the password you set.
However, it is convenient to have this server start automatically, which we will detail next.
"},{"location":"software_setup/native_setup.html#step-3-create-a-system-service-to-start-the-jupyter-lab-server-at-boot","title":"Step 3 - Create a system service to start the Jupyter Lab server at boot","text":"Create file named jetbot_jupyter.service
and add the following content.
[Unit]\nDescription=Jupyter Notebook \n\n[Service]\nType=simple\nUser=jetson\nExecStart=/bin/sh -c \"jupyter lab --ip=0.0.0.0 --no-browser --allow-root\"\nWorkingDirectory=/home/jetson\nRestart=Always\n\n[Install]\nWantedBy=multi-user.target\n
Note: If you have a username other than \"jetson\" or want to launch Jupyter from a directory other than \"/home/jetson\", modify the file \"User\" and \"WorkingDirectory\" fields accordingly.
Copy the file to the directory /etc/systemd/system
so it can be discovered as a system service.
sudo cp jetbot_jupyter.service /etc/systemd/system/jetbot_jupyter.service\n
Enable the system service to run at boot
sudo systemctl enable jetbot_jupyter\n
Now, when you re-boot your Jetson, the Jupyter lab server should start in the background.
That's great, but in order to connect to the server, you need to know it's IP address. The last step will be to enable a system service that displays the IP address on the JetBot's PiOLED display upon boot.
"},{"location":"software_setup/native_setup.html#step-4-create-system-service-to-show-the-ip-address-upon-boot","title":"Step 4 - Create system service to show the IP address upon boot","text":"This is very similar to creating a service for the Jupyter Lab server, we're just changing the application that's launched
Create a file named jetbot_display.service
and add the following content.
[Unit]\nDescription=Jupyter Notebook \n\n[Service]\nType=simple\nUser=jetson\nExecStart=/bin/sh -c \"python3 -m jetbot.apps.stats\"\nWorkingDirectory=/home/jetson\nRestart=Always\n\n[Install]\nWantedBy=multi-user.target\n
Copy the file to the directory /etc/systemd/system
so it can be discovered as a system service.
sudo cp jetbot_display.service /etc/systemd/system/jetbot_display.service\n
Enable the system service to run at boot
sudo systemctl enable jetbot_display\n
That's it! Now you should be able to reboot the JetBot, and it's IP address should automatically show up on the PiOLED display.
We hope this helps you create a custom native system configuration for using JetBot. If you have any questions or see any issues with this guide, please create an issue on GitHub.
Happy hacking!
"},{"location":"software_setup/sd_card.html","title":"Software Setup (SD Card Image)","text":"Note
JetBot was originally designed with Jetson Nano Developer Kit, which was discontinued.
For those newly starting, we recommend planning the JetBot assembly with Jetson Orin Nano 8GB Developer Kit. The Bill of Materials for Orin version of JetBot is laid out on Bill of Materials (Orin) page.
Please note that, currently, the software for the Orin version of JetBot is still work in progress.
This page details how to set up JetBot using the pre-built JetBot SD card image. You may prefer this option if you are new to Jetson Nano, and do not have an existing SD card configured.
"},{"location":"software_setup/sd_card.html#step-1-download-the-pre-built-jetbot-sd-card-image","title":"Step 1 - Download the pre-built JetBot SD card image","text":"Download the pre-built JetBot SD card image from the table below. Make sure to select the version that matches the Jetson you're using (for example Jetson Nano 2GB).
Good News
10/7/2024:
The JetBot image files have been successfully moved to a different server and are now available again.
If you experienced any issues accessing the files over the past two weeks, please try downloading them again.
"},{"location":"software_setup/sd_card.html#latest-release","title":"Latest Release","text":"Platform JetPack Version JetBot Version Download MD5 Checksum Jetson Nano 2GB 4.5 0.4.3 jetbot-043_nano-2gb-jp45.zip e6dda4d13b1b1b31f648402b9b742152 Jetson Nano (4GB) 4.5 0.4.3 jetbot-043_nano-4gb-jp45.zip 760b1885646bfad8590633acca014289 AttentionTo use one of the JetBot sdcard images based on JetPack 4.5, you first need to boot your Jetson Nano using a plain JetPack 4.5 SD card image and run through the operating system setup. This will perform a one-time configuration which enables you to use SD card images based on JetPack 4.5 on your device. You can find the original JetPack SD card images here: JetPack SD card image for Jetson Nano 2GB and JetPack SD card image for Jetson Nano (4GB). After doing this procedure once, you can then use the JetPack 4.5 based JetBot SD card images listed above on your device.
"},{"location":"software_setup/sd_card.html#old-releases","title":"Old releases","text":"Platform JetPack Version JetBot Version Download Jetson Nano (4GB) 4.2 0.3.2 jetbot_image_v0p3p2.zip"},{"location":"software_setup/sd_card.html#step-2-flash-jetbot-image-onto-sd-card","title":"Step 2 - Flash JetBot image onto SD card","text":"Insert an SD card into your desktop machine
Using Etcher, select the image you downloaded above and flash it onto the SD card.
Remove the SD card from your desktop machine
Insert the SD card into your Jetson Nano (the micro SD card slot is located under the module)
Connect the monitor, keyboard, and mouse to the Nano
Power on the Jetson Nano by connecting the micro USB (for Jetson Nano (4GB)) or USB-C (for Jetson Nano 2GB) charger to the port
AttentionWe recommend first booting the Jetson Nano once without the piOLED / motor driver connected.
This way you can check to make sure the system boots properly from the SD card image without worrying about hardware issues. After you've verified that it boots, reconnect the piOLED, double check your wiring, and boot again.
Next you'll need to connect to WiFi. To reduce memory consumption, we disable the Ubuntu GUI in the latest JetBot SD card image. For this reason, you'll need to use the command line to connect to WiFi.
Log in using the user jetbot
and password jetbot
Connect to a WiFi network using the following command
sudo nmcli device wifi connect <SSID> password <PASSWORD>\n
Your Jetson Nano should now automatically connect to the WiFi at boot and display it's IP address on the piOLED display.
TipIf you're having trouble figuring out how to get connected to Wi-Fi, check out the Wi-Fi setup page for more detailed instructions
"},{"location":"software_setup/sd_card.html#step-5-connect-to-jetbot-from-web-browser","title":"Step 5 - Connect to JetBot from web browser","text":"After your robot is connected to WiFi, you no longer need to have the robot connected by a monitor. You can connect to the robot from your laptop's web browser by performing the following steps
Shutdown JetBot using the command line
sudo shutdown now\n
Unplug your HDMI monitor, USB keyboard, mouse and power supply from Jetson Nano
Power the JetBot from the USB battery pack by plugging in the micro-USB cable
<jetbot_ip_address>
in the next commandhttp://<jetbot_ip_address>:8888
from your desktop's web browser. You can do this from any machine on your local network. jetbot
.That's it, you've now accessed JetBot's remote programming environment!
You will be presented with a view similar to the following.
Here you can easily access the JetBot examples! From this point on, when you power on the JetBot, it should automatically connect to WiFi and display it's IP address. So all you need to do is reconnect using your web browser to start programming!
Now that you're finished setting up your JetBot, you're ready to run the examples.
"},{"location":"software_setup/wifi_setup.html","title":"Wi-Fi connection setup","text":"InfoYou can skip this page if you already have a wireless connection to your JetBot from your computer.
To go through the actual example applications on JetBot, you interact with JetBot from your (laptop) PC through Wi-Fi network.
This document explains how you can initially set up the Wi-Fi connection on your Jetson.
"},{"location":"software_setup/wifi_setup.html#monitor-attached-mode","title":"Monitor-attached Mode","text":"The easiest way to set up the Wi-Fi connection on your Jetson, is to operate on the GUI desktop. For this you need to fisrt connect the following to the Jetson on your JetBot.
With this setup, you can use Jetson like a standard Linux computer. We call this Monitor-attached Mode.
HintIf you don't have above items handy, then you can also try the headless way of configuring Wi-Fi. Head down to the next section, Headless Mode.
"},{"location":"software_setup/wifi_setup.html#connect-to-wi-fi-ap","title":"Connect to Wi-Fi AP","text":"If a Wi-Fi adaptor (either Intel 8265 M.2 card or a USB Wi-Fi dongle) is attached, you can configure the wireless network from the desktop.
"},{"location":"software_setup/wifi_setup.html#check-ip-address","title":"Check IP address","text":"After the connection established, check the IP address.
Note this IP address.
"},{"location":"software_setup/wifi_setup.html#verify-the-ip-address","title":"Verify the IP address","text":"To test the IP address is valid and your Jetson is accesible, try connecting to the IP address from your separate (laptop) PC.
SSH server is enabled by default on Jetson. Open your SSH client software (PuTTY, etc) on your PC, and try to connect the SSH server on the IP address.
This is how you connect to your JetBot using SSH client software. Once you confirm you can connect to your Jetson remotely from your PC via Wi-Fi, you can now remove the HDMI monitor, keyboard and mouse from Jetson, and let your JetBot free!
And at this point, you are now using Jetson effectively in the Headless Mode.
HintAlternatively, even on the GUI deskop, you can open the terminal by pressing Ctrl
+ Alt
+ T
keys, and follow the command-line based setup described below for headless setup.
When you put your Jetson in a deployed system, like a mobile robot, it is often difficult to attach an HDMI monitor. We can still control such Jetson remotely through network from a (laptop) PC, WHEN you already know the IP address. We call this operation mode Headless Mode.
However you face a chiken-or-egg dillemna here, because you want to remotely login to the console to set up a Wi-Fi connection, but to do that you first need the IP address of your Jetson that you get after establishing the Wi-Fi connecton.
"},{"location":"software_setup/wifi_setup.html#usb-device-mode","title":"USB Device Mode","text":"What comes handy here is USB Device Mode.
You connect your (laptop) PC and Jetson using a Micro-USB cable. (Type-A end goes to your PC, Micro-B end goes to Jetson) Using this wired connection, you can access the terminal on Jetson from your (laptop) PC.
With USB Device Mode, Jetson presents 3 different USB Device Class end-points to the PC that it got connected to. They function as
L4T-README
drive mounted on your PC, like a USB thumbdrive)With the virtual Ethernet adapter functinality, Jetson forms a virutal local Ethernet network with Jetson being 192.168.55.1
and your PC being 192.168.55.100
. So you can actually SSH login from your (laptop) PC by specifying 192.168.55.1
, if you have already set up your acount (with username and password).
If you are using Jetson for the first time right after you flash your SD card, then you don't have this user account set up. In that case, you want to use the USB serial functinality, and use your serial terminal software on your PC to have accesss to the Jetson's serial terminal.
So either way, with a Micro USB cable, you can have an access to Jetson's terminal.
"},{"location":"software_setup/wifi_setup.html#connect-wi-fi-using-nmcli-command","title":"Connect Wi-Fi usingnmcli
command","text":"If a Wi-Fi adaptor (either Intel 8265 M.2 card or a USB Wi-Fi dongle) is attached, you can configure the wireless network using nmcli
command.
You can first check if you want a wireless adapter on your system. Look for wlan0
.
$ nmcli device\nDEVICE TYPE STATE CONNECTION\nl4tbr0 bridge connected l4tbr0\nwlan0 wifi disconnected --\neth0 ethernet unavailable --\ndummy0 dummy unmanaged --\nrndis0 ethernet unmanaged --\nusb0 ethernet unmanaged --\nlo loopback unmanaged --\n
Then you can list all the wirelss networks (SSDI) in the area.
$ nmcli device wifi list\nIN-USE SSID MODE CHAN RATE SIGNAL BARS SE\n -- Infra 6 195 Mbit/s 82 \u2582\u2584\u2586\u2588 WP\n -- Infra 6 195 Mbit/s 82 \u2582\u2584\u2586\u2588 WP\n -- Infra 6 195 Mbit/s 75 \u2582\u2584\u2586_ WP\n MY_WIFI_AP Infra 6 195 Mbit/s 70 \u2582\u2584\u2586_ WP\n -- Infra 6 195 Mbit/s 70 \u2582\u2584\u2586_ WP\n ********* Infra 1 405 Mbit/s 64 \u2582\u2584\u2586_ WP\n ************ Infra 153 405 Mbit/s 64 \u2582\u2584\u2586_ WP\n...\n
To connect to your wireless network (AP, access point), issue the commands below.
$ sudo nmcli device wifi connect <MY_WIFI_AP> password <MY_WIFI_PASSWORD>\nDevice 'wlan0' successfully activated with '2a26d5ca-****-****-****-**************'.\n
"},{"location":"software_setup/wifi_setup.html#check-ip-address_1","title":"Check IP address","text":"To check your IP address, use ifconfig
. Check the wlan0
part at the very bottom.
$ ifconfig\ndummy0: flags=195<UP,BROADCAST,RUNNING,NOARP> mtu 1500\n inet6 fe80::d854:8ff:fe87:e631 prefixlen 64 scopeid 0x20<link>\n ether da:54:08:87:e6:31 txqueuelen 1000 (Ethernet)\n RX packets 0 bytes 0 (0.0 B)\n RX errors 0 dropped 0 overruns 0 frame 0\n TX packets 24 bytes 3376 (3.3 KB)\n TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0\n\nl4tbr0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500\n inet 192.168.55.1 netmask 255.255.255.0 broadcast 192.168.55.255\n inet6 fe80::1 prefixlen 128 scopeid 0x20<link>\n inet6 fe80::943c:9dff:fe90:eb89 prefixlen 64 scopeid 0x20<link>\n ether 96:3c:9d:90:eb:89 txqueuelen 1000 (Ethernet)\n RX packets 15189 bytes 1343038 (1.3 MB)\n RX errors 0 dropped 0 overruns 0 frame 0\n TX packets 4344 bytes 411009 (411.0 KB)\n TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0\n\nlo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536\n inet 127.0.0.1 netmask 255.0.0.0\n inet6 ::1 prefixlen 128 scopeid 0x10<host>\n loop txqueuelen 1 (Local Loopback)\n RX packets 3954 bytes 287737 (287.7 KB)\n RX errors 0 dropped 0 overruns 0 frame 0\n TX packets 3954 bytes 287737 (287.7 KB)\n TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0\n\nrndis0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500\n inet6 fe80::943c:9dff:fe90:eb89 prefixlen 64 scopeid 0x20<link>\n ether 96:3c:9d:90:eb:89 txqueuelen 1000 (Ethernet)\n RX packets 15414 bytes 1360470 (1.3 MB)\n RX errors 0 dropped 7 overruns 0 frame 0\n TX packets 4378 bytes 667985 (667.9 KB)\n TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0\n\nusb0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500\n ether 96:3c:9d:90:eb:8b txqueuelen 1000 (Ethernet)\n RX packets 0 bytes 0 (0.0 B)\n RX errors 0 dropped 0 overruns 0 frame 0\n TX packets 0 bytes 0 (0.0 B)\n TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0\n\nwlan0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500\n inet 192.168.1.58 netmask 255.255.255.0 broadcast 192.168.1.255\n inet6 fe80::b5a0:c2e3:50bc:29a4 prefixlen 64 scopeid 0x20<link>\n ether b4:4b:d6:23:9a:12 txqueuelen 1000 (Ethernet)\n RX packets 26825 bytes 40675884 (40.6 MB)\n RX errors 0 dropped 32746 overruns 0 frame 0\n TX packets 16406 bytes 1673647 (1.6 MB)\n TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0\n
"},{"location":"software_setup/wifi_setup.html#verify-the-ip-address_1","title":"Verify the IP address","text":"To test the IP address is valid and your Jetson is accesible, try connecting to the IP address from your separate (laptop) PC under the same network.
Open your SSH client software (PuTTY, etc) on your PC, and try to connect the SSH server using the IP address you obtained on the wireless adapter.
This is how you connect to your JetBot over Wi-Fi. Once you confirm you can connect to your Jetson remotely from your PC via Wi-Fi, you can now remove the Micro USB cable and let your JetBot free!
InfoNext, you move on to either page below.
Once your JetBot software is configure, you should see JetBot's IP address on the small OLED display. You would only need to come back to this step to re-connect to the network or to find the IP address when your JetBot fails to get the IP address and show the current IP address on the OLED display.
"}]} \ No newline at end of file diff --git a/master/sitemap.xml.gz b/master/sitemap.xml.gz index 92379a2e..021ffc67 100644 Binary files a/master/sitemap.xml.gz and b/master/sitemap.xml.gz differ diff --git a/master/software_setup/sd_card.html b/master/software_setup/sd_card.html index 6d132865..5056383c 100644 --- a/master/software_setup/sd_card.html +++ b/master/software_setup/sd_card.html @@ -1012,11 +1012,11 @@This page details how to set up JetBot using the pre-built JetBot SD card image. You may prefer this option if you are new to Jetson Nano, and do not have an existing SD card configured.
Download the pre-built JetBot SD card image from the table below. Make sure to select the version that matches the Jetson you're using (for example Jetson Nano 2GB).
-Atention
-10/4/2024:
-Recently, you may face permission issues when attempting to download the files hosted on Google Drive below.
-We hope to resolve these issues soon.
+Good News
+10/7/2024:
+The JetBot image files have been successfully moved to a different server and are now available again.
+If you experienced any issues accessing the files over the past two weeks, please try downloading them again.
Jetson Nano 2GB | 4.5 | 0.4.3 | -jetbot-043_nano-2gb-jp45.zip | +jetbot-043_nano-2gb-jp45.zip | e6dda4d13b1b1b31f648402b9b742152 |
Jetson Nano (4GB) | 4.5 | 0.4.3 | -jetbot-043_nano-4gb-jp45.zip | +jetbot-043_nano-4gb-jp45.zip | 760b1885646bfad8590633acca014289 |
Jetson Nano 2GB | -4.4.1 | -0.4.2 | -jetbot-042_nano-2gb-jp441.zip | -||
Jetson Nano (4GB) | -4.4.1 | -0.4.2 | -jetbot-042_nano-4gb-jp441.zip | -||
Jetson Nano 2GB | -4.4.1 | -0.4.1 | -jetbot-041_nano-2gb-jp441.zip | -||
Jetson Nano (4GB) | -4.4.1 | -0.4.1 | -jetbot-041_nano-4gb-jp441.zip | -||
Jetson Nano (4GB) | -4.3 | -0.4.0 | -jetbot_image_v0p4p0.zip | -||
Jetson Nano (4GB) | 4.2 | 0.3.2 | -jetbot_image_v0p3p2.zip | +jetbot_image_v0p3p2.zip |