Coder Social home page Coder Social logo

jetbot's Introduction

JetBot

Looking for a quick way to get started with JetBot? Many third party kits are now available!

JetBot is an open-source robot based on NVIDIA Jetson Nano that is

  • Affordable - Less than $150 add-on to Jetson Nano
  • Educational - Tutorials from basic motion to AI based collision avoidance
  • Fun! - Interactively programmed from your web browser

Building and using JetBot gives the hands on experience needed to create entirely new AI projects.

To get started, read the JetBot documentation.

Get involved

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...

jetbot's People

Contributors

ak-nv avatar bezineb5 avatar dingooz avatar ebuehrle avatar jaybdub avatar lukewebdev avatar nv-cupright avatar santaimpersonator avatar tokk-nv avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

jetbot's Issues

GPIO & Adafruit MotorHat

Hi. I see that the Jetbot is using the Adafruit MotorHat library, which was originally designed for the Raspberri Pi. I'm currently running into issues trying to get the RPi.GPIO library to work. I was wondering if you had any pointers on how to get the Python RPi GPIO libs to work on the Jetson Nano? Are there packages to install, etc?

Is the 3D model open source?

A 60 mm diameter TT motor tire was not found on the Chinese e-commerce website. This is not a common commodity. The 65mm diameter TT motor tires are very numerous and have been widely used in various intelligent robot cars. So I want to modify the 3D model to fit the 65mm wheel.
thanks.

Jupyter fails to initialize camera...most of the times

I have assembled my jetbot with all the recommended hardware, including a Raspberry Pi Camera V2.
The jetbot works and I have been able to follow the examples provided. Unfortunately, most of the times the camera is needed, the notebook fails to activate it. The instruction that creates trouble is "camera = Camera.instance()". When I try to run this cell, jupyter enters Busy mode and never proceeds. This is true most of the times. Sometimes the instance is created successfully and I am able to proceed. This is also true after a fresh reboot.
Any suggestions as to what might be wrong?

object_following/live_demo.ipynb does not close nvargus CaptureSession, disabling creating CaptureSession for the 2nd time

object_following/live_demo.ipynb often runs into a state where you cannot re-open camera unless you restart nvargus_daemon.

