Convenient way to select a SICK scanner field set by toggling relayboard relays to a specific scanner input case
Within SICK CDS software
- Define some Field Sets
- Set up Cases with respective Input conditions
then
- Adjust
config/mapping.yaml
to refect your SICK settings and Neobotix relayboard wiring rosrun
the node
Exemplary mapping.yaml
sick_inputs2neo_relay: {A: 2, B: 3}
sick_field-cases:
15: {A: 0, B: 0}
10: {A: 1, B: 0}
nil: {A: 0, B: 1}
park: {A: 1, B: 1}
results in
$ rosservice list | grep neo_sick_field
/neo_sick_field/10
/neo_sick_field/15
/neo_sick_field/nil
/neo_sick_field/park
You can call to activate those scanner field sets
$ rosservice call /neo_sick_field/park
success: True
message: ''
now check the param server
$ rosparam get /neo_sick_field/field
park
- Parameter server
- ~field
Name (key) of last successfully set field case
- ~field
- Services
- ~<x>
Provides a service std_srvs.Trigger for each entry in mapping.sick_field-cases.
Those will call respective/relayboard_v2/set_relay
for the scanner field case.
- ~<x>
- Publishes
- nothing
- Subscribes
- none