outsight_alb_driver package from outsight_alb_driver repo

outsight_alb_driver

Package Summary

Tags No category tags.
Version 1.4.0
License BSD
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://gitlab.com/outsight-public/outsight-drivers/outsight_alb_driver.git
VCS Type git
VCS Version master
Last Updated 2022-05-05
Dev Status MAINTAINED
CI status No Continuous Integration
Released UNRELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

The outsight_alb_driver package

Additional Links

No additional links.

Maintainers

  • Erwan Cabon

Authors

  • Outsight

outsight_alb_driver

ROS1 package for Outsight Augmented Lidar Box (ALB).

Author: Outsight

Installation

Prerequisite

  • ROS (Install ROS)
  • Functionnal ALB
  • Install apt dependencies of the driver
  apt-get update
  # ROS Noetic release
  xargs apt-get install -y apt-dependencies_noetic.txt
  # ROS Melodic release
  xargs apt-get install -y apt-dependencies_melodic.txt

Building from sources

  1. Clone the repository
  2. Build using the ROS catkin build system
cd catkin_ws/src
git clone https://gitlab.com/outsight-public/outsight-drivers/outsight_alb_driver.git
cd ../
catkin_make
source devel/setup.bash

Configuration

  • Configure the ALB according to your application Documentation.
  • ip_address and ip_port have to be defined in the launch file (See launch/outsight_alb.launch for example).
  • To be able to publish messages to the corresponding topics and frames, set up the config/alb_tcp.yaml file.

To manage the frames, several frame names are defined in the configuration file:

* `fixed_frame_id` defined with default value at `alb_fixed_frame` represents the first frame when the processing starts. It is the fixed reference frame.
* `sensor_frame_id` represents the sensor frame (linked with sensor), with default value at `alb_sensor_frame`.
* `base_frame_id` represents the robot base frame (this frame is optional, see the provided transformation section for more information)
* `map_frame_id` is the fixed frame of the world and allows to link the odometry origin to the map (this frame is also optional).

Usage

Run the two nodes defined, alb_data and alb_services.

roslaunch outsight_alb_driver outsight_alb.launch

Nodes

alb_data

This node handles the received data from the ALB and publishes it to ROS.

Published topics

Timestamps

Both ALB and ROS timestamps can be used to stamp the previous topic messages. The topic /alb/time_reference links the ALB timestamp and the ROS timestamp. To use the ALB timestamp, set the /use_alb_time parameter to 'true' in the config file.

alb_services

This node defines services to interact with the ALB.

Profided transformation

If the transformation between the robot base frame and the sensor frame is provided (for instance within a URDF file), the package will broadcast the transform between the fixed frame (defined as the initial pose of the robot) and the robot base frame. Otherwise, the transformation broadcasted is simply the transformation between the fixed frame and the sensor frame. The tf broadcaster can be disabled by setting the broadcast_tf parameter to 'false' in the config file.

The static transform between the map frame and fixed frame can be published by setting the parameter use_map_frame to 'true'. This transform is particularly useful in the case of relocation in a reference map. This transform gives the link between the origin of the map and the first position where the processing starts.

With default settings and the Alb working standalone, the transform provided is simply: fixed_frame -> sensor_frame With every frame available, the transform tree is structured like this: map_frame -> fixed_frame -> base_frame -> sensor_frame

Custom services files

Service to manage the processing configuration of the ALB. Used for getting and putting the configuration from/to the ALB.

Service to use with the storage of the ALB, to download or upload files.

Services

For more information about the ALB API, please refer to the API documentation

Service to restart the processing on the ALB. Trigger service does not require any arguments, you can just call it with the following command:

  rosservice call /alb/processing/restart

Service to stop the processing on the ALB.

  rosservice call /alb/processing/stop

Service to get the processing configuration of the ALB. If argument is an empty string, configuration will be output in the roslaunch console. If argument is a full filepath, the configuration will be exported to this file.