`journalctl' shows the following error.

Mar 13 14:47:08 jetbot sh[3626]: [I 14:47:08.986 LabApp] Kernel shutdown: 8aba3827-531e-4440-bd05-ce4b4819e05d
Mar 13 14:47:09 jetbot sh[3626]: [W 14:47:09.035 LabApp] Got events for closed stream None
Mar 13 14:47:09 jetbot sh[3626]: [I 14:47:09.067 LabApp] Saving file at /Notebooks/object_following/live_demo.ipynb
Mar 13 14:47:09 jetbot nvargus-daemon[26778]: === python3[26820]: Connection closed (7FA1F661D0)=== python3[26820]: WARNING: CameraProvider was not destroyed before client connection terminated.=== python3[26820]:          The client may have abnormally terminated. Destroying CameraProvider...=== python3[26820]: CameraProvider destroyed (0x7f9c810030)=== python3[26820]: WARNING: Cleaning up 1 outstanding requests...=== python3[26820]: WARNING: Cleaning up 1 outstanding streams...SCF: Error Timeout:  (propagating from src/services/gl/EGLStreamProducer.cpp, function getBuffer(), line 349)
Mar 13 14:47:09 jetbot nvargus-daemon[26778]: (NvCameraUtils) Error InvalidState: Mutex has not been initialized (in Mutex.cpp, function unlock(), line 88)
Mar 13 14:47:09 jetbot nvargus-daemon[26778]: SCF: Error Timeout:  (propagating from src/components/CaptureContainerImpl.cpp, function assignAllBuffersFromStream(), line 230)
Mar 13 14:47:09 jetbot nvargus-daemon[26778]: SCF: Error Timeout:  (propagating from src/components/stages/CCDataSetupStage.cpp, function doHandleRequest(), line 68)
Mar 13 14:47:09 jetbot nvargus-daemon[26778]: SCF: Error Timeout:  (propagating from src/components/stages/OrderedStage.cpp, function doExecute(), line 158)
Mar 13 14:47:09 jetbot nvargus-daemon[26778]: SCF: Error Timeout: Sending critical error event (in src/api/Session.cpp, function sendErrorEvent(), line 990)
Mar 13 14:47:10 jetbot nvargus-daemon[26778]: === python3[26820]: WARNING: Cleaning up 1 outstanding stream settings...=== python3[26820]: WARNING: Cleaning up 1 outstanding sessions...(Argus) Error InvalidState: EGLStream not connected (in src/api/PendingRequest.cpp, function fillSCFCaptureRequest(), line 159)
Mar 13 14:47:10 jetbot nvargus-daemon[26778]: (Argus) Error InvalidState:  (propagating from src/api/ScfCaptureThread.cpp, function run(), line 104)
Mar 13 14:47:15 jetbot nvargus-daemon[26778]: waitForIdleLocked remaining request 1587
Mar 13 14:47:15 jetbot nvargus-daemon[26778]: waitForIdleLocked remaining request 1586
Mar 13 14:47:15 jetbot nvargus-daemon[26778]: waitForIdleLocked remaining request 1585
Mar 13 14:47:15 jetbot nvargus-daemon[26778]: SCF: Error Timeout: waitForIdle() timed out (in src/api/Session.cpp, function waitForIdleLocked(), line 920)
Mar 13 14:47:15 jetbot nvargus-daemon[26778]: (Argus) Error Timeout:  (propagating from src/api/CaptureSessionImpl.cpp, function destroy(), line 166)
Mar 13 14:47:15 jetbot sh[3626]: [I 14:47:15.450 LabApp] Kernel started: d2864186-4666-47f6-af34-6967dca77bc7
Mar 13 14:47:19 jetbot sh[3626]: [I 14:47:19.022 LabApp] Adapting to protocol v5.1 for kernel d2864186-4666-47f6-af34-6967dca77bc7
Mar 13 14:47:20 jetbot nvargus-daemon[26778]: waitForIdleLocked remaining request 1587
Mar 13 14:47:20 jetbot nvargus-daemon[26778]: waitForIdleLocked remaining request 1586
Mar 13 14:47:20 jetbot nvargus-daemon[26778]: waitForIdleLocked remaining request 1585
Mar 13 14:47:20 jetbot nvargus-daemon[26778]: SCF: Error Timeout: waitForIdle() timed out (in src/api/Session.cpp, function waitForIdleLocked(), line 920)
Mar 13 14:47:20 jetbot nvargus-daemon[26778]: SCF: Error Timeout:  (propagating from src/api/Session.cpp, function abortCaptures(), line 886)
Mar 13 14:47:20 jetbot nvargus-daemon[26778]: SCF: Error Timeout:  (propagating from src/api/Session.cpp, function shutdown(), line 400)
Mar 13 14:47:20 jetbot nvargus-daemon[26778]: PowerServiceCore:handleRequests: timePassed = 5102
Mar 13 14:47:20 jetbot nvargus-daemon[26778]: SCF: Error Timeout:  (propagating from src/api/Session.cpp, function shutdown(), line 500)


Mar 13 14:47:20 jetbot nvargus-daemon[26778]: SCF: Error Timeout:  (propagating from src/api/CameraDriver.cpp, function deleteSession(), line 619)
Mar 13 14:47:20 jetbot nvargus-daemon[26778]: (Argus) Error Timeout:  (propagating from src/api/CaptureSessionImpl.cpp, function destroy(), line 191)




Mar 13 14:47:46 jetbot NetworkManager[3797]: <info>  [1552513666.4149] connectivity: (l4tbr0) timed out
Mar 13 14:48:09 jetbot nvargus-daemon[26778]: === python3[26820]: NOTE: Destroy all libargus objects before destroying the CameraProvider to avoid these warnings.=== python3[26820]: Connection cleaned up (7FA1F661D0)=== python3[27938]: Connection established (7FA1F661D0)=== python3[27938]: CameraProvider initialized (0x7f9c810470)(Argus) Error InvalidState: CaptureProvider destroyed (in src/api/CameraProviderImpl.cpp, function createCaptureSession(), line 205)
Mar 13 14:48:09 jetbot sh[3626]: Error generated. /dvs/git/dirty/git-master_linux/multimedia/nvgstreamer/gst-nvarguscamera/gstnvarguscamerasrc.cpp, execute:532 Failed to create CaptureSession
Mar 13 14:48:25 jetbot nvargus-daemon[26778]: === python3[27938]: Connection closed (7FA1F661D0)=== python3[27938]: WARNING: CameraProvider was not destroyed before client connection terminated.=== python3[27938]:          The client may have abnormally terminated. Destroying CameraProvider...=== python3[27938]: CameraProvider destroyed (0x7f9c810470)(Argus) Error InvalidState: Object was already destroyed (in src/common/ObjectImpl.cpp, function destroyClientReference(), line 47)

You can execute the cell #5 of collision_avoidance/live_demo.ipynb many times followed after kernel shutdown.

Battery Life

Can anyone comment on the battery life for jetbot? For example, using the recommended battery, how long can jetbot follow an object?
It would be a nice option to have the chassis hold two batteries. One for the Nano and one for the motors.

Pre-trained model

Hello,

I want to use jetbot for a demo not related to IA directly, so I just want it to run autonomously while i'm perfoming some operations on video stream. Could anybody share the pre-trained model for obstacle avoidance? I'm really lacking time to produce dataset and train it by myself.

Thank you!

Timeline of the availability of spi and i2s function on board

Hi, has anyone down here got information of if and when the spi and i2s would be available to program on Jetson Nano?

I was able to use Jetson.GPIO and Adafruit Blinka to work on GPIOs and two I2C buses on Jetson Nano. It is very convenient. I am planning to tap into the programming of spi and i2s but realized the lib was not ready yet. And I think uart is not ready either, though I haven't tested yet.

Thanks!

iwlwifi - Microcode SW error detected after upgrade

After running 'sudo apt-get update && sudo apt-get upgrade, the Wif-Fi connection stopped working and I was not able to connect remotely to the Nano - JetBot. Booting the board with an HDMI connection and barrel jack power adapter, I see the following iwlwifi errors from dmesg.
NOTE: The WiFi module is a : Intel Dual Band Wireless-Ac 8265 W/Bt


[   12.700367] iwlwifi 0000:01:00.0: Direct firmware load for iwlwifi-8265-23.ucode failed with error -2
[   12.711193] iwlwifi 0000:01:00.0: Falling back to user helper
[   12.836779] iwlwifi 0000:01:00.0: loaded firmware version 22.391740.0 op_mode iwlmvm
[   12.964357] Bluetooth: hci0: Bootloader revision 0.0 build 26 week 38 2015
[   12.965623] Bluetooth: hci0: Device revision is 16
[   12.965627] Bluetooth: hci0: Secure boot is enabled
[   12.965631] Bluetooth: hci0: OTP lock is enabled
[   12.965633] Bluetooth: hci0: API lock is enabled
[   12.965636] Bluetooth: hci0: Debug lock is disabled
[   12.965640] Bluetooth: hci0: Minimum firmware build 1 week 10 2014
[   12.967338] usbcore: registered new interface driver btusb
[   12.978468] iwlwifi 0000:01:00.0: Detected Intel(R) Dual Band Wireless AC 8265, REV=0x230
[   12.978990] Bluetooth: hci0: Found device firmware: intel/ibt-12-16.sfi
[   12.983818] iwlwifi 0000:01:00.0: L1 Enabled - LTR Enabled
[   12.985051] iwlwifi 0000:01:00.0: L1 Enabled - LTR Enabled
[   13.117997] ieee80211 phy0: Selected rate control algorithm 'iwl-mvm-rs'
[   13.119929] thermal thermal_zone6: failed to read out thermal zone (-5)
[   13.133005] thermal thermal_zone6: Registering thermal zone thermal_zone6 for type iwlwifi
[   13.152191] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
[   13.152205] Bluetooth: BNEP socket layer initialized
[   13.692157] IPv6: ADDRCONF(NETDEV_UP): wlan0: link is not ready
[   13.696068] iwlwifi 0000:01:00.0: L1 Enabled - LTR Enabled
[   13.696696] iwlwifi 0000:01:00.0: L1 Enabled - LTR Enabled
[   13.759033] iwlwifi 0000:01:00.0: Microcode SW error detected.  Restarting 0x2000000.
[   13.766915] iwlwifi 0000:01:00.0: CSR values:
[   13.771332] iwlwifi 0000:01:00.0: (2nd byte of CSR_INT_COALESCING is CSR_INT_PERIODIC_REG)
[   13.779739] iwlwifi 0000:01:00.0:        CSR_HW_IF_CONFIG_REG: 0X00489000
[   13.786663] iwlwifi 0000:01:00.0:          CSR_INT_COALESCING: 0X0000ff40
[   13.793604] iwlwifi 0000:01:00.0:                     CSR_INT: 0X10000000
[   13.800519] iwlwifi 0000:01:00.0:                CSR_INT_MASK: 0X00000000
[   13.807439] iwlwifi 0000:01:00.0:           CSR_FH_INT_STATUS: 0X00000000
[   13.814351] iwlwifi 0000:01:00.0:                 CSR_GPIO_IN: 0X00000010
[   13.821270] iwlwifi 0000:01:00.0:                   CSR_RESET: 0X00000000
[   13.828199] iwlwifi 0000:01:00.0:                CSR_GP_CNTRL: 0X08040005
[   13.835128] iwlwifi 0000:01:00.0:                  CSR_HW_REV: 0X00000230
[   13.842055] iwlwifi 0000:01:00.0:              CSR_EEPROM_REG: 0Xd55555d5
[   13.848979] iwlwifi 0000:01:00.0:               CSR_EEPROM_GP: 0Xd55555d5
[   13.855890] iwlwifi 0000:01:00.0:              CSR_OTP_GP_REG: 0Xd55555d5
[   13.862803] iwlwifi 0000:01:00.0:                 CSR_GIO_REG: 0X001f0042
[   13.869713] iwlwifi 0000:01:00.0:            CSR_GP_UCODE_REG: 0X00000000
[   13.876623] iwlwifi 0000:01:00.0:           CSR_GP_DRIVER_REG: 0X00000000
[   13.883537] iwlwifi 0000:01:00.0:           CSR_UCODE_DRV_GP1: 0X00000000
[   13.890452] iwlwifi 0000:01:00.0:           CSR_UCODE_DRV_GP2: 0X00000000
[   13.897362] iwlwifi 0000:01:00.0:                 CSR_LED_REG: 0X00000020
[   13.904272] iwlwifi 0000:01:00.0:        CSR_DRAM_INT_TBL_REG: 0X88164de3
[   13.911194] iwlwifi 0000:01:00.0:        CSR_GIO_CHICKEN_BITS: 0X07800200
[   13.918106] iwlwifi 0000:01:00.0:             CSR_ANA_PLL_CFG: 0Xd55555d5
[   13.925015] iwlwifi 0000:01:00.0:      CSR_MONITOR_STATUS_REG: 0X3f7f1e10
[   13.931968] iwlwifi 0000:01:00.0:           CSR_HW_REV_WA_REG: 0X0001001a
[   13.938884] iwlwifi 0000:01:00.0:        CSR_DBG_HPET_MEM_REG: 0Xffff0000
[   13.946006] iwlwifi 0000:01:00.0: FH register values:
[   13.951210] iwlwifi 0000:01:00.0:         FH_RSCSR_CHNL0_STTS_WPTR_REG: 0X14ce8700
[   13.958910] iwlwifi 0000:01:00.0:        FH_RSCSR_CHNL0_RBDCB_BASE_REG: 0X014ce790
[   13.966628] iwlwifi 0000:01:00.0:                  FH_RSCSR_CHNL0_WPTR: 0X00000000
[   13.974363] iwlwifi 0000:01:00.0:         FH_MEM_RCSR_CHNL0_CONFIG_REG: 0X80801054
[   13.982093] iwlwifi 0000:01:00.0:          FH_MEM_RSSR_SHARED_CTRL_REG: 0X000000fc
[   13.989819] iwlwifi 0000:01:00.0:            FH_MEM_RSSR_RX_STATUS_REG: 0X07030000
[   13.997544] iwlwifi 0000:01:00.0:    FH_MEM_RSSR_RX_ENABLE_ERR_IRQ2DRV: 0X00000000
[   14.005273] iwlwifi 0000:01:00.0:                FH_TSSR_TX_STATUS_REG: 0X07ff0001
[   14.012996] iwlwifi 0000:01:00.0:                 FH_TSSR_TX_ERROR_REG: 0X00000000
[   14.020814] iwlwifi 0000:01:00.0: Start IWL Error Log Dump:
[   14.026402] iwlwifi 0000:01:00.0: Status: 0x00000000, count: 6
[   14.032260] iwlwifi 0000:01:00.0: Loaded firmware version: 22.391740.0
[   14.038811] iwlwifi 0000:01:00.0: 0x00001245 | ADVANCED_SYSASSERT          
[   14.045798] iwlwifi 0000:01:00.0: 0x000002F0 | trm_hw_status0
[   14.051554] iwlwifi 0000:01:00.0: 0x00000000 | trm_hw_status1
[   14.057305] iwlwifi 0000:01:00.0: 0x00005386 | branchlink2
[   14.062826] iwlwifi 0000:01:00.0: 0x0001120C | interruptlink1
[   14.068598] iwlwifi 0000:01:00.0: 0x00000000 | interruptlink2
[   14.074366] iwlwifi 0000:01:00.0: 0x00000000 | data1
[   14.079340] iwlwifi 0000:01:00.0: 0x00000000 | data2
[   14.084313] iwlwifi 0000:01:00.0: 0x00000099 | data3
[   14.089296] iwlwifi 0000:01:00.0: 0x003FCFC6 | beacon time
[   14.094807] iwlwifi 0000:01:00.0: 0x00003038 | tsf low
[   14.099954] iwlwifi 0000:01:00.0: 0x00000000 | tsf hi
[   14.105012] iwlwifi 0000:01:00.0: 0x00000000 | time gp1
[   14.110246] iwlwifi 0000:01:00.0: 0x00003039 | time gp2
[   14.115477] iwlwifi 0000:01:00.0: 0x00000000 | uCode revision type
[   14.121665] iwlwifi 0000:01:00.0: 0x00000016 | uCode version major
[   14.127850] iwlwifi 0000:01:00.0: 0x0005FA3C | uCode version minor
[   14.134039] iwlwifi 0000:01:00.0: 0x00000230 | hw version
[   14.139445] iwlwifi 0000:01:00.0: 0x00489000 | board version
[   14.145109] iwlwifi 0000:01:00.0: 0x0902016A | hcmd
[   14.150004] iwlwifi 0000:01:00.0: 0x00022080 | isr0
[   14.154891] iwlwifi 0000:01:00.0: 0x00000000 | isr1
[   14.159788] iwlwifi 0000:01:00.0: 0x28201802 | isr2
[   14.164675] iwlwifi 0000:01:00.0: 0x404001C0 | isr3
[   14.169559] iwlwifi 0000:01:00.0: 0x00000000 | isr4
[   14.174444] iwlwifi 0000:01:00.0: 0x04800118 | last cmd Id
[   14.179938] iwlwifi 0000:01:00.0: 0x00000000 | wait_event
[   14.185347] iwlwifi 0000:01:00.0: 0x0000EBCE | l2p_control
[   14.190842] iwlwifi 0000:01:00.0: 0x00000000 | l2p_duration
[   14.196422] iwlwifi 0000:01:00.0: 0x00000000 | l2p_mhvalid
[   14.201915] iwlwifi 0000:01:00.0: 0x00000000 | l2p_addr_match
[   14.207667] iwlwifi 0000:01:00.0: 0x0000008F | lmpm_pmg_sel
[   14.213251] iwlwifi 0000:01:00.0: 0x25091923 | timestamp
[   14.218574] iwlwifi 0000:01:00.0: 0x00000010 | flow_handler
[   14.224312] iwlwifi 0000:01:00.0: Start IWL Error Log Dump:
[   14.229911] iwlwifi 0000:01:00.0: Status: 0x00000000, count: 7
[   14.235750] iwlwifi 0000:01:00.0: 0x00000070 | ADVANCED_SYSASSERT
[   14.241854] iwlwifi 0000:01:00.0: 0x00000000 | umac branchlink1
[   14.247777] iwlwifi 0000:01:00.0: 0xC0082F64 | umac branchlink2
[   14.253702] iwlwifi 0000:01:00.0: 0xC0081000 | umac interruptlink1
[   14.259883] iwlwifi 0000:01:00.0: 0xC0081000 | umac interruptlink2
[   14.266068] iwlwifi 0000:01:00.0: 0x00000800 | umac data1
[   14.271471] iwlwifi 0000:01:00.0: 0xC0081000 | umac data2
[   14.276893] iwlwifi 0000:01:00.0: 0xDEADBEEF | umac data3
[   14.282310] iwlwifi 0000:01:00.0: 0x00000016 | umac major
[   14.287726] iwlwifi 0000:01:00.0: 0x0005FA3C | umac minor
[   14.293146] iwlwifi 0000:01:00.0: 0xC0886280 | frame pointer
[   14.298815] iwlwifi 0000:01:00.0: 0xC0886280 | stack pointer
[   14.304493] iwlwifi 0000:01:00.0: 0x0902016A | last host cmd
[   14.310167] iwlwifi 0000:01:00.0: 0x00000000 | isr status reg
[   14.320955] iwlwifi 0000:01:00.0: Failed to run INIT ucode: -5
[   14.432247] iwlwifi 0000:01:00.0: L1 Enabled - LTR Enabled
[   14.432997] iwlwifi 0000:01:00.0: L1 Enabled - LTR Enabled
[   14.551407] iwlwifi 0000:01:00.0: L1 Enabled - LTR Enabled
[   14.551918] iwlwifi 0000:01:00.0: L1 Enabled - LTR Enabled
[   14.656523] IPv6: ADDRCONF(NETDEV_UP): wlan0: link is not ready
[   14.813176] IPv6: ADDRCONF(NETDEV_UP): wlan0: link is not ready
[   15.087017] Bluetooth: hci0: Waiting for firmware download to complete
[   15.087325] Bluetooth: hci0: Firmware loaded in 2081000 usecs
[   15.087491] Bluetooth: hci0: Waiting for device to boot
[   15.099354] Bluetooth: hci0: Device booted in 11646 usecs
[   15.100328] Bluetooth: hci0: Found Intel DDC parameters: intel/ibt-12-16.ddc
[   15.103395] Bluetooth: hci0: Applying Intel DDC parameters completed

JupyterLab Collision Avoidance - Train Model unzip dataset.zip hangs if folder already exists

First, in order to get the train_model.ipynb file to move into the ~/Notebooks folder as described in Step 5 - Install latest software from Software Setup the following rsync command is required. The one listed does not appear to update the existing ~/Notebooks


rsync -rv   jetbot/notebooks/* /home/jetbot/Notebooks/

However, under the 'Upload and extract dataset' step in Collision Avoidance - Train Model will hang if the dataset.zip step has already been performed since it is waiting for a command line response to replace the existing files.
Sorry, I can not copy from the active JupyterLab window but this is what is seen from a command prompt if run locally and is what is seen in the JupyterLab window.


unzip -q dataset.zip 
replace dataset/blocked/5e351dde-68b8-11e9-bdd6-72b5f773b75d.jpg? [y]es, [n]o, [A]ll, [N]one, [r]ename:

Since there is no user interaction in the Jupyter window there is no way to tell the process to continue and a Shutdown Kernel is required to end the process.

This is screen shot of what is seen when this hangs.
JupyterLab_CollisionAvoid1

Collision Avoidance - Variable "prob_blocked" always > 0.9

Hi Sir,

I use pre-trained model to run Collision Avoidance sample, was successful 2 days ago. Since yesterday, my Jetbot kept circles always. I check the variable "pro_blocked" by print() it, and found the value is all bigger than "0.9".
I re-flash my 128GB TF by Jetbot images several times and got same results. What's the mistake I made ?
BR

how to run a jetbot right after bootup?

I would like to have the jetbot car run collision avoidance algorithm automatically after boot up.
Here is what I did:

  1. converted "live_demo.ipynb" to a python file "live_demo.py".
  2. Put "python /home/jetbot/Notebooks/collision_avoidance/live_demo.py in /etc/rc.local.
    However, the live_demo.py can't run because no pytorch, pytorchvision, jetbot could be import.
    I installed AMR version pytorch and pytorchvision sucessfully.
    how to intall jetbot?
    Why "live_demo.ipynb" don't have import problems when it runs on jupytor?

The base image is too large for my 64GB sd card

The current base image is too large to be restored for my 64GB card. (exceed by 160MB)
I can workaround by restoring the official nano image first and copy over the APP ext4 partition

For next image could you make it a little bit smaller?

TF or Keras version

Do we have any plans to release a keras or tf version for this ?

ROS support ..

Comments on Setup Instructions

After waiting weeks for all the parts to arrive, learning to 3D print, and (re-)learning how to solder, I managed to build my Jetbot and it didn't catch on fire (see https://twitter.com/william_p_huhn/status/1118720548157128705). I have a few suggestions for changes to the instructions, which I've grouped by section. Hope these help.

Hardware Setup

  • "Tools Needed"
    • Some form of precision jeweler/electronics screwdriver set should be added. Securing the power and motor wires to the motor driver without them took a considerable amount of effort.
  • "Step 2 - Mount motors"
    • It should be mentioned that the motors are attached with the M3 screws and nuts.
  • "Step 4 - Strip motor driver power cable"
    • It's mentioned to remove the green and white wires, but the final diagram shows them twisted and not removed.
  • "Step 10 - Solder header onto PiOLED display"
    • A schematic diagram for which connections should be soldered and which wires go where would be hugely useful for this step and the next. The camera angle makes it difficult to see.
  • "Step 11 - Wire motor driver to PiOLED display"
    • The color contrast between orange and yellow is really bad in the picture. I had to go look at pictures in subsequent steps to figure out which was which.
    • The instructions reference SDA (orange) and SCL (yellow), which I realize are the proper names, but they're labeled 3 and 5 on the board itself.
  • "Step 13 - Attach wide angle sensor"
    • This step should come before "Step 12 - Mount camera", as it's much easier to attach the wide angle sensor without having to account for the angle of the mount on the Jetbot.
    • This is obvious, but the instructions never state to take the camera lens off.
  • "Step 15 - Organize wires"
    • The pictures in this section shows the Jetbot's power wires hooked up so that the motor will draw power, which I imagine most people will do even though it's not explicitly stated to do so, but Step 2 of the Software Setup specifically states that we should not power the motor until after the first booting/initial setup. I think a notice to not power the Jetbot yet would be useful.
  • Miscellaneous
    • This is really obvious, but the instructions never state to attach the wheels. (It looks like it happens sometime between Step 9 and 11.)

Software Setup

  • "Step 5 - Install latest software (optional)"
    • On an JetBot SD image that I flashed yesterday night (18 April, 2019), rsync was not installed by default, but it was easily installable via apt.
    • The user will need to change directory up one level before running rsync jetbot/notebooks ~/Notebooks.

Examples

  • "Example 2 - Teleoperation"
    • The widget for controlling the Jetbot via my Xbox One controller never showed up, although https://html5gamepad.com/ was able to detect it. No error messages or anything.

USB based cams or multiple cameras

Given the limited availability of the 140-150 degree FOV webcam, it would be beneficial to use USB based webcams, or more than 1 narrower field of view webcam.

Alternatively, using FPV Drone cameras (cheaper, simple 3 wire) with wide angle lens would be useful as well.

USB webcams are popular in the RPi world, as most drivers are already baked into standard V4L of distributions.

i2c Remote I/O error

Hi!

I have finished my jetbot now and trying to run the Basic Motion notebook. I have successfully imported Robot class:

from jetbot import Robot

but when I run

robot = Robot()

I got the following error:

---------------------------------------------------------------------------
OSError                                   Traceback (most recent call last)
<ipython-input-6-b418ad9f6ab3> in <module>
----> 1 robot = Robot()

/usr/local/lib/python3.6/dist-packages/jetbot-0.3.0-py3.6.egg/jetbot/robot.py in __init__(self, *args, **kwargs)
     20     def __init__(self, *args, **kwargs):
     21         super(Robot, self).__init__(*args, **kwargs)
---> 22         self.motor_driver = Adafruit_MotorHAT(i2c_bus=self.i2c_bus)
     23         self.left_motor = Motor(self.motor_driver, channel=self.left_motor_channel, alpha=self.left_motor_alpha)
     24         self.right_motor = Motor(self.motor_driver, channel=self.right_motor_channel, alpha=self.right_motor_alpha)

/usr/local/lib/python3.6/dist-packages/Adafruit_MotorHAT-1.4.0-py3.6.egg/Adafruit_MotorHAT/Adafruit_MotorHAT_Motors.py in __init__(self, addr, freq, i2c, i2c_bus)
    229         self.motors = [ Adafruit_DCMotor(self, m) for m in range(4) ]
    230         self.steppers = [ Adafruit_StepperMotor(self, 1), Adafruit_StepperMotor(self, 2) ]
--> 231         self._pwm = PWM(addr, debug=False, i2c=i2c, i2c_bus=i2c_bus)
    232         self._pwm.setPWMFreq(self._frequency)
    233 

/usr/local/lib/python3.6/dist-packages/Adafruit_MotorHAT-1.4.0-py3.6.egg/Adafruit_MotorHAT/Adafruit_PWM_Servo_Driver.py in __init__(self, address, debug, i2c, i2c_bus)
     57         self.i2c = get_i2c_device(address, i2c, i2c_bus)
     58         logger.debug("Reseting PCA9685 MODE1 (without SLEEP) and MODE2")
---> 59         self.setAllPWM(0, 0)
     60         self.i2c.write8(self.__MODE2, self.__OUTDRV)
     61         self.i2c.write8(self.__MODE1, self.__ALLCALL)

/usr/local/lib/python3.6/dist-packages/Adafruit_MotorHAT-1.4.0-py3.6.egg/Adafruit_MotorHAT/Adafruit_PWM_Servo_Driver.py in setAllPWM(self, on, off)
     93     def setAllPWM(self, on, off):
     94         "Sets a all PWM channels"
---> 95         self.i2c.write8(self.__ALL_LED_ON_L, on & 0xFF)
     96         self.i2c.write8(self.__ALL_LED_ON_H, on >> 8)
     97         self.i2c.write8(self.__ALL_LED_OFF_L, off & 0xFF)

/usr/local/lib/python3.6/dist-packages/Adafruit_GPIO-1.0.3-py3.6.egg/Adafruit_GPIO/I2C.py in write8(self, register, value)
    114         """Write an 8-bit value to the specified register."""
    115         value = value & 0xFF
--> 116         self._bus.write_byte_data(self._address, register, value)
    117         self._logger.debug("Wrote 0x%02X to register 0x%02X",
    118                      value, register)

/usr/local/lib/python3.6/dist-packages/Adafruit_PureIO-0.2.3-py3.6.egg/Adafruit_PureIO/smbus.py in write_byte_data(self, addr, cmd, val)
    254         # Send the data to the device.
    255         self._select_device(addr)
--> 256         self._device.write(data)
    257 
    258     def write_word_data(self, addr, cmd, val):

OSError: [Errno 121] Remote I/O error

Could you please help?
Thanks!

Size of power bank?

Since there is no way to ship to Sweden if it's LiPO, what size of power bank should I choose?

Wiki: Software-Setup.md - update "Replace the old notebook" instructions

I made a fix to Software-Setup wiki page for "rsync: not found" here commit 1, commit 2 in a clone of the wiki repo.
As I cannot find a better way to update wiki I created this issue as an invitation to merge my changes.

Here's the salient snippet:

 3. Replace the old notebooks with the new notebooks by entering
     ```bash
