toposens: toposens_bringup | toposens_description | toposens_driver | toposens_markers | toposens_msgs | toposens_pointcloud | toposens_sync

Package Summary

PCL integration for TS sensors mounted on Turtlebot3.


This package enables conversion of messages of type toposens_msgs/TsScan into messages of type sensor_msgs/PointCloud2.

Surface Normals

Since version 2.0 the package makes use of the standard PointCloud type PointXYZINormal instead of the custom type TsPoint. As a result the PointCloud also contains information about the surface normals.

Due to the specular reflection behavior of ultrasound, the surface normal of the detected object can be represented by a vector pointing from the detected point towards the sensor’s position while the point was recorded. This normal vector is added to the PointCloud representation. For a more detailed explanation of the physics behind Toposens sensors see Physics of 3D Ultrasonic Sensors.

ROS Nodes


translates messages of type toposens_msgs/TsScan into messages of type sensor_msgs/PointCloud2. Also logs the PointCloud into a pcd file.

Subscribed Topics

ts_scans (toposens_msgs/TsScan)
  • the scans that are published by the toposens_driver (name of the topic is a parameter)

Published Topics

ts_cloud (sensor_msgs/PointCloud2)
  • the PointCloud of type: PointXYZINormal that is created by accumulating the Toposens sensor data
ts_cloud_normals (invalid message type for MsgLink(msg/type))
  • markers that visualize the the normal vectors of the points in the PointCloud


~scans_topic (std_msgs/String)
  • topic name to listen for TsScan data
~target_frame (std_msgs/String)
  • frame ID in which the data is published
~pcd_save_interval (int) ~pcd_path (std_msgs/String)
  • path where pcd file should be stored
~lifetime_normals_vis (float)
  • lifetime for markers that visualize normal vectors (set to zero for not publishing the markers)

Wiki: toposens_pointcloud (last edited 2020-01-08 12:31:01 by SebastianDengler)