WARNING: Filepath has to be absolute.

  rosservice call /alb/processing/get_config ""

  rosservice call /alb/processing/get_config "/home/username/Documents/out_config.json"

Service to put the processing configuration to the ALB. It has to be formatted as JSON format.

  rosservice call /alb/processing/put_config "/home/username/Documents/config_to_put.json"

Service to download a file from the ALB.

  # Call to download a map named map_name.ply on the ALB to the output file.
  rosservice call /alb/storage/download maps map_name.ply "/home/username/Documents/output_map.ply"

  # Same command with full argument description.
  rosservice call /alb/storage/download "category: 'maps' alb_filename: 'map_name.ply' filepath: '/home/username/Documents/output_map.ply'"

Service to upload a file to the ALB.

  # Call to upload a map named map_name.ply to the ALB.
  rosservice call /alb/storage/upload maps map_name.ply "/home/username/Documents/input_map.ply"

Service to list the files on the ALB.

By default, the response is printed into the rosconsole. Set a filepath to export the response to a file. Note that the parameter alb_filename isn't used here.

  # List the map files on the ALB.
  rosservice call /alb/storage/list maps "" ""

  # List the map files on the ALB and export it.
  rosservice call /alb/storage/list maps "" "/home/username/maps_storage.json"

Usage with other ROS messages

LaserScan

For some applications, instead of the PointCloud, LaserScan can be useful. For this, we recommend using the ROS package pointcloud_to_laserscan.

Then you can launch in another console the given launch file outsight_to_laserscan.launch, adjusting your own parameters. You can also integrate it directly in your own launch file for easier use.

roslaunch outsight_alb_driver outsight_to_laserscan.launch

Unit testing

In this ROS driver, unit tests have been defined under the test directory. After any change, make sure the tests are still able to run.

catkin_make run_tests
catkin_test_results

This driver has been tested in CI under melodic and noetic releases.

Contributing

Bugs and issues

Please report bugs and/or issues using the Issue Tracker

Feature requests and additions

In order to contribute to the code, please use Merge requests.

In case of Merge requests, the code will be integrated internally, in order to execute Continuous Integration and Continuous Deployment before being deployed publicly.

CHANGELOG

Changelog for package outsight_alb_driver

1.4.0 (2022-05-04)

Added

  • Add configuration parameter to reorder PointCloud2 to row-major order

Fixed

  • Fix dependency on navigation messages
  • Fix computation of row_step for PointCloud2 message

1.3.0 (2022-04-29)

Added

  • Odometry publisher

Changed

  • AugmentedCloud message update
  • Update OSEF library v1.2.1
  • Frame system improved for robotic integration

