This is a ROS1 Driver for the BEA LZR® Raw-F (Flatscan) laser scanner.
mkdir -p ~/bea_ws/src/ && cd ~/bea_ws/src/git clone https://github.com/BEASensors/bea_flatscan.gitcd ~/bea_ws/ && catkin buildsource devel/setup.bashroslaunch bea_sensors flatscan.launch
All these parameters are listed in the launch file:
portthe port connecting to the Flatscan sensor, e.g. "/dev/ttyUSB0"baudratethe baudrate used for communicationscan_frame_idthe frame_id of the published LaserScan messagescan_topicthe topic of the LaserScan message published toheartbeat_topicthe topic of the heartbeat message published toemergency_topicthe topic of the emergency message published tomin_rangethe minimal valid range of the LaserScan, in metersmax_rangethe maximal valid range of the LaserScan, in metersenable_temperatureCTN field in MDI framesinformation_in_mdithe required data in MDI frames, e.g. "2" indicates that both distances and intensities are requrieddetection_field_modethe required detection mode, e.g. "HD" means "High Density" modeoptimizationthe sensitivity and immunity optimization setting, e.g. "0" means no optimizationangle_firstthe starting angle, in degreesangle_lastthe ending angle, in degreesenable_counterthe MDI, heartbeat, emergency counters settingsheartbeat_periodthe heartbeat message publishing rate, setting to "0" disables the heartbeat publishingenable_facetfacet settingsaveraging_setting: averaging settings, "0" means no averaging
- sensor_msgs/LaserScan
Published when the MDI messages are received, the data included in the frame is set by the parameter information_in_mdi - bea_sensors/Emergency
Published only when error occurs or the host requests. - bea_sensors/Heartbeat
Published periodically according to the parameter heartbeat_period
Used for configuring the BEA LZR® Raw-F (Flatscan) laser scanner.
General form: rosservice call /flatscan/configure "command: <command> subcommand: <subcommand> value: <value>"
| Command | SubCommand | Value | Example |
| set_baudrate | - | 57600 115200 230400 460800 921600 |
rosservice call /flatscan/configure "command: 'set_baudrate' subcommand: '' value: '921600'" |
| get_measurements | - | single shot continuous |
rosservice call /flatscan/configure "command: 'get_measurements' subcommand: '' value: 'continuous'" |
| get_identity | - | - | rosservice call /flatscan/configure "command: 'get_identity' subcommand: '' value: ''" |
| get_emergency | - | - | rosservice call /flatscan/configure "command: 'get_emergency' subcommand: '' value: ''" |
| get_parameters | - | - | rosservice call /flatscan/configure "command: 'get_parameters' subcommand: '' value: ''" |
| set_parameters | temperature | 0: disable 1: enable |
rosservice call /flatscan/configure "command: 'set_parameters' subcommand: 'temperature' value: '1'" |
| information | 0: distances 1: remissions 2: distances and remissions |
rosservice call /flatscan/configure "command: 'set_parameters' subcommand: 'information' value: '0'" |
|
| mode | 0: HS 1: HD |
rosservice call /flatscan/configure "command: 'set_parameters' subcommand: 'mode' value: '1'" |
|
| optimization | 0: no optimization (maximum sensitivity) 1: range = 0 to 2.5m (minimum sensitivity) 2 : range = 0 to 3.0m 3 : range = 0 to 3.5m 4 : range longer than 3.5m (maximum sensitivity) |
rosservice call /flatscan/configure "command: 'set_parameters' subcommand: 'optimization' value: '0'" |
|
| angle_first | 0 to 10800 (unit: 0.01 degrees) | rosservice call /flatscan/configure "command: 'set_parameters' subcommand: 'angle_first' value: '0'" |
|
| angle_last | 0 to 10800 (unit: 0.01 degrees) | rosservice call /flatscan/configure "command: 'set_parameters' subcommand: 'angle_last' value: '10800'" |
|
| counter | 0: disable 1: enable |
rosservice call /flatscan/configure "command: 'set_parameters' subcommand: 'temperature' value: '1'" |
|
| heartbeat | 0 to 255 (unit: seconds, 0 means disable) | rosservice call /flatscan/configure "command: 'set_parameters' subcommand: 'heartbeat' value: '5'" |
|
| facet | 0: disable 1: enable |
rosservice call /flatscan/configure "command: 'set_parameters' subcommand: 'facet' value: '1'" |
|
| averaging | 0 : No averaging 1 : averaging 3 points in time 2 : averaging 3 points in time + 2 neighbours 3 : averaging 5 points in time 4 : averaging 5 points in time + 2 neighbours |
rosservice call /flatscan/configure "command: 'set_parameters' subcommand: 'averaging' value: '0'" |
|
| store_parameters | - | - | rosservice call /flatscan/configure "command: 'store_parameters' subcommand: '' value: ''" |
| reset_mdi_counter | - | - | rosservice call /flatscan/configure "command: 'reset_mdi_counter' subcommand: '' value: ''" |
| reset_heartbeat_counter | - | - | rosservice call /flatscan/configure "command: 'reset_heartbeat_counter' subcommand: '' value: ''" |
| reset_emergency_counter | - | - | rosservice call /flatscan/configure "command: 'reset_emergency_counter' subcommand: '' value: ''" |
| set_led | set | color (color could be off, red, green, or orange) |
rosservice call /flatscan/configure "command: 'set_led' subcommand: 'set' value: 'red'" |
| blink | color1 color2 frequency (color1 and color2 could be off, red, green, or orange) (frequency could be 1 to 10) |
rosservice call /flatscan/configure "command: 'set_led' subcommand: 'blink' value: 'green off 4'" |
|