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
Train Scene Graph Generation for Visual Genome and GQA in PyTorch >= 1.2 with improved zero and few-shot generalization.

Scene Graph Generation Object Detections Ground truth Scene Graph Generated Scene Graph In this visualization, woman sitting on rock is a zero-shot tr

Boris Knyazev 93 Dec 28, 2022
Code for the IJCAI 2021 paper "Structure Guided Lane Detection"

SGNet Project for the IJCAI 2021 paper "Structure Guided Lane Detection" Abstract Recently, lane detection has made great progress with the rapid deve

Jinming Su 27 Dec 08, 2022
Point Cloud Registration Network

PCRNet: Point Cloud Registration Network using PointNet Encoding Source Code Author: Vinit Sarode and Xueqian Li Paper | Website | Video | Pytorch Imp

ViNiT SaRoDe 59 Nov 19, 2022
Style transfer between images was performed using the VGG19 model

Style transfer between images was performed using the VGG19 model. The necessary codes, libraries and all other information of this project are available below

Onur yılmaz 2 May 09, 2022
A Python Package For System Identification Using NARMAX Models

SysIdentPy is a Python module for System Identification using NARMAX models built on top of numpy and is distributed under the 3-Clause BSD license. N

Wilson Rocha 175 Dec 25, 2022
Code and models used in "MUSS Multilingual Unsupervised Sentence Simplification by Mining Paraphrases".

Multilingual Unsupervised Sentence Simplification Code and pretrained models to reproduce experiments in "MUSS: Multilingual Unsupervised Sentence Sim

Facebook Research 81 Dec 29, 2022
Convolutional 2D Knowledge Graph Embeddings resources

ConvE Convolutional 2D Knowledge Graph Embeddings resources. Paper: Convolutional 2D Knowledge Graph Embeddings Used in the paper, but do not use thes

Tim Dettmers 586 Dec 24, 2022
A package to predict protein inter-residue geometries from sequence data

trRosetta This package is a part of trRosetta protein structure prediction protocol developed in: Improved protein structure prediction using predicte

Ivan Anishchenko 185 Jan 07, 2023
Genetic Programming in Python, with a scikit-learn inspired API

Welcome to gplearn! gplearn implements Genetic Programming in Python, with a scikit-learn inspired and compatible API. While Genetic Programming (GP)

Trevor Stephens 1.3k Jan 03, 2023
Pretty Tensor - Fluent Neural Networks in TensorFlow

Pretty Tensor provides a high level builder API for TensorFlow. It provides thin wrappers on Tensors so that you can easily build multi-layer neural networks.

Google 1.2k Dec 29, 2022
Implementation of Learning Gradient Fields for Molecular Conformation Generation (ICML 2021).

[PDF] | [Slides] The official implementation of Learning Gradient Fields for Molecular Conformation Generation (ICML 2021 Long talk) Installation Inst

MilaGraph 117 Dec 09, 2022
This project is based on RIFE and aims to make RIFE more practical for users by adding various features and design new models

CPM 项目描述 CPM(Chinese Pretrained Models)模型是北京智源人工智能研究院和清华大学发布的中文大规模预训练模型。官方发布了三种规模的模型,参数量分别为109M、334M、2.6B,用户需申请与通过审核,方可下载。 由于原项目需要考虑大模型的训练和使用,需要安装较为复杂

hzwer 190 Jan 08, 2023
Seeing Dynamic Scene in the Dark: High-Quality Video Dataset with Mechatronic Alignment (ICCV2021)

Seeing Dynamic Scene in the Dark: High-Quality Video Dataset with Mechatronic Alignment This is a pytorch project for the paper Seeing Dynamic Scene i

DV Lab 21 Nov 28, 2022
Use CLIP to represent video for Retrieval Task

A Straightforward Framework For Video Retrieval Using CLIP This repository contains the basic code for feature extraction and replication of results.

Jesus Andres Portillo Quintero 54 Dec 22, 2022
Official implementation of "An Image is Worth 16x16 Words, What is a Video Worth?" (2021 paper)

An Image is Worth 16x16 Words, What is a Video Worth? paper Official PyTorch Implementation Gilad Sharir, Asaf Noy, Lihi Zelnik-Manor DAMO Academy, Al

213 Nov 12, 2022
Bayesian Neural Networks in PyTorch

We present the new scheme to compute Monte Carlo estimator in Bayesian VI settings with almost no memory cost in GPU, regardles of the number of sampl

Jurijs Nazarovs 7 May 03, 2022
Biomarker identification for COVID-19 Severity in BALF cells Single-cell RNA-seq data

scBALF Covid-19 dataset Analysis Here is the Github page that has the codes for the bioinformatics pipeline described in the paper COVID-Datathon: Bio

Nami Niyakan 2 May 21, 2022
Reverse engineering Rosetta 2 in M1 Mac

Project Champollion About this project Rosetta 2 is an emulation mechanism to run the x86_64 applications on Arm-based Apple Silicon with Ahead-Of-Tim

FFRI Security, Inc. 258 Jan 07, 2023
In the AI for TSP competition we try to solve optimization problems using machine learning.

AI for TSP Competition Goal In the AI for TSP competition we try to solve optimization problems using machine learning. The competition will be hosted

Paulo da Costa 11 Nov 27, 2022