Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: mbed-rtos mbed QEI
Fork of ICRSEurobot13 by
Processes/AI/ai.cpp
- Committer:
- rsavitski
- Date:
- 2013-04-12
- Revision:
- 55:0c8897da6b3a
- Parent:
- 50:937e860f4621
- Parent:
- 54:99d3158c9207
- Child:
- 56:ed585a82092b
File content as of revision 55:0c8897da6b3a:
#include "ai.h"
#include "rtos.h"
#include "globals.h"
#include "motion.h"
#include "Colour.h"
#include "supportfuncs.h"
namespace AI
{
void ailayer(void const *dummy)
{
Waypoint current_waypoint;
current_waypoint.x = 2.2;
current_waypoint.y = 1.85;
current_waypoint.theta = PI;
current_waypoint.pos_threshold = 0.01;
current_waypoint.angle_threshold = 0.02*PI;
motion::setNewWaypoint(¤t_waypoint);
Colour c_upper(P_COLOR_SENSOR_BLUE_UPPER, P_COLOR_SENSOR_RED_UPPER, P_COLOR_SENSOR_IN_UPPER, UPPER);
Colour c_lower(P_COLOR_SENSOR_BLUE_LOWER, P_COLOR_SENSOR_RED_LOWER, P_COLOR_SENSOR_IN_LOWER, LOWER);
float r = 0.61+0.02;
for (float phi=(180-11.25)/180*PI; phi > 11.25/180*PI;)
{
motion::waypoint_flag_mutex.lock();
if (motion::checkWaypointStatus() && c_upper.getColour()==RED)
{
phi -= 22.5/180*PI;
current_waypoint.x = 1.5-r*cos(phi);
current_waypoint.y = 2-r*sin(phi);
current_waypoint.theta = constrainAngle(phi+PI/2);
motion::clearWaypointReached();
motion::setNewWaypoint(¤t_waypoint);
}
motion::waypoint_flag_mutex.unlock();
Thread::wait(50);
}
}
} //namespace
