-
 

nicla_vision_ros2 package from nicla_vision_ros2 repo

nicla_vision_ros2

Package Summary

Tags No category tags.
Version 1.0.1
License Apache License 2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/ADVRHumanoids/nicla_vision_ros2.git
VCS Type git
VCS Version humble
Last Updated 2024-07-22
Dev Status DEVELOPED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

Integration of the Arduino Nicla Vision board in the ROS2 world. Sensors data from the Nicla Vision is collected and trasmited to the relevant ROS2 topics

Additional Links

Maintainers

  • Davide Torielli
  • Damiano Gasperini

Authors

  • Davide Torielli
  • Damiano Gasperini
  • Edoardo Del Bianco
  • Federico Rollo

:rocket: Nicla Vision ROS2 package :rocket:

A ROS2 interface for the Arduino Nicla Vision board

Build Status 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. 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
  • 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 (tested on ROS Noetic).

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

Note

We rely on the audio_common_msgs for the microphone data. Nevertheless, such package is not available as binary for ros2 yet. Hence, for now, we have copy-pasted the messages in this repo itself.

Additional Note: binary package will be released soon for ROS2!

Usage

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

1. Run the ROS2 package

  • Launch the package:
    $ ros2 launch nicla_vision_ros2 nicla_receiver.launch receiver_ip:="x.x.x.x" connection_type:="tcp/udp" <optional arguments>
    
- Set the `receiver_ip` with the IP address of your ROS-running machine.
    You can get this IP address by executing the following command:
        $ ifconfig
        
    and taking the "inet" address under the "enp" voice.
- Set the socket type to be used, either TCP or UDP (`connection_type:="tcp"` or `"udp"`).

Furthermore, using the `<optional arguments>`, you can decide:
- which sensor to be streamed in ROS2

  (e.g. `enable_imu:=true enable_range:=true enable_audio:=true enable_audio_stamped:=false enable_camera_compressed:=true enable_camera_raw:=true`), and
- on which socket port (default `receiver_port:=8002`).

