dRonin  adbada4
dRonin firmware
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Path Planner Module

Files

file  pathplanner.c
 Simple path planner which activates a sequence of waypoints.
 

Macros

#define STACK_SIZE_BYTES   1024
 
#define TASK_PRIORITY   PIOS_THREAD_PRIO_LOW
 
#define MAX_QUEUE_SIZE   2
 
#define UPDATE_RATE_MS   20
 

Functions

static void advanceWaypoint ()
 
static void activateWaypoint (int idx)
 
static void pathPlannerTask (void *parameters)
 
static void process_pp_settings ()
 
static void waypointsUpdated (const UAVObjEvent *ev, void *ctx, void *obj, int len)
 
static void pathStatusUpdated (const UAVObjEvent *ev, void *ctx, void *obj, int len)
 
static void createPathBox ()
 
static void createPathLogo ()
 
int32_t PathPlannerStart ()
 
int32_t PathPlannerInitialize ()
 
static void holdCurrentPosition ()
 
static void holdPosition (uint32_t idx)
 
static bool waypointValid (int32_t idx)
 

Variables

static struct pios_thread * taskHandle
 
static struct pios_queuequeue
 
static PathPlannerSettingsData pathPlannerSettings
 
static WaypointActiveData waypointActive
 
static WaypointData waypoint
 
static bool path_completed
 
static bool module_enabled
 
static volatile bool pathplanner_config_dirty
 
static int32_t active_waypoint = -1
 Store which waypoint has actually been pushed into PathDesired. More...
 
static int32_t previous_waypoint = -1
 Store the previous waypoint which is used to determine the path trajectory. More...
 

Detailed Description

Macro Definition Documentation

#define MAX_QUEUE_SIZE   2

Definition at line 46 of file pathplanner.c.

#define STACK_SIZE_BYTES   1024

Definition at line 44 of file pathplanner.c.

#define TASK_PRIORITY   PIOS_THREAD_PRIO_LOW

Definition at line 45 of file pathplanner.c.

#define UPDATE_RATE_MS   20

Definition at line 47 of file pathplanner.c.

Function Documentation

static void activateWaypoint ( int  idx)
static

This method is called when a new waypoint is activated

Note: The way this is called, it runs in an object callback. This is safe because the execution time is extremely short. If it starts to take a longer time then the main task look should monitor a flag (such as the waypoint changing) and call this method from the main task.

Definition at line 365 of file pathplanner.c.

static void advanceWaypoint ( )
static

Increment the waypoint index which triggers the active waypoint method

Definition at line 333 of file pathplanner.c.

static void createPathBox ( )
static

Definition at line 460 of file pathplanner.c.

static void createPathLogo ( )
static

Definition at line 507 of file pathplanner.c.

static void holdCurrentPosition ( )
static

Initial position hold at current position. This is used at the end of a path or in the case of a problem.

Definition at line 262 of file pathplanner.c.

static void holdPosition ( uint32_t  idx)
static

Hold position at a specified waypoint. Used when we reach the end of valid waypoints.

Definition at line 287 of file pathplanner.c.

int32_t PathPlannerInitialize ( )

Module initialization

Definition at line 101 of file pathplanner.c.

int32_t PathPlannerStart ( )

Module initialization

Definition at line 84 of file pathplanner.c.

static void pathPlannerTask ( void *  parameters)
static

Module task

Definition at line 143 of file pathplanner.c.

static void pathStatusUpdated ( const UAVObjEvent ev,
void *  ctx,
void *  obj,
int  len 
)
static

When the PathStatus is updated indicate a new one is available to consume

Definition at line 243 of file pathplanner.c.

static void process_pp_settings ( )
static

Definition at line 440 of file pathplanner.c.

static void waypointsUpdated ( const UAVObjEvent ev,
void *  ctx,
void *  obj,
int  len 
)
static

On changed waypoints or active waypoint update position desired if we are in charge

Definition at line 222 of file pathplanner.c.

static bool waypointValid ( int32_t  idx)
static

Definition at line 311 of file pathplanner.c.

Variable Documentation

int32_t active_waypoint = -1
static

Store which waypoint has actually been pushed into PathDesired.

Definition at line 78 of file pathplanner.c.

bool module_enabled
static

Definition at line 73 of file pathplanner.c.

bool path_completed
static

Definition at line 57 of file pathplanner.c.

volatile bool pathplanner_config_dirty
static

Definition at line 75 of file pathplanner.c.

PathPlannerSettingsData pathPlannerSettings
static

Definition at line 54 of file pathplanner.c.

int32_t previous_waypoint = -1
static

Store the previous waypoint which is used to determine the path trajectory.

Definition at line 80 of file pathplanner.c.

struct pios_queue* queue
static

Definition at line 53 of file pathplanner.c.

struct pios_thread* taskHandle
static

Definition at line 52 of file pathplanner.c.

WaypointData waypoint
static

Definition at line 56 of file pathplanner.c.

WaypointActiveData waypointActive
static

Definition at line 55 of file pathplanner.c.