![]() |
pf_driver package from pf_lidar_ros_driver repopf_description pf_driver |
|
Package Summary
Tags | No category tags. |
Version | 1.2.1 |
License | Apache2.0 |
Build type | CATKIN |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/PepperlFuchs/pf_lidar_ros_driver.git |
VCS Type | git |
VCS Version | main |
Last Updated | 2023-08-17 |
Dev Status | DEVELOPED |
CI status | No Continuous Integration |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
Additional Links
Maintainers
- Harsh Deshpande
Authors
- Harsh Deshpande
Changelog for package pf_driver
1.2.1 (2023-08-17) -----------* Merge pull request #108 from ValerioMa/terminate_cleanly Clean rosnode termination. * Merge pull request #106 from kalectro/main Fixes type of port parameter in cfg files * Merge pull request #104 from ValerioMa/main Move stamping closer to data reading. * Merge pull request #109 from PepperlFuchs/safe_feed_time safe feed time within the defined timeout * clang format applied * Clean termination of ros_main node. Closes: PepperlFuchs/pf_lidar_ros_driver#105 * Fixes type of port parameter in cfg files The port parameter was declared as an int_t in the cfg files but in the code it is expected to be a string. When the dynamic_reconfigure server is started, the data type on the parameter server was changed from string to int. This resulted in getParam of the release 1.2.0 to return False effectively killing any respawn functionality. * Move stamping close to data reading. Before this commit the scan message was stamped just before publishing the data. In the LaserScan message of ros the timestamp in the header is the acquisition time of the first ray in the scan. * safe feed time within the defined timeout * Update r2300.launch fixed typo * Merge pull request #101 from PepperlFuchs/r2300_single_layer R2300 single layer * Merge branch \'main\' into r2300_single_layer * added config files for R2300 device family 7 (single layer) * default packet type is C (R2000) * added optional port parameter to yaml config files * Merge pull request #94 from MichaelGrupp/application_bitmap Allow to set hmi_application_bitmap with dynamic_reconfigure * Merge branch \'main\' into application_bitmap * Merge pull request #93 from MichaelGrupp/launch-args Allow to disable RViz & pf_bringup in launch file. * Allow to disable RViz & pf_bringup in launch file. This allows better integration in headless systems and robots that already have a robot_state_publisher. * Allow to set hmi_application_bitmap * Merge pull request #99 from PepperlFuchs/fix_udp_port Fix udp port * utilize port specified in config for UDP connection * Merge pull request #87 from wawanbreton/code_refactoring Code refactoring * apply clang formatting * header only has function declaration * remove references to mutex after refactoring * Fixed missing include * Applied clang formatting * Code cleaning and minor optimizations * Added cpp files for each header when possible * Splitted existing cpp files to match headers * Splitted headers to have a single class by file * Moved sources to src folder * Contributors: Erwan MATHIEU, Harsh Deshpande, Kai Franke, Michael Grupp, Valerio Magnago
1.2.0 (2022-05-03)
- fix focal point to world link of r2300 #72
- fix xacro filename cases #70
- viz scanner model in rviz
- changed necessary for noetic #68
- added urdf for r2000 and r2300 #66
- fix deps for CI
- add urdf bringup launch file
- added urdf for r2300
- fix high CPU usage #65 from PepperlFuchs/fix_while_loop
- fix pointcloud flickering in rviz
- reset cloud when params change in between publish cycle
- reduce sleep time for writer thread as observed in #63
- wait for the next message from the device with a timeout
- fix layers accumulation and low frequency issue #56 from PepperlFuchs/fix_freq
- Contributors: Harsh Deshpande
1.1.1 (2021-02-18)
- Update package.xml
- Contributors: Pepperl+Fuchs SE
1.1.0 (2021-02-09)
- Update package.xml
- Merge pull request #53 from PepperlFuchs/fix-typo fix typo
- fix typo
- Merge pull request #52 from PepperlFuchs/fix-exec-name fix exec name
- changed default start_angle of R2300
- fix start_angle
- dummy
- fix start_angle
- check negative start_angle
- fix scan output rviz
- fix watchdog
- fix set scanconfig
- fix private namespace
- fix exec name
- Merge pull request #50 from wsaihopfsg/rviz_start_angle_max_num_points_scan Rviz start angle max num points scan
- updated PFSDP for R2000
- resolved merge conflicts
- Update pfsdp_2300.hpp To correct the bug for incorrect display when start_angle and max_num_points_scan is specified
- Update pfsdp_protocol.hpp To correct the bug in RViz display when start_angle & max_num_points_scan are specified
- Update scan_publisher.cpp Consider start_angle & max_num_points_scan for RViz
- Merge pull request #49 from wsaihopfsg/dyn_reconfig_start_angle_max_points_scan Dyn reconfig start angle max points scan
- Merge pull request #51 from PepperlFuchs/protocol_args Protocol args
- fix config not updated
- fix indentation
- Update pf_interface.cpp Communicates the new config to R2300 after dynamic reconfiguration
- Update pfsdp_protocol.hpp Communicates the new config to R2300 during dynamic reconfig
- fixed launch files
- handle optional args
- format check in CI
- Merge pull request #46 from wsaihopfsg/config_watchdog Update pfsdp_protocol.hpp
- Merge branch \'master\' into config_watchdog
- Merge pull request #40 from PepperlFuchs/format_lint fixes for formatting and linting errors
- Merge branch \'master\' into config_watchdog
- Update pfsdp_protocol.hpp
- fix catkin_lint
- fix roslint
- applied clang formatting
- Merge pull request #39 from PepperlFuchs/pcl_intensities add intensities to PCL fields
- Merge branch \'pcl_intensities\' of https://github.com/PepperlFuchs/ROS_driver into pcl_intensities
- add intensities to PCL fields
- fix no return statement warning
- fix missing jsoncpp include
- Merge pull request #31 from PepperlFuchs/fix-dyn-params fix ip_mode and layer_on
- fix ip_mode and layer_on
- Merge pull request #26 from MilanoTechnicalGroupInc/r2000_fix R2000 fix
- Fix parsing TCP streams/packets UDP transport puts one PSDF packet
per UDP packet; TCP jams all PSDF packets into a single stream which
is often delivered in chunks that don\'t match the size of the
actual TCP packets. Here, we make two changes to account for this:
- Restructure the parser to parse an arbitrary number of packets iteratively from its buffer (avoid multiple recursion, though it\'s probably fine).
- Restructure the writer to persist any unused bytes from the previous parse and prepend them to the next packet that comes in over the network.
- Validate buffer size based on packet header Original implementation compared the computed data size (based on sizes in the packet header) to the buffer size less the nominal size of the known packet header structure. However, some (I guess older?) R2000s use a smaller packet header (60 bytes vs 76). Trying to parse packets from these devices results in almost universal failure, the original condition ends up being \"does the packet have at least 16 extra bytes at the end\" to which the answer is usually \"no\" (except if the packet is part of a TCP stream and has the beginning of the next PFSDP packet immediately after it in the buffer). This code is still not ideal, as the first few data bytes are also parsed into the header in that case, so we\'ll end up with some header fields that might be invalid (with no indication to the user). It also doesn\'t modify the outer check (in [include/pf_driver/pf/pf_parser.h]{.title-ref}) that verifies that there\'s at least as much data as the expected header size, so in rare cases (packets with only a few points) we may drop (or delay) those packets; however that should be fairly uncommon (packet sizes are based on scan parameters and AFAICT tend to avoid nearly empty packets).
- Default to packet type C for R2000 Basically no reason to use type A; we know how to parse all three types, A and C use the same space, and C gives us additional information. Don\'t alter the default for R2300, (which I believe means it uses type C1?) This also requires us to add the necessary arguments to [request_handle_{tcp,udp}]{.title-ref} in the PFSDP protocol header.
-
Refactor HTTP get calls in request_handle_{tcp,udp} - Refactor HTTP get call to allow passing std::map in addition to initializer list (initializer lists are great for quick use, but make constructing complicated queries difficult, since they are immutable) -> Expect this to come in handy if additional arguments to the handle request are added later (e.g. start angle, max number of points per scan, etc)
- Properly construct query based on which arguments have been specified
Parse R2000 packet type B properly Useful code was commented out for some reason. Changing it slightly to match the other packet types and for more efficiency.
Publish echo amplitudes as intensities in ROS LaserScan messages Except for R2000 packet type A, which doesn\'t include intensity
Merge pull request #29 from PepperlFuchs/fix-dyn-params Fixed setting scan output config
Merge branch \'master\' into fix-dyn-params
Merge pull request #27 from MilanoTechnicalGroupInc/param_fix Minor fixes for dynamic reconfigure on R2000
Only set up one dynamic reconfigure server per node Otherwise only the later of the two is active (I think?) and we end up unable to use dynamic reconfigure on R2000. Also move the server setup to a more sensible place, now that this is getting more complicated.
Fix a few R2000 config parameters several \"value\" fields weren\'t appropriately set (spaces, or longer names used instead), and one of the \"Watchdog\" enum values had a copy/paste error.
Fixed setting scan output config
Merge pull request #24 from MilanoTechnicalGroupInc/buildfix Fix clean build
Fix clean build Missing dependencies caused fresh builds to fail because the message headers weren\'t generated until too late
Merge pull request #21 from PepperlFuchs/cleanup Added dynamic reconf for R2000
Added dynamic reconf for R2000
Merge pull request #20 from PepperlFuchs/cleanup Cleanup
fix protocol interface build
fix dynamic reconf
handle product versions
Merge pull request #19 from PepperlFuchs/cleanup Cleanup & Fixed device handling
handle product versions
removed unused files & reshuffled files
Merge pull request #18 from PepperlFuchs/curl fix flicker
fix flicker
Merge pull request #15 from PepperlFuchs/curl fix pointcloud
fix pointcloud
Merge pull request #14 from PepperlFuchs/curl Refactor
laserscan to pointcloud
added dynamic reconf
publish R2300 header scan still not visible properly
R2000 with data parsing
revamped transport
replaced cpprestsdk with curlpp
scan publisher
Initializes R2300
complete pipeline for R2000 packet A
publishes scans with full message TODO: display is not correct
pipeline from TCP to publish header
removed files
simplified buf read
Refactored code. Handles connection well TODO: parse data
added lock-free queue
moved files
removed / moved files
Merge pull request #13 from PepperlFuchs/protocol_classes Protocol classes
message for param not found
added new dynamic params
Merge branch \'master\' of https://github.com/PepperlFuchs/ROS_driver
separate classes for R2000 and R2300
install workspace
Merge pull request #5 from MilanoTechnicalGroupInc/master Update r2300_allscans launch file to pass args
Merge pull request #11 from PepperlFuchs/fix_compile Fix compile
Merge branch \'master\' into fix_compile
Fixed gitk issues
clang formatting
Added ROS tests
Imrpoved error handling for PFSDP
Added gtests Currently only for HTTPInterface, need to extend it to other classes
Added error checking for HTTP GET
[WIP] added error handling for protocol
Applied clang formatting
[WIP] Small test to de-serialize packet header using ROS
Merge pull request #8 from PepperlFuchs/merge_scans merges all laser scans into pointcloud
Merge branch \'master\' into merge_scans
merges all laser scans into pointcloud
Merge pull request #7 from PepperlFuchs/ros_serialization Ros serialization
clang formatting
Added ROS tests
Imrpoved error handling for PFSDP
Added gtests Currently only for HTTPInterface, need to extend it to other classes
Added error checking for HTTP GET
[WIP] added error handling for protocol
Applied clang formatting
[WIP] Small test to de-serialize packet header using ROS
Merge pull request #6 from PepperlFuchs/dyn_recfg Dynamic reconfigure
Merge branch \'master\' into dyn_recfg
Update r2300_allscans launch file to pass args
Merge pull request #4 from PepperlFuchs/issue_ip Fixed hard-coded host address
Fixed hard-coded host address
Added dynamic reconfigure for scan_frequency parameter
Fixed calculations for angle_min and angle_max
Sets timestamp and angular_increment from ROS message Calculates time_increment from timestamp
Invalid echoes set to NAN
Merge pull request #10 from ipa320/rings Fixed angle_min and angle_max
Fixed angle_min and angle_max
Merge pull request #9 from ipa320/rings Added static_transform to visualize R2300 rings
Starts only 1 publisher in case of R2000
Added static transforms to viz all rings as per datasheet
Merge pull request #8 from ipa320/rings Rings
publishes rings with respective frame_id
Visualizes data cleanly without crash
Changed string to basic_string<u_char>
Merge pull request #7 from ipa320/rings Publishes rings on respective topics
Publishes rings on respective topics
Merge pull request #6 from ipa320/generic Generic code for R2000 and R2300
Generic code for R2000 and R2300
Applied clang-format
Added Apache 2.0 license
Basic working code for R2300
Contributors: Andres, Ben Kurtz, Benjamin Kurtz, Harsh Deshpande, Pepperl+Fuchs AG, Pepperl+Fuchs SE, wsaihopfsg
Wiki Tutorials
Source Tutorials
Package Dependencies
System Dependencies
Dependant Packages
Launch files
- launch/r2000.launch
-
- device [default: R2000]
- launch_pf_description [default: true] — Whether to include the pf_description bringup with this launch file.
- launch_rviz [default: true] — Whether to start RViz with this launch file.
- launch/r2300_single_layer.launch
-
- device [default: R2300]
- launch/r2300.launch
-
- device [default: R2300]
- launch_pf_description [default: true] — Whether to include the pf_description bringup with this launch file.
- launch_rviz [default: true] — Whether to start RViz with this launch file.
Services
Plugins
Recent questions tagged pf_driver at answers.ros.org
![]() |
pf_driver package from pf_lidar_ros_driver repopf_description pf_driver |
|
Package Summary
Tags | No category tags. |
Version | 1.2.0 |
License | Apache2.0 |
Build type | CATKIN |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/PepperlFuchs/pf_lidar_ros_driver.git |
VCS Type | git |
VCS Version | foxy-devel |
Last Updated | 2022-05-11 |
Dev Status | DEVELOPED |
CI status | No Continuous Integration |
Released | UNRELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
Additional Links
Maintainers
- Harsh Deshpande
Authors
- Harsh Deshpande
Changelog for package pf_driver
1.2.0 (2022-05-03)
- fix focal point to world link of r2300 #72
- fix xacro filename cases #70
- viz scanner model in rviz
- changed necessary for noetic #68
- added urdf for r2000 and r2300 #66
- fix deps for CI
- add urdf bringup launch file
- added urdf for r2300
- fix high CPU usage #65 from PepperlFuchs/fix_while_loop
- fix pointcloud flickering in rviz
- reset cloud when params change in between publish cycle
- reduce sleep time for writer thread as observed in #63
- wait for the next message from the device with a timeout
- fix layers accumulation and low frequency issue #56 from PepperlFuchs/fix_freq
- Contributors: Harsh Deshpande
1.1.1 (2021-02-18)
- Update package.xml
- Contributors: Pepperl+Fuchs SE
1.1.0 (2021-02-09)
- Update package.xml
- Merge pull request #53 from PepperlFuchs/fix-typo fix typo
- fix typo
- Merge pull request #52 from PepperlFuchs/fix-exec-name fix exec name
- changed default start_angle of R2300
- fix start_angle
- dummy
- fix start_angle
- check negative start_angle
- fix scan output rviz
- fix watchdog
- fix set scanconfig
- fix private namespace
- fix exec name
- Merge pull request #50 from wsaihopfsg/rviz_start_angle_max_num_points_scan Rviz start angle max num points scan
- updated PFSDP for R2000
- resolved merge conflicts
- Update pfsdp_2300.hpp To correct the bug for incorrect display when start_angle and max_num_points_scan is specified
- Update pfsdp_protocol.hpp To correct the bug in RViz display when start_angle & max_num_points_scan are specified
- Update scan_publisher.cpp Consider start_angle & max_num_points_scan for RViz
- Merge pull request #49 from wsaihopfsg/dyn_reconfig_start_angle_max_points_scan Dyn reconfig start angle max points scan
- Merge pull request #51 from PepperlFuchs/protocol_args Protocol args
- fix config not updated
- fix indentation
- Update pf_interface.cpp Communicates the new config to R2300 after dynamic reconfiguration
- Update pfsdp_protocol.hpp Communicates the new config to R2300 during dynamic reconfig
- fixed launch files
- handle optional args
- format check in CI
- Merge pull request #46 from wsaihopfsg/config_watchdog Update pfsdp_protocol.hpp
- Merge branch \'master\' into config_watchdog
- Merge pull request #40 from PepperlFuchs/format_lint fixes for formatting and linting errors
- Merge branch \'master\' into config_watchdog
- Update pfsdp_protocol.hpp
- fix catkin_lint
- fix roslint
- applied clang formatting
- Merge pull request #39 from PepperlFuchs/pcl_intensities add intensities to PCL fields
- Merge branch \'pcl_intensities\' of https://github.com/PepperlFuchs/ROS_driver into pcl_intensities
- add intensities to PCL fields
- fix no return statement warning
- fix missing jsoncpp include
- Merge pull request #31 from PepperlFuchs/fix-dyn-params fix ip_mode and layer_on
- fix ip_mode and layer_on
- Merge pull request #26 from MilanoTechnicalGroupInc/r2000_fix R2000 fix
- Fix parsing TCP streams/packets UDP transport puts one PSDF packet
per UDP packet; TCP jams all PSDF packets into a single stream which
is often delivered in chunks that don\'t match the size of the
actual TCP packets. Here, we make two changes to account for this:
- Restructure the parser to parse an arbitrary number of packets iteratively from its buffer (avoid multiple recursion, though it\'s probably fine).
- Restructure the writer to persist any unused bytes from the previous parse and prepend them to the next packet that comes in over the network.
- Validate buffer size based on packet header Original implementation compared the computed data size (based on sizes in the packet header) to the buffer size less the nominal size of the known packet header structure. However, some (I guess older?) R2000s use a smaller packet header (60 bytes vs 76). Trying to parse packets from these devices results in almost universal failure, the original condition ends up being \"does the packet have at least 16 extra bytes at the end\" to which the answer is usually \"no\" (except if the packet is part of a TCP stream and has the beginning of the next PFSDP packet immediately after it in the buffer). This code is still not ideal, as the first few data bytes are also parsed into the header in that case, so we\'ll end up with some header fields that might be invalid (with no indication to the user). It also doesn\'t modify the outer check (in [include/pf_driver/pf/pf_parser.h]{.title-ref}) that verifies that there\'s at least as much data as the expected header size, so in rare cases (packets with only a few points) we may drop (or delay) those packets; however that should be fairly uncommon (packet sizes are based on scan parameters and AFAICT tend to avoid nearly empty packets).
- Default to packet type C for R2000 Basically no reason to use type A; we know how to parse all three types, A and C use the same space, and C gives us additional information. Don\'t alter the default for R2300, (which I believe means it uses type C1?) This also requires us to add the necessary arguments to [request_handle_{tcp,udp}]{.title-ref} in the PFSDP protocol header.
-
Refactor HTTP get calls in request_handle_{tcp,udp} - Refactor HTTP get call to allow passing std::map in addition to initializer list (initializer lists are great for quick use, but make constructing complicated queries difficult, since they are immutable) -> Expect this to come in handy if additional arguments to the handle request are added later (e.g. start angle, max number of points per scan, etc)
- Properly construct query based on which arguments have been specified
Parse R2000 packet type B properly Useful code was commented out for some reason. Changing it slightly to match the other packet types and for more efficiency.
Publish echo amplitudes as intensities in ROS LaserScan messages Except for R2000 packet type A, which doesn\'t include intensity
Merge pull request #29 from PepperlFuchs/fix-dyn-params Fixed setting scan output config
Merge branch \'master\' into fix-dyn-params
Merge pull request #27 from MilanoTechnicalGroupInc/param_fix Minor fixes for dynamic reconfigure on R2000
Only set up one dynamic reconfigure server per node Otherwise only the later of the two is active (I think?) and we end up unable to use dynamic reconfigure on R2000. Also move the server setup to a more sensible place, now that this is getting more complicated.
Fix a few R2000 config parameters several \"value\" fields weren\'t appropriately set (spaces, or longer names used instead), and one of the \"Watchdog\" enum values had a copy/paste error.
Fixed setting scan output config
Merge pull request #24 from MilanoTechnicalGroupInc/buildfix Fix clean build
Fix clean build Missing dependencies caused fresh builds to fail because the message headers weren\'t generated until too late
Merge pull request #21 from PepperlFuchs/cleanup Added dynamic reconf for R2000
Added dynamic reconf for R2000
Merge pull request #20 from PepperlFuchs/cleanup Cleanup
fix protocol interface build
fix dynamic reconf
handle product versions
Merge pull request #19 from PepperlFuchs/cleanup Cleanup & Fixed device handling
handle product versions
removed unused files & reshuffled files
Merge pull request #18 from PepperlFuchs/curl fix flicker
fix flicker
Merge pull request #15 from PepperlFuchs/curl fix pointcloud
fix pointcloud
Merge pull request #14 from PepperlFuchs/curl Refactor
laserscan to pointcloud
added dynamic reconf
publish R2300 header scan still not visible properly
R2000 with data parsing
revamped transport
replaced cpprestsdk with curlpp
scan publisher
Initializes R2300
complete pipeline for R2000 packet A
publishes scans with full message TODO: display is not correct
pipeline from TCP to publish header
removed files
simplified buf read
Refactored code. Handles connection well TODO: parse data
added lock-free queue
moved files
removed / moved files
Merge pull request #13 from PepperlFuchs/protocol_classes Protocol classes
message for param not found
added new dynamic params
Merge branch \'master\' of https://github.com/PepperlFuchs/ROS_driver
separate classes for R2000 and R2300
install workspace
Merge pull request #5 from MilanoTechnicalGroupInc/master Update r2300_allscans launch file to pass args
Merge pull request #11 from PepperlFuchs/fix_compile Fix compile
Merge branch \'master\' into fix_compile
Fixed gitk issues
clang formatting
Added ROS tests
Imrpoved error handling for PFSDP
Added gtests Currently only for HTTPInterface, need to extend it to other classes
Added error checking for HTTP GET
[WIP] added error handling for protocol
Applied clang formatting
[WIP] Small test to de-serialize packet header using ROS
Merge pull request #8 from PepperlFuchs/merge_scans merges all laser scans into pointcloud
Merge branch \'master\' into merge_scans
merges all laser scans into pointcloud
Merge pull request #7 from PepperlFuchs/ros_serialization Ros serialization
clang formatting
Added ROS tests
Imrpoved error handling for PFSDP
Added gtests Currently only for HTTPInterface, need to extend it to other classes
Added error checking for HTTP GET
[WIP] added error handling for protocol
Applied clang formatting
[WIP] Small test to de-serialize packet header using ROS
Merge pull request #6 from PepperlFuchs/dyn_recfg Dynamic reconfigure
Merge branch \'master\' into dyn_recfg
Update r2300_allscans launch file to pass args
Merge pull request #4 from PepperlFuchs/issue_ip Fixed hard-coded host address
Fixed hard-coded host address
Added dynamic reconfigure for scan_frequency parameter
Fixed calculations for angle_min and angle_max
Sets timestamp and angular_increment from ROS message Calculates time_increment from timestamp
Invalid echoes set to NAN
Merge pull request #10 from ipa320/rings Fixed angle_min and angle_max
Fixed angle_min and angle_max
Merge pull request #9 from ipa320/rings Added static_transform to visualize R2300 rings
Starts only 1 publisher in case of R2000
Added static transforms to viz all rings as per datasheet
Merge pull request #8 from ipa320/rings Rings
publishes rings with respective frame_id
Visualizes data cleanly without crash
Changed string to basic_string<u_char>
Merge pull request #7 from ipa320/rings Publishes rings on respective topics
Publishes rings on respective topics
Merge pull request #6 from ipa320/generic Generic code for R2000 and R2300
Generic code for R2000 and R2300
Applied clang-format
Added Apache 2.0 license
Basic working code for R2300
Contributors: Andres, Ben Kurtz, Benjamin Kurtz, Harsh Deshpande, Pepperl+Fuchs AG, Pepperl+Fuchs SE, wsaihopfsg
Wiki Tutorials
Source Tutorials
Package Dependencies
System Dependencies
Dependant Packages
Launch files
- launch/r2000.launch
-
- device [default: R2000]
- launch/r2300.launch
-
- device [default: R2300]
Services
Plugins
Recent questions tagged pf_driver at answers.ros.org
![]() |
pf_driver package from pf_lidar_ros_driver repopf_driver |
|
Package Summary
Tags | No category tags. |
Version | 0.0.1 |
License | Apache2.0 |
Build type | CATKIN |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/PepperlFuchs/pf_lidar_ros_driver.git |
VCS Type | git |
VCS Version | kinetic-devel |
Last Updated | 2019-11-05 |
Dev Status | DEVELOPED |
CI status | No Continuous Integration |
Released | UNRELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
Additional Links
Maintainers
- Harsh Deshpande
Authors
- Harsh Deshpande
Wiki Tutorials
Source Tutorials
Dependant Packages
Launch files
- launch/r2300_allscans.launch
- launch/r2000.launch
-
- frame_id [default: /scan]
- scanner_ip [default: 169.254.147.128]
- major_version [default: 1]
- scan_frequency [default: 100]
- samples_per_scan [default: 500]
- launch/r2300.launch
-
- frame_id [default: /scan]
- scanner_ip [default: 10.0.10.76]
- major_version [default: 0]
- scan_frequency [default: 100]
- samples_per_scan [default: 500]
Messages
Services
Plugins
Recent questions tagged pf_driver at answers.ros.org
![]() |
pf_driver package from pf_lidar_ros_driver repopf_description pf_driver |
|
Package Summary
Tags | No category tags. |
Version | 1.2.1 |
License | Apache2.0 |
Build type | CATKIN |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/PepperlFuchs/pf_lidar_ros_driver.git |
VCS Type | git |
VCS Version | main |
Last Updated | 2023-08-17 |
Dev Status | DEVELOPED |
CI status | No Continuous Integration |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
Additional Links
Maintainers
- Harsh Deshpande
Authors
- Harsh Deshpande
Changelog for package pf_driver
1.2.1 (2023-08-17) -----------* Merge pull request #108 from ValerioMa/terminate_cleanly Clean rosnode termination. * Merge pull request #106 from kalectro/main Fixes type of port parameter in cfg files * Merge pull request #104 from ValerioMa/main Move stamping closer to data reading. * Merge pull request #109 from PepperlFuchs/safe_feed_time safe feed time within the defined timeout * clang format applied * Clean termination of ros_main node. Closes: PepperlFuchs/pf_lidar_ros_driver#105 * Fixes type of port parameter in cfg files The port parameter was declared as an int_t in the cfg files but in the code it is expected to be a string. When the dynamic_reconfigure server is started, the data type on the parameter server was changed from string to int. This resulted in getParam of the release 1.2.0 to return False effectively killing any respawn functionality. * Move stamping close to data reading. Before this commit the scan message was stamped just before publishing the data. In the LaserScan message of ros the timestamp in the header is the acquisition time of the first ray in the scan. * safe feed time within the defined timeout * Update r2300.launch fixed typo * Merge pull request #101 from PepperlFuchs/r2300_single_layer R2300 single layer * Merge branch \'main\' into r2300_single_layer * added config files for R2300 device family 7 (single layer) * default packet type is C (R2000) * added optional port parameter to yaml config files * Merge pull request #94 from MichaelGrupp/application_bitmap Allow to set hmi_application_bitmap with dynamic_reconfigure * Merge branch \'main\' into application_bitmap * Merge pull request #93 from MichaelGrupp/launch-args Allow to disable RViz & pf_bringup in launch file. * Allow to disable RViz & pf_bringup in launch file. This allows better integration in headless systems and robots that already have a robot_state_publisher. * Allow to set hmi_application_bitmap * Merge pull request #99 from PepperlFuchs/fix_udp_port Fix udp port * utilize port specified in config for UDP connection * Merge pull request #87 from wawanbreton/code_refactoring Code refactoring * apply clang formatting * header only has function declaration * remove references to mutex after refactoring * Fixed missing include * Applied clang formatting * Code cleaning and minor optimizations * Added cpp files for each header when possible * Splitted existing cpp files to match headers * Splitted headers to have a single class by file * Moved sources to src folder * Contributors: Erwan MATHIEU, Harsh Deshpande, Kai Franke, Michael Grupp, Valerio Magnago
1.2.0 (2022-05-03)
- fix focal point to world link of r2300 #72
- fix xacro filename cases #70
- viz scanner model in rviz
- changed necessary for noetic #68
- added urdf for r2000 and r2300 #66
- fix deps for CI
- add urdf bringup launch file
- added urdf for r2300
- fix high CPU usage #65 from PepperlFuchs/fix_while_loop
- fix pointcloud flickering in rviz
- reset cloud when params change in between publish cycle
- reduce sleep time for writer thread as observed in #63
- wait for the next message from the device with a timeout
- fix layers accumulation and low frequency issue #56 from PepperlFuchs/fix_freq
- Contributors: Harsh Deshpande
1.1.1 (2021-02-18)
- Update package.xml
- Contributors: Pepperl+Fuchs SE
1.1.0 (2021-02-09)
- Update package.xml
- Merge pull request #53 from PepperlFuchs/fix-typo fix typo
- fix typo
- Merge pull request #52 from PepperlFuchs/fix-exec-name fix exec name
- changed default start_angle of R2300
- fix start_angle
- dummy
- fix start_angle
- check negative start_angle
- fix scan output rviz
- fix watchdog
- fix set scanconfig
- fix private namespace
- fix exec name
- Merge pull request #50 from wsaihopfsg/rviz_start_angle_max_num_points_scan Rviz start angle max num points scan
- updated PFSDP for R2000
- resolved merge conflicts
- Update pfsdp_2300.hpp To correct the bug for incorrect display when start_angle and max_num_points_scan is specified
- Update pfsdp_protocol.hpp To correct the bug in RViz display when start_angle & max_num_points_scan are specified
- Update scan_publisher.cpp Consider start_angle & max_num_points_scan for RViz
- Merge pull request #49 from wsaihopfsg/dyn_reconfig_start_angle_max_points_scan Dyn reconfig start angle max points scan
- Merge pull request #51 from PepperlFuchs/protocol_args Protocol args
- fix config not updated
- fix indentation
- Update pf_interface.cpp Communicates the new config to R2300 after dynamic reconfiguration
- Update pfsdp_protocol.hpp Communicates the new config to R2300 during dynamic reconfig
- fixed launch files
- handle optional args
- format check in CI
- Merge pull request #46 from wsaihopfsg/config_watchdog Update pfsdp_protocol.hpp
- Merge branch \'master\' into config_watchdog
- Merge pull request #40 from PepperlFuchs/format_lint fixes for formatting and linting errors
- Merge branch \'master\' into config_watchdog
- Update pfsdp_protocol.hpp
- fix catkin_lint
- fix roslint
- applied clang formatting
- Merge pull request #39 from PepperlFuchs/pcl_intensities add intensities to PCL fields
- Merge branch \'pcl_intensities\' of https://github.com/PepperlFuchs/ROS_driver into pcl_intensities
- add intensities to PCL fields
- fix no return statement warning
- fix missing jsoncpp include
- Merge pull request #31 from PepperlFuchs/fix-dyn-params fix ip_mode and layer_on
- fix ip_mode and layer_on
- Merge pull request #26 from MilanoTechnicalGroupInc/r2000_fix R2000 fix
- Fix parsing TCP streams/packets UDP transport puts one PSDF packet
per UDP packet; TCP jams all PSDF packets into a single stream which
is often delivered in chunks that don\'t match the size of the
actual TCP packets. Here, we make two changes to account for this:
- Restructure the parser to parse an arbitrary number of packets iteratively from its buffer (avoid multiple recursion, though it\'s probably fine).
- Restructure the writer to persist any unused bytes from the previous parse and prepend them to the next packet that comes in over the network.
- Validate buffer size based on packet header Original implementation compared the computed data size (based on sizes in the packet header) to the buffer size less the nominal size of the known packet header structure. However, some (I guess older?) R2000s use a smaller packet header (60 bytes vs 76). Trying to parse packets from these devices results in almost universal failure, the original condition ends up being \"does the packet have at least 16 extra bytes at the end\" to which the answer is usually \"no\" (except if the packet is part of a TCP stream and has the beginning of the next PFSDP packet immediately after it in the buffer). This code is still not ideal, as the first few data bytes are also parsed into the header in that case, so we\'ll end up with some header fields that might be invalid (with no indication to the user). It also doesn\'t modify the outer check (in [include/pf_driver/pf/pf_parser.h]{.title-ref}) that verifies that there\'s at least as much data as the expected header size, so in rare cases (packets with only a few points) we may drop (or delay) those packets; however that should be fairly uncommon (packet sizes are based on scan parameters and AFAICT tend to avoid nearly empty packets).
- Default to packet type C for R2000 Basically no reason to use type A; we know how to parse all three types, A and C use the same space, and C gives us additional information. Don\'t alter the default for R2300, (which I believe means it uses type C1?) This also requires us to add the necessary arguments to [request_handle_{tcp,udp}]{.title-ref} in the PFSDP protocol header.
-
Refactor HTTP get calls in request_handle_{tcp,udp} - Refactor HTTP get call to allow passing std::map in addition to initializer list (initializer lists are great for quick use, but make constructing complicated queries difficult, since they are immutable) -> Expect this to come in handy if additional arguments to the handle request are added later (e.g. start angle, max number of points per scan, etc)
- Properly construct query based on which arguments have been specified
Parse R2000 packet type B properly Useful code was commented out for some reason. Changing it slightly to match the other packet types and for more efficiency.
Publish echo amplitudes as intensities in ROS LaserScan messages Except for R2000 packet type A, which doesn\'t include intensity
Merge pull request #29 from PepperlFuchs/fix-dyn-params Fixed setting scan output config
Merge branch \'master\' into fix-dyn-params
Merge pull request #27 from MilanoTechnicalGroupInc/param_fix Minor fixes for dynamic reconfigure on R2000
Only set up one dynamic reconfigure server per node Otherwise only the later of the two is active (I think?) and we end up unable to use dynamic reconfigure on R2000. Also move the server setup to a more sensible place, now that this is getting more complicated.
Fix a few R2000 config parameters several \"value\" fields weren\'t appropriately set (spaces, or longer names used instead), and one of the \"Watchdog\" enum values had a copy/paste error.
Fixed setting scan output config
Merge pull request #24 from MilanoTechnicalGroupInc/buildfix Fix clean build
Fix clean build Missing dependencies caused fresh builds to fail because the message headers weren\'t generated until too late
Merge pull request #21 from PepperlFuchs/cleanup Added dynamic reconf for R2000
Added dynamic reconf for R2000
Merge pull request #20 from PepperlFuchs/cleanup Cleanup
fix protocol interface build
fix dynamic reconf
handle product versions
Merge pull request #19 from PepperlFuchs/cleanup Cleanup & Fixed device handling
handle product versions
removed unused files & reshuffled files
Merge pull request #18 from PepperlFuchs/curl fix flicker
fix flicker
Merge pull request #15 from PepperlFuchs/curl fix pointcloud
fix pointcloud
Merge pull request #14 from PepperlFuchs/curl Refactor
laserscan to pointcloud
added dynamic reconf
publish R2300 header scan still not visible properly
R2000 with data parsing
revamped transport
replaced cpprestsdk with curlpp
scan publisher
Initializes R2300
complete pipeline for R2000 packet A
publishes scans with full message TODO: display is not correct
pipeline from TCP to publish header
removed files
simplified buf read
Refactored code. Handles connection well TODO: parse data
added lock-free queue
moved files
removed / moved files
Merge pull request #13 from PepperlFuchs/protocol_classes Protocol classes
message for param not found
added new dynamic params
Merge branch \'master\' of https://github.com/PepperlFuchs/ROS_driver
separate classes for R2000 and R2300
install workspace
Merge pull request #5 from MilanoTechnicalGroupInc/master Update r2300_allscans launch file to pass args
Merge pull request #11 from PepperlFuchs/fix_compile Fix compile
Merge branch \'master\' into fix_compile
Fixed gitk issues
clang formatting
Added ROS tests
Imrpoved error handling for PFSDP
Added gtests Currently only for HTTPInterface, need to extend it to other classes
Added error checking for HTTP GET
[WIP] added error handling for protocol
Applied clang formatting
[WIP] Small test to de-serialize packet header using ROS
Merge pull request #8 from PepperlFuchs/merge_scans merges all laser scans into pointcloud
Merge branch \'master\' into merge_scans
merges all laser scans into pointcloud
Merge pull request #7 from PepperlFuchs/ros_serialization Ros serialization
clang formatting
Added ROS tests
Imrpoved error handling for PFSDP
Added gtests Currently only for HTTPInterface, need to extend it to other classes
Added error checking for HTTP GET
[WIP] added error handling for protocol
Applied clang formatting
[WIP] Small test to de-serialize packet header using ROS
Merge pull request #6 from PepperlFuchs/dyn_recfg Dynamic reconfigure
Merge branch \'master\' into dyn_recfg
Update r2300_allscans launch file to pass args
Merge pull request #4 from PepperlFuchs/issue_ip Fixed hard-coded host address
Fixed hard-coded host address
Added dynamic reconfigure for scan_frequency parameter
Fixed calculations for angle_min and angle_max
Sets timestamp and angular_increment from ROS message Calculates time_increment from timestamp
Invalid echoes set to NAN
Merge pull request #10 from ipa320/rings Fixed angle_min and angle_max
Fixed angle_min and angle_max
Merge pull request #9 from ipa320/rings Added static_transform to visualize R2300 rings
Starts only 1 publisher in case of R2000
Added static transforms to viz all rings as per datasheet
Merge pull request #8 from ipa320/rings Rings
publishes rings with respective frame_id
Visualizes data cleanly without crash
Changed string to basic_string<u_char>
Merge pull request #7 from ipa320/rings Publishes rings on respective topics
Publishes rings on respective topics
Merge pull request #6 from ipa320/generic Generic code for R2000 and R2300
Generic code for R2000 and R2300
Applied clang-format
Added Apache 2.0 license
Basic working code for R2300
Contributors: Andres, Ben Kurtz, Benjamin Kurtz, Harsh Deshpande, Pepperl+Fuchs AG, Pepperl+Fuchs SE, wsaihopfsg
Wiki Tutorials
Source Tutorials
Package Dependencies
System Dependencies
Dependant Packages
Launch files
- launch/r2000.launch
-
- device [default: R2000]
- launch_pf_description [default: true] — Whether to include the pf_description bringup with this launch file.
- launch_rviz [default: true] — Whether to start RViz with this launch file.
- launch/r2300_single_layer.launch
-
- device [default: R2300]
- launch/r2300.launch
-
- device [default: R2300]
- launch_pf_description [default: true] — Whether to include the pf_description bringup with this launch file.
- launch_rviz [default: true] — Whether to start RViz with this launch file.