Visual Navigator Making it MOBILE using Arduino

Obstacle avoiding vehicle, continue in β€œ3D Laser Range Finder” series ( project 1, project 2). The basic idea is the same, measuring distance using red laser pointers, CCD analog camera and Arduino UNO. Β Modification was made in geometry. Β Two lasers were set for β€œfar field” obstacle detection, few meters in front of vehicle on left or right side. Primary mission is to trigger left / right turn before a car get too close to the β€œcontinuous” but notΒ necessarily β€œhigh”  object, for example, sidewalk stone. Of course, this distance depends on the vehicle speed, and β€œalert” should be dispatched in right time β€œwindow”, orΒ there would be no space left to making a turn ( proportional speed adaptation is not implemented yet).Β Low height of such road infrastructure is making useless ultrasound based range finder.

Arduino Visual Navigator

Two additional lasers were set in β€œcross” configuration, in order to detect any object that comes dangerously close to the front of vehicle. β€œNear field” obstacle detection or β€œhead on collision” avoidance. Theirs two beams form reflective β€œtrip-wires” and able to detect as narrow object as leg of a chair or desk, open door frame, anything that at least 1 mm wide. Β One laser, pointed to the left, is also works as sidewalk / wall follow navigation system, keeping this distance constant.

Now couple words on β€œautopilot” algorithm. Three main feature of the project:

  1. wall / sidewalk following;
  2. β€œfar field” obstacle avoidance;
  3. β€œnear field” head on collision avoidance.

were classified in 3 priority levels: 1 – warning, 2 – major, 3 – critical.

0 – clear level, corresponds to normal Β R/C radio control, or by  ”man / operator” Β navigation via Β remote R/C module. Operator is also has β€œauthority” to decline warning class navigator status. But it’s notΒ the case when navigator’s β€œautopilot” subroutine performs class 2 or 3 maneuver, with status β€œmajor” and β€œcritical”. When vehicle performs maneuver 2, β€œleft / right” command from R/C remote module are ignored, the same with β€œforward / backward” command in status β€œ3 – critical”, making algorithm completely β€œfool – proof”.

More video will be posted, Link to Arduino UNO sketch: Visual_Navigator.

Β 5 August 2012.

I’d like to publish more pictures from β€œinside”, which show interface between arduino and R/C receiver module in the car. Well, not quite arduino, I build a β€œclone” using pre-programmed AtMega328. As you can see, the receiver was left almost intact, what I did, is just identified two on-board H-bridges which supply power toΒ steering control motor and main vehicles motor-driver.

Arduino Visual Navigator Schematic

Than, remove 4 resistors in series with controls lines, and routed 8 wires to the arduino ( 4 inputs from R/C receiver and 4 outputs to H-bridges ). Here you are, now arduino could intercept any command coming from R/CΒ transmitter, and based on data from the sensors, make a decision if it makes sense to follow them. Also, β€œautopilot” function could β€œdirectly” address two motors in order to execute β€œobstacle avoiding” maneuver not askingΒ anyone’sΒ permission!. Β What more, arduino control a power delivered to motors via software PWM, Β making 7! different speed level available like in real vehicle. Unfortunately, the model I β€œhack” doesn’t use proportional steering control, but still PWM power management helpful to save a battery energy, limiting unnecessary current delivered to motor.

[box color=”#985D00″ bg=”#FFF8CB” font=”verdana” fontsize=”14 ” radius=”20 ” border=”#985D12″ float=”right” head=”Major Components in Project” headbg=”#FFEB70″ headcolor=”#985D00″]Arduino UNO[/box]

 

For more detail: Visual Navigator Making it MOBILE using Arduino

About The Author

Scroll to Top