Fixed

  • Use private node for parameters (Issue #4)
  • Fix file data reading in AlbCurlHelper
  • Fix file uploading detected on ROS Melodic (Issue #2)
  • Fix checking defined storage command

1.2.2 (2022-03-14)

Fixed

  • Timereference microseconds conversion

1.2.1 (2022-02-10)

Fixed

  • Define fix loop rate at 20hz for services (Issue #3)

1.2.0 (2021-12-9)

Added

  • Publish Outsight AugmentedCloud
  • Add ROS documentation links

Changed

  • Update OSEF library

1.1.0 (2021-11-18)

Added

  • Add service to list available files on the ALB
  • Add LaserScan conversion

Fixed

  • Fix normalized quaternion

1.0.0 (2021-11-2)

Added

  • First public release
  • Node to parse messages from the ALB
    • PointCloud
    • Pose
    • TrackedObjects
  • Services to interact with the ALB
    • Start/Stop processing
    • Get/Put configuration of the ALB
    • Upload/Download files on the ALB

Wiki Tutorials

See ROS Wiki Tutorials for more details.

Source Tutorials

Not currently indexed.

Recent questions tagged outsight_alb_driver at answers.ros.org

outsight_alb_driver package from outsight_alb_driver repo

outsight_alb_driver

Package Summary

Tags No category tags.
Version 1.4.0
License BSD
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://gitlab.com/outsight-public/outsight-drivers/outsight_alb_driver.git
VCS Type git
VCS Version master
Last Updated 2022-05-05
Dev Status MAINTAINED
CI status No Continuous Integration
Released UNRELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

The outsight_alb_driver package

Additional Links

No additional links.

Maintainers

  • Erwan Cabon

Authors

  • Outsight

outsight_alb_driver

ROS1 package for Outsight Augmented Lidar Box (ALB).

Author: Outsight

Installation

Prerequisite

  • ROS (Install ROS)
  • Functionnal ALB
  • Install apt dependencies of the driver
  apt-get update
  # ROS Noetic release
  xargs apt-get install -y apt-dependencies_noetic.txt
  # ROS Melodic release
  xargs apt-get install -y apt-dependencies_melodic.txt

Building from sources

  1. Clone the repository
  2. Build using the ROS catkin build system
cd catkin_ws/src
git clone https://gitlab.com/outsight-public/outsight-drivers/outsight_alb_driver.git
cd ../
catkin_make
source devel/setup.bash

Configuration

  • Configure the ALB according to your application Documentation.
  • ip_address and ip_port have to be defined in the launch file (See launch/outsight_alb.launch for example).
  • To be able to publish messages to the corresponding topics and frames, set up the config/alb_tcp.yaml file.

To manage the frames, several frame names are defined in the configuration file:

* `fixed_frame_id` defined with default value at `alb_fixed_frame` represents the first frame when the processing starts. It is the fixed reference frame.
* `sensor_frame_id` represents the sensor frame (linked with sensor), with default value at `alb_sensor_frame`.
* `base_frame_id` represents the robot base frame (this frame is optional, see the provided transformation section for more information)
* `map_frame_id` is the fixed frame of the world and allows to link the odometry origin to the map (this frame is also optional).

Usage

Run the two nodes defined, alb_data and alb_services.

roslaunch outsight_alb_driver outsight_alb.launch

Nodes

alb_data

This node handles the received data from the ALB and publishes it to ROS.

Published topics

Timestamps

Both ALB and ROS timestamps can be used to stamp the previous topic messages. The topic /alb/time_reference links the ALB timestamp and the ROS timestamp. To use the ALB timestamp, set the /use_alb_time parameter to 'true' in the config file.

alb_services

This node defines services to interact with the ALB.

Profided transformation

If the transformation between the robot base frame and the sensor frame is provided (for instance within a URDF file), the package will broadcast the transform between the fixed frame (defined as the initial pose of the robot) and the robot base frame. Otherwise, the transformation broadcasted is simply the transformation between the fixed frame and the sensor frame. The tf broadcaster can be disabled by setting the broadcast_tf parameter to 'false' in the config file.

The static transform between the map frame and fixed frame can be published by setting the parameter use_map_frame to 'true'. This transform is particularly useful in the case of relocation in a reference map. This transform gives the link between the origin of the map and the first position where the processing starts.

With default settings and the Alb working standalone, the transform provided is simply: fixed_frame -> sensor_frame With every frame available, the transform tree is structured like this: map_frame -> fixed_frame -> base_frame -> sensor_frame

Custom services files

Service to manage the processing configuration of the ALB. Used for getting and putting the configuration from/to the ALB.

Service to use with the storage of the ALB, to download or upload files.

Services

For more information about the ALB API, please refer to the API documentation

Service to restart the processing on the ALB. Trigger service does not require any arguments, you can just call it with the following command:

  rosservice call /alb/processing/restart

Service to stop the processing on the ALB.

  rosservice call /alb/processing/stop

Service to get the processing configuration of the ALB. If argument is an empty string, configuration will be output in the roslaunch console. If argument is a full filepath, the configuration will be exported to this file.

WARNING: Filepath has to be absolute.

  rosservice call /alb/processing/get_config ""

  rosservice call /alb/processing/get_config "/home/username/Documents/out_config.json"

Service to put the processing configuration to the ALB. It has to be formatted as JSON format.

  rosservice call /alb/processing/put_config "/home/username/Documents/config_to_put.json"

Service to download a file from the ALB.

  # Call to download a map named map_name.ply on the ALB to the output file.
  rosservice call /alb/storage/download maps map_name.ply "/home/username/Documents/output_map.ply"

  # Same command with full argument description.
  rosservice call /alb/storage/download "category: 'maps' alb_filename: 'map_name.ply' filepath: '/home/username/Documents/output_map.ply'"

Service to upload a file to the ALB.

  # Call to upload a map named map_name.ply to the ALB.
  rosservice call /alb/storage/upload maps map_name.ply "/home/username/Documents/input_map.ply"

Service to list the files on the ALB.

By default, the response is printed into the rosconsole. Set a filepath to export the response to a file. Note that the parameter alb_filename isn't used here.

  # List the map files on the ALB.
  rosservice call /alb/storage/list maps "" ""

  # List the map files on the ALB and export it.
  rosservice call /alb/storage/list maps "" "/home/username/maps_storage.json"

Usage with other ROS messages

LaserScan

For some applications, instead of the PointCloud, LaserScan can be useful. For this, we recommend using the ROS package pointcloud_to_laserscan.

Then you can launch in another console the given launch file outsight_to_laserscan.launch, adjusting your own parameters. You can also integrate it directly in your own launch file for easier use.

roslaunch outsight_alb_driver outsight_to_laserscan.launch

Unit testing

In this ROS driver, unit tests have been defined under the test directory. After any change, make sure the tests are still able to run.

catkin_make run_tests
catkin_test_results

This driver has been tested in CI under melodic and noetic releases.

Contributing

Bugs and issues

Please report bugs and/or issues using the Issue Tracker

Feature requests and additions

In order to contribute to the code, please use Merge requests.

In case of Merge requests, the code will be integrated internally, in order to execute Continuous Integration and Continuous Deployment before being deployed publicly.

CHANGELOG

Changelog for package outsight_alb_driver

1.4.0 (2022-05-04)

Added

  • Add configuration parameter to reorder PointCloud2 to row-major order

Fixed

  • Fix dependency on navigation messages
  • Fix computation of row_step for PointCloud2 message

1.3.0 (2022-04-29)

Added

  • Odometry publisher

Changed

  • AugmentedCloud message update
  • Update OSEF library v1.2.1
  • Frame system improved for robotic integration

Fixed

  • Use private node for parameters (Issue #4)
  • Fix file data reading in AlbCurlHelper
  • Fix file uploading detected on ROS Melodic (Issue #2)
  • Fix checking defined storage command

1.2.2 (2022-03-14)

Fixed

  • Timereference microseconds conversion

1.2.1 (2022-02-10)

Fixed

  • Define fix loop rate at 20hz for services (Issue #3)

1.2.0 (2021-12-9)

Added

  • Publish Outsight AugmentedCloud
  • Add ROS documentation links

Changed

  • Update OSEF library

1.1.0 (2021-11-18)

Added

  • Add service to list available files on the ALB
  • Add LaserScan conversion

Fixed

  • Fix normalized quaternion

1.0.0 (2021-11-2)

Added

  • First public release
  • Node to parse messages from the ALB
    • PointCloud
    • Pose
    • TrackedObjects
  • Services to interact with the ALB
    • Start/Stop processing
    • Get/Put configuration of the ALB
    • Upload/Download files on the ALB

Wiki Tutorials

See ROS Wiki Tutorials for more details.

Source Tutorials

Not currently indexed.

Recent questions tagged outsight_alb_driver at answers.ros.org