An educational AI robot based on NVIDIA Jetson Nano.

Related tags

Deep Learningjetbot
Overview

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

Comments
  • How to combine Road Following and Collision avoidance?

    How to combine Road Following and Collision avoidance?

    Hi All. I have recently got a Jetbot and am running a demo. Road Following and Collision avoidance can be operated separately.

    I want to make a combination that stops when there is an object during Road Following. It doesn't work even if the two codes are combined, so I would like to know how you can do it.

    I'm not good at English. I'm sorry if it's hard to understand.

    opened by sakae-og 44
  • i2c Remote I/O error

    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!

    opened by diefimov 28
  • Jetson Nano doesn't boot with new image

    Jetson Nano doesn't boot with new image

    Hello, I flashed new release of pre-built JetBot SD card image for Jetson Nano 4GB (jetbot-043_nano-4gb-jp45.zip) and it doesn't boot. I read issue #385 and tried to boot with original nvidia image but it doesn't boot again and I have no Nvidia logo displayed. After that none of my different versions images don't boot . Before this incident my Jetson Nano had worked correctly. How to back my Jetson Nano to work?

    opened by w1ngedshadow 24
  • 4wheel drive

    4wheel drive

    Hi is it possible to make a Jetbot 4whel drive?

    I have tared down my old robot project and tried to make it a Jetbot. now it runs with only 2wheels.

    If its possible, where do I find necessary information to rewrite the program?

    20201117_065037 20201117_065047

    opened by Cnys 21
  • Raspberry camera module V1.3 compatibility?

    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?

    opened by maximecb 21
  • JetBot 零件清单中国区购买链接汇总

    JetBot 零件清单中国区购买链接汇总

    This issue is meant to help Chinese devs to buy the materials of JetBot in China. I'll keep updating it, any help is welcome.

    Its appreciate leaving the issue open for a while, thanks.

    中国区购买 JetBot 的零件比较麻烦,所以整理了一个可以在国内购买的列表,欢迎一起更新汇总。

    https://github.com/unbug/NVIDIA-JetBot-Diy/wiki

    opened by unbug 19
  • [SOLUTION] Road Following not working properly Problem Solution

    [SOLUTION] Road Following not working properly Problem Solution

    Hi guys. It is my first time talking to people on githubs. As I have got lots of help from github, I would like to share my case how I made it to work.

    When I followed the instructions in Road following of Jetbot curriculum ,it couldn't get information as fast as the robot goes. I found out that the process of robot is little bit slow. Then I tried to go slooooowly and another problem has occurred. The motor provided was not strong enough to go slowly. (not enough Toque problem)

    And we tried to go and stop to manage the speed. (if there were imu in it, we could control the robot with the pid or other feedback control but ,,, no) And here below is the code for the 'go and stop' .

    Anyone who wants to check if the data collected works fine or not, you can try to move the robot really slow with this code, and check for the deep-learning trained model.

    angle = 0.0
    angle_last = 0.0
    count_motor = 0
    def execute(change):
        global angle, angle_last, count_motor
        image = change['new']
        xy = model(preprocess(image)).detach().float().cpu().numpy().flatten()
        x = xy[0]
        y = (0.5 - xy[1]) / 2.0
        
        x_slider.value = x
        y_slider.value = y
        
        speed_slider.value = speed_gain_slider.value
        
        angle = np.arctan2(x, y)
        pid = angle * steering_gain_slider.value + (angle - angle_last) * steering_dgain_slider.value
        angle_last = angle
        
        steering_slider.value = pid + steering_bias_slider.value
       
        if count_motor >2:
            robot.left_motor.value = max(min(speed_slider.value + steering_slider.value, 1.0)*0.95, 0.0)
            robot.right_motor.value = max(min(speed_slider.value - steering_slider.value, 1.0), 0.0)
            count_motor = 0
        else :
            robot.left_motor.value = 0
            robot.right_motor.value = 0
            count_motor = count_motor + 1
    
            
    execute({'new': camera.value})
    

    Gain value :

    
    speed_gain_slider = ipywidgets.FloatSlider(min=0.25, max=1.0, step=0.01, description='speed gain')
    steering_gain_slider = ipywidgets.FloatSlider(min=0.0, max=1.0, step=0.01, value=0.05, description='steering gain')
    steering_dgain_slider = ipywidgets.FloatSlider(min=0.0, max=0.5, step=0.001, value=0.0, description='steering kd')
    steering_bias_slider = ipywidgets.FloatSlider(min=-0.3, max=0.3, step=0.01, value=0.0, description='steering bias')
    
    opened by jeffkimkorea-git 18
  • Suggestion on improving JetBot/Jetson Nano performance

    Suggestion on improving JetBot/Jetson Nano performance

    Hi All,

    I have recently got a JetBot kit and was able to get assembled and software installed. The examples run fine, but just seem a bit too sluggish compared to the videos linked in the Github Examples page.

    For reference, I followed the instruction from https://github.com/NVIDIA-AI-IOT/jetbot/wiki/software-setup and setup everything using the jetbot_image_v0p4p0.zip.

    However, I am not sure if it is the Jupyter Lab/Notebook which are slow or my routers or something with the JetBot, it just seems like there is significant delay (~1 second) in the camera video stream and also the control responsiveness of the JetBot.

    Consequently, it is unable to avoid obstacles reliably, nor track an object reliably. For obstacle avoidance, it often bumps into the obstacles first, then react 1-2 seconds later and starts turning left. For object tracking, the gain had to be tuned to be much lower in order to avoid overshoot.

    Therefore, I was wondering if there is anything I can try to help improve the performance of the JetBot / Jetson Nano. Any advice or suggestions is appreciated.

    opened by stevenlee090 18
  • AttributeError: 'Motor' object has no attribute '_motor'

    AttributeError: 'Motor' object has no attribute '_motor'

    Hi Im suddenly getting this error when running robot.stop():

    Error in atexit._run_exitfuncs:
    Traceback (most recent call last):
     File "/usr/local/lib/python3.6/dist-packages/jetbot-0.3.0-py3.6.egg/jetbot/motor.py", line 60, in _release
       self._motor.disable()
    AttributeError: 'Motor' object has no attribute '_motor'
    

    Any suggestions on how to fix?

    opened by VegardIversen 16
  • Can't Create gamepad controller

    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) `

    opened by dennis08 15
  • Jupyter fails to initialize camera...most of the times

    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?

    opened by fciampoli 15
  • Some of the links to buy the parts to build it are down or invalid (For amazon)

    Some of the links to buy the parts to build it are down or invalid (For amazon)

    Hey sorry this is probably not the right place to ask this question and its stupid, but I couldn't find anywhere else to find the products or substitutes. I am very late to finding out about this, but it's cool and I was hoping to build it once I can find substitutes for part links are updated. Thanks!

    opened by s3th06 1
  • Jetpack 4.3 vs Newer Jetpack

    Jetpack 4.3 vs Newer Jetpack

    Why package in jetpack 4.3 is same in jupyterlab but newer jetpack doesn't same? What should I do to make package in newer jetpack is same in jupyter?

    opened by PhotloJ 0
  • Locked Out of Jetbot

    Locked Out of Jetbot

    The first time I opened the jetbot I was prompted to set up a password, which I did not do. Then the device went into sleep mode and when I try to open it again it is locked and requires a password. I tried some default passwords I found online such as "ubuntu", "nvidia" and "jetbot" but non of them worked.

    Any ideas on how to solve it?

    opened by dimitrischatz 0
  • Failed to import jetbot ....

    Failed to import jetbot ....

    ➜  ~ python
    Python 3.6.9 (default, Jun 29 2022, 11:45:57) 
    [GCC 8.4.0] on linux
    Type "help", "copyright", "credits" or "license" for more information.
    >>> import jetbot
    [1]    8661 illegal hardware instruction (core dumped)  python
    ➜  ~
    
    opened by jiapei100 0
  • An error occurred when using Docker to start

    An error occurred when using Docker to start

    Hello, engineer, I'm following the official operation manual【 https://jetbot.org/master/reference/docker_tips.html 】

    When running to step 5 `cd docker

    ./enable.sh`

    How can I solve the following errors [email protected]:~/下载/jetbot$ ./docker/enable.sh ./docker/enable.sh: 行 1: configure.sh: No such file or directory ./docker/enable.sh: 行 11: ./display/enable.sh: No such file or directory ./docker/enable.sh: 行 12: ./jupyter/enable.sh: No such file or directory

    We look forward to your reply

    opened by kkive 0
  • Failed to build jetbot via CMake - error: looser throw specifier for ‘virtual int FlattenConcat::getNbOutputs() const’      int getNbOutputs() const override

    Failed to build jetbot via CMake - error: looser throw specifier for ‘virtual int FlattenConcat::getNbOutputs() const’ int getNbOutputs() const override

    [ 50%] Building CXX object jetbot/ssd_tensorrt/CMakeFiles/ssd_tensorrt.dir/FlattenConcat.cpp.o
    cd....../build/jetbot/ssd_tensorrt && /usr/bin/c++  -Dssd_tensorrt_EXPORTS -I/usr/local/cuda/include  -O3 -DNDEBUG -fPIC   -o CMakeFiles/ssd_tensorrt.dir/FlattenConcat.cpp.o -c....../jetbot/ssd_tensorrt/FlattenConcat.cpp
    ....../jetbot/ssd_tensorrt/FlattenConcat.cpp:63:9: error: looser throw specifier for ‘virtual int FlattenConcat::getNbOutputs() const’
         int getNbOutputs() const override
             ^~~~~~~~~~~~
    In file included from /usr/include/aarch64-linux-gnu/NvInferLegacyDims.h:53:0,
                     from /usr/include/aarch64-linux-gnu/NvInfer.h:53,
                     from /usr/include/aarch64-linux-gnu/NvInferPlugin.h:53,
                     from....../jetbot/ssd_tensorrt/FlattenConcat.cpp:9:
    /usr/include/aarch64-linux-gnu/NvInferRuntimeCommon.h:469:21: error:   overriding ‘virtual int32_t nvinfer1::IPluginV2::getNbOutputs() const noexcept’
         virtual int32_t getNbOutputs() const noexcept = 0;
                         ^~~~~~~~~~~~
    ....../jetbot/ssd_tensorrt/FlattenConcat.cpp:69:10: error: looser throw specifier for ‘virtual nvinfer1::Dims FlattenConcat::getOutputDimensions(int, const Dims*, int)’
         Dims getOutputDimensions(int index, const Dims* inputs, int nbInputDims) override
              ^~~~~~~~~~~~~~~~~~~
    In file included from /usr/include/aarch64-linux-gnu/NvInferLegacyDims.h:53:0,
                     from /usr/include/aarch64-linux-gnu/NvInfer.h:53,
                     from /usr/include/aarch64-linux-gnu/NvInferPlugin.h:53,
                     from....../jetbot/ssd_tensorrt/FlattenConcat.cpp:9:
    /usr/include/aarch64-linux-gnu/NvInferRuntimeCommon.h:486:18: error:   overriding ‘virtual nvinfer1::Dims nvinfer1::IPluginV2::getOutputDimensions(int32_t, const Dims*, int32_t) noexcept’
         virtual Dims getOutputDimensions(int32_t index, Dims const* inputs, int32_t nbInputDims) noexcept = 0;
                      ^~~~~~~~~~~~~~~~~~~
    ....../jetbot/ssd_tensorrt/FlattenConcat.cpp:92:9: error: looser throw specifier for ‘virtual int FlattenConcat::initialize()’
         int initialize() override
             ^~~~~~~~~~
    In file included from /usr/include/aarch64-linux-gnu/NvInferLegacyDims.h:53:0,
                     from /usr/include/aarch64-linux-gnu/NvInfer.h:53,
                     from /usr/include/aarch64-linux-gnu/NvInferPlugin.h:53,
                     from....../jetbot/ssd_tensorrt/FlattenConcat.cpp:9:
    /usr/include/aarch64-linux-gnu/NvInferRuntimeCommon.h:558:21: error:   overriding ‘virtual int32_t nvinfer1::IPluginV2::initialize() noexcept’
         virtual int32_t initialize() noexcept = 0;
                         ^~~~~~~~~~
    ....../jetbot/ssd_tensorrt/FlattenConcat.cpp:100:10: error: looser throw specifier for ‘virtual void FlattenConcat::terminate()’
         void terminate() override
              ^~~~~~~~~
    In file included from /usr/include/aarch64-linux-gnu/NvInferLegacyDims.h:53:0,
                     from /usr/include/aarch64-linux-gnu/NvInfer.h:53,
                     from /usr/include/aarch64-linux-gnu/NvInferPlugin.h:53,
                     from....../jetbot/ssd_tensorrt/FlattenConcat.cpp:9:
    /usr/include/aarch64-linux-gnu/NvInferRuntimeCommon.h:572:18: error:   overriding ‘virtual void nvinfer1::IPluginV2::terminate() noexcept’
         virtual void terminate() noexcept = 0;
                      ^~~~~~~~~
    ....../jetbot/ssd_tensorrt/FlattenConcat.cpp:107:12: error: looser throw specifier for ‘virtual size_t FlattenConcat::getWorkspaceSize(int) const’
         size_t getWorkspaceSize(int maxBatchSize) const override
                ^~~~~~~~~~~~~~~~
    In file included from /usr/include/aarch64-linux-gnu/NvInferLegacyDims.h:53:0,
                     from /usr/include/aarch64-linux-gnu/NvInfer.h:53,
                     from /usr/include/aarch64-linux-gnu/NvInferPlugin.h:53,
                     from....../jetbot/ssd_tensorrt/FlattenConcat.cpp:9:
    /usr/include/aarch64-linux-gnu/NvInferRuntimeCommon.h:588:20: error:   overriding ‘virtual size_t nvinfer1::IPluginV2::getWorkspaceSize(int32_t) const noexcept’
         virtual size_t getWorkspaceSize(int32_t maxBatchSize) const noexcept = 0;
                        ^~~~~~~~~~~~~~~~
    ....../jetbot/ssd_tensorrt/FlattenConcat.cpp:113:9: error: ‘int FlattenConcat::enqueue(int, const void* const*, void**, void*, cudaStream_t)’ marked ‘override’, but does not override
         int enqueue(int batchSize, const void* const* inputs, void** outputs, void*, cudaStream_t stream) override
             ^~~~~~~
    ....../jetbot/ssd_tensorrt/FlattenConcat.cpp:135:12: error: looser throw specifier for ‘virtual size_t FlattenConcat::getSerializationSize() const’
         size_t getSerializationSize() const override
                ^~~~~~~~~~~~~~~~~~~~
    In file included from /usr/include/aarch64-linux-gnu/NvInferLegacyDims.h:53:0,
                     from /usr/include/aarch64-linux-gnu/NvInfer.h:53,
                     from /usr/include/aarch64-linux-gnu/NvInferPlugin.h:53,
                     from....../jetbot/ssd_tensorrt/FlattenConcat.cpp:9:
    /usr/include/aarch64-linux-gnu/NvInferRuntimeCommon.h:620:20: error:   overriding ‘virtual size_t nvinfer1::IPluginV2::getSerializationSize() const noexcept’
         virtual size_t getSerializationSize() const noexcept = 0;
                        ^~~~~~~~~~~~~~~~~~~~
    ....../jetbot/ssd_tensorrt/FlattenConcat.cpp:144:10: error: looser throw specifier for ‘virtual void FlattenConcat::serialize(void*) const’
         void serialize(void* buffer) const override
              ^~~~~~~~~
    In file included from /usr/include/aarch64-linux-gnu/NvInferLegacyDims.h:53:0,
                     from /usr/include/aarch64-linux-gnu/NvInfer.h:53,
                     from /usr/include/aarch64-linux-gnu/NvInferPlugin.h:53,
                     from....../jetbot/ssd_tensorrt/FlattenConcat.cpp:9:
    /usr/include/aarch64-linux-gnu/NvInferRuntimeCommon.h:635:18: error:   overriding ‘virtual void nvinfer1::IPluginV2::serialize(void*) const noexcept’
         virtual void serialize(void* buffer) const noexcept = 0;
                      ^~~~~~~~~
    ....../jetbot/ssd_tensorrt/FlattenConcat.cpp:168:10: error: looser throw specifier for ‘virtual void FlattenConcat::configureWithFormat(const Dims*, int, const Dims*, int, nvinfer1::DataType, nvinfer1::PluginFormat, int)’
         void configureWithFormat(const Dims* inputs, int nbInputs, const Dims* outputDims, int nbOutputs, nvinfer1::DataType type, nvinfer1::PluginFormat format, int maxBatchSize) override
              ^~~~~~~~~~~~~~~~~~~
    In file included from /usr/include/aarch64-linux-gnu/NvInferLegacyDims.h:53:0,
                     from /usr/include/aarch64-linux-gnu/NvInfer.h:53,
                     from /usr/include/aarch64-linux-gnu/NvInferPlugin.h:53,
                     from....../jetbot/ssd_tensorrt/FlattenConcat.cpp:9:
    /usr/include/aarch64-linux-gnu/NvInferRuntimeCommon.h:543:18: error:   overriding ‘virtual void nvinfer1::IPluginV2::configureWithFormat(const Dims*, int32_t, const Dims*, int32_t, nvinfer1::DataType, nvinfer1::PluginFormat, int32_t) noexcept’
         virtual void configureWithFormat(Dims const* inputDims, int32_t nbInputs, Dims const* outputDims, int32_t nbOutputs,
                      ^~~~~~~~~~~~~~~~~~~
    ....../jetbot/ssd_tensorrt/FlattenConcat.cpp:198:10: error: looser throw specifier for ‘virtual bool FlattenConcat::supportsFormat(nvinfer1::DataType, nvinfer1::PluginFormat) const’
         bool supportsFormat(DataType type, PluginFormat format) const override
              ^~~~~~~~~~~~~~
    In file included from /usr/include/aarch64-linux-gnu/NvInferLegacyDims.h:53:0,
                     from /usr/include/aarch64-linux-gnu/NvInfer.h:53,
                     from /usr/include/aarch64-linux-gnu/NvInferPlugin.h:53,
                     from....../jetbot/ssd_tensorrt/FlattenConcat.cpp:9:
    /usr/include/aarch64-linux-gnu/NvInferRuntimeCommon.h:510:18: error:   overriding ‘virtual bool nvinfer1::IPluginV2::supportsFormat(nvinfer1::DataType, nvinfer1::PluginFormat) const noexcept’
         virtual bool supportsFormat(DataType type, PluginFormat format) const noexcept = 0;
                      ^~~~~~~~~~~~~~
    ....../jetbot/ssd_tensorrt/FlattenConcat.cpp:203:17: error: looser throw specifier for ‘virtual const char* FlattenConcat::getPluginType() const’
         const char* getPluginType() const override { return FLATTENCONCAT_PLUGIN_NAME; }
                     ^~~~~~~~~~~~~
    In file included from /usr/include/aarch64-linux-gnu/NvInferLegacyDims.h:53:0,
                     from /usr/include/aarch64-linux-gnu/NvInfer.h:53,
                     from /usr/include/aarch64-linux-gnu/NvInferPlugin.h:53,
                     from....../jetbot/ssd_tensorrt/FlattenConcat.cpp:9:
    /usr/include/aarch64-linux-gnu/NvInferRuntimeCommon.h:440:30: error:   overriding ‘virtual const AsciiChar* nvinfer1::IPluginV2::getPluginType() const noexcept’
         virtual AsciiChar const* getPluginType() const noexcept = 0;
                                  ^~~~~~~~~~~~~
    ....../jetbot/ssd_tensorrt/FlattenConcat.cpp:205:17: error: looser throw specifier for ‘virtual const char* FlattenConcat::getPluginVersion() const’
         const char* getPluginVersion() const override { return FLATTENCONCAT_PLUGIN_VERSION; }
                     ^~~~~~~~~~~~~~~~
    In file included from /usr/include/aarch64-linux-gnu/NvInferLegacyDims.h:53:0,
                     from /usr/include/aarch64-linux-gnu/NvInfer.h:53,
                     from /usr/include/aarch64-linux-gnu/NvInferPlugin.h:53,
                     from....../jetbot/ssd_tensorrt/FlattenConcat.cpp:9:
    /usr/include/aarch64-linux-gnu/NvInferRuntimeCommon.h:454:30: error:   overriding ‘virtual const AsciiChar* nvinfer1::IPluginV2::getPluginVersion() const noexcept’
         virtual AsciiChar const* getPluginVersion() const noexcept = 0;
                                  ^~~~~~~~~~~~~~~~
    ....../jetbot/ssd_tensorrt/FlattenConcat.cpp:207:10: error: looser throw specifier for ‘virtual void FlattenConcat::destroy()’
         void destroy() override {}
              ^~~~~~~
    In file included from /usr/include/aarch64-linux-gnu/NvInferLegacyDims.h:53:0,
                     from /usr/include/aarch64-linux-gnu/NvInfer.h:53,
                     from /usr/include/aarch64-linux-gnu/NvInferPlugin.h:53,
                     from....../jetbot/ssd_tensorrt/FlattenConcat.cpp:9:
    /usr/include/aarch64-linux-gnu/NvInferRuntimeCommon.h:645:18: error:   overriding ‘virtual void nvinfer1::IPluginV2::destroy() noexcept’
         virtual void destroy() noexcept = 0;
                      ^~~~~~~
    ....../jetbot/ssd_tensorrt/FlattenConcat.cpp:209:16: error: looser throw specifier for ‘virtual nvinfer1::IPluginV2* FlattenConcat::clone() const’
         IPluginV2* clone() const override
                    ^~~~~
    In file included from /usr/include/aarch64-linux-gnu/NvInferLegacyDims.h:53:0,
                     from /usr/include/aarch64-linux-gnu/NvInfer.h:53,
                     from /usr/include/aarch64-linux-gnu/NvInferPlugin.h:53,
                     from....../jetbot/ssd_tensorrt/FlattenConcat.cpp:9:
    /usr/include/aarch64-linux-gnu/NvInferRuntimeCommon.h:661:24: error:   overriding ‘virtual nvinfer1::IPluginV2* nvinfer1::IPluginV2::clone() const noexcept’
         virtual IPluginV2* clone() const noexcept = 0;
                            ^~~~~
    ....../jetbot/ssd_tensorrt/FlattenConcat.cpp:214:10: error: looser throw specifier for ‘virtual void FlattenConcat::setPluginNamespace(const char*)’
         void setPluginNamespace(const char* pluginNamespace) override
              ^~~~~~~~~~~~~~~~~~
    In file included from /usr/include/aarch64-linux-gnu/NvInferLegacyDims.h:53:0,
                     from /usr/include/aarch64-linux-gnu/NvInfer.h:53,
                     from /usr/include/aarch64-linux-gnu/NvInferPlugin.h:53,
                     from....../jetbot/ssd_tensorrt/FlattenConcat.cpp:9:
    /usr/include/aarch64-linux-gnu/NvInferRuntimeCommon.h:677:18: error:   overriding ‘virtual void nvinfer1::IPluginV2::setPluginNamespace(const AsciiChar*) noexcept’
         virtual void setPluginNamespace(AsciiChar const* pluginNamespace) noexcept = 0;
                      ^~~~~~~~~~~~~~~~~~
    ....../jetbot/ssd_tensorrt/FlattenConcat.cpp:219:17: error: looser throw specifier for ‘virtual const char* FlattenConcat::getPluginNamespace() const’
         const char* getPluginNamespace() const override
                     ^~~~~~~~~~~~~~~~~~
    In file included from /usr/include/aarch64-linux-gnu/NvInferLegacyDims.h:53:0,
                     from /usr/include/aarch64-linux-gnu/NvInfer.h:53,
                     from /usr/include/aarch64-linux-gnu/NvInferPlugin.h:53,
                     from....../jetbot/ssd_tensorrt/FlattenConcat.cpp:9:
    /usr/include/aarch64-linux-gnu/NvInferRuntimeCommon.h:687:30: error:   overriding ‘virtual const AsciiChar* nvinfer1::IPluginV2::getPluginNamespace() const noexcept’
         virtual AsciiChar const* getPluginNamespace() const noexcept = 0;
                                  ^~~~~~~~~~~~~~~~~~
    ....../jetbot/ssd_tensorrt/FlattenConcat.cpp: In member function ‘virtual nvinfer1::Dims FlattenConcat::getOutputDimensions(int, const Dims*, int)’:
    ....../jetbot/ssd_tensorrt/FlattenConcat.cpp:89:16: error: ‘DimsCHW’ was not declared in this scope
             return DimsCHW(flattenedOutputSize, 1, 1);
                    ^~~~~~~
    ....../jetbot/ssd_tensorrt/FlattenConcat.cpp: In member function ‘virtual bool FlattenConcat::supportsFormat(nvinfer1::DataType, nvinfer1::PluginFormat) const’:
    ....../jetbot/ssd_tensorrt/FlattenConcat.cpp:200:69: error: ‘kNCHW’ is not a member of ‘nvinfer1::PluginFormat {aka nvinfer1::TensorFormat}’
             return (type == DataType::kFLOAT && format == PluginFormat::kNCHW);
                                                                         ^~~~~
    ....../jetbot/ssd_tensorrt/FlattenConcat.cpp: In member function ‘virtual nvinfer1::IPluginV2* FlattenConcat::clone() const’:
    ....../jetbot/ssd_tensorrt/FlattenConcat.cpp:211:110: error: invalid new-expression of abstract class type ‘FlattenConcat’
             return new FlattenConcat(mFlattenedInputSize.data(), mFlattenedInputSize.size(), mFlattenedOutputSize);
                                                                                                                  ^
    ....../jetbot/ssd_tensorrt/FlattenConcat.cpp:33:7: note:   because the following virtual functions are pure within ‘FlattenConcat’:
     class FlattenConcat : public IPluginV2
           ^~~~~~~~~~~~~
    In file included from /usr/include/aarch64-linux-gnu/NvInferLegacyDims.h:53:0,
                     from /usr/include/aarch64-linux-gnu/NvInfer.h:53,
                     from /usr/include/aarch64-linux-gnu/NvInferPlugin.h:53,
                     from....../jetbot/ssd_tensorrt/FlattenConcat.cpp:9:
    /usr/include/aarch64-linux-gnu/NvInferRuntimeCommon.h:606:21: note: 	virtual int32_t nvinfer1::IPluginV2::enqueue(int32_t, const void* const*, void* const*, void*, cudaStream_t)
         virtual int32_t enqueue(int32_t batchSize, void const* const* inputs, void* const* outputs, void* workspace,
                         ^~~~~~~
    ....../jetbot/ssd_tensorrt/FlattenConcat.cpp: At global scope:
    ....../jetbot/ssd_tensorrt/FlattenConcat.cpp:263:17: error: looser throw specifier for ‘virtual const char* FlattenConcatPluginCreator::getPluginName() const’
         const char* getPluginName() const override { return FLATTENCONCAT_PLUGIN_NAME; }
                     ^~~~~~~~~~~~~
    In file included from /usr/include/aarch64-linux-gnu/NvInferLegacyDims.h:53:0,
                     from /usr/include/aarch64-linux-gnu/NvInfer.h:53,
                     from /usr/include/aarch64-linux-gnu/NvInferPlugin.h:53,
                     from....../jetbot/ssd_tensorrt/FlattenConcat.cpp:9:
    /usr/include/aarch64-linux-gnu/NvInferRuntimeCommon.h:1134:30: error:   overriding ‘virtual const AsciiChar* nvinfer1::IPluginCreator::getPluginName() const noexcept’
         virtual AsciiChar const* getPluginName() const noexcept = 0;
                                  ^~~~~~~~~~~~~
    ....../jetbot/ssd_tensorrt/FlattenConcat.cpp:265:17: error: looser throw specifier for ‘virtual const char* FlattenConcatPluginCreator::getPluginVersion() const’
         const char* getPluginVersion() const override { return FLATTENCONCAT_PLUGIN_VERSION; }
                     ^~~~~~~~~~~~~~~~
    In file included from /usr/include/aarch64-linux-gnu/NvInferLegacyDims.h:53:0,
                     from /usr/include/aarch64-linux-gnu/NvInfer.h:53,
                     from /usr/include/aarch64-linux-gnu/NvInferPlugin.h:53,
                     from....../jetbot/ssd_tensorrt/FlattenConcat.cpp:9:
    /usr/include/aarch64-linux-gnu/NvInferRuntimeCommon.h:1148:30: error:   overriding ‘virtual const AsciiChar* nvinfer1::IPluginCreator::getPluginVersion() const noexcept’
         virtual AsciiChar const* getPluginVersion() const noexcept = 0;
                                  ^~~~~~~~~~~~~~~~
    ....../jetbot/ssd_tensorrt/FlattenConcat.cpp:267:34: error: looser throw specifier for ‘virtual const nvinfer1::PluginFieldCollection* FlattenConcatPluginCreator::getFieldNames()’
         const PluginFieldCollection* getFieldNames() override { return &mFC; }
                                      ^~~~~~~~~~~~~
    In file included from /usr/include/aarch64-linux-gnu/NvInferLegacyDims.h:53:0,
                     from /usr/include/aarch64-linux-gnu/NvInfer.h:53,
                     from /usr/include/aarch64-linux-gnu/NvInferPlugin.h:53,
                     from....../jetbot/ssd_tensorrt/FlattenConcat.cpp:9:
    /usr/include/aarch64-linux-gnu/NvInferRuntimeCommon.h:1160:42: error:   overriding ‘virtual const nvinfer1::PluginFieldCollection* nvinfer1::IPluginCreator::getFieldNames() noexcept’
         virtual PluginFieldCollection const* getFieldNames() noexcept = 0;
                                              ^~~~~~~~~~~~~
    ....../jetbot/ssd_tensorrt/FlattenConcat.cpp:269:16: error: looser throw specifier for ‘virtual nvinfer1::IPluginV2* FlattenConcatPluginCreator::createPlugin(const char*, const nvinfer1::PluginFieldCollection*)’
         IPluginV2* createPlugin(const char* name, const PluginFieldCollection* fc) override
                    ^~~~~~~~~~~~
    In file included from /usr/include/aarch64-linux-gnu/NvInferLegacyDims.h:53:0,
                     from /usr/include/aarch64-linux-gnu/NvInfer.h:53,
                     from /usr/include/aarch64-linux-gnu/NvInferPlugin.h:53,
                     from....../jetbot/ssd_tensorrt/FlattenConcat.cpp:9:
    /usr/include/aarch64-linux-gnu/NvInferRuntimeCommon.h:1171:24: error:   overriding ‘virtual nvinfer1::IPluginV2* nvinfer1::IPluginCreator::createPlugin(const AsciiChar*, const nvinfer1::PluginFieldCollection*) noexcept’
         virtual IPluginV2* createPlugin(AsciiChar const* name, PluginFieldCollection const* fc) noexcept = 0;
                            ^~~~~~~~~~~~
    ....../jetbot/ssd_tensorrt/FlattenConcat.cpp:274:16: error: looser throw specifier for ‘virtual nvinfer1::IPluginV2* FlattenConcatPluginCreator::deserializePlugin(const char*, const void*, size_t)’
         IPluginV2* deserializePlugin(const char* name, const void* serialData, size_t serialLength) override
                    ^~~~~~~~~~~~~~~~~
    In file included from /usr/include/aarch64-linux-gnu/NvInferLegacyDims.h:53:0,
                     from /usr/include/aarch64-linux-gnu/NvInfer.h:53,
                     from /usr/include/aarch64-linux-gnu/NvInferPlugin.h:53,
                     from....../jetbot/ssd_tensorrt/FlattenConcat.cpp:9:
    /usr/include/aarch64-linux-gnu/NvInferRuntimeCommon.h:1182:24: error:   overriding ‘virtual nvinfer1::IPluginV2* nvinfer1::IPluginCreator::deserializePlugin(const AsciiChar*, const void*, size_t) noexcept’
         virtual IPluginV2* deserializePlugin(AsciiChar const* name, void const* serialData, size_t serialLength) noexcept
                            ^~~~~~~~~~~~~~~~~
    ....../jetbot/ssd_tensorrt/FlattenConcat.cpp:280:10: error: looser throw specifier for ‘virtual void FlattenConcatPluginCreator::setPluginNamespace(const char*)’
         void setPluginNamespace(const char* pluginNamespace) override
              ^~~~~~~~~~~~~~~~~~
    In file included from /usr/include/aarch64-linux-gnu/NvInferLegacyDims.h:53:0,
                     from /usr/include/aarch64-linux-gnu/NvInfer.h:53,
                     from /usr/include/aarch64-linux-gnu/NvInferPlugin.h:53,
                     from....../jetbot/ssd_tensorrt/FlattenConcat.cpp:9:
    /usr/include/aarch64-linux-gnu/NvInferRuntimeCommon.h:1197:18: error:   overriding ‘virtual void nvinfer1::IPluginCreator::setPluginNamespace(const AsciiChar*) noexcept’
         virtual void setPluginNamespace(AsciiChar const* pluginNamespace) noexcept = 0;
                      ^~~~~~~~~~~~~~~~~~
    ....../jetbot/ssd_tensorrt/FlattenConcat.cpp:285:17: error: looser throw specifier for ‘virtual const char* FlattenConcatPluginCreator::getPluginNamespace() const’
         const char* getPluginNamespace() const override
                     ^~~~~~~~~~~~~~~~~~
    In file included from /usr/include/aarch64-linux-gnu/NvInferLegacyDims.h:53:0,
                     from /usr/include/aarch64-linux-gnu/NvInfer.h:53,
                     from /usr/include/aarch64-linux-gnu/NvInferPlugin.h:53,
                     from....../jetbot/ssd_tensorrt/FlattenConcat.cpp:9:
    /usr/include/aarch64-linux-gnu/NvInferRuntimeCommon.h:1211:30: error:   overriding ‘virtual const AsciiChar* nvinfer1::IPluginCreator::getPluginNamespace() const noexcept’
         virtual AsciiChar const* getPluginNamespace() const noexcept = 0;
                                  ^~~~~~~~~~~~~~~~~~
    ....../jetbot/ssd_tensorrt/FlattenConcat.cpp: In member function ‘virtual nvinfer1::IPluginV2* FlattenConcatPluginCreator::createPlugin(const char*, const nvinfer1::PluginFieldCollection*)’:
    ....../jetbot/ssd_tensorrt/FlattenConcat.cpp:271:34: error: invalid new-expression of abstract class type ‘FlattenConcat’
             return new FlattenConcat();
                                      ^
    ....../jetbot/ssd_tensorrt/FlattenConcat.cpp: In member function ‘virtual nvinfer1::IPluginV2* FlattenConcatPluginCreator::deserializePlugin(const char*, const void*, size_t)’:
    ....../jetbot/ssd_tensorrt/FlattenConcat.cpp:277:58: error: invalid new-expression of abstract class type ‘FlattenConcat’
             return new FlattenConcat(serialData, serialLength);
                                                              ^
    jetbot/ssd_tensorrt/CMakeFiles/ssd_tensorrt.dir/build.make:65: recipe for target 'jetbot/ssd_tensorrt/CMakeFiles/ssd_tensorrt.dir/FlattenConcat.cpp.o' failed
    make[2]: *** [jetbot/ssd_tensorrt/CMakeFiles/ssd_tensorrt.dir/FlattenConcat.cpp.o] Error 1
    make[2]: Leaving directory '....../build'
    CMakeFiles/Makefile2:106: recipe for target 'jetbot/ssd_tensorrt/CMakeFiles/ssd_tensorrt.dir/all' failed
    make[1]: *** [jetbot/ssd_tensorrt/CMakeFiles/ssd_tensorrt.dir/all] Error 2
    make[1]: Leaving directory '....../build'
    Makefile:86: recipe for target 'all' failed
    make: *** [all] Error 2
    ➜  build git:(master) ✗ 
    
    
    opened by jiapei100 0
Releases(v0.4.3)
  • v0.4.3(Feb 2, 2021)

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

    Changes

    Added

    Added LocalController class which allows users to directly connect controller to JetBot
    
    Source code(tar.gz)
    Source code(zip)
  • v0.4.2(Jan 25, 2021)

  • v0.4.1(Jan 25, 2021)

  • v0.4.0(Jan 16, 2020)

    JetBot SD card image based on JetPack 4.3 (required for B01 revision of Jetson Nano Developer Kit ):

    https://drive.google.com/open?id=1G5nw0o3Q6E08xZM99ZfzQAe7-qAXxzHN

    Object Detection Engine:

    https://drive.google.com/open?id=1KjlDMRD8uhgQmQK-nC2CZGHFTbq4qQQH

    Source code(tar.gz)
    Source code(zip)
  • v0.3.0(Mar 10, 2019)

    SD Card image

    Found here: jetbot_image_v0p3p0.zip

    • PyTorch 1.0 pre-installed
    • TensorFlow 1.13 pre-installed
    • 4GB swap enabled
    • default power model 5W
    • Jupyter Lab service installed
    • Status display service installed

    Python package

    • Heartbeat class to determine disconnects from browser
    • Camera class to generate eventful camera frames
    • Robot class for controlling robot locomotion
    • Motor class for event based motor control
    • ObjectDetector class for detecting objects using the subpackage jetbot.ssd_tensorrt
    • TRTModel class for abstracting TensorRT model execution on numpy arrays

    Notebooks

    Robot

    • basic motion teaches programmatic robot control
    • teleoperation demonstrates video streaming and gamepad control
    • collision avoidance
      • data collection to collect free and blocked labels
      • live demo to demonstrate simple wander / avoid obstacles
    • object following
      • live demo to demonstrate multi network COCO object following and simultaneous collision avoidance

    Host

    • collision avoidance
      • training to demonstrate training image classification network with PyTorch
    Source code(tar.gz)
    Source code(zip)
Owner
NVIDIA AI IOT
NVIDIA AI IOT
Trainable PyTorch reproduction of AlphaFold 2

OpenFold A faithful PyTorch reproduction of DeepMind's AlphaFold 2. Features OpenFold carefully reproduces (almost) all of the features of the origina

AQ Laboratory 1.7k Dec 29, 2022
Code to reproduce the results in "Visually Grounded Reasoning across Languages and Cultures", EMNLP 2021.

marvl-code [WIP] This is the implementation of the approaches described in the paper: Fangyu Liu*, Emanuele Bugliarello*, Edoardo M. Ponti, Siva Reddy

25 Nov 15, 2022
Convert game ISO and archives to CD CHD for emulation on Linux.

tochd Convert game ISO and archives to CD CHD for emulation. Author: Tuncay D. Source: https://github.com/thingsiplay/tochd Releases: https://github.c

Tuncay 20 Jan 02, 2023
The official homepage of the COCO-Stuff dataset.

The COCO-Stuff dataset Holger Caesar, Jasper Uijlings, Vittorio Ferrari Welcome to official homepage of the COCO-Stuff [1] dataset. COCO-Stuff augment

Holger Caesar 715 Dec 31, 2022
6D Grasping Policy for Point Clouds

GA-DDPG [website, paper] Installation git clone https://github.com/liruiw/GA-DDPG.git --recursive Setup: Ubuntu 16.04 or above, CUDA 10.0 or above, py

Lirui Wang 48 Dec 21, 2022
Pytorch for Segmentation

Pytorch for Semantic Segmentation This repo has been deprecated currently and I will not maintain it. Meanwhile, I strongly recommend you can refer to

ycszen 411 Nov 22, 2022
N-Omniglot is a large neuromorphic few-shot learning dataset

N-Omniglot [Paper] || [Dataset] N-Omniglot is a large neuromorphic few-shot learning dataset. It reconstructs strokes of Omniglot as videos and uses D

11 Dec 05, 2022
Library extending Jupyter notebooks to integrate with Apache TinkerPop and RDF SPARQL.

Graph Notebook: easily query and visualize graphs The graph notebook provides an easy way to interact with graph databases using Jupyter notebooks. Us

Amazon Web Services 501 Dec 28, 2022
Face Mask Detection system based on computer vision and deep learning using OpenCV and Tensorflow/Keras

Face Mask Detection Face Mask Detection System built with OpenCV, Keras/TensorFlow using Deep Learning and Computer Vision concepts in order to detect

Chandrika Deb 1.4k Jan 03, 2023
SWA Object Detection

SWA Object Detection This project hosts the scripts for training SWA object detectors, as presented in our paper: @article{zhang2020swa, title={SWA

237 Nov 28, 2022
This is a pytorch implementation of the NeurIPS paper GAN Memory with No Forgetting.

GAN Memory for Lifelong learning This is a pytorch implementation of the NeurIPS paper GAN Memory with No Forgetting. Please consider citing our paper

Miaoyun Zhao 43 Dec 27, 2022
Unsupervised clustering of high content screen samples

Microscopium Unsupervised clustering and dataset exploration for high content screens. See microscopium in action Public dataset BBBC021 from the Broa

60 Dec 05, 2022
Code implementation from my Medium blog post: [Transformers from Scratch in PyTorch]

transformer-from-scratch Code for my Medium blog post: Transformers from Scratch in PyTorch Note: This Transformer code does not include masked attent

Frank Odom 27 Dec 21, 2022
Source code to accompany Defunctland's video "FASTPASS: A Complicated Legacy"

Shapeland Simulator Source code to accompany Defunctland's video "FASTPASS: A Complicated Legacy" Download the video at https://www.youtube.com/watch?

TouringPlans.com 70 Dec 14, 2022
Sparse Physics-based and Interpretable Neural Networks

Sparse Physics-based and Interpretable Neural Networks for PDEs This repository contains the code and manuscript for research done on Sparse Physics-b

28 Jan 03, 2023
A tensorflow model that predicts if the image is of a cat or of a dog.

Quick intro Hello and thank you for your interest in my project! This is the backend part of a two-repo application. The other part can be found here

Tudor Matei 0 Mar 08, 2022
Ankou: Guiding Grey-box Fuzzing towards Combinatorial Difference

Ankou Ankou is a source-based grey-box fuzzer. It intends to use a more rich fitness function by going beyond simple branch coverage and considering t

SoftSec Lab 54 Dec 24, 2022
基于Paddle框架的arcface复现

arcface-Paddle 基于Paddle框架的arcface复现 ArcFace-Paddle 本项目基于paddlepaddle框架复现ArcFace,并参加百度第三届论文复现赛,将在2021年5月15日比赛完后提供AIStudio链接~敬请期待 参考项目: InsightFace Padd

QuanHao Guo 16 Dec 15, 2022
Fully Convolutional DenseNets for semantic segmentation.

Introduction This repo contains the code to train and evaluate FC-DenseNets as described in The One Hundred Layers Tiramisu: Fully Convolutional Dense

485 Nov 26, 2022
Log4j JNDI inj. vuln scanner

Log-4-JAM - Log 4 Just Another Mess Log4j JNDI inj. vuln scanner Requirements pip3 install requests_toolbelt Usage # make sure target list has http/ht

Ashish Kunwar 66 Nov 09, 2022