Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Back port relevant improvements made to the ROS2 to ROS1 #157

Closed
wants to merge 12 commits into from

Conversation

Samahu
Copy link
Contributor

@Samahu Samahu commented Jun 29, 2023

Related Issues & PRs

Summary of Changes

  • Added the ThreadSafeRingBuffer
    • with minimal unit tests for it
  • Switch to using threads for packet reception and processing instead of timers
  • Added a /ouster/reset service (experimental)
  • Added missing /ouster/get_metadata service to os_replay
  • Ported the refactorings made in ROS2 for imu and lidar packets processors
    • Added PointCloudProcessor
    • Added LaserScanProcessor
    • Added ImageProcessor
    • Users can select which processors to enable through proc_mask flag
  • Changes for the tf transforms
    • Added the ability to switch between dynamic and static broadcast of tf transforms
      • Set default for static transforms breoadcast
    • Added the ability to set custom names for the tf transforms
  • Added a new nodelet name OusterDriver with a new launch file driver.launch
    • The new nodelet combines the functionality of the three nodelets into a single nodelet avoiding the overhead of raw packets on the ROS communication bus.
  • Added a new message LaserScan with ability to set the specific ring through scan_ring argument
  • Added a switch point_cloud_frame to select which frame to be used when publishing point clouds or laser scans
    • choose between os_sensor or os_cloud; default is kept at os_sensor which would trigger a warning by default.

Validation

Old Interface Maintained

The three launch commands should be fully preserved under the new changes

# regular launch
roslaunch ouster_ros sensor.launch    \
    sensor_hostname:=<sensor host name>
# record
roslaunch ouster_ros record.launch    \
    sensor_hostname:=<sensor host name>     \
    bag_file:=<optional bag file name>      \
    metadata:=<json file name>              # optional
# replay
roslaunch ouster_ros replay.launch    \
    bag_file:=<path to rosbag file>         \
    metadata:=<json file name>              # optional if bag file has /metadata topic

Single Node (os_sensor+os_cloud+os_image)

To use the new combined node os_driver run the launch file driver.launch.py as shown below but please find the driver_config.yaml and adjust to match your sensor settings:

roslaunch ouster_ros driver.launch

proc_mask flags

  • When running in a single node test enabling \ disabling individual flags for the proc_mask.
    • For example enable only the IMU, SCAN, IMG and PCL.
    • Watch that only the specific message of the enabled message type actually gets published

Alternate PointCloud frame

  • Test altering point_cloud_frame between os_lidar and os_sensor
    • Altering between the two should be clearly reflected in the the rendered point cloud in RVIZ

Invoke the reset service (not implemented)

  • Connect the sensor, then invoke the /ouster/reset service
    ros service call /ouster/reset
  • A message should printed stating this is not implemented yet.

@Samahu Samahu added the enhancement New feature or request label Jun 29, 2023
@Samahu Samahu self-assigned this Jun 29, 2023
Samahu added 6 commits June 30, 2023 06:16
Switch to using threads for packet processing in os_sensor node +
Add new wreset service +
Add metadata service to os_replay
Add a switch between dynamic and static broadcast
Only create publisher when processors are enabled
Add a new launch file to utilize os_driver +
Made it is possible to set custom tf frames +
Made it possible to set proc_mask and scan_ring
@Samahu Samahu marked this pull request as ready for review July 20, 2023 16:59
@Samahu Samahu marked this pull request as draft July 20, 2023 17:01
@Samahu Samahu closed this Jul 20, 2023
@Samahu Samahu deleted the ros1_merged_node branch July 20, 2023 17:02
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
1 participant