Skip to content

[cob_sick_s300] fix fields parameter and handling. #318

@mgruhler

Description

@mgruhler

Currently, there is was (commented out in #317) a warning about using the fields parameter, as this is the way to go.

"No params for the Sick S300 fieldset were specified --> will using default, but it's deprecated now, please adjust parameters!!!"

However, this is not properly implemented. The driver only supports one field, which defeates the purpose of this parameter. Also, this parameter is nowhere documented.

EDIT answering @ipa-fxm's question below

To be set in the laser yamls (e.g. here)
Old config (without fields param):

"New" config (with fields param and quite some trial-and-error):

fields:
  "1":
    start_angle: -0.75
    stop_angle: 0.0
    scale: 1.0
  "2":
    start_angle: 0.0
    stop_angle: 0.75
    scale: 1.0

What needs to be done:

  • check that the max scan fields is 5 in this file.
  • check the numbering in the params in this file
  • this getScan function seems to only handle the last / one field. However, all configured fields come in one telegram.
  • the retrieved fields (which can be arbitrary ranges within [-135°, 135°] without overlaps but with gaps) need to be combined correctly to in the publishLaserScan function which is not done as well.

All in all, my guess is this feature has been implemented without any tests, has never been used, and probably is even unnecessary.

Implementing this correctly would lead to a full driver covering much of the possibilities of the scanner. However, in ROS, this is imo not required. We can easily get the fields we want without having to configure the scanner by using the cob_scan_filter (or, prefereably, the laser_filters).

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions