{"id":44052331,"url":"https://github.com/pulp-platform/pulp-detector","last_synced_at":"2026-02-07T23:36:10.763Z","repository":{"id":236315607,"uuid":"591328521","full_name":"pulp-platform/pulp-detector","owner":"pulp-platform","description":null,"archived":false,"fork":false,"pushed_at":"2025-04-28T14:03:34.000Z","size":18465,"stargazers_count":13,"open_issues_count":1,"forks_count":3,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-04-28T15:24:27.574Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/pulp-platform.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.Apache.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2023-01-20T13:47:10.000Z","updated_at":"2025-04-28T14:03:38.000Z","dependencies_parsed_at":"2024-11-06T10:42:49.235Z","dependency_job_id":"7050cdc8-171c-4bbf-b6c4-01c68893c71c","html_url":"https://github.com/pulp-platform/pulp-detector","commit_stats":null,"previous_names":["pulp-platform/pulp-detector"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/pulp-platform/pulp-detector","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pulp-platform%2Fpulp-detector","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pulp-platform%2Fpulp-detector/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pulp-platform%2Fpulp-detector/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pulp-platform%2Fpulp-detector/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pulp-platform","download_url":"https://codeload.github.com/pulp-platform/pulp-detector/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pulp-platform%2Fpulp-detector/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29212754,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-07T23:14:30.912Z","status":"ssl_error","status_checked_at":"2026-02-07T23:14:17.253Z","response_time":63,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-02-07T23:36:10.151Z","updated_at":"2026-02-07T23:36:10.755Z","avatar_url":"https://github.com/pulp-platform.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"; margin: 0px; padding: 0px;\"\u003e\n  \u003cimg alt=\"GitHub Repo stars\" src=\"https://img.shields.io/github/stars/pulp-platform/pulp-detector?style=flat-square\"\u003e\n  \u003cimg alt=\"GitHub forks\" src=\"https://img.shields.io/github/forks/pulp-platform/pulp-detector?style=flat-square\"\u003e\n  \u003cimg alt=\"GitHub watchers\" src=\"https://img.shields.io/github/watchers/pulp-platform/pulp-detector?style=flat-square\"\u003e\n  \u003cimg alt=\"GitHub License\" src=\"https://img.shields.io/github/contributors/pulp-platform/pulp-detector?style=flat-square\"\u003e\n  \u003cimg alt=\"GitHub License\" src=\"https://img.shields.io/badge/license-Apache%202.0-blue?style=flat-square\"\u003e\n\u003c/div\u003e\n\n\u003c!-- Possible styles\nstyle=social\nstyle=for-the-badge\nstyle=flat-square\n --\u003e\n\n\u003ch1 align=\"center\"\u003ePULP-Detector\u003c/h1\u003e\n\n\u003cp align=\"center\"\u003e\u003cb\u003eLorenzo Lamberti, Luca Bompani, Victor Javier Kartsch, Manuele Rusci, Daniele Palossi, Luca Benini.\u003c/b\u003e\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e \n  \u003ci\u003e Copyright (C) 2023 University of Bologna, ETH Zürich. All rights reserved. \u003c/i\u003e \n\u003c/p\u003e\n\n\u003cdiv align=\"center\" style=\"margin-bottom: 20px;\"\u003e\n  \u003ca href=\"https://youtu.be/BTin8g0nyko\" style=\"font-weight: bold;\"\u003e \u003cstrong\u003e Video Demo \u003c/strong\u003e\u003c/a\u003e\n    ·\n  \u003ca href=\"https://ieeexplore.ieee.org/document/10137154\" style=\"font-weight: bold;\"\u003e\u003cstrong\u003e IEEExplore \u003c/strong\u003e\u003c/a\u003e\n    ·\n  \u003ca href=\"https://arxiv.org/abs/2301.12175\" style=\"font-weight: bold;\"\u003e\u003cstrong\u003e arXiv \u003c/strong\u003e\u003c/a\u003e\n\u003c/div\u003e\n\n\u003cbr\u003e\n\n\u003cimg style=\"float: center;\" src=\"images/cover.png\" width=\"100%\"\u003e\n\n**Video:** [YouTube](https://youtu.be/BTin8g0nyko)\n\n**Citing:** *\"Bio-inspired Autonomous Exploration Policies with CNN-based Object Detection on Nano-drones\"* ([IEEExplore](https://ieeexplore.ieee.org/abstract/document/10137154), [arXiv](https://arxiv.org/abs/2301.12175))\n\n~~~~\n@INPROCEEDINGS{pulp_detector,\n  author={Lamberti, Lorenzo and Bompani, Luca and Kartsch, Victor Javier and Rusci, Manuele and Palossi, Daniele and Benini, Luca},\n  booktitle={2023 Design, Automation \\\u0026 Test in Europe Conference \\\u0026 Exhibition (DATE)},\n  title={{{Bio-inspired Autonomous Exploration Policies with CNN-based Object Detection on Nano-drones}}},\n  year={2023},\n  volume={},\n  number={},\n  pages={1-6},\n  doi={10.23919/DATE56975.2023.10137154}}\n~~~~\n\n## 1. Introduction\n### What is PULP-Detector ?\n**PULP-Detector** is a nano-drone system that strives for both maximizing the exploration of a room while performing visual object detection.\nThe Exploration policies as implemented as lightweight and bio-inpired state machines.\nThe object detection CNN is based on the MobilenetV2-SSD network.\nThe drone performs obstacle avoidance thanks to Time-of-flight sensors.\nThe drone is completely autonomous -- **no human operator, no ad-hoc external signals, and no remote laptop!**\n\n- **Software component:**\nObject detection CNN: is a shallow convolutional neural network (CNN) composed of Mobilenet-v2 backbone plus the SSD (single-shot detector) heads.\nIt runs at 1.6-4.3 FPS onboard.\n\n- **Hardware components:**\nThe hardware soul of PULP-Detector is an ultra-low power visual navigation module embodied by a pluggable PCB (called *shield* or *deck*) for the [Crazyflie 2.0](https://www.bitcraze.io/crazyflie-2/)/[2.1](https://www.bitcraze.io/crazyflie-2-1/) nano-drone. The shield features a Parallel Ultra-Low-Power (PULP) GAP8 System-on-Chip (SoC) from GreenWaves Technologies (GWT), an ultra-low power HiMax HBM01 camera, and off-chip Flash/DRAM memory; This pluggable PCB has evolved over time, from the [*PULP-Shield*](https://ieeexplore.ieee.org/document/8715489) , the first custom-made prototype version developed at ETH Zürich, and its commercial off-the-shelf evolution, the [*AI-deck*](https://store.bitcraze.io/products/ai-deck).\n\n\n\nSummary of characteristics:\n\n - **Hardware:** [*AI-deck*](https://store.bitcraze.io/products/ai-deck)\n\n- **Deep learning framework:** Tensorflow 1.15 ([Tensorflow Object detection API](??))\n\n- **Quantization**: fixed-point 8 bits, fully automated with [NNTool](https://greenwaves-technologies.com/sdk-manuals/nn_quick_start_guide/)\n\n- **Deployment**: fully automated with [AutoTiler](https://greenwaves-technologies.com/sdk-manuals/nn_quick_start_guide/)\n\nWe release here, as open source, all our code, hardware designs, datasets, and trained networks.\n\n## Setup\n\nClone recursively to download all submodules\n\n```\ngit clone git@github.com:pulp-platform/pulp-detector.git --recursive\n```\n\n\n## PULP-Platforms refs\n\n[PULP Platform Youtube](https://www.youtube.com/c/PULPPlatform) channel (subscribe it!)\n\n[PULP Platform Website](https://pulp-platform.org/).\n\n\n\n\n\n## Licenses\n\nAll files under:\n  * `./crazyflie_app/random-following-spiral`\n  * `./crazyflie_app/rotate`\n  * `./gap8_app/SSD_tin_can_bottle.c`\n\nare original and licensed under Apache-2.0, see [LICENSE.Apache.md](LICENSE.Apache.md).\n\n\nThe images used for the training and testing need to be downloaded and copied into the following folder:\n  * `dataset/`\n\nall the files can be downloaded from this [link](https://zenodo.org/records/10992237) and are under the Creative Commons Attribution Non Commercial No Derivatives 4.0 International see [LICENSE.CC.md](LICENSE.CC.md)\n\n\n\nAll files under:\n  * `./training/`\n\nAre from [Tensorflow](https://github.com/tensorflow/models/), released under  Apache-2.0 License, see [LICENSE.Apache.md](LICENSE.Apache.md).\n\n\nAll files under:\n  * `./gap8_app/` (except for `./gap8_app/SSD_tin_can_bottle.c`)\n\nAre from [GreenWaves Technologies](https://github.com/GreenWaves-Technologies), released under a BSD License, see [LICENSE.BSD.md](LICENSE.BSD.md)\n\n\nThe external modules under:\n  * `./viewer-pulp-detector/`\n  * `./crazyflie_app/crazyflie-firmware`\n  * `./crazyflie_app/crazyflie-firmware-modified`\n\nAre from [Bitcraze](https://github.com/bitcraze), released under a GPL-3.0 license.\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpulp-platform%2Fpulp-detector","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpulp-platform%2Fpulp-detector","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpulp-platform%2Fpulp-detector/lists"}