Utilities

Utility functions and classes for prototyping (cepton_sdk_util.hpp).

Common

int64_t cepton_sdk::util::get_timestamp_usec()

Returns current unix timestamp [microseconds].

This is the timestamp format used by all sdk functions.

Points

struct cepton_sdk::util::SensorPoint

3d point class.

Can’t subclass from SensorImagePoint, needs to be POD.

Public Members

int64_t timestamp

Unix time [microseconds].

float image_x

x image coordinate.

float distance

Distance [meters].

float image_z

z image coordinate.

float intensity

Diffuse reflectance.

CeptonSensorReturnType return_type

Strongest or farthest return.

uint8_t flags

Bit flags.

uint8_t valid

If false, then the distance and intensity are invalid.

uint8_t saturated

If true, then the intensity is invalid. Also, the distance is valid, but inaccurate.

union cepton_sdk::util::SensorPoint::[anonymous] [anonymous]
float x

x cartesian coordinate

float y

y cartesian coordinate

float z

z cartesian coordinate

void cepton_sdk::util::convert_sensor_image_point_to_point(const SensorImagePoint &image_point, SensorPoint &point)

Convenience method to convert cepton_sdk::SensorImagePoint to cepton_sdk::SensorPoint.

Callbacks

template<typename ...TArgs>
class cepton_sdk::util::Callback

Expands SDK callback functionality.

Allows for multiple callbacks to be registered. Allows for registering lambdas and member functions. See samples/basic.cpp.

Public Functions

void clear()

Clear all listeners.

SensorError listen(const std::function<void(TArgs...)> &func, uint64_t *const id = nullptr, )

Register std::function.

Parameters
  • func: Callback function.

  • id: Identifier used for unlisten.

template<typename TClass>
SensorError listen(TClass *const instance, MemberFunction<TClass, TArgs...> func, uint64_t *const id = nullptr)

Register instance member function.

Parameters
  • instance: Parent class instance pointer.

  • func: Callback function pointer.

  • id: Identifier used for unlisten.

SensorError unlisten(uint64_t id)

Unregister function.

Parameters
  • id: Identifier returned by listen.

void operator()(TArgs... args) const

Emit callback.

Calls all registered functions with args.

Public Static Functions

void global_on_callback(TArgs... args, void *const instance)

Used for registering as c callback.

Frames

template<typename TData = bool>
class cepton_sdk::util::FrameDetector : public cepton_sdk::util::internal::FrameDetectorBase<TData>

Detects frames in streaming sensor data.

Result::type

  • Sora: 0=left-right, 1=right-left

  • HR80: 0=left-right, 1=right-left

  • Vista: undefined

Public Functions

FrameDetector(const SensorInformation &sensor_info)

FrameDetector class constructor passing in SensorInformation.

const FrameOptions &get_options() const

Returns frame options for FrameDetector.

SensorError set_options(const FrameOptions &options)

Set frame options.

void reset() override

Completely resets detector.

Only use if also clearing points accumulator.

bool update(const SensorImagePoint &point, const TData &data = TData()) override

Returns true if frame found.

Automatically resets after frame is found.

void set_frame_mode(CeptonSDKFrameMode mode)
class cepton_sdk::util::FrameAccumulator

Accumulates image points, and emits frames to callback.

See samples/frame.cpp.

Public Functions

FrameAccumulator(const SensorInformation &sensor_info)

FrameAccumulator class constructor passing in SensorInformation.

FrameOptions get_options() const

Return frame options for FrameAccumulator.

SensorError set_options(const FrameOptions &options)

Set options for FrameAccumulator.

void clear()
void add_points(std::size_t n_points, const SensorImagePoint *const image_points)

Public Members

Callback<std::size_t, const SensorImagePoint*> callback

Frames callback.

Organizer

struct cepton_sdk::util::OrganizedCloud

The OrganizedCloud struct An organized version of the cepton point cloud.

Public Functions

int getIndex(int row, int col, int n_return)

getIndex Returns the index of the point corresponding to the inputed row, col and return number.

Return

Parameters
  • [in] row: Row index

  • [in] col: Col index

  • [in] n_return: Return index

Public Members

int64_t timestamp_start

timestamp_start The time of the oldest point in the cloud

int64_t timestamp_end

timestamp_end The time of the newest point in the cloud

int height

height Height of the cloud. Represents how many rows there are in the cloud

int width

width Width of the cloud. Represents how many columns there are in the cloud

int n_returns

n_returns Number of return represented by the cloud.

std::vector<CellInfo> info_cells

info_cells Vector of cell info which provide information about the matching points

std::vector<CeptonSensorImagePoint> points

points Vector of organized points. Stored in Return, Row, Col order. So to get a point at row 10, col 15, return 1 would be points[(row * width

  • col) n_returns + return

struct CellInfo

The CellInfo struct.

Public Members

bool occupied_cell = false

occupied_cell Is the cell at this index occupied with a point. If false can’t assume this represents free space.

int original_index = -1

original_index Index of the point that was used to generate the organized point. Can be used to match back with orginial data if required. Should only be use if occupied_cell is true.

class cepton_sdk::util::Organizer

The Organizer class Performs organization on cepton unorganized points. Creates an angular grid, places each point within that grid and outputs a point for each location in the grid in a row/col format. Thread safe. Defaults to a 0.4deg spaced grid.

Public Types

enum OrganizerMode

Values:

enumerator RECENT

Output the most recent point from the frame that fell within the grid

enumerator CENTER

Output the center of the grid. Uses median point distance.

Public Functions

Organizer(cepton_sdk::SensorInformation sensor_info)

Organizer.

Parameters
  • sensor_info: Sensor info for organizer. Used to set min/max angles

void organize_points(const int num_points_in, const int n_returns, const CeptonSensorImagePoint *const unorganized_points, cepton_sdk::util::OrganizedCloud &organized_points)

organize_points

Parameters
  • [in] num_points_in: Number of unorganized points

  • [in] n_returns: Number of returns

  • [in] unorganized_points: Unorganized points to proces

  • [out] organized_points: Points in organized form

void mode(OrganizerMode mode)

mode

Parameters
  • mode: Change the mode of the organizer. [RECENT] Points are the most recent which fill within the grid. [CENTER] Points outputted are at the center of the grid. More even spacing but less accurate.

void binSize(float bin_size)

binSize Change the bin size of the organizer

Parameters
  • bin_size: The horizontal and vertical bin size to set. In radians

void settings(OrganizerSettings organizer_settings)

settings

Parameters
  • organizer_settings: Change organizer settings

OrganizerSettings settings()

settings

Return

The settings the organizer is using

struct OrganizerSettings

Public Members

float horizontal_range_radians = to_radians(70.f)
float vertical_range_radians = to_radians(30.f)
float horizontal_bin_size_radians = to_radians(0.4f)
float vertical_bin_size_radians = to_radians(0.4f)
OrganizerMode mode = OrganizerMode::RECENT