Skip to content

Latest commit

 

History

History

control_state_machine

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 
 
 

control_state_machine

Python scripts that contains the finite state machine for the navigation macro-actions and the interaction with the corresponding actions defined through the ROS actionlib library (see package indires_macro_actions).

The programmed state machine is shown in the next Figure:

state machine

Functioning

  • Besides your proper robot simulation, the adapted_move_base node (see adapted_move_base.launch), and the indires_macro_actions node (see indires_macro_actions.launch) must be running.

  • Then, run the nodes event_mananger.py and nav_behavior_fsm.py (see the launch file control_tester.launch). To test the system, an event simulator through the command line is also provided. It shows a menu to chose the macro-action to perform or the event to be triggered. The tester (control_tester.py) is also launched in the previous launch file.

  • You can also run the smach viewer to visualize the finite state machine and to watch the transitions:

rosrun smach_viewer smach_viewer.py

A capture of the smach viewer can be seen in the following image:

smach viewer

  • NOTE: the teleoperation macro-action is triggered through the detection of twist messages in the topic "manual_control_vel".

Dependences

  • indires_macro_actions . Set of navigation actions implemented by using the actionlib of ROS and controlled through the finite state machine.
  • smach is Python library to build hierarchical state machines (http://wiki.ros.org/smach). Install the package smach_ros under your ROS distribution.

The package is a work in progress used in research prototyping. Pull requests and/or issues are highly encouraged.