Difference between revisions of "Embedded Motion Control 2012 Group 6"

From Control Systems Technology Group
Jump to navigation Jump to search
Line 78: Line 78:
** Creating dead end detection (finished)
** Creating dead end detection (finished)
** Creating pre safe system (finished)
** Creating pre safe system (finished)
* '''Week 5'''
** Evidence on youtube http://youtu.be/p8DRld3NVaY?hd=1

==Progress report==
==Progress report==

Revision as of 00:43, 25 May 2012

SVN guidelines

  • Always first update the SVN with the following command
    svn up
  • Commit only files that actually do work
  • Clearly indicate what is changed in the file, this comes handy for logging purposes
  • As we all work with the same account, identify yourself with a tag (e.g. [AJ], [DG], [DH], [JU], [RN])
  • To add files, use
    svn add $FILENAME
    For multiple files, e.g. all C-files use
    svn add *.c
    Note: again, update only source files
  • If multiple files are edited simultaneously, more specifically the same part of a file, a conflict will arise.
    1. use version A
    2. use version B
    3. show the differences

How to create a screen video?

  • Go to Applications --> Ubuntu software centre.
  • Search for recordmydesktop and install this.
  • When the program is running, you will see a record button top right and a window pops-up.
  • First use the "save as" button to give your video a name and after that you can push the record button.
  • This software creates .OGV files, no problem for youtube but a problem with edditing tools.
  • Want to edit the movie? Use "handbrake" to convert OGV files to mp4.

Useful links

Documentation from Gostai

Standard Units of Measure and Coordinate Conventions

Specs of the robot (buy one!)


List of planned items.

  • Study movement of Jazz robot
  • Handle vision, more specifically detection of the arrows
  • Scanning the environment


  • The final assignment will contain one single run through maze
  • Paths have fixed width, with some tolerances
  • Every team starts at the same position
  • The robot may start at a floating wall
  • The arrow detection can be simulated by using a webcam
  • Slip may occur -> difference between commands, odometry and reality
  • Dynamics at acceleration/deceleration -> max. speed and acceleration will be set

Presentation, chapter 8

  • [RN] introduction
  • [RN] semaphores
  • [DH] pipes
  • [JU] event registers
  • [AJ] signals
  • [DG] condition variables
  • [RN] summary

The Presentation is available online now.


Progress of the group. The newest item is listed on top.

  • Week 1
    • Started with tutorials (all)
    • Installed ROS + Eclipse (all)
    • Installed Ubuntu (all)
  • Week 2
    • Finished with tutorials (all)
    • Practiced with simulator (all)
    • Investigated sensor data(all)
  • Week 3
    • Overall design of the robot control software
    • Devision of work for the various blocks of functionality
    • First rough implementation: the robot is able to autonomously drive through the maze without hitting the walls
    • Evidence on youtube http://youtu.be/qZ7NUgJI8uw?hd=1
  • Week 4
    • Studying chapter 8
    • Creating presentation slides (finished)
    • Rehearsing presentation over and over again (finished)
    • Creating dead end detection (finished)
    • Creating pre safe system (finished)

Progress report

This progress report aims to give an overview of the results of group 6. In some cases details are lacking due confidence reasons.

The software to be developed has one specific goal: driving out of the maze. It is yet uncertain whether the robot will start in the maze or needs to enter the maze himself. Hitting the wall results in a time penalty, which yields to the constraint not to hit the wall. In addition, speed is also of importance to set an unbeatable time.

For the above addressed goal and constraints, requirements for the robot can be described. Movement is necessary to even start the competition, secondly vision (object detection) is mandatory to understand what is going on in the surroundings. But, the most important of course is strategy. Besides following the indicating arrows, a back-up strategy will be implemented. Clearly, the latter should be robust and designed such that it always yields a satisfying result (i.e. team 6 wins).

Different modules will be designed the upcoming weeks are being developped at this very moment, which form the building blocks of the complete software framework.

But first things first: Our lecture coming Monday! Be sure all to be present, because it's going to be legendary ;) seriously, you don't want to miss this event! Ow, and also be sure to have read Chapter 8 on beforehand, otherwise you won't be able to ask intelligent questions.

To be continued...

Arrow recognition

edit in progress by [RN]

The arrows help the robot navigating through the maze. In order to decide where to go, the robot should be able to process the following steps:

  • identify an arrow shape on the wall
  • check if the arrow is red
  • determine the arrow point direction
  • use the obtained information

The ROS package provides a package for face detection, see http://www.ros.org/wiki/face_recognition. One can see the image as a poor representation of a face, and teach the robot the possible appearances of this face. The program is thought to recognise a left pointing "face" and a right pointing "face". However, one can doubt the robustness of this system. First because the system is not intended for arrow recognition, it is misused. Possibly, some crucial elements for arrow recognition is not implemented in this package. Secondly, face recognition requires a frontal view check. If the robot and wall with the arrow are not perfectly in line, the package can possibly not identify the arrow.

With these observations in mind, clearly, a different approach is necessary. Different literature is studied to find the best practice. It turned out that image recognition does not cover the objective correctly (see for example Noij2009239), it is better to use the term pattern recognition. Using this term in combination with Linux one is directed to various sites mentioning OpenCV. Especially this tutorial is of interest: http://www.shervinemami.co.cc/blobs.html In addition, ROS support this package as well. For more information see: http://www.ros.org/wiki/cv_bridge/Tutorials/UsingCvBridgeToConvertBetweenROSImagesAndOpenCVImages

OpenCV reference: http://www710.univ-lyon1.fr/~bouakaz/OpenCV-0.9.5/docs/ref/OpenCVRef_ImageProcessing.htm

Using webcam in ROS: http://pharos.ece.utexas.edu/wiki/index.php/How_to_Use_a_Webcam_in_ROS_with_the_usb_cam_Package