/nano-backpack

Backpack designed to enhance computational power of NAO robots.

Primary LanguagePython

Nano-backpack for NAO robot

Nano-backpack is an open hardware add-on for the humanoid robot NAO. It adds a Nvidia Jetson Nano development board to the robot and thereby enhances the computational capabilities of the system. The corresponding software architecture includes a webapp to control the robot and allows an easy start into the development of further applications.

This project was part of the Robotics Practical class (MScTI_ROBP) in summer term 2020 @ Heidelberg University.

Setup:

Install and setup linux-wifi-hotspot on Jetson Nano
  1. Install dependencies:

    sudo apt install -y libgtk-3-dev build-essential gcc g++ pkg-config make hostapd
  2. Clone repo and build:

    git clone https://github.com/lakinduakash/linux-wifi-hotspot
    cd linux-wifi-hotspot
    
    # build binaries
    make
    
    # install
    sudo make install
  3. Open application and create hotspot with rndis0 preset

  4. Run linux-wifi-hotspot on every startup:

    systemctl enable create_ap
Clone this repo and build Docker Image
  1. Clone:
    git clone https://github.com/roydenwa/nano-backpack.git
  2. Navigate to nano-backpack/src/app/ and build Docker image with:
    sudo docker build -t "nano-backpack" .
Install and run dnsmasq
  1. Install dnsmasq:
    apt install dnsmasq
  2. Run provided bash script to setup a subnet:
    sudo bash run_dnsmasq.sh
Run Docker image and connect to wifi-hotspot to see webapp with other devices

Start Docker image with interactive shell: sudo docker run --rm -it -p 80:80 "nano-backpack" The webapp should now be visible at 192.168.12.1 if you are connected to the previously created wifi hotspot.

License and credits

Creative Commons License
This work is licensed under a Creative Commons Attribution 4.0 International License.

This repo is built upon other open-source contributions:

TODO:

  • Docu
    • Simplify Layout - Alex frist page - abstract and contents, header
    • Abstract
    • Introduction - Alex / Royden
    • Related works Backpack - Alex
    • Related works Monocular - Royden
    • Related Works optional: linux-wifi-hotstpot ? - Royden
    • Instructions for Peter - Peter how to - Alex
      • pw user on Nano
      • pw wlan nano-bp
      • ip ssh
      • standard ip NAO robot
      • Table compatible Naoqi-SDKs (Offical: Python: no(not suitable for ARM), Javascript: qimessaging yes, qi2: yes, C++: not tested, Third-party: ROS: deprecated, NodeJs~yorki: yes)
      • Development Environment Nano:
      • how to use docker and python on Nano with NAO
    • Mechanical design - Royden
    • Remote control NAO ~ UI5 - Royden / Alex
    • Depth estimation - python-decorator - single-frame <-> video - Royden
    • Conclusion: - Alex / Royden
      • benefit: easy start - dev env - UI for for testing
      • outlook: python base for depthestimation, JS base for more NAOqi-services
  • App
    • NAOs view - placeholder img of NAO - Alex
    • ui5-datamodel ip, text params - Royden
    • Import Error qimessaging - Royden
    • update readme, clean repo
    • Docker images - Royden