ME 405 Term Project
Loading...
Searching...
No Matches
steering_task.SteeringTask Class Reference

Public Member Functions

 __init__ (self, ir_array, battery, control_mode, mtr_enable, left_sp_sh, right_sp_sh, k_line, lf_target, bias, abs_x_sh, abs_y_sh, abs_theta_sh, nav_target_x_sh, nav_target_y_sh, nav_speed_sh, heading, k_heading, heading_setpoint)
 run (self)

Public Attributes

 ir = ir_array
 battery = battery
 left_sp_sh = left_sp_sh
 right_sp_sh = right_sp_sh
 control_mode = control_mode
 mtr_enable = mtr_enable
 k_line_sh = k_line
 lf_target_sh = lf_target
 k_heading = k_heading
 heading = heading
 heading_setpoint = heading_setpoint
 bias = bias
 abs_x_sh = abs_x_sh
 abs_y_sh = abs_y_sh
 abs_theta_sh = abs_theta_sh
 nav_target_x_sh = nav_target_x_sh
 nav_target_y_sh = nav_target_y_sh
 nav_speed_sh = nav_speed_sh
float search_speed = 0.5
float reacquire_thresh = 0.05
int state = self.S0_INIT
 last_time = millis()
int first = 1

Static Public Attributes

int S0_INIT = 0
int S1_WAIT_ENABLE = 1
int S2_FOLLOW = 2
int S3_LOST = 3
int S4_HEADING = 4

Protected Member Functions

 _compute_clamp_bound (self)
 _publish (self, v_left, v_right)

Detailed Description

Outer-loop controller for closed-loop line following.

Attributes:
    ir: IR sensor array object for line detection.
    battery: Battery monitor object.
    control_mode: Share for control mode (0: effort, 1: velocity, 2: line-following, 3: waypoint navigation).
    mtr_enable: Share for motor enable flag.
    left_sp_sh: Share for left motor velocity setpoint.
    right_sp_sh: Share for right motor velocity setpoint.
    k_line_sh: Share for line-following gain.
    lf_target_sh: Share for line-following target speed.
    bias: Share for centroid bias to influence line following.
    abs_x_sh: Share for absolute x position.
    abs_y_sh: Share for absolute y position.
    abs_theta_sh: Share for absolute heading.
    nav_target_x_sh: Share for navigation target x position.
    nav_target_y_sh: Share for navigation target y position.
    nav_speed_sh: Share for navigation target speed.
    heading: Share for current heading.
    k_heading: Gain for heading control.
    heading_setpoint: Share for desired heading.

Constructor & Destructor Documentation

◆ __init__()

steering_task.SteeringTask.__init__ ( self,
ir_array,
battery,
control_mode,
mtr_enable,
left_sp_sh,
right_sp_sh,
k_line,
lf_target,
bias,
abs_x_sh,
abs_y_sh,
abs_theta_sh,
nav_target_x_sh,
nav_target_y_sh,
nav_speed_sh,
heading,
k_heading,
heading_setpoint )

Member Function Documentation

◆ _compute_clamp_bound()

steering_task.SteeringTask._compute_clamp_bound ( self)
protected

HELPER FUNCTIONS

Compute the maximum speed clamp.

◆ _publish()

steering_task.SteeringTask._publish ( self,
v_left,
v_right )
protected

◆ run()

steering_task.SteeringTask.run ( self)

FINITE STATE MACHINE

Member Data Documentation

◆ abs_theta_sh

steering_task.SteeringTask.abs_theta_sh = abs_theta_sh

◆ abs_x_sh

steering_task.SteeringTask.abs_x_sh = abs_x_sh

◆ abs_y_sh

steering_task.SteeringTask.abs_y_sh = abs_y_sh

◆ battery

steering_task.SteeringTask.battery = battery

◆ bias

steering_task.SteeringTask.bias = bias

◆ control_mode

steering_task.SteeringTask.control_mode = control_mode

◆ first

int steering_task.SteeringTask.first = 1

◆ heading

steering_task.SteeringTask.heading = heading

◆ heading_setpoint

steering_task.SteeringTask.heading_setpoint = heading_setpoint

◆ ir

steering_task.SteeringTask.ir = ir_array

◆ k_heading

steering_task.SteeringTask.k_heading = k_heading

◆ k_line_sh

steering_task.SteeringTask.k_line_sh = k_line

◆ last_time

steering_task.SteeringTask.last_time = millis()

◆ left_sp_sh

steering_task.SteeringTask.left_sp_sh = left_sp_sh

◆ lf_target_sh

steering_task.SteeringTask.lf_target_sh = lf_target

◆ mtr_enable

steering_task.SteeringTask.mtr_enable = mtr_enable

◆ nav_speed_sh

steering_task.SteeringTask.nav_speed_sh = nav_speed_sh

◆ nav_target_x_sh

steering_task.SteeringTask.nav_target_x_sh = nav_target_x_sh

◆ nav_target_y_sh

steering_task.SteeringTask.nav_target_y_sh = nav_target_y_sh

◆ reacquire_thresh

float steering_task.SteeringTask.reacquire_thresh = 0.05

◆ right_sp_sh

steering_task.SteeringTask.right_sp_sh = right_sp_sh

◆ S0_INIT

int steering_task.SteeringTask.S0_INIT = 0
static

◆ S1_WAIT_ENABLE

int steering_task.SteeringTask.S1_WAIT_ENABLE = 1
static

◆ S2_FOLLOW

int steering_task.SteeringTask.S2_FOLLOW = 2
static

◆ S3_LOST

int steering_task.SteeringTask.S3_LOST = 3
static

◆ S4_HEADING

int steering_task.SteeringTask.S4_HEADING = 4
static

◆ search_speed

float steering_task.SteeringTask.search_speed = 0.5

◆ state

int steering_task.SteeringTask.state = self.S0_INIT

The documentation for this class was generated from the following file: