Saturday, June 25, 2011

Arena Setup Complete

Finally the arena is functional. The complete feedback system is working:
  • cameras gett a birdview image of the arena;
  • each robot carry a marker which are tracked on the arena image;
  • the position and orientation measured with ARToolkit are fed into a Kalman Filter;
  • the filtered position and velocity of the robots are published to other programs;
  • a path following program compute velocity and steer corrections to keep a robot over a path with a controled velocity;
  • these commands are sent via a xbee to the robots;
  • each robot carry an arduino fio that command two motors (steer and throttle).



Thursday, February 10, 2011

Improvements

Before advancing in Kalman developments, as incorporating the control input signals, I wanted to cleanup the code, make the tracking more robust and improve power efficiency of the robots (after I fully discharged a LiPo battery =/ ).
I am using a white background now over the floor, that results in a better tracking and also keep my robots clean, besides having quite good friction. The tracking code now uses two modes for identifying a robot, one for new robots and other that gives a more steady response after one robot has been identified.
Now I will go into the codes of the robots themselves to make them more power effient, entering in stand by mode if no messages are being sent.
Next steps are to model the response of the vehicle to speed input commands and use them into the Kalman filter, for optimal tracking.

Friday, February 4, 2011

ARToolKit and Kalman

ARToolKit is working just fine.
I am able to easily track multiple markers, along the whole image. There is some amount of flickering still, probably due to the small markers and low resolution. I plan to lay out a white arena, so the marker would not need to have a white border, and therefore the marker could be larger.
I am also implementing the Kalman filter using OpenCV (Motion Analysis and Object Tracking — opencv v2.1 documentation). So far I created three filters: one for x, one for y and one for x and y. The filter is not having so great results, so I will try now to use the control input in the filter (as I know what commands are being sent for each car), besides using car specific kinematic equations: A simple unicycle

Tuesday, January 25, 2011

Back to ARToolkit

After several weeks experimenting with the ARToolkitPlus (ARTK+), I gave up. I was having serious troubles in experimenting with it, and the tracking functionality had worse results than the standard ARToolkit (ARTK).
I already cleaned my code, and managed to successfuly track two markers at the same time, with a larger area than the ARTK+

Thursday, January 20, 2011

New robots 2

Just finished building 5 robots. One of them has some problems with the differential and therefore the traction does not work very well. I kept one car so I could use its parts as spare, to overcome problems as the one found in the differential. I also tested the capability of the xbee coordinator to send messages to several end nodes, and that is just fine. There is a small delay that can be noticed (the robots are not perfectly synchronized), but that may be related either to the messages queue or to the hardware differences.
Soon I will post a video of the full construction of a robot.

Thursday, January 13, 2011

New robots

I am creating the new robots, after the prototype had good results. I was afraid I could not use the l293e driver with the lower voltage (3.3V) arduino fio, as the specs of that IC states that the minimum logic supply is 4.5V. Nevertheless I was able make them work with a 3.3V logic and a motor supply from lipo batteries rated at 3.7V.
Now I am creating the motor driver shields for the arduino and after that I will modify the car chassis to integrate with the electronics.

Wednesday, January 5, 2011

ARToolKit Plus Integration

The integration is advancing. There is already a module inside the lar toolkit that uses the ARTK+ features based on an imaged transmitted by other module. I also managed to track several different patterns in the same image with the same code.
I still have some issues to address before ARTK+ be completely integrated:
- maximum track area: how many cameras, resolution, distortion, etc.
- extract usefull information from the transformation matrix given by the ARTK+ (units for example)