-
 
No version for distro humble. 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 jazzy. Known supported distros are highlighted in the buttons above.
No version for distro rolling. Known supported distros are highlighted in the buttons above.

outsight_alb_driver package from outsight_alb_driver repo

outsight_alb_driver

Package Summary

Tags No category tags.
Version 1.6.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-10-12
Dev Status MAINTAINED
CI status
Released UNRELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

ROS driver to interface with ALB device.

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

To manage multiple configurations, the config file (placed in the dedicated /config folder) can be precised when launched.

roslaunch outsight_alb_driver outsight_alb.launch config_file:=custom_config.yaml

Recommendation: if ALB processing is manually resumed, restart ROS processing as well.

Why? It is preferable to reset the ROS node in order to account for any changes, such as if the processed record has been modified. Otherwise, you risk getting incorrect poses and odometry.

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.

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 is always published. This transform is particularly useful in the case of relocalization in a reference map. This transform gives the link between the origin of the map and the first position where the processing starts. This parameter also sets the frame used for the Zones message. When relocalization is disabled, map_frame and fixed_frame are the same.

With the default settings, the transform tree is structured like this: map_frame -> fixed_frame -> base_frame -> sensor_frame

Frames used for pose and odometry

For Pose, the coordinate frame used is:

  • map frame, in case of Relocalization, or
  • fixed frame, i.e. the initial Pose of the LiDAR, in case of Ego-Motion

In contrast, the odometry message, corresponding to the displacement between the first frame and the current frame, is always given in the fixed frame.

alb_services

This node defines services to interact with the ALB.

Custom services files

Services

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

  • /alb/processing/restart -> std_srvs/Trigger

    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
  
  • /alb/processing/stop -> std_srvs/Trigger

    Service to stop the processing on the ALB.

  rosservice call /alb/processing/stop
  
  • /alb/processing/get_config -> outsight_alb_driver/AlbConfig

    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"
  
  • /alb/processing/put_config -> outsight_alb_driver/AlbConfig

    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"
  
  # 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'"
  
  # 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"
  
  • alb/storage/list -> outsight_alb_driver/AlbFile

    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.6.0 (2022-10-11)

Added

  • Configuration file parameter to roslaunch command

Changed

  • Update OSEF types to 1.6.1

Fixed

  • Fix TrackedObjects log (MR #1)

1.5.1 (2022-06-28)

Fixed

  • Fix odometry frame ID
  • Always publish transform between map and fixed frame, and fix Pose frame

1.5.0 (2022-06-23)

Added

  • Publish zone definitions

Changed

  • Update OSEF types to 1.3.0

Fixed

  • Fix Odometry computation
  • Use egomotion directly from ALB output

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]{.title-ref} 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

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.

Recent questions tagged outsight_alb_driver at Robotics Stack Exchange

No version for distro galactic. Known supported distros are highlighted in the buttons above.

outsight_alb_driver package from outsight_alb_driver repo

outsight_alb_driver

Package Summary

Tags No category tags.
Version 1.6.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-10-12
Dev Status MAINTAINED
CI status
Released UNRELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

ROS driver to interface with ALB device.

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

To manage multiple configurations, the config file (placed in the dedicated /config folder) can be precised when launched.

roslaunch outsight_alb_driver outsight_alb.launch config_file:=custom_config.yaml

Recommendation: if ALB processing is manually resumed, restart ROS processing as well.

Why? It is preferable to reset the ROS node in order to account for any changes, such as if the processed record has been modified. Otherwise, you risk getting incorrect poses and odometry.

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.

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 is always published. This transform is particularly useful in the case of relocalization in a reference map. This transform gives the link between the origin of the map and the first position where the processing starts. This parameter also sets the frame used for the Zones message. When relocalization is disabled, map_frame and fixed_frame are the same.

With the default settings, the transform tree is structured like this: map_frame -> fixed_frame -> base_frame -> sensor_frame

Frames used for pose and odometry

For Pose, the coordinate frame used is:

  • map frame, in case of Relocalization, or
  • fixed frame, i.e. the initial Pose of the LiDAR, in case of Ego-Motion

In contrast, the odometry message, corresponding to the displacement between the first frame and the current frame, is always given in the fixed frame.

alb_services

This node defines services to interact with the ALB.

Custom services files

Services

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

  • /alb/processing/restart -> std_srvs/Trigger

    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
  
  • /alb/processing/stop -> std_srvs/Trigger

    Service to stop the processing on the ALB.

  rosservice call /alb/processing/stop
  
  • /alb/processing/get_config -> outsight_alb_driver/AlbConfig

    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"
  
  • /alb/processing/put_config -> outsight_alb_driver/AlbConfig

    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"
  
  # 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'"
  
  # 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"
  
  • alb/storage/list -> outsight_alb_driver/AlbFile

    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.6.0 (2022-10-11)

Added

  • Configuration file parameter to roslaunch command

Changed

  • Update OSEF types to 1.6.1

Fixed

  • Fix TrackedObjects log (MR #1)

1.5.1 (2022-06-28)

Fixed

  • Fix odometry frame ID
  • Always publish transform between map and fixed frame, and fix Pose frame

1.5.0 (2022-06-23)

Added

  • Publish zone definitions

Changed

  • Update OSEF types to 1.3.0

Fixed

  • Fix Odometry computation
  • Use egomotion directly from ALB output

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]{.title-ref} 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

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.

Recent questions tagged outsight_alb_driver at Robotics Stack Exchange