Sunteți pe pagina 1din 18

FlexBE

User-friendly high-level behavior engine

Matteo Pantano
State-machine endowed:

WHAT?
• Drag & Drop word-like editor
• Runtime control
• User-defined parameters
• Automatic workspace set-up and conf.

WHO? • Non-developer users


• Skilled developers, used in DARPA
HOW TO?
Useful links, installation and documentation:
https://github.com/flexbe/flexbe_app
http://philserver.bplaced.net/fbe/
User-interaction panel

Behaviour overview
Tags and behaviour description

Local variables
Read only variables with constant internal
values defined by the end-user.
Corresponds to the parameters defined in
a state
Behaviour user data
Window to insert data that can be passed
from one state to another
Behaviour set-up
Simple commands to interact with
behaviours
Editor

Elements add
Addition of elements (State, Behaviour
and Container)
Debug panel
Panel for debugging and flow
management

Outcomes
Final outcomes of behaviour

Pose state
Characteristics: topic subscription and
output key mapping

Trajectory state
Characteristics: parameters and input key
mapping

state-related conf.
Editor – state

State characterization
Title: Name of the state inside the
machine
Subtitle: Python script name

Input parameter
Constant value assigned in the behaviour
dashboard

Autonomy
Outputs’ level of autonomy

Output
Output of the state that can be passed to
following states

Input
Value received as input by the state
Move base - State definition (1)

General data
Data about author

Name of the state


Name that is displayed as subtitle

Parameters and outcomes


Parameters and outcome definition

Input and outputs


Definition of a variables related to input
and outputs

Execute stage of state


Value received as input by the state
Move base - State definition (2)

On enter stage
What is executed when entering on the
state
On exit stage
Data executed at output

Receives data from the input stage (Pose2D message) and


use it to set a target goal according to ROS. If it fails it
displays the outcome on the behaviour feedback windows
and update the outcome of the state
Configuration panel

Ros connection status


Provide information on reliability of
connection

Behaviour destination
Destination folder of auto-generated code

Workspace packages
Overview of packages used by the interface,
linked autonomously at first setup
Runtime control panel

Active state
State in running phase

State’s output
Branched outcome dependent on output
state, manually triggered if needed
Status control window
Useful to define level of autonomy and
start/stop behaviour

Feedback
Print information on actual and past
states, defined in states script

State description
State characterization specified in states
script (as comments)
Usage of FlexBE – Cube grasp release

Joint values for search


Place the arm in a good position to give a
good FoV to the camera

Search & navigate


Random search of the cube in an unknow
environment
Collection of cube
Solve of inverse kinematics to collect the
cube with final check on its actual
collection
Usage of FlexBE – Cube grasp release
Usage of FlexBE – Search & Navigate

Search & navigate


Parallel execution of stages

1st random value


Publish of a random value for move_base
server respect to “/map” frame

Parallel execution
Simultaneous execution of navigation and
searching
Nav. Search
Usage of FlexBE – Search & Navigate

Parallel execution
Simultaneous execution of navigation and
searching

Navigation container
Sequences of states that keep the
YouBot navigating in random respect
to base frame “/map”
Search container
Container that subscribes to
“box_pose_ik” (respect to “/map”) and
then publish its pose in editor variable
“box_pose_container_1”
Usage of FlexBE – Cube collection

Joint value for searching Position of cube Gripper check

Pass a string of user defined joint values Subscribe to “”box_pose_footprint” to get Check of the grasp of the cube respect to
cube position for IK respect to a fixed width and threshold
“/base_footprint” frame

Trajectory state
Gripper opening
Solver of the Inverse Kinematic problem,
Opening of the gripper to a fixed
giving as parameters: frequency, offset
displacement
and inclination
Usage of FlexBE – Release

IK solver
IK solver for a user-defined target pose in
respect to “/base_footprint” frame

Release
Opening of the gripper to a user-defined
displacement

IK solver
IK solver for a point just above the release
point

Home positioning
Place of the manipulator to home state
Available states and tutorials

 Complete tutorial from beginner to advanced: http://wiki.ros.org/flexbe/Tutorials


 Availability of general purposes states when downloading the state machine: https://github.com/team-
vigir/flexbe_behavior_engine/tree/master/flexbe_states/src/flexbe_states

 States for YouBot manipulator control YouBot: https://github.com/FlexBE/youbot_behaviors

 GitHub repository, states + behaviors: https://github.com/matteopantano/youbot-thesis


Conceived by:

Matteo Pantano
Alessio Caporali

S-ar putea să vă placă și