Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/gbr1/edgeimpulse_ros

ROS2 wrapper for Edge Impulse
https://github.com/gbr1/edgeimpulse_ros

ai artificial-intelligence dnn edge-impulse edgeimpulse jetson-nano machine-learning raspberry-pi ros2 tinyml vision

Last synced: 9 days ago
JSON representation

ROS2 wrapper for Edge Impulse

Awesome Lists containing this project

README

        

# edgeimpulse_ros

ROS2 Humble wrapper for Edge Impulse on Linux.

![ezgif-4-3cda6ac695](https://user-images.githubusercontent.com/9216366/193153736-fccd9451-2277-42f2-8141-6027a10f0245.gif)

## 1. Topics

- `/detection/input/image`, image topic to analyze
- `/detection/output/image`, image with bounding boxes
- `/detection/output/info`, VisionInfo message
- `/detection/output/results`, results as text

## 2. Parameters

- `frame_id` (**string**), _"base_link"_, frame id of output topics
- `model.filepath` (**string**), _""_, absolute filepath to .eim file
- `show.overlay` (**bool**), _true_, show bounding boxes on output image
- `show.center` (**bool**), _false_, show centroids on output image
- `show.labels` (**bool**), _true_, show labels on bounding boxes,
- `show.classification_info` (**bool**), _true_, show the attendibility (0-1) of the prediction

## 3. How to install

1. install edge_impulse_linux:

`pip3 install edge_impulse_linux`

2. on some boards and aarch64 these are required (e.g. vm on mac m1):

`sudo apt-get install libatlas-base-dev libportaudio2 libportaudiocpp0 portaudio19-dev`

`pip3 install pyaudio`

3. download your .eim file as **"linux board"** and choose your architecture

4. make your eim file as executable:

`cd /path/to/your/eim/file`

`chmod +x .eim`

5. clone this repo in your workspace:

`cd ~/dev_ws/src`
`git clone https://github.com/gbr1/edgeimpulse_ros`

6. check dependencies:

`cd ~/dev_ws`

`rosdep install --from-paths src --ignore-src -r -y`

7. build:

`colcon build --symlink-install`

`source install/setup.bash`

## 4. How to run

Launch the node:

`ros2 run edgeimpulse_ros image_classification --ros-args -p model.filepath:="" -r /detection/input/image:="/your_image_topic"`
`

## 5. Models

Here you find some prebuilt models: [https://github.com/gbr1/edgeimpulse_example_models](https://github.com/gbr1/edgeimpulse_example_models)

## 6. Known issues

- if you use a classification model, topic results is empty
- you cannot change color of bounding boxes (coming soon)
- other types (imu and sound based ml) are unavailable

***Copyright © 2022 Giovanni di Dio Bruno - gbr1.github.io***