ark::lidar
Enums
Typedefs
Defined in “ark/lidar/hokuyo/data.hh”:
- using HokuyoUam05Packet = std::variant< HokuyoUam05Version, HokuyoUam05Data >
A variant containing some Hokuyo data.
Defined in “ark/lidar/sick/data.hh”:
- using SickTim5xxPacket = std::variant< SickTim5xxData, SickTim5xxFirmwareVersion >
A variant that contains various pieces of information that the parser could read.
Variables
Defined in “ark/lidar/baraja/data.hh”:
- constexpr uint8_t BARAJA_SPECTRUM_PACKET_VERSION= 1
Supported packet version number.
Defined in “ark/lidar/baraja/stages/baraja_sweep_builder_stage.hh”:
- ark::lidar::BarajaSpectrumSweepBuilderStage __attribute__
Classes
-
ark::lidar::BarajaSpectrumSweepBuilder
A sweep builder intended for the Baraja Spectrum LIDAR. Accumulates LIDAR packets until it determines that a “sweep” should be emitted.Today, the LIDAR appears to go from -60 to 60, so we use that to determine when a “sweep” should be emitted.
-
ark::lidar::BarajaSpectrumSweepBuilderStage
A stage that receives packets from the Baraja Spectrum LIDAR and runs them through the packet parser. Also supplies basic visualizations. -
ark::lidar::HokuyoUam05InterfaceStage
This stage will parse incoming Hokuyo LIDAR packets, parse them, and then publish them out to the rest of the stack. -
ark::lidar::HokuyoUam05Parser
A parser for Hokuyo data from the UAM-05LP series of devices. Feed in TCP packets, and it will emit parsed Hokuyo packets. -
ark::lidar::SickPlugin
This consumes SICk data messages, and updates status widgets to show the status of teh sensor. -
ark::lidar::SickTim5xxInterfaceStage
This stage will parse incoming SICK LIDAR packets, parse them, and then publish them out to the rest of the stack. -
ark::lidar::SickTim5xxParser
A parser for SICK data from the TIM 5xx series of devices. Feed in TCP packets, and it will emit parsed SICK packets. -
ark::lidar::VelodynePlugin
A simple plugin that consumes depth images, and then converts them to point clouds and renders them in the 3D scene. -
ark::lidar::VelodyneSettings
Helper class to set the velodyne settings through the sensors http interface. -
ark::lidar::VelodyneStatus
Helper class to retrieve the sensor status from the http server. -
ark::lidar::VelodyneSweepBuilder
Simple “Sweep” buidling class. Accumulates lidar packets until angle swept by the lidar sensor exceeds 360 degrees. The start angle is arbitrarially based on the first packet in the sweep and the builder assumes a constant stream of consecutive packets. -
ark::lidar::BarajaSpectrumDataPacket
A packed structure mapping the raw bits of a Baraja packet into a structure. -
ark::lidar::BarajaSpectrumDataPoint
A single point of data (the number of points is computed based on packet size).a Note this is fairly confusing, because the entire structure is actually packed on really odd bit-boundaries, and clang, at least, doesn’t properly pack them together. So we have to unpack them manually. -
ark::lidar::BarajaSpectrumReturn
Structure representing the data for a single Baraja Spectrum return. -
ark::lidar::BarajaSpectrumReturnGroup
Structure repsenting a group of returns that have the same transform. -
ark::lidar::BarajaSpectrumSweep
Structure representing a complete sweep. -
ark::lidar::HokuyoReturn
A structure representing a parsed return (something that has converted the range/angle information in Hokuyo packet into a 3D (well, really 2D) position in sensor frame. -
ark::lidar::HokuyoReturnGroup
This is a group of returns (range/angle information). They are grouped together by ‘packet’ coming from the sensor. -
ark::lidar::SickGuiState
Tracks state so we can pause and flip through Sicks in the GUI. -
ark::lidar::SickReturn
A structure representing a parsed return (something that has converted the range/angle information in Sick packet into a 3D (well, really 2D) position in sensor frame. -
ark::lidar::SickReturnGroup
This is a group of returns (range/angle information). They are grouped together by ‘packet’ coming from the sensor. -
ark::lidar::VelodyneCalibrationData
Common intrinsic data for Velodyne sensors. Allows you to translate the polar coordinates coming back from the LIDAR into X/Y/Z coordinates. -
ark::lidar::VelodyneGuiState
Tracks state so we can pause and flip through Velodynes in the GUI. -
ark::lidar::VelodyneReturn
Structure representing the data for a single velodyne return. -
ark::lidar::VelodyneSweepBuilderConfig
Configuration when constructing a sweep builder.
Functions
Declared in “ark/lidar/baraja/data.hh”:
- struct ark::lidar::BarajaSpectrumDataPacket __attribute__()
Declared in “ark/lidar/baraja/intrinsics.hh”:
- void parse_baraja_spectrum_group(std::vector< BarajaSpectrumReturn > & returns, float & final_theta_rad, const BarajaSpectrumDataPacket & header, const BarajaSpectrumDataPoint * points, size_t point_count)
Parse a Vlp32c packet handling the correct return mode.
Declared in “ark/lidar/hokuyo/data.hh”:
-
std::string build_hokuyo_stream_data_command(bool enabled)
Builds the command that we can send out to enable/disable streaming. -
std::string build_hokuyo_request_version_command()
Builds the command that we can send out to request version information. -
bool validate_hokuyo_packet_checksum(const std::string_view & raw_data)
Validates the checksum of the UAM05 Hokuyo packet.
Declared in “ark/lidar/hokuyo/intrinsics.hh”:
- HokuyoReturnGroup parse_hokuyo_uam05_packet(const HokuyoUam05Data & data)
Parses the given Hokuyo packet that contains angle/range data, and returns 3D point data.
Declared in “ark/lidar/sick/data.hh”:
-
std::string build_scan_data_command(uint32_t enabled)
Returns a string suitable for sending a “scan data” command to a remote SICK TIM5xx. The integer value is the parameter in the command. -
std::string build_firmware_version_command()
Returns a string suitable for requesting the firmware version from a remote SICK TIM5xx. -
uint32_t sick_microseconds_at_angle(const SickTim5xxData & data, double radians)
Computes a timestamp offset to go from the ’time since startup’ to the time when the scanner was at the given radians.Returns a result in microseconds.
Declared in “ark/lidar/sick/intrinsics.hh”:
- SickReturnGroup parse_sick_tim5xx_packet(const SickTim5xxData & data)
Parses the given SICK (TIM5xx) packet that contains angle/range data, and returns 3D point data.
Declared in “ark/lidar/velodyne/data.hh”:
-
VelodyneProductType velodyne_product_type_from_data_packet(const VelodyneDataPacket & packet)
Helper function to convert the raw velodyne product type to the enum product type. -
VelodyneReturnMode velodyne_return_mode_from_data_packet(const VelodyneDataPacket & packet)
Helper function to convert the raw velodyne return mode to the enum return mode. -
std::chrono::steady_clock::time_point resolve_capture_time(uint32_t packet_timestamp_us, const std::chrono::steady_clock::time_point & time_base)
Helper function to convert the given timestamp from a velodyne packet (in microseconds since the top of the hour) into a full timestamp, given the timestamp in the frame that you are synchronizing the velodyne to (for example, UTC time).
Declared in “ark/lidar/velodyne/intrinsics.hh”:
-
VelodyneCalibrationData velodyne_vlp32c_calibration_data()
Returns the velodyne VLP32-C calibration data (which is fixed and known from the manual). -
VelodyneCalibrationData velodyne_vlp16_calibration_data()
Returns the velodyne VLP16 calibration data (which is fixed and known from the manual). -
bool is_velodyne_common_data_packet(const comms::UdpPacket & packet)
Return true if the packet is a velodyne ‘common’ data packet. -
bool is_velodyne_common_data_packet_corrupt(const VelodyneDataPacket & data)
Check for corrupt data packets, typically indicated by incorrect block header values. -
size_t parse_velodyne_common_data_packet(std::vector< VelodyneReturn > & returns, const VelodyneCalibrationData & calibration, const std::chrono::steady_clock::time_point & packet_timestamp, const VelodyneDataPacket & data)
Parse a velodyne ‘common’ data packet handling the correct return mode. Pass in the timestamp that you wish to stamp on this packet (typically either resolved capture time, or pipeline time). -
std::pair< double, double > parse_velodyne_common_sensor_angle_radians(const VelodyneCalibrationData & calibration, const VelodyneDataPacket & data)
Helper function to extract the start and end velodyne sensor angle from the packet.