Skip to content

GitLab

  • Menu
Projects Groups Snippets
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
  • RTIS ROS RTIS ROS
  • Project information
    • Project information
    • Activity
    • Members
  • Packages & Registries
    • Packages & Registries
    • Package Registry
    • Infrastructure Registry
  • Wiki
    • Wiki
  • Activity
Collapse sidebar
  • RTIS Software
  • RTIS ROSRTIS ROS
  • Wiki
  • Home

Home · Changes

Page history
Update home authored Apr 02, 2024 by Wouter Jansen's avatar Wouter Jansen
Show whitespace changes
Inline Side-by-side
home.md
View page @ 5a675910
ROS Node that connects to the RTIS Network to publish RTIS sensor data.
# RTIS ROS
ROS Node that connects to multiple RTIS sensors in the RTIS Network or to a single sensor using RTIS Dev to publish RTIS sensor data.
## Dependencies
* ROS Noetic using Python 3
* Python modules (best to install these with `python -m pip install x` to link to correct version of Python used by ROS):
* multiprocessing-logging
* Numpy
* Scipy (use `python -m pip install scipy==0.16` if having issues installing scipy on Python 2.7)
* [RTIS Network](https://cosysgit.uantwerpen.be/rtis-software/rtisnetwork "RTIS Network") if using multiple sensors. Supported RTIS Network version: v2.13.0 and above.
* RTIS Dev v2.11.0 or higher (see [here](https://cosysgit.uantwerpen.be/rtis-software/rtisdev "RTIS Dev Git repository"))
* RTIS Dev Remote Python Wrapper v2.11.0 or higher (see [here](https://cosysgit.uantwerpen.be/rtis-software/rtisdevremotepy "RTIS Dev Remote Py Git repository")), if using remote version
## Installation
This repository is structured as a ROS package. You need to install it in a catkin workspace. For example:
```bash
mkdir -p ~/catkin_ws/src
cd ~/catkin_ws/
catkin_make
source ./devel/setup.bash
cd src
git clone https://cosysgit.uantwerpen.be/rtis-software/rtisros.git
cd rtisros
git submodule init
git submodule update
cd ~/catkin_ws/
catkin_make
```
## Usage
### RTIS Network (multiple sensors)
#### Launch Publisher
Once an RTIS Network is available you can launch the RTIS ROS Publisher with the provided [launch file](launch/rtis_publisher.launch). This will connect to the RTIS Network and publish all the sonar measurements on the correct topics.
Once an RTIS Network is available you can launch the RTIS ROS Publisher with the provided [RTIS Network publisher launch file](launch/rtis_network_publisher.launch). This will connect to the RTIS Network and publish all the sonar measurements on the correct topics.
You can adjust this launch file to toggle on or off specific topics and give specific naming schemes for the topic names and frame ids to fit your needs. The TF-tree is automatically created and broadcasted by requesting the RTIS Client poses from the RTIS Network API.
To use the launch file, you can use:
```bash
cd ~/catkin_ws/
source ./devel/setup.bash
roslaunch rtisros rtis_publisher.launch
roslaunch rtisros rtis_network_publisher.launch
```
#### Topics
Depending on what you enable with the RTIS Publisher node launch parameters as seen in the [launch file](launch/rtis_publisher.launch), multiple topics are available:
Depending on what you enable with the RTIS Publisher node launch parameters as seen in the [RTIS Network publisher launch file](launch/rtis_network_publisher.launch), multiple topics are available for each sensor:
* _Pointcloud2_ topic: This will publish a 3D pointcloud of the processed RTIS sonar data with _X_, _Y_, _Z_ and _intensity_ fields all using Float32. This is an optional publisher, off by default.
* _Image_ topic: This will publish the 2D energyscape as a float32 single channel (32FC1) image. This is an optional publisher, off by default.
* _RTISData_ topic: This is a custom message that has the same Header as the other topics in terms of frame and timestamp. It is always enabled. It provides 4 fields:
......@@ -23,5 +54,35 @@ Depending on what you enable with the RTIS Publisher node launch parameters as s
* _behaviour_ field: Bool field which tells if the measurement was using active or passive sonar behaviour.
* _RTISInfo_ topic: This is a custom message that has the same Header as the other topics in terms of frame and topic naming scheme. It is always enabled. It provides you with all hardware and DSP settings used
by that particular RTIS sensor. Please see the [message](msg/RTISInfo.msg) itself for more details on the available variables. It is a latched message so will always be available.
#### RVIZ
An [RVIZ configuration file](rviz/rtis.rviz) is also provided to see the pointcloud and/or the energyscape image for each connected RTIS Client.
\ No newline at end of file
### RTIS Dev (single sensor)
#### Launch Publisher
You can launch the RTIS ROS Publisher with the provided [RTIS Dev publisher launch file](launch/rtis_dev_publisher.launch). This will connect to the sensor over RTIS Dev directly or RTIS Dev Remote depending on your choice and publish all the sonar measurements on the correct topics.
You can adjust this launch file to configure the sensor, toggle on or off specific topics and give specific naming schemes for the topic names and frame ids to fit your needs. The TF-tree is automatically created and broadcasted by setting it correctly in the launch file.
To use the launch file, you can use:
```bash
cd ~/catkin_ws/
source ./devel/setup.bash
roslaunch rtisros rtis_dev_publisher.launch
```
#### Updating behaviour
The RTIS device can be toggled between active and passive behaviour by sending a message to a specified topic.
This message should be of type `std_msgs/Bool` and contain the new behaviour setting. This will be used for the next measurement.
By default, this topic is `/rtis/your_rtis_device_client_id/cmd_behaviour_toggle`.
For example, one can use the following command in the terminal to toggle the behaviour to active with the default topic naming scheme and client ID _eRTIS-NANO-0005_ (Due to ROS topic naming conventions, the client ID is changed so that dashes become underscores):
```
rostopic pub /rtis/eRTIS_NANO_0005/cmd_behaviour_toggle std_msgs/Bool "data: true"
```
#### Topics
Depending on what you enable with the RTIS Publisher node launch parameters as seen in the [RTIS Dev publisher launch file](launch/rtis_dev_publisher.launch), multiple topics are available for this sensor:
* _Pointcloud2_ topic: This will publish a 3D pointcloud of the processed RTIS sonar data with _X_, _Y_, _Z_ and _intensity_ fields all using Float32. This is an optional publisher, off by default.
* _Image_ topic: This will publish the 2D energyscape as a float32 single channel (32FC1) image. This is an optional publisher, off by default.
* _RTISData_ topic: This is a custom message that has the same Header as the other topics in terms of frame and timestamp. It is always enabled. It provides 4 fields:
* _data_ field: This is an array of uint8 of the raw sonar data.
* _microphones_ field: this is an int8 variable that tells how many microphones the raw sonar data is containing.
* _index_ field: int32 field which tells the measurement index of the internal counter of the RTIS device.
* _behaviour_ field: Bool field which tells if the measurement was using active or passive sonar behaviour.
* _RTISInfo_ topic: This is a custom message that has the same Header as the other topics in terms of frame and topic naming scheme. It is always enabled. It provides you with all hardware and DSP settings used. Please see the [message](msg/RTISInfo.msg) itself for more details on the available variables. It is a latched message so will always be available.
Clone repository
  • Home