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
Gym environment for FLIPIT: The Game of "Stealthy Takeover"

gym-flipit Gym environment for FLIPIT: The Game of "Stealthy Takeover" invented by Marten van Dijk, Ari Juels, Alina Oprea, and Ronald L. Rivest. Desi

Lisa Oakley 2 Dec 15, 2021
PyTorch code for the paper "Complementarity is the King: Multi-modal and Multi-grained Hierarchical Semantic Enhancement Network for Cross-modal Retrieval".

Complementarity is the King: Multi-modal and Multi-grained Hierarchical Semantic Enhancement Network for Cross-modal Retrieval (M2HSE) PyTorch code fo

Xinlei-Pei 6 Dec 23, 2022
Python Implementation of Chess Playing AI with variable difficulty

Chess AI with variable difficulty level implemented using the MiniMax AB-Pruning Algorithm

Ali Imran 7 Feb 20, 2022
[CVPR 2021 Oral] Variational Relational Point Completion Network

VRCNet: Variational Relational Point Completion Network This repository contains the PyTorch implementation of the paper: Variational Relational Point

PL 121 Dec 12, 2022
The implementation our EMNLP 2021 paper "Enhanced Language Representation with Label Knowledge for Span Extraction".

LEAR The implementation our EMNLP 2021 paper "Enhanced Language Representation with Label Knowledge for Span Extraction". See below for an overview of

杨攀 93 Jan 07, 2023
TensorFlow GNN is a library to build Graph Neural Networks on the TensorFlow platform.

TensorFlow GNN This is an early (alpha) release to get community feedback. It's under active development and we may break API compatibility in the fut

889 Dec 30, 2022
Official PyTorch implementation of GDWCT (CVPR 2019, oral)

This repository provides the official code of GDWCT, and it is written in PyTorch. Paper Image-to-Image Translation via Group-wise Deep Whitening-and-

WonwoongCho 135 Dec 02, 2022
Dataset for the Research2Clinics @ NeurIPS 2021 Paper: What Do You See in this Patient? Behavioral Testing of Clinical NLP Models

Behavioral Testing of Clinical NLP Models This repository contains code for testing the behavior of clinical prediction models based on patient letter

Betty van Aken 2 Sep 20, 2022
Detectorch - detectron for PyTorch

Detectorch - detectron for PyTorch (Disclaimer: this is work in progress and does not feature all the functionalities of detectron. Currently only inf

Ignacio Rocco 558 Dec 23, 2022
This application is the basic of automated online-class-joiner(for YıldızEdu) within the right time. Gets the ZOOM link by scheduled date and time.

This application is the basic of automated online-class-joiner(for YıldızEdu) within the right time. Gets the ZOOM link by scheduled date and time.

215355 1 Dec 16, 2021
PyTorch Implementation of CvT: Introducing Convolutions to Vision Transformers

CvT: Introducing Convolutions to Vision Transformers Pytorch implementation of CvT: Introducing Convolutions to Vision Transformers Usage: img = torch

Rishikesh (ऋषिकेश) 193 Jan 03, 2023
My usage of Real-ESRGAN to upscale anime, some test and results in the test_img folder

anime upscaler My usage of Real-ESRGAN to upscale anime, I hope to use this on a proper GPU cuz doing this on CPU is completely shit 😂 , I even tried

Shangar Muhunthan 29 Jan 07, 2023
A Lightweight Experiment & Resource Monitoring Tool 📺

Lightweight Experiment & Resource Monitoring 📺 "Did I already run this experiment before? How many resources are currently available on my cluster?"

170 Dec 28, 2022
On Evaluation Metrics for Graph Generative Models

On Evaluation Metrics for Graph Generative Models Authors: Rylee Thompson, Boris Knyazev, Elahe Ghalebi, Jungtaek Kim, Graham Taylor This is the offic

13 Jan 07, 2023
ncnn is a high-performance neural network inference framework optimized for the mobile platform

ncnn ncnn is a high-performance neural network inference computing framework optimized for mobile platforms. ncnn is deeply considerate about deployme

Tencent 16.2k Jan 05, 2023
tf2onnx - Convert TensorFlow, Keras and Tflite models to ONNX.

tf2onnx converts TensorFlow (tf-1.x or tf-2.x), tf.keras and tflite models to ONNX via command line or python api.

Open Neural Network Exchange 1.8k Jan 08, 2023
Adaout is a practical and flexible regularization method with high generalization and interpretability

Adaout Adaout is a practical and flexible regularization method with high generalization and interpretability. Requirements python 3.6 (Anaconda versi

lambett 1 Feb 09, 2022
Source code for CVPR 2021 paper "Riggable 3D Face Reconstruction via In-Network Optimization"

Riggable 3D Face Reconstruction via In-Network Optimization Source code for CVPR 2021 paper "Riggable 3D Face Reconstruction via In-Network Optimizati

130 Jan 02, 2023
SplineConv implementation for Paddle.

SplineConv implementation for Paddle This module implements the SplineConv operators from Matthias Fey, Jan Eric Lenssen, Frank Weichert, Heinrich Mül

北海若 3 Dec 29, 2021
FACIAL: Synthesizing Dynamic Talking Face With Implicit Attribute Learning. ICCV, 2021.

FACIAL: Synthesizing Dynamic Talking Face with Implicit Attribute Learning PyTorch implementation for the paper: FACIAL: Synthesizing Dynamic Talking

226 Jan 08, 2023