Create an ODS node to publish ODS data: * The launch file ods.launch.py can be used, * Add two topics, "~/ods_info" and "~/ods_occupancy_map_ros", * An example launch configuration for ODS is provided ods_default_parameters.yaml and can be used with the launch file, * It is expected that ODS is configured before the node is launched. Alternatively, one can use the new config_file parameter.
Remove the diag_mode parameter: diagnostic is always polled periodically and published to "/diagnostic"
Add the GetDiag service for polling filtered diagnostic data.
Camera info topic: * Add a "~/camera_info" topic for RGB cameras. * The "~/camera_info" topic for the TOF cameras is published when the TOF_INFO buffer is requested, instead of the INTRINSIC buffer.
Add a config_file parameter. It should be formatted in JSON and will be used to configure the device when the CONFIGURE state is triggered.
Transforms: * The cloud_link was renamed to ifm_base_link, and is used as the reference ifm calibrated coordinate system for all ifm data (RGB, 3D and ODS). * The transforms between the cloud_link (now ifm_base_link), and the mounting_link and optical_link are fixed. * The mounting_link to optical_link transform is read when the first TOF_INFO or RGB_INFO buffer is received, and remains constant. * The ifm_base_link to mounting_link transform is published once when the first TOF_INFO or RGB_INFO buffer is received, and is only re-published subsequently if changed. * The camera node parameters related to tf publication got reworked, the new parameters are:
- tf.base_frame_name: Name for ifm reference frame
- Update for compatibility with O3R FW 1.4.x and ifm3d >= 1.4.3 * Tested with FW 1.4.22 and ifm3d API 1.4.3 * Tested with FW 1.4.22 and ifm3d API 1.5.3
- Update for compatibility with O3R FW >= 1.0.14 and ifm3d >= 1.2.6 * Using ifm3d::O3R instead of ifm3d::Device to access camera * Added buffer_id_list param to define which data to get from the device and consequently which topics to publish. Maps to ifm3d buffer_id.
- Remove the need to use cyclonedds: TODO: verification
- Remove dependency to Boost library
- Include Dockerfile and helper scripts: * Dockerfile for building the ROS2 node inside a Docker container * Helper build and launch scripts for ROS Docker images * Adds docker-compose example files for launching the ROS node on a O3R edge device: VPU
- Moved Publishers into node namespace: This matches the ifm3d-ros2 node version's naming (<= 1.0.x).
- Switch to a new camera.launch.py launch file (instead of camera_managed and camera_standalone): launches and activates a single camera node * focusses on configurability * camera_default_parameters.yaml contains only default params * Add option for visualization to launch file: If visualization is true, RViz2 with the config file from etc is opened * Formatting of node names improved
- old launch files are marked as deprecated and will be removed with next release: please migrate your launch files to the new structure
- Switching json handling to ifm3d::json
- Reduce logging level for continuous outputs.
- Added topics: * diagnostics (published to global /diagnostic topic), * camera_info, * TOF_INFO, * RGB_INFO, * extrinsics
- Added parameters: * log_level, * tf related parameters (see parameters doc for more details), * buffer_id_list, * diag_mode
- Updating to underlying ifm3d API version 1.1.1
- Name change for TOF_INFO and RGB_INFO buffer.
- Added Error, AsynError and AsyncNotification callbacks.
- Updating to underlying ifm3d API version 1.0.1
- Switching to using buffer_ids instead of schemas to determine data types.
- Introducing buffer_id_utils.hpp for buffer_id handling.
- Fixed tf chain in launchfiles
- Removed dependencies to OpenCV and PCL and the Image module of the ifm3d library. Now using the StlImage module of ifm3d.
- The RGB image is published as a compressed JPEG image. To view it with RViz, you can use the image_transport republish node (see documentation).
- Update the launchfiles for compatibility with pyyaml 6.0 (backward compatibility maintained down to pyyaml 5.1).
- Update the ROS node for the O3R camera platform
- add a 2D RGB data publisher
- add support for specifying the PCIC data communication TCP port
- add example yaml files and launch file for multi PCIC TCP port settings
- add service functions for setting each camera head to RUN / IDLE state
- update the dump and config service to O3R JSON structure
- removed unit vector publishing: please use the intrinsic camera calibration parameters instead
- removed the temperature publisher until diagnose chunk is available
- removed axis permutation for ROS node specific axis order
- removed xyz image publisher
- DDS settings need to be set to cyclonedds - ROS 2 Galactic is the preferred ROS 2 distro atm.
- Publish camera temperature (Thanks @dustingooding of Houston Mechatronics)
- Tested on Eloquent
- Provided an implementation of the Dump service
- Provided an implementation of the dump command-line tool
- Provided an implementation of the Config service
- Provided an implementation of the config command-line tool
- Unit vectors are published on a "latched topic". Please see qos.hpp for the specifics of the QoS profile ifm3d_ros2::LatchedQoS.
- On-camera extrinsics in support of off-line point cloud computation are now exposed.
- Bootstrapped some unit tests
- Cleaned up some documentation.
- Initial (alpha) release