All 2 entries tagged Code
December 11, 2006
I thought I’d just make a final post on this blog for completion. The project is over now and deadlines have passed but the work didn’t quite progress as far as we had hoped (although acceptable!). We successfully developed a basic person tracking software that was able to track a single person moving about in a non static scene based on contour tracking using colour filtration as a heuristic.
Here I have posted our work that was submitted for marking: -
- Presentation 4.55 MB
- Report 0.2 MB
- Video Demonstration 32 MB
- Java Code (used to render the demonstration)
- C++ Code (used for implementation on the DCS MobRob)
For those poor people that are searching the web for a C++ Canny Operator well you’re in luck. We’ve converted the Java version to C++ and you can get it by downloading the above C++ code and it’s in the class “EdgeDetector”. It requires the CImg library which is open source.
November 09, 2006
I have been looking at the methods that we have available to us to move the robot.
Currently there doesn’t appear to be a clear header file that does everything, as its work in progress. Although there is a demo file “DigIOdemoDlg.cpp” that I believe that they have been using for testing that we should be able to adapt.
There is a document on the CD, that describes how they have been controlling it.
In essence, the robot has a queue of moves,
to add moves to the queue a function
CInstruction(int port, int starboard, int port_dir, int starboard_dir)
This tells the stepper motors to turn so many steps in a certain direction.
In the case of our robot, when the robot is turning in place
1 degree = 338 2/3 steps
also due to the motors being the same if the last two parameters in the function are set too:
( port_dir = 1, starboard_dir = -1 ) = Forward
( port_dir = 1, starboard_dir = 1 ) = Clockwise
( port_dir = -1, starboard_dir = 1 ) = Backwards
( port_dir = -1, starboard_dir = -1 ) = Anti-Clockwise
This queue can either then be executed one move at a time with a call to a function or with another function that will run though the whole queue until the queue is empty.
So in conclusion with a bit of tweaking and testing it should not be too hard to get the robot to move.