Once you run it, you will be ready for receiving the sensors data transmitted by the board, so now you can move ahead to point **[2. Arduino Nicla Vision setup](#2-arduino-nicla-vision-setup)**. 
  • For simulating the Arduino Nicla Vision in Gazebo and Rviz:
    $ ros2 launch nicla_vision_ros2 nicla_sim.launch.py <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

2. 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.

Note: Look at the LED of your board! The first seconds (about 15 sec) after having turned it on, the LED should be Blue. When the board is correctly connected and it is streaming, the LED will turn off. If you are having connection issues, the LED will be Blue again. If during execution you see a Green LED, it is for unforseen errors. If during execution you see a Red LED, it is for memory errors (usually picture quality too high).

Video Demonstration

https://github.com/ADVRHumanoids/nicla_vision_ros/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.

Citation

:raised_hands: If you use this work or take inspiration from it, please cite (publication in progress):

@inproceedings{delbianco2024dagana,
  title={},
  author={},
  booktitle={},
  year={}
}

CHANGELOG

Changelog for package nicla_vision_ros2

1.0.1 (2024-07-22)

  • super linted
  • debugged
  • linted
  • arduino version default && speech recognizer vosk
  • fix copyright, licenses, contributing
  • new nicla rviz image
  • build badges!
  • better handling of exec dependencies
  • also build depend for xacro since CI failing
  • Support Nicla disconnection TCP
  • Fix ros timestamp tcp
  • corrected frame id in simulation
  • cam info in ros
  • udp check package size
  • time fixed 2
  • nicla frame as real nicla
  • Merge branch 'master' of https://github.com/ADVRHumanoids/nicla_vision_ros2
  • simulated sonsors to ros2
  • fix ros time
  • Update README.md
  • no gaz plugin package
  • imu works on humble-fortress
  • Merge branch 'devel'
  • Update README.md
  • no default connection type
  • Update README.md
  • Update README.md
  • add img
  • Update README.md
  • Update README.md
  • Assets
  • Update README.md
  • Merge branch 'devel' of https://github.com/ADVRHumanoids/nicla_vision_ros2 into devel
  • launch python with args
  • Update README.md
  • Update LICENSE
  • Update NiclaRosPublisher.py
  • Update __init_.py
  • trials gazebo
  • python3 and some dep
  • no audio common msgs in ros2
  • better cmake, some better folders
  • trasmission ok in udp
  • some devels, still wip
  • Initial commit
  • Contributors: Damiano Gasperini, Davide Torielli, damigas

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Launch files

  • launch/nicla_receiver.launch
      • nicla_name [default: nicla]
      • receiver_ip
      • receiver_port [default: 8002]
      • connection_type
      • use_arduino [default: true]
      • enable_range [default: true]
      • enable_camera_raw [default: false]
      • enable_camera_compressed [default: true]
      • enable_audio [default: true]
      • enable_audio_stamped [default: false]
      • enable_audio_recognition_vosk [default: false]
      • audio_recognition_model_path [default: ]
      • audio_recognition_listen_seconds [default: 2.0]
      • audio_recognition_grammar [default: ['']]
      • audio_recognition_wave_output_filename [default: ]
      • enable_imu [default: true]

Services

No service files found

Plugins

No plugins found.

Recent questions tagged nicla_vision_ros2 at Robotics Stack Exchange

nicla_vision_ros2 package from nicla_vision_ros2 repo

nicla_vision_ros2

Package Summary

Tags No category tags.
Version 1.1.1
License Apache License 2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/ADVRHumanoids/nicla_vision_ros2.git
VCS Type git
VCS Version jazzy
Last Updated 2024-07-22
Dev Status DEVELOPED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

Integration of the Arduino Nicla Vision board in the ROS2 world. Sensors data from the Nicla Vision is collected and trasmited to the relevant ROS2 topics

Additional Links

Maintainers

  • Davide Torielli
  • Damiano Gasperini

Authors

  • Davide Torielli
  • Damiano Gasperini
  • Edoardo Del Bianco
  • Federico Rollo

:rocket: Nicla Vision ROS2 package :rocket:

A ROS2 interface for the Arduino Nicla Vision board

Build Status 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. 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
  • 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 (tested on ROS Noetic).

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

Note

We rely on the audio_common_msgs for the microphone data. Nevertheless, such package is not available as binary for ros2 yet. Hence, for now, we have copy-pasted the messages in this repo itself.

Additional Note: binary package will be released soon for ROS2!

Usage

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

1. Run the ROS2 package

  • Launch the package:
    $ ros2 launch nicla_vision_ros2 nicla_receiver.launch receiver_ip:="x.x.x.x" connection_type:="tcp/udp" <optional arguments>
    
- Set the `receiver_ip` with the IP address of your ROS-running machine.
    You can get this IP address by executing the following command:
        $ ifconfig
        
    and taking the "inet" address under the "enp" voice.
- Set the socket type to be used, either TCP or UDP (`connection_type:="tcp"` or `"udp"`).

Furthermore, using the `<optional arguments>`, you can decide:
- which sensor to be streamed in ROS2

  (e.g. `enable_imu:=true enable_range:=true enable_audio:=true enable_audio_stamped:=false enable_camera_compressed:=true enable_camera_raw:=true`), and
- on which socket port (default `receiver_port:=8002`).

Once you run it, you will be ready for receiving the sensors data transmitted by the board, so now you can move ahead to point **[2. Arduino Nicla Vision setup](#2-arduino-nicla-vision-setup)**. 
  • For simulating the Arduino Nicla Vision in Gazebo and Rviz:
    $ ros2 launch nicla_vision_ros2 nicla_sim.launch.py <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

2. 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.

Note: Look at the LED of your board! The first seconds (about 15 sec) after having turned it on, the LED should be Blue. When the board is correctly connected and it is streaming, the LED will turn off. If you are having connection issues, the LED will be Blue again. If during execution you see a Green LED, it is for unforseen errors. If during execution you see a Red LED, it is for memory errors (usually picture quality too high).

Video Demonstration

https://github.com/ADVRHumanoids/nicla_vision_ros/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.

Citation

:raised_hands: If you use this work or take inspiration from it, please cite (publication in progress):

@inproceedings{delbianco2024dagana,
  title={},
  author={},
  booktitle={},
  year={}
}

CHANGELOG

Changelog for package nicla_vision_ros2

1.1.1 (2024-07-22)

  • jazzy bumping
  • 1.0.1
  • created changelog
  • super linted
  • debugged
  • linted
  • arduino version default && speech recognizer vosk
  • fix copyright, licenses, contributing
  • new nicla rviz image
  • build badges!
  • better handling of exec dependencies
  • also build depend for xacro since CI failing
  • Support Nicla disconnection TCP
  • Fix ros timestamp tcp
  • corrected frame id in simulation
  • cam info in ros
  • udp check package size
  • time fixed 2
  • nicla frame as real nicla
  • Merge branch 'master' of https://github.com/ADVRHumanoids/nicla_vision_ros2
  • simulated sonsors to ros2
  • fix ros time
  • Update README.md
  • no gaz plugin package
  • imu works on humble-fortress
  • Merge branch 'devel'
  • Update README.md
  • no default connection type
  • Update README.md
  • Update README.md
  • add img
  • Update README.md
  • Update README.md
  • Assets
  • Update README.md
  • Merge branch 'devel' of https://github.com/ADVRHumanoids/nicla_vision_ros2 into devel
  • launch python with args
  • Update README.md
  • Update LICENSE
  • Update NiclaRosPublisher.py
  • Update __init_.py
  • trials gazebo
  • python3 and some dep
  • no audio common msgs in ros2
  • better cmake, some better folders
  • trasmission ok in udp
  • some devels, still wip
  • Initial commit
  • Contributors: Damiano Gasperini, Davide Torielli, damigas

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Launch files

  • launch/nicla_receiver.launch
      • nicla_name [default: nicla]
      • receiver_ip
      • receiver_port [default: 8002]
      • connection_type
      • use_arduino [default: true]
      • enable_range [default: true]
      • enable_camera_raw [default: false]
      • enable_camera_compressed [default: true]
      • enable_audio [default: true]
      • enable_audio_stamped [default: false]
      • enable_audio_recognition_vosk [default: false]
      • audio_recognition_model_path [default: ]
      • audio_recognition_listen_seconds [default: 2.0]
      • audio_recognition_grammar [default: ['']]
      • audio_recognition_wave_output_filename [default: ]
      • enable_imu [default: true]

Services

No service files found

Plugins

No plugins found.

Recent questions tagged nicla_vision_ros2 at Robotics Stack Exchange

No version for distro rolling. Known supported distros are highlighted in the buttons above.
No version for distro noetic. Known supported distros are highlighted in the buttons above.
No version for distro ardent. Known supported distros are highlighted in the buttons above.
No version for distro bouncy. Known supported distros are highlighted in the buttons above.
No version for distro crystal. Known supported distros are highlighted in the buttons above.
No version for distro eloquent. Known supported distros are highlighted in the buttons above.
No version for distro dashing. Known supported distros are highlighted in the buttons above.
No version for distro galactic. Known supported distros are highlighted in the buttons above.
No version for distro foxy. Known supported distros are highlighted in the buttons above.
No version for distro iron. Known supported distros are highlighted in the buttons above.
No version for distro lunar. Known supported distros are highlighted in the buttons above.
No version for distro jade. Known supported distros are highlighted in the buttons above.
No version for distro indigo. Known supported distros are highlighted in the buttons above.
No version for distro hydro. Known supported distros are highlighted in the buttons above.
No version for distro kinetic. Known supported distros are highlighted in the buttons above.
No version for distro melodic. Known supported distros are highlighted in the buttons above.