-    rsync jetbot/notebooks ~/Notebooks
+    rsync -avr notebooks ~/Notebooks
     ```
+   If you get the following error, install `rsync` and try again.
+     ```bash
+     jetbot@jetbot:~/jetbot$ rsync -avr notebooks ~/Notebooks
+     bash: rsync: command not found
+     jetbot@jetbot:~/jetbot$ sudo apt install rsync
+     ```

Can't Create gamepad controller

In Teleoperation, first to create gamepad controller, when I execute first cell code, there is no Controller is shown, I tried several times, always failed !!!
Gamepad is connected and the index is '1'

`
import ipywidgets.widgets as widgets

controller = widgets.Controller(index=1) # replace with index of your controller

display(controller)
`

TB6612

What is the advantage of the featherboard over a normal breakoutboard ?

image size over 64GB of the jetbot image

When I tried to write the jetbot image file to my 64GB microSD card, the downlaoded image zip file size is 6.8GB but the actual image size after unzip(by Etcher SD Flash Utility(v1.4.9) or opened with WinRAR (v5.6 64-bit)) is 64.02GB which could not fit into a 64GB microSD card. Before I go for a 128GB microSD, the question is if the image file is indeed a 64GB size, because from the instruction it shows 16GB is minimum requirement for microSD card. If it was 128GB at minimum, the instruction need to be updated.

image

motor drvier error

I make jetbot following wiki. When i programming,I find jetbot sample is'n be run. Motor driver in System program is diffenent from wiki Bill of Materials.

rsync: command not found

Hi,

I'm going through the Software Setup for the JetBot and at under Section 5 step 5 it mentions to run rsync to replace the old notebooks but I am getting an error that rsync is not found

This is with image: jetbot_image_v0p3p0.zip

Ex:


$ rsync jetbot/notebooks ~/Notebooks

Thanks,

Jon
-bash: rsync: command not found

intel 3165 M.2 wireless ,how to use?

i download and extract,then i cp iwlwifi-*.ucode /lib/firmware
but when i restat the nano,i can't see the wifi icon,only wired options.

please help me.
thanks

Why not ABS?

Hi,

At least for the main frame, there are no details, wouldn't ABS be stronger AND cheaper?

Best regards,

Guillaume

Camera (streaming) does not work

I am trying to run a data_collection notebook and have an issue with the camera - the cell which creates a camera instance takes forever to run and, when/if it is executed, the streaming only works for few seconds (if work at all) and then the image becomes still and does not change. Do you have any suggestions on how to resolve it? Thank you in advance.

Battery requirements

What were the requirements when selecting the recommended battery? I have my Jetson connected to a different portable battery with 5v 2a USB ports via microusb and the Jetson powers on but then powers off after about 30 seconds. Could I see different results if I power via the barrel jack with a USB to barrel jack adapter?

Suggestion for 3D Printing Wiki

The 3D printing Wiki only currently lists some printers, sample material, and manufacturers. Because the sample chassis is fairly complex, I think it would be beneficial to add some information on how to set up the print. There's a lot of good things that can be added to make sure prints are successful like

  • Print orientation

  • Support structure

  • Infill density

  • Wall thickness

Setup of USB wifi Dongle

I'm having trouble setting up the dongle. I flashed it on a mac and plugged the dongle into my Jetson Nano and my network is showing up but it still won't connect.

Camera Module with low FoV?

I read in the bill of materials that Jetbot uses high FoV camera. What happen if I use a low FoV camera e.g. Raspberry Pi Camera Module v2? Is there some config I need to change? Will the jetbot goes blind?

Sorry I'm very new to IoT programming/robots (Jetbot is my first "hardware" experience). I do know coding so if it's code change that's required I think I can handle. Thanks in advance.

Suggestion for STL

The little flashlight in the battery is a nice feature, but it's facing the wrong direction to be a headlight. Consider redesigning the case so it faces forward.

I find that the CV works better with consistent lighting, and the light could help there. Plus: cool headlight!

NVPM ERROR when running nvpmodel -q

When running 'nvpmodel -q' in Step 6 - Configure power mode from the wiki NVPM ERROR is seen.

Ex:


jetbot@jetbot:~$ sudo nvpmodel -m1
jetbot@jetbot:~$ nvpmodel -q
NV Power Mode: 5W
1
NVPM ERROR: Error opening /sys/kernel/nvpmodel_emc_cap/emc_iso_cap: 13
NVPM ERROR: failed to read PARAM EMC: ARG MAX_FREQ: PATH /sys/kernel/nvpmodel_emc_cap/emc_iso_cap

I believe it needs to be run as sudo.

This does not show an error.
Ex:


jetbot@jetbot:~$ sudo nvpmodel -q
NV Power Mode: 5W
1

Raspberry camera module V1.3 compatibility?

Hi,

I'm trying to get a camera module V1.3 working and struggling a little bit right now. The camera isn't showing up as '/dev/video0'. I'm using the default Jetson image (not the one specific to the jetbot project). I was wondering, are there specific packages I should install to make this work? Does the Jetson only work with the camera module V2?

PiOLED does not display ipaddress

Hi,
I am just getting started putting together my JetBot and have loaded the latest JetBot image and installed and configured the WiFi module and installed the PiOLED but I am not seeing anything displayed on the PIOLED after boot.

NOTE: I have the Nano powered via the barrel jack.

From a forum suggest I had seen, I ran the following which shows some errors.
journalctl -u jetbot_stats >> jetbot_stats_log.txt
Errors seen in the log file
Apr 24 08:26:20 jetbot sh[9781]: OSError: [Errno 121] Remote I/O error Apr 24 08:26:22 jetbot systemd[1]: jetbot_stats.service: Main process exited, code=exited, status=1/FAILURE Apr 24 08:26:22 jetbot systemd[1]: jetbot_stats.service: Failed with result 'exit-code'. Apr 24 08:26:22 jetbot systemd[1]: jetbot_stats.service: Service hold-off time over, scheduling restart. Apr 24 08:26:22 jetbot systemd[1]: jetbot_stats.service: Scheduled restart job, restart counter is at 29. Apr 24 08:26:22 jetbot systemd[1]: Stopped JetBot stats display service. Apr 24 08:26:22 jetbot systemd[1]: Started JetBot stats display service. Apr 24 08:26:39 jetbot sh[9877]: Traceback (most recent call last): Apr 24 08:26:39 jetbot sh[9877]: File "/usr/lib/python3.6/runpy.py", line 193, in _run_module_as_main Apr 24 08:26:39 jetbot sh[9877]: "__main__", mod_spec) Apr 24 08:26:39 jetbot sh[9877]: File "/usr/lib/python3.6/runpy.py", line 85, in _run_code Apr 24 08:26:39 jetbot sh[9877]: exec(code, run_globals) Apr 24 08:26:39 jetbot sh[9877]: File "/usr/local/lib/python3.6/dist-packages/jetbot-0.3.0-py3.6.egg/jetbot/apps/stats.py", line 36, in <module> Apr 24 08:26:39 jetbot sh[9877]: disp.begin() Apr 24 08:26:39 jetbot sh[9877]: File "/usr/local/lib/python3.6/dist-packages/Adafruit_SSD1306-1.6.2-py3.6.egg/Adafruit_SSD1306/SSD1306.py", line 148, in begin Apr 24 08:26:39 jetbot sh[9877]: File "/usr/local/lib/python3.6/dist-packages/Adafruit_SSD1306-1.6.2-py3.6.egg/Adafruit_SSD1306/SSD1306.py", line 292, in _initialize Apr 24 08:26:39 jetbot sh[9877]: File "/usr/local/lib/python3.6/dist-packages/Adafruit_SSD1306-1.6.2-py3.6.egg/Adafruit_SSD1306/SSD1306.py", line 129, in command Apr 24 08:26:39 jetbot sh[9877]: File "/usr/local/lib/python3.6/dist-packages/Adafruit_GPIO-1.0.3-py3.6.egg/Adafruit_GPIO/I2C.py", line 116, in write8 Apr 24 08:26:39 jetbot sh[9877]: File "/usr/local/lib/python3.6/dist-packages/Adafruit_PureIO-0.2.3-py3.6.egg/Adafruit_PureIO/smbus.py", line 256, in write_byte_data Apr 24 08:26:39 jetbot sh[9877]: OSError: [Errno 121] Remote I/O error Apr 24 08:26:41 jetbot systemd[1]: jetbot_stats.service: Main process exited, code=exited, status=1/FAILURE Apr 24 08:26:41 jetbot systemd[1]: jetbot_stats.service: Failed with result 'exit-code'. Apr 24 08:26:41 jetbot systemd[1]: jetbot_stats.service: Service hold-off time over, scheduling restart. Apr 24 08:26:41 jetbot systemd[1]: jetbot_stats.service: Scheduled restart job, restart counter is at 30. Apr 24 08:26:41 jetbot systemd[1]: Stopped JetBot stats display service. Apr 24 08:26:41 jetbot systemd[1]: Started JetBot stats display service.

Does this require some sort of initialization?

Thanks,

Jon

Can we buy the whole jetbot parts online?

I have printed out the stl and tried to put the electronics on it before my nano arrive. However, there is no wheels and the screws holes do not really fit my electronics. I wonder if I can just buy the robot parts. Thanks.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.