ROSBuzz_MISTLab/buzz_scripts/main.bzz

81 lines
1.8 KiB
Plaintext
Raw Normal View History

2017-12-22 17:48:39 -04:00
include "update.bzz"
# don't use a stigmergy id=11 with this header, for barrier
# it requires an 'action' function to be defined here.
include "act/states.bzz"
2018-02-26 14:26:33 -04:00
include "plan/rrtstar.bzz"
2017-12-22 17:48:39 -04:00
include "vstigenv.bzz"
2018-02-26 14:26:33 -04:00
#State launched after takeoff
AUTO_LAUNCH_STATE = "IDLE"
2017-12-22 17:48:39 -04:00
#####
# Vehicule type:
# 0 -> outdoor flying vehicle
# 1 -> indoor flying vehicle
# 2 -> outdoor wheeled vehicle
# 3 -> indoor wheeled vehicle
V_TYPE = 0
goal_list = {
.0={.x = 45.5088103899, .y = -73.1540826153, .z = 2.5}
}
# Executed once at init time.
function init() {
init_stig()
init_swarm()
TARGET_ALTITUDE = 25.0 # m
# start the swarm command listener
# nei_cmd_listen()
2018-02-26 14:26:33 -04:00
# Starting state: TURNEDOFF to wait for user input, LAUNCHED to auto-takeoff at startup.
2017-12-22 17:48:39 -04:00
# BVMSTATE = "TURNEDOFF"
BVMSTATE = "LAUNCHED"
}
# Executed at each time step.
function step() {
# listen to Remote Controller
rc_cmd_listen()
# update the vstig (status/net/batt/...)
# uav_updatestig()
#
# graph state machine
#
if(BVMSTATE=="TURNEDOFF")
statef=turnedoff
else if(BVMSTATE=="STOP") # ends on turnedoff
statef=stop
2018-02-26 14:26:33 -04:00
else if(BVMSTATE=="LAUNCHED") # ends on AUTO_LAUNCH_STATE
2017-12-22 17:48:39 -04:00
statef=launch
else if(BVMSTATE=="IDLE")
statef=idle
else if(BVMSTATE=="TASK_ALLOCATE") #TODO: not tested in new structure
statef=makegraph # or bidding
2018-02-26 14:26:33 -04:00
else if(BVMSTATE=="PATHPLAN") # ends on navigate, defined in rrtstar
2017-12-22 17:48:39 -04:00
statef=rrtstar
2018-02-26 14:26:33 -04:00
else if(BVMSTATE=="NAVIGATE") # ends on idle, defined in rrtstar
2017-12-22 17:48:39 -04:00
statef=navigate
else if(BVMSTATE == "FOLLOW") #TODO: not tested in new structure
statef=follow
else if(BVMSTATE == "PICTURE") #TODO: not tested in new structure
statef=take_picture
statef()
log("Current state: ", BVMSTATE)
}
# Executed once when the robot (or the simulator) is reset.
function reset() {
}
# Executed once at the end of experiment.
function destroy() {
}