View Single Post
  #7   Spotlight this post!  
Unread 25-03-2004, 08:57
CrashZero's Avatar
CrashZero CrashZero is offline
Computer Nerd
#1352 (Huskie Robotics)
Team Role: Programmer
 
Join Date: Mar 2004
Location: Stratford Northwestern
Posts: 44
CrashZero will become famous soon enoughCrashZero will become famous soon enough
Exclamation Re: What is wrong with this code???? It won't Compile and I don't know why? Please Help

well here is the navigate.h file:

Code:
/*******************************************************************************
*
*	TITLE:		navigate.h 
*
*	VERSION:	1.0                          
*
*	DATE:		08-Jan-2004
*
*	AUTHOR:		Richard D. Petras
*
*	COMMENTS:
*
********************************************************************************
*
*	CHANGE LOG:
*
*	DATE         REV  DESCRIPTION
*	-----------  ---  ----------------------------------------------------------
*	03-Dec-2003  0.1  
*   08-Jan-2004  1.0  RDP The version used at the 2004 kickoff
*
*******************************************************************************/
#ifndef _navigate_h
#define _navigate_h

#include "tracker.h"

// Navigator state machine values
// These values will be stored in a global variable called 
// Navigator_State.  As each state transition is detected,
// the state will change to describe how the vehicle should
// operate.
#define WAIT_TO_DRIVE 0
#define	DRIVE_TO_CENTER 1
#define	TURN_TO_TARGET 2
#define	DRIVE_TO_TARGET 3
#define	PASSED_TARGET 4
#define	AT_TARGET 5
#define OVER_CURRENT 6

// Drive state 
// These values are stored in the drive_state variable.  They tell
// us where the beacon is with respect to each tracker on the robot.
#define DR_UNDEFINED 0
#define DR_BOTH_LEFT 1
#define DR_BOTH_RIGHT 2
#define DR_BOTH_STRAIGHT 3
#define DR_BOTH_CENTER 4
#define DR_LEFT_STRAIGHT 5
#define DR_RIGHT_STRAIGHT 6
#define DR_REFLECTION 7

// Some values for each individual tracker
#define DR_LEFT 0
#define DR_CENTER 1
#define DR_RIGHT 2

// Which pwms are our tracker servoes and drive motors?  It
// is nice to only have to change this in one place.
#define left_servo pwm10
#define right_servo pwm11
#define left_drive pwm14 
#define right_drive pwm15

// Simplify the big structure for beacon quality
// from the tracker code.
#define LL Sensor_Stats[0].Beacon_Quality[Tracker_Data[left].Beacon_Type]
#define LR Sensor_Stats[1].Beacon_Quality[Tracker_Data[left].Beacon_Type]
#define RL Sensor_Stats[2].Beacon_Quality[Tracker_Data[right].Beacon_Type]
#define RR Sensor_Stats[3].Beacon_Quality[Tracker_Data[right].Beacon_Type]

// The rest of these defines are tweekable parameters to fit
// the characteristics of different drive trains.  You might
// want to divide these into a separate set of values for the
// left and right side drives if your motor characteristics
// are sufficiently different.  This would require changing
// navigator.c, but the places to make the changes should be 
// obvious. :-)

//  Stop values
#define LSTOP 127      
#define RSTOP 127

// Fast backward
#define FBWD (LSTOP - 90)

// Slow Backward
#define SBWD (LSTOP - 55)

// Very Slow Backward
#define VSBWD (LSTOP - 10)

// Very Slow Forward
#define VSFWD (LSTOP + 10)

// Slow Forward
#define SFWD (LSTOP + 55)

// Fast Forward
#define FFWD (LSTOP + 90)

// Note: All the logic assumes the servo max points right
// Its not too hard to change the code to accomidate the other
// direction, in fact the code started out that way...

// These values are the servo settings (assuming 127 is straight
// ahead) that tells you that the beacon is between the trackers
// and about 1/2 meter ahead.  The exact values will depend on the
// baseline of your trackers.
#define LEFT_GOAL 135
#define RIGHT_GOAL 120

// These values tell you when the target is far to the left of the
// left servo, or far to the right of the right servo.  We switch
// navigator states at this point
#define LEFT_PASS 60
#define RIGHT_PASS 195

// Adjust these for your drive train

// This is the gain that is multiplied by your pointing error.
// It can be used as part of a feedback loop to steer toward the
// goal.  Note: the error calculation is included in the code
// as an example, but was not used in the actual kickoff demo.
// (we wanted to drive straight until we passed the goal)
#define DRIVE_GAIN 2

// This is a timer for the short drive away from the wall before
// we startt to turn in place toward the beacon.
#define DRIVE_TO_CENTER_TIME 5

// I bet you didn't know we were using the current sensors in the
// kickoff demo.  If the current sensor reading got above this 
// value, we might be up against the wall.  In that case we might
// want to stop driving for a short time to allow the robot to level 
// out.
#define MAX_CURRENT 700


// If we haven't seen the target with any of the trackers for 
// a while,  just start searching again by turning in place.  
//#define LOST_TARGET_TIMEOUT 100

// Declaration for the Navigate function
void Navigate(void);

#endif // _navigate_h
__________________
This is our world now... the world of the electron and the switch, the beauty of the baud. We make use of a service already existing without paying for what could be dirt-cheap if it wasn't run by profiteering gluttons, and you call us criminals. We explore... and you call us criminals. We seek after knowledge... and you call us criminals. We exist without skin color, without nationality, without religious bias... and you call us criminals. You build atomic bombs, you wage wars, you murder, cheat, and lie to us and try to make us believe it's for our own good, yet we're the criminals. Yes, I am a criminal. My crime is that of curiosity. My crime is that of judging people by what they say and think, not what they look like. My crime is that of outsmarting you, something that you will never forgive me for. I am a hacker, and this is my manifesto. You may stop me, but you can't stop us all...

quote from:

+++ The Mentor +++