nicla_vision_ros

A ROS package for the Arduino Nicla Vision board

https://github.com/advrhumanoids/nicla_vision_ros

Science Score: 57.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 1 DOI reference(s) in README
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (12.5%) to scientific vocabulary

Keywords

arduino gazebo micropython nicla-vision ros sensors-data-collection
Last synced: 6 months ago · JSON representation ·

Repository

A ROS package for the Arduino Nicla Vision board

Basic Info
  • Host: GitHub
  • Owner: ADVRHumanoids
  • License: apache-2.0
  • Language: Python
  • Default Branch: master
  • Homepage:
  • Size: 1.45 MB
Statistics
  • Stars: 7
  • Watchers: 1
  • Forks: 1
  • Open Issues: 0
  • Releases: 0
Topics
arduino gazebo micropython nicla-vision ros sensors-data-collection
Created almost 2 years ago · Last pushed 6 months ago
Metadata Files
Readme Changelog Contributing License Citation

README.md

Nicla Vision ROS package

:rocket: Check out the ROS2 version: Nicla Vision ROS2 repository :rocket:

Build Status

Alt Text


Description

This ROS package enables the Arduino Nicla Vision board to be ready-to-use in the ROS world! :boom:

The implemented architecture is described in the above image: the Arduino Nicla Vision board streams the sensors data to a ROS-running machine through TCP/UDP socket or Serial, i.e. UART over the USB cable. This package will be running on the ROS-running machine, allowing to deserialize the received info, and stream it in the corresponding ROS topics

Here a list of the available sensors with their respective ROS topics: - 2MP color camera streams on - /nicla/camera/camera_info - /nicla/camera/image_raw - /nicla/camera/image_raw/compressed - Time-of-Flight (distance) sensor streams on: - /nicla/tof - Microphone streams on: - /nicla/audio - /nicla/audio_info - /nicla/audio_stamped - /nicla/audio_recognized - Imu streams on: - /nicla/imu

The user can easily configure this package, by launch parameters, to receive sensors data via either UDP or TCP socket connections, specifying also the socket IP address. Moreover, the user can decide which sensor to be streamed within the ROS environment. In this repository you can find the Python code optimised for receiving the data by the board, and subsequently publishing it through ROS topics.

Table of Contents

  1. Installation
  2. Usage
  3. Package List
  4. Video
  5. License
  6. Cite

Installation

Step-by-step instructions on how to get the ROS package running

Binaries available for noetic:
sudo apt install ros-$ROS_DISTRO-nicla-vision-ros
For ROS2, check https://github.com/ADVRHumanoids/niclavisionros2.git

Source installation

Usual catkin build : bash $ cd <your_workpace>/src $ git clone https://github.com/ADVRHumanoids/nicla_vision_ros.git $ cd <your_workpace> $ catkin build $ source <your_workpace>/devel/setup.bash

Arduino Nicla Vision setup

After having completed the setup steps in the Nicla Vision Drivers repository, just turn on your Arduino Nicla Vision. When you power on your Arduino Nicla Vision, it will automatically connect to the network and it will start streaming to your ROS-running machine.

Optional Audio Recognition with VOSK

It is possible to run a speech recognition feature directly on this module, that will then publish the recognized words on the /nicla/audio_recognized topic. At the moment, VOSK is utilized. Only Arduino version is supported.

VOSK setup

  1. pip install vosk
  2. Download a VOSK model https://alphacephei.com/vosk/models
  3. Check the recognition arguments in the nicla_receiver.launch file

Usage

Follow the below steps for enjoying your Arduino Nicla Vision board with ROS!

Run the ROS package

  • Launch the package: bash $ roslaunch nicla_vision_ros nicla_receiver.launch receiver_ip:="x.x.x.x" connection_type:="tcp/udp/serial" <optional arguments>

    • Set the socket type to be used, either TCP or UDP (connection_type:=tcp, udp, or serial).
    • Set the receiver_ip with the IP address of your ROS-running machine. You can get this IP address by executing the following command: bash $ ifconfig and taking the "inet" address under the "enp" voice. Note argument is ignored if connection_type:="tcp/udp/serial

    Furthermore, using the <optional arguments>, you can decide: - which sensor to be streamed in ROS (e.g. enable_imu:=true enable_range:=true enable_audio:=true enable_audio_stamped:=false enable_camera_compressed:=true enable_camera_raw:=true), with Serial connection, set camera_receive_compressed according to how nicla is sending images (COMPRESSIMAGE) - on which socket port (default `receiverport:=8002). For Serial connection,receiverportargument is used to specify the port used by the board (e.g.receiverport:=/dev/ttyACM0`)

    Once you run it, you will be ready for receiving the sensors data

Simulated board

  • For simulating the Arduino Nicla Vision in Gazebo and Rviz: bash $ roslaunch nicla_vision_ros nicla_sim.launch <optional arguments> Using the <optional arguments>, you can decide if to run the simulation in Gazebo or in Rviz, and which sensor to simulate (everything set to true as default). Alt Text

Optional Micropython Version

Note this version is not supported and maintained anymore, we defitively moved to the Arduino version.

If you want to use the micropython driver of the nicla (after setup it accordingly), simply run the nicla_receiver.launch with driver_version:=micropython as argument.

Video Demonstration

https://github.com/ADVRHumanoids/niclavisionros/assets/26459008/a3eaf921-02ea-4482-80a0-5830a338eb74

Package List

Here some useful links:

License

Distributed under the Apache-2.0 License. See LICENSE for more information.

ROSCon24 Talk

  • Video https://vimeo.com/1026030054
  • Slides https://roscon.ros.org/2024/talks/UnlockingthePotentialoftheNiclaVisionBoardwith_ROS-ROS2.pdf

Citation

:raised_hands: If you use this work or take inspiration from it, please cite (to be published): bibtex @inproceedings {DelBianco2024, author = {Del Bianco, Edoardo and Torielli, Davide and Rollo, Federico and Gasperini, Damiano and Laurenzi, Arturo and Baccelliere, Lorenzo and Muratore, Luca and Roveri, Marco and Tsagarakis, Nikos G.}, booktitle={2024 IEEE-RAS 23rd International Conference on Humanoid Robots (Humanoids)}, title = {A High-Force Gripper with Embedded Multimodal Sensing for Powerful and Perception Driven Grasping}, year={2024}, volume={}, number={}, pages={149-156}, doi={10.1109/Humanoids58906.2024.10769951} }

Owner

  • Name: ADVR Humanoids
  • Login: ADVRHumanoids
  • Kind: organization
  • Email: luca.muratore@iit.it
  • Location: Istituto Italiano di Tecnologia

Humanoids & Human Centered Mechatronics, HHCM, IIT

Citation (CITATION.cff)

cff-version: 1.2.0
message: DAGANA paper.
authors:
  - family-names: Del Bianco
    given-names: Edoardo
  - family-names: Torielli
    given-names: Davide
  - family-names: Rollo
    given-names: Federico
  - family-names: Gasperini
    given-names: Damiano
  - family-names: Laurenzi
    given-names: Arturo
  - family-names: Baccelliere
    given-names: Lorenzo
  - family-names: Muratore
    given-names: Luca
  - family-names: Roveri
    given-names: Marco
  - family-names: Tsagarakis
    given-names: Nikos G.
title: A High-Force Gripper with Embedded Multimodal Sensing for Powerful and Perception Driven Grasping
version: 1.0.0
doi: ''
date-released: '2024-09-25'
preferred-citation:
  authors:
    - family-names: Del Bianco
      given-names: Edoardo
    - family-names: Torielli
      given-names: Davide
    - family-names: Rollo
      given-names: Federico
    - family-names: Gasperini
      given-names: Damiano
    - family-names: Laurenzi
      given-names: Arturo
    - family-names: Baccelliere
      given-names: Lorenzo
    - family-names: Muratore
      given-names: Luca
    - family-names: Roveri
      given-names: Marco
    - family-names: Tsagarakis
      given-names: Nikos G.
  title: A High-Force Gripper with Embedded Multimodal Sensing for Powerful and Perception Driven Grasping
  doi: ''
  type: conference-paper
  pages: ''
  year: '2024'
  collection-title: 2024 IEEE-RAS 23rd International Conference on Humanoid Robots (Humanoids)
  conference: {}
  publisher: {}

GitHub Events

Total
  • Watch event: 5
  • Push event: 8
Last Year
  • Watch event: 5
  • Push event: 8

Issues and Pull Requests

Last synced: over 1 year ago

All Time
  • Total issues: 0
  • Total pull requests: 1
  • Average time to close issues: N/A
  • Average time to close pull requests: 29 minutes
  • Total issue authors: 0
  • Total pull request authors: 1
  • Average comments per issue: 0
  • Average comments per pull request: 0.0
  • Merged pull requests: 1
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 0
  • Pull requests: 1
  • Average time to close issues: N/A
  • Average time to close pull requests: 29 minutes
  • Issue authors: 0
  • Pull request authors: 1
  • Average comments per issue: 0
  • Average comments per pull request: 0.0
  • Merged pull requests: 1
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
Pull Request Authors
  • torydebra (2)
Top Labels
Issue Labels
Pull Request Labels

Dependencies

setup.py pypi