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
MXNet implementation for: Drop an Octave: Reducing Spatial Redundancy in Convolutional Neural Networks with Octave Convolution

Octave Convolution MXNet implementation for: Drop an Octave: Reducing Spatial Redundancy in Convolutional Neural Networks with Octave Convolution Imag

Meta Research 549 Dec 28, 2022
[ICLR2021] Unlearnable Examples: Making Personal Data Unexploitable

Unlearnable Examples Code for ICLR2021 Spotlight Paper "Unlearnable Examples: Making Personal Data Unexploitable " by Hanxun Huang, Xingjun Ma, Sarah

Hanxun Huang 98 Dec 07, 2022
TransNet V2: Shot Boundary Detection Neural Network

TransNet V2: Shot Boundary Detection Neural Network This repository contains code for TransNet V2: An effective deep network architecture for fast sho

Tomáš Souček 212 Dec 27, 2022
torchbearer: A model fitting library for PyTorch

Note: We're moving to PyTorch Lightning! Read about the move here. From the end of February, torchbearer will no longer be actively maintained. We'll

632 Dec 13, 2022
Guided Internet-delivered Cognitive Behavioral Therapy Adherence Forecasting

Guided Internet-delivered Cognitive Behavioral Therapy Adherence Forecasting #Dataset The folder "Dataset" contains the dataset use in this work and m

0 Jan 08, 2022
High accurate tool for automatic faces detection with landmarks

faces_detanator High accurate tool for automatic faces detection with landmarks. The library is based on public detectors with high accuracy (TinaFace

Ihar 7 May 10, 2022
Vision Deep-Learning using Tensorflow, Keras.

Welcome! I am a computer vision deep learning developer working in Korea. This is my blog, and you can see everything I've studied here. https://www.n

kimminjun 6 Dec 14, 2022
This repository contains FEDOT - an open-source framework for automated modeling and machine learning (AutoML)

package tests docs license stats support This repository contains FEDOT - an open-source framework for automated modeling and machine learning (AutoML

National Center for Cognitive Research of ITMO University 482 Dec 26, 2022
Implementation of Bagging and AdaBoost Algorithm

Bagging-and-AdaBoost Implementation of Bagging and AdaBoost Algorithm Dataset Red Wine Quality Data Sets For simplicity, we will have 2 classes of win

Zechen Ma 1 Nov 01, 2021
Awesome Human Pose Estimation

Human Pose Estimation Related Publication

Zhe Wang 1.2k Dec 26, 2022
Collision risk estimation using stochastic motion models

collision_risk_estimation Collision risk estimation using stochastic motion models. This is a new approach, based on stochastic models, to predict the

Unmesh 7 Jun 26, 2022
This is a TensorFlow implementation for C2-Rec

This is a TensorFlow implementation for C2-Rec We refer to the repo SASRec. Requirements requirement.txt Datasets This repo includes Amazon Beauty dat

7 Nov 14, 2022
2.86% and 15.85% on CIFAR-10 and CIFAR-100

Shake-Shake regularization This repository contains the code for the paper Shake-Shake regularization. This arxiv paper is an extension of Shake-Shake

Xavier Gastaldi 294 Nov 22, 2022
OpenMMLab Semantic Segmentation Toolbox and Benchmark.

Documentation: https://mmsegmentation.readthedocs.io/ English | 简体中文 Introduction MMSegmentation is an open source semantic segmentation toolbox based

OpenMMLab 5k Dec 31, 2022
Yet another video caption

Yet another video caption

Fan Zhimin 5 May 26, 2022
[SIGGRAPH'22] StyleGAN-XL: Scaling StyleGAN to Large Diverse Datasets

[Project] [PDF] This repository contains code for our SIGGRAPH'22 paper "StyleGAN-XL: Scaling StyleGAN to Large Diverse Datasets" by Axel Sauer, Katja

742 Jan 04, 2023
Combinatorial model of ligand-receptor binding

Combinatorial model of ligand-receptor binding The binding of ligands to receptors is the starting point for many import signal pathways within a cell

Mobolaji Williams 0 Jan 09, 2022
HeartRate detector with ArduinoandPython - Use Arduino and Python create a heartrate detector.

Syllabus of Contents Syllabus of Contents Introduction Of Project Features Develop With Python code introduction Installation License Developer Contac

1 Jan 05, 2022
Xview3 solution - XView3 challenge, 2nd place solution

Xview3, 2nd place solution https://iuu.xview.us/ test split aggregate score publ

Selim Seferbekov 24 Nov 23, 2022
Unofficial implementation of "Coordinate Attention for Efficient Mobile Network Design"

Unofficial implementation of "Coordinate Attention for Efficient Mobile Network Design". CoordAttention tensorflow slim

Billy 9 Aug 22, 2022