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