280 likes | 897 Views
Obstacle Avoidance. Manjulata Chivukula. Requirements. Traversing the list of waypoints Avoiding the obstacle in the path Going back to the list of waypoints after avoiding the obstacle Path planning Speed control Adhering to the corridor boundary constraints and LBO constraints. Design.
E N D
Obstacle Avoidance Manjulata Chivukula
Requirements • Traversing the list of waypoints • Avoiding the obstacle in the path • Going back to the list of waypoints after avoiding the obstacle • Path planning • Speed control • Adhering to the corridor boundary constraints and LBO constraints
Design Traversing the list of waypoints: • Calculating the heading and distance to the waypoint. • Reading the next waypoint when reaching a distance of 2m close to the waypoint. • Heading Controller • Error between the current cart heading and desired heading to the waypoint –inverse_turn_radius
Obstacle Avoidance • Objective: • Avoiding the one obstacle in the path by using the static (lat,lon) coordinates of the obstacle • Avoiding more than one obstacle by reading the obstacle (lat,lon) values from the synthetic laser • Avoiding more than one obstacle by reading the obstacle (lat,lon) from the real laser
Avoiding One Obstacle • Avoiding one obstacle in the path was simple. • Achieved by using the (lat,lon) values of the obstacle. • Planning the best route around the obstacle.
Avoiding obstacle from Synthetic laser • Avoidance list < 30 degree error between current cart heading and obstacle heading • Orientation check • Center • Left • Right • Moving in the opposite direction
Going back to the list of waypoints after avoiding the obstacle • Switching between modes of operation: • ‘Obstacle’ mode : On seeing the obstacle by the synthetic laser. • ‘No obstacle’ mode: When not seeing the obstacle and after reaching the synthetic point. • Generating only one synthetic point to avoid any number of obstacles that are. Storing all the obstacles between two waypoints and the synthetic point calculated to avoid the obstacle. • Path planning – in the second lap.
Obstacle Avoidance using Real laser • First obstacle seen at distance > 6m • Providing an offset to the steering controller by calculating the bearing to the obstacle • Determining the orientation of the obstacle • Left • Right • Center • Obstacles seen <= 5m
Orientation Check (Right-hand rule) Determinant of vectors: (x1,y1) = Obs_point,(x2,y2) = current_gps det = x1*y2-y1*x2
Obstacle <= 5m • Storing the obstacle in the list • Updating the obstacle value in the list since within 4m the value is more accurate • Ignoring an update if the between new obstacle and the list value is <0.6m (Same obstacle) • Calculating the synthetic point • Updating the synthetic point. Path planning
More than One obstacle Max distance, max positive error Min distance, min positive error Maximum negative error
Plan best route around by comparing all the values • Max distance • Min distance • Max positive error • Max negative error
Path Planning • Lagrange Interpolating Polynomial • If the distance between two points > 4m Where x3 = x1 + 0.25*(x2-x1) x4 = x1 + (0.5)*(x2-x1) x5 = x1 + (0.75)*(x2-x1)
Speed Control • Adjusted the throttle using PI loop