Skip to content

Latest commit

 

History

History
46 lines (35 loc) · 2.82 KB

README.md

File metadata and controls

46 lines (35 loc) · 2.82 KB

Button manager

Overview

This node manages DI signals from/dio_ros_driver as button manipulation.

This has a noise reduction from GPIO signals. It aim to prevent malfunction of button manipulation.

Input and Output

Node Graph

In this figure, /engage_button_manager and /delivery_reservation_button_manager are both execution node names of this node. The name is changed with a launch argument button_name. node graph

Launch arguments

Name Description
button_name This argument modifies the node name, namespace, and topic name.
Set the name ***_button as the value.
port_name This argument specifies the GPIO port name. Select dio[0-7] as the value.

Parameter description

Output signal parameters

Name Description
active_polarity This inverts mutually high (ON) and low (OFF) values of a DI signal.
- True: With inversion. - False: No inversion.

GPIO noise reduction parameters

ID Name Description
T0 not_pressed_period_threshold This defines a minimum time, until it takes for a button to be recognized as NOT pressed.
T1 pressed_period_threshold This defines a minimum time, until it takes for a button to be recognized as PRESSED.
T2 not_pressed_period_threshold_after_pressed This defines a minimum time to move to next button action, until it takes for a button to be recognized as not pressed.
T3 max_allowable_period_of_pressing This defines a maximum time, until it takes for a button to be recognized as one time pressure. If someone presses the button over the time, this node recognized as malfunction.

Button press state transition

state_machine