Releases: ceptontech/ros
v1.2.1
v1.2.0
Features
ROS2 and ROS1
This release contains a rework on the fault messages.
Now, fault messages are published per-topic for the sensors, in the format
panic_handle_[sensor-handle]
The new message format is under cepton_messages::msg::CeptonPanic
(ROS2) and cepton2_ros::SensorPanic
(ROS1)
uint64 timestamp
uint64 handle
uint8[] voltage_out_range
uint8 temperature_out_range_komodo
uint8 temperature_out_range_iox
uint8 temperature_out_range_iguana
uint8 temperature_out_range_gecko
uint8 iguana_iox_comm_crc_error
uint8 iox_gecko_comm_crc_error
uint8 gecko_komodo_comm_crc_error
uint8 iguana_boot_failure
uint8 phy_sync_failure
uint8 eth_link_down
uint8 ptp_expiration
uint8 thermal_shut_down
uint8 lasers_partial_block
uint8 lasers_full_block
uint8 mmt_interlock
uint8 iguana_failure
uint8 fpga_runtime_fail
uint8 mmt_timeout
uint8 gecko_boot_failure
uint8[] rsv # reserved
Each message now is now a summary of all named faults. Each of the uint8 values can be either 0, 2, or 3.
- 0 => fault has never been seen
- 2 => fault was seen and is resolved
- 3 => fault is active
When a new fault becomes active, the fault message will be published immediately. After that, the fault status will be updated roughly every 0.5s, based on the INFZ frequency.
v1.1.3
Features
ROS2 + ROS1
Remove some unnecessary arctan operations
- Use tangent for filtering points in azimuth, elevation.
Allow for selecting X-forward or Y-forward coordinate system
- The coordinate system is now controlled by a ROS argument
using_cepton_coordinate_system
. This may be set totrue
to use the Cepton coordinate system (X right, Y forward, Z up), or may be set tofalse
to use the X-forward right-handed coordinate system (X forward, Y left, Z up)
Per-sensor info topics
- Each sensor will now publish its info messages on the topics
info_handle_[SENSOR_HANDLE]
Support setting expected sensor IPs in the config file
- Can specify a list of
expected_sensor_ips
, which will be registered immediately rather than lazily. Normally, sensors are discovered lazily, meaning that they could only be marked for timeout, after some data is received. This list allows for checking if sensors were not connected properly.
ROS2 Only
ROS2 configuration via yaml file
- ROS2 supports configuation via a
yaml
file natively, now we include a sample yaml file containing all the parameters used by our ROS2 driver - https://docs.ros.org/en/iron/Tutorials/Beginner-CLI-Tools/Understanding-ROS2-Parameters/Understanding-ROS2-Parameters.html
ROS1 Only
Make topic names more consistent with the ROS2 convention
- (
cepp, cepp_serial_
,info_handle_
, etc), though keeping thecepton2/
prefix - Remove the blocking if no sensors connected
v1.1.2
v1.1.1
v1.1.0
New features
Spherical coordinates
Adds serial coordinates to the PointCloud2 topics
Spherical coordinates are (azimuth, elevation)
, and are measured as follows:
azimuth
: in radians, is measured relative to the depth axis, with positive azimuth more to the rightelevation
: in radians, is measured relative to the depth axis, with positive elevation pointing up
Sensor status publish topics
Sensor-internal faults are reported via the cepton_panic
topic, and this is a similar message format created by the driver, to detect sensors going offline, dropping point counts, etc.
Reported over cepton_sensor_status
topic:
// SensorStatus.msg
uint64 handle;
uint32 serial_number;
uint32 status;
Currently only one flag (for sensor data timeout), but others may be added later.
Aggregation Mode
Allow setting of the aggregation mode via ros args. Pass aggregation_mode
to the ros args. This is the value provided to the SDK when setting up the callbacks, so the usage is the same. i.e. 0 = natural frame
, X = timed frame (microsec)
where X > 1000
- Default is 0
natural frame
- Should not be used in conjunction with
half-frequency
mode
Bugfixes
Half-frequency mode
- Parity was not determined correctly for the half-frequency mode, so half the time, frames with the same directional scanline would be aggregated. i.e. / / would be aggregated, whereas we only want / \ to be aggregated
Other
- Updates to the subscriber sample code