APRIL - Autonomous Parking Robot Implemented in Lego - is a self parking car built with Lego Mindstorms NXT. Its control software executes both on the NXT brick and on a laptop which communicates over bluetooth.
The control software is developed in C#/.Net and NXT-G.
When the autonomous parking control system (APCS) is activated, the system detects free parking places along the road, and plans feasible paths into them when they are found.
If the driver wants to park in a found parking place, he or she simply commands the vehicle to autonomously execute the planned parking maneuver. The software constantly generates and updates an image of the map with the position estimations of the vehicle itself, surrounding objects and most importantly, the found parking place. It also plots the planned path into the parking place if applicable. This map-image is used to verify the correctness of the system and to debug the program.
It also has a simple collision avoidance system which makes the car stop if a sudden or unexpected obstacle is detected.
In general, the software contains two parts. One part is executed on the NXT-Brick and controls the low level execution of motor commands and sensor monitoring. It was necessary to run some of the program on the onboard computer due to lag in the bluetooth communication. It added responsiveness to the solution.
The other part is executed on a laptop and contains components that:
- implements functionality to control the hardware (the vehicle)
- avoids collisions
- keeps track of the position of the vehicle
- analyzes sensor data to locate parking places
- plans feasible parking maneuvers
- executes the planned path.
The path-planner uses two strategies when planning paths into a found parking place. One is used for longer parking places and another for shorter ones (demonstrated in the video).
The one for longer parking places is elegant and does the whole maneuver in one s-curve. The other one is more space-efficient and starts by reverse into the back end of the parking place and then makes small turns back and fourth until the vehicle is fully positioned inside the parking place (it´s really hard to explain in words so I suggest that you watch the video instead).
In the beginning, APRIL was using the ultrasonic sensor that comes with the kit, but due to its lack of precision it was replaced by three infrared distance sensors from SHARP (bought from mindsensors.com). These are located in the front, back and on the side, and measures distances from 4-80 cm with a millimeter precision. (The Ldd-drawings has ultrasonic sensors instead of the infrared ones, but they are located in the same places)
The video demonstrates the vehicle park in a 64 and a 50 cm long parking place (the vehicle is 42 cm long, and is built in the scale of 1:11 of a real car). Then, the same two maneuvers are shown from the vehicle´s point of view. That is, printouts from the plotted internal map are presented (in 15 fps, which is twice the rate in which they are generated by the control software). The printouts show the contour of the detected obstacles in the environment (black), the estimated position of the vehicle (blue), the found parking place (green) and the planned path to park in it (red), along with some additional information used for debugging.
its on nxtLog, but since the programming are built in c# there are no instructions...
JohanNXT 3 years ago