Embedded Motion Control 2014: Difference between revisions
(23 intermediate revisions by 18 users not shown) | |||
Line 32: | Line 32: | ||
|- | |- | ||
| May 23th | | May 23th | ||
| colspan="2" | Software design for Real-Time by Herman Bruyninckx | | colspan="2" | Software design for Real-Time by Herman Bruyninckx ([[Media:20131002-Eindhoven-ECS-nup.pdf |2013]]) | ||
|- | |- | ||
| June 6th | | June 6th | ||
Line 39: | Line 39: | ||
|- | |- | ||
| June 13th | | June 13th | ||
| colspan="2" | '''!!! No lecture !!!''' | |||
|- | |||
| June 20th | |||
| colspan="2" | Student presentations | | colspan="2" | Student presentations | ||
|- | |- | ||
| June | | June 27th | ||
| colspan="2" | '''Final competition''' | | colspan="2" | '''Final competition''' | ||
|- | |- | ||
Line 237: | Line 240: | ||
|} | |} | ||
{| class="TablePager" style="width: 240px; min-width: 240px; margin-left: 2em; float:left;" | {| class="TablePager" style="width: 240px; min-width: 240px; margin-left: 2em; float:left; color: gray" | ||
|+ '''Week 24''' | |+ '''Week 24''' | ||
|- | |- | ||
Line 244: | Line 247: | ||
! scope="col" | '''Group''' | ! scope="col" | '''Group''' | ||
|- | |- | ||
| 11-06-2014 || 9.00-10.00 || Group | | 11-06-2014 || 9.00-10.00 || Group 4 | ||
|- | |- | ||
| 11-06-2014 || 10.10-11.10 || Group 11 | | 11-06-2014 || 10.10-11.10 || Group 11 | ||
|- | |- | ||
| 11-06-2014 || 11.20-12.20 || Group | | 11-06-2014 || 11.20-12.20 || Group 2 | ||
|- | |- | ||
| 11-06-2014 || 12.30-13.30 || | | 11-06-2014 || 12.30-13.30 || Group 7 | ||
|- | |- | ||
| 11-06-2014 || 13.40-14.40 || Group | | 11-06-2014 || 13.40-14.40 || Group 5 | ||
|- | |- | ||
| 11-06-2014 || 14.50-15.50 || | | 11-06-2014 || 14.50-15.50 || | ||
|- | |- | ||
| 11-06-2014 || 16.00-17.00 || Group | | 11-06-2014 || 16.00-17.00 || Group 1 | ||
|- | |- | ||
| 12-06-2014 || 9.00-10.00 || Group 12 | | 12-06-2014 || 9.00-10.00 || Group 12 | ||
|- | |- | ||
| 12-06-2014 || 10.10-11.10 || Group | | 12-06-2014 || 10.10-11.10 || Group 6 | ||
|- | |- | ||
| 12-06-2014 || 11.20-12.20 || Group | | 12-06-2014 || 11.20-12.20 || Group 9 | ||
|- | |- | ||
| 12-06-2014 || 12.30-13.30 || Group 10 | | 12-06-2014 || 12.30-13.30 || Group 10 | ||
|- | |- | ||
| 12-06-2014 || 13.40-14.40 || | | 12-06-2014 || 13.40-14.40 || N/A | ||
|- | |- | ||
| 12-06-2014 || 14.50-15.50 || Group 3 | | 12-06-2014 || 14.50-15.50 || Group 3 | ||
|- | |- | ||
| 12-06-2014 || 16.00-17.00 || | | 12-06-2014 || 16.00-17.00 || Group 8 | ||
|- | |||
|} | |||
{| class="TablePager" style="width: 240px; min-width: 240px; margin-left: 2em; float:left;" | |||
|+ '''Week 25''' | |||
|- | |||
! scope="col" | '''Date''' | |||
! scope="col" | '''Time''' | |||
! scope="col" | '''Group''' | |||
|- | |||
| 18-06-2014 || 9.00-10.00 || Group 11 | |||
|- | |||
| 18-06-2014 || 10.10-11.10 || groep 1 | |||
|- | |||
| 18-06-2014 || 11.20-12.20 || Group 12 | |||
|- | |||
| 18-06-2014 || 12.30-13.30 || | |||
|- | |||
| 18-06-2014 || 13.40-14.40 || Group 5 | |||
|- | |||
| 18-06-2014 || 14.50-15.50 || | |||
|- | |||
| 18-06-2014 || 16.00-17.00 || Group 4 | |||
|- | |||
| 19-06-2014 || 9.00-10.00 || Group 07 | |||
|- | |||
| 19-06-2014 || 10.10-11.10 || Group 6 | |||
|- | |||
| 19-06-2014 || 11.20-12.20 || group 2 | |||
|- | |||
| 19-06-2014 || 12.30-13.30 || group 9 | |||
|- | |||
| 19-06-2014 || 13.40-14.40 || Group 10 | |||
|- | |||
| 19-06-2014 || 14.50-15.50 || Group 03 | |||
|- | |||
| 19-06-2014 || 16.00-17.00 || Group 8 | |||
|- | |||
|} | |||
{| class="TablePager" style="width: 240px; min-width: 240px; margin-left: 2em; float:left;" | |||
|+ '''Week 26''' | |||
|- | |||
! scope="col" | '''Date''' | |||
! scope="col" | '''Time''' | |||
! scope="col" | '''Group''' | |||
|- | |||
| 25-06-2014 || 9.00-10.00 || Group 11 | |||
|- | |||
| 25-06-2014 || 10.10-11.10 || Group 4 | |||
|- | |||
| 25-06-2014 || 11.20-12.20 || Group 2 | |||
|- | |||
| 25-06-2014 || 12.30-13.30 || Group 07 | |||
|- | |||
| 25-06-2014 || 13.40-14.40 || Group 5 | |||
|- | |||
| 25-06-2014 || 14.50-15.50 || Group 12 | |||
|- | |||
| 25-06-2014 || 16.00-17.00 || Group 8 | |||
|- | |||
| 26-06-2014 || 9.00-10.00 || Group 12 | |||
|- | |||
| 26-06-2014 || 10.10-11.10 || Group 6 | |||
|- | |||
| 26-06-2014 || 11.20-12.20 || | |||
|- | |||
| 26-06-2014 || 12.30-13.30 || group 9 | |||
|- | |||
| 26-06-2014 || 13.40-14.40 || Group 10 | |||
|- | |||
| 26-06-2014 || 14.50-15.50 || Group 03 | |||
|- | |||
| 26-06-2014 || 16.00-17.00 || Group 01 | |||
|- | |- | ||
|} | |} |
Latest revision as of 16:41, 25 June 2014
Guide towards the assignment
'A-MAZE-ING PICO'
Introduction
This course is about software design and how to apply this in the context of autonomous robots. The accompanying assignment is about applying this knowledge to a real-life robotics task in which ROS will be the standard software framework.
Course Schedule and Lecture Slides
Lectures will be given on Fridays from 13.45 - 15.30 in Gemini-Zuid 3A10. The course schedule is as follows:
April, 25th | Introduction | Assignment and basic computer setup |
May 2nd | C++ and ROS Concepts | Image processing using OpenCV (2013) |
May 9th | Navigation (slides, survey) | Software design |
May 16th | Corridor competition | |
May 23th | Software design for Real-Time by Herman Bruyninckx (2013) | |
June 6th | AMIGO's software architecture: performing a RoboCup Challenge | |
June 13th | !!! No lecture !!! | |
June 20th | Student presentations | |
June 27th | Final competition |
Pico test schedule
In order to test your software on the Pico robot, each group has one one hour time slot a week available. You can reserve your test slot in the table below. If you record bag-files, make sure to upload them to the svn on time, so the next group does not have to wait.
N.B. please charge Pico when you are not driving around, so there will be no downtime because of empty batteries.
Date | Time | Group |
---|---|---|
08-05-2014 | 9.00-10.00 | Group 9 |
08-05-2014 | 10.10-11.10 | Group 4 |
08-05-2014 | 11.20-12.20 | |
08-05-2014 | 12.30-13.30 | Group 11 |
08-05-2014 | 13.40-14.40 | |
08-05-2014 | 14.50-15.50 | |
08-05-2014 | 16.00-17.00 | |
09-05-2014 | 9.00-10.00 | Group 2 |
09-05-2014 | 10.10-11.10 | Group 12 |
09-05-2014 | 11.20-12.20 | Group 5 |
09-05-2014 | 12.30-13.30 | Group 7 |
09-05-2014 | 13.40-14.40 | Group 1 |
09-05-2014 | 14.50-15.50 | Group 3 |
09-05-2014 | 16.00-17.00 | Group6 |
Date | Time | Group |
---|---|---|
13-05-2014 | 9.00-10.00 | |
13-05-2014 | 10.10-11.10 | Group 12 |
13-05-2014 | 11.20-12.20 | |
13-05-2014 | 12.30-13.30 | |
13-05-2014 | 13.40-14.40 | |
13-05-2014 | 14.50-15.50 | |
13-05-2014 | 16.00-17.00 | Group 02 |
15-05-2014 | 9.00-10.00 | group 07 |
15-05-2014 | 10.10-11.10 | Group 11 |
15-05-2014 | 11.20-12.20 | group 05 |
15-05-2014 | 12.30-13.30 | group 09 |
15-05-2014 | 13.40-14.40 | group 10 |
15-05-2014 | 14.50-15.50 | |
15-05-2014 | 16.00-17.00 | Group 08 |
Date | Time | Group |
---|---|---|
21-05-2014 | 9.00-10.00 | |
21-05-2014 | 10.10-11.10 | |
21-05-2014 | 11.20-12.20 | |
21-05-2014 | 12.30-13.30 | |
21-05-2014 | 13.40-14.40 | |
21-05-2014 | 14.50-15.50 | Group 2 |
21-05-2014 | 16.00-17.00 | Group 8 |
22-05-2014 | 9.00-10.00 | Group 12 |
22-05-2014 | 10.10-11.10 | |
22-05-2014 | 11.20-12.20 | Group 5 |
22-05-2014 | 12.30-13.30 | Group 9 |
22-05-2014 | 13.40-14.40 | Group 11 |
22-05-2014 | 14.50-15.50 | |
22-05-2014 | 16.00-17.00 | Group 1 |
Date | Time | Group |
---|---|---|
27-05-2014 | 9.00-10.00 | Group 12 |
27-05-2014 | 10.10-11.10 | |
27-05-2014 | 11.20-12.20 | |
27-05-2014 | 12.30-13.30 | |
27-05-2014 | 13.40-14.40 | |
27-05-2014 | 14.50-15.50 | Group 2 |
27-05-2014 | 16.00-17.00 | Group 8 |
28-05-2014 | 9.00-10.00 | Group 11 |
28-05-2014 | 10.10-11.10 | Group 7 |
28-05-2014 | 11.20-12.20 | Group 6 |
28-05-2014 | 12.30-13.30 | Group 9 |
28-05-2014 | 13.40-14.40 | Group 10 |
28-05-2014 | 14.50-15.50 | Group 3 |
28-05-2014 | 16.00-17.00 | Group 1 |
Date | Time | Group |
---|---|---|
04-06-2014 | 9.00-10.00 | |
04-06-2014 | 10.10-11.10 | |
04-06-2014 | 11.20-12.20 | |
04-06-2014 | 12.30-13.30 | Group 10 |
04-06-2014 | 13.40-14.40 | Group 4 |
04-06-2014 | 14.50-15.50 | |
04-06-2014 | 16.00-17.00 | Group 2 |
05-06-2014 | 9.00-10.00 | Group 7 |
05-06-2014 | 10.10-11.10 | Group 6 |
05-06-2014 | 11.20-12.20 | Group 5 |
05-06-2014 | 12.30-13.30 | Group 9 |
05-06-2014 | 13.40-14.40 | group 1 |
05-06-2014 | 14.50-15.50 | Group 3 |
05-06-2014 | 16.00-17.00 | Group 8 |
Date | Time | Group |
---|---|---|
11-06-2014 | 9.00-10.00 | Group 4 |
11-06-2014 | 10.10-11.10 | Group 11 |
11-06-2014 | 11.20-12.20 | Group 2 |
11-06-2014 | 12.30-13.30 | Group 7 |
11-06-2014 | 13.40-14.40 | Group 5 |
11-06-2014 | 14.50-15.50 | |
11-06-2014 | 16.00-17.00 | Group 1 |
12-06-2014 | 9.00-10.00 | Group 12 |
12-06-2014 | 10.10-11.10 | Group 6 |
12-06-2014 | 11.20-12.20 | Group 9 |
12-06-2014 | 12.30-13.30 | Group 10 |
12-06-2014 | 13.40-14.40 | N/A |
12-06-2014 | 14.50-15.50 | Group 3 |
12-06-2014 | 16.00-17.00 | Group 8 |
Date | Time | Group |
---|---|---|
18-06-2014 | 9.00-10.00 | Group 11 |
18-06-2014 | 10.10-11.10 | groep 1 |
18-06-2014 | 11.20-12.20 | Group 12 |
18-06-2014 | 12.30-13.30 | |
18-06-2014 | 13.40-14.40 | Group 5 |
18-06-2014 | 14.50-15.50 | |
18-06-2014 | 16.00-17.00 | Group 4 |
19-06-2014 | 9.00-10.00 | Group 07 |
19-06-2014 | 10.10-11.10 | Group 6 |
19-06-2014 | 11.20-12.20 | group 2 |
19-06-2014 | 12.30-13.30 | group 9 |
19-06-2014 | 13.40-14.40 | Group 10 |
19-06-2014 | 14.50-15.50 | Group 03 |
19-06-2014 | 16.00-17.00 | Group 8 |
Date | Time | Group |
---|---|---|
25-06-2014 | 9.00-10.00 | Group 11 |
25-06-2014 | 10.10-11.10 | Group 4 |
25-06-2014 | 11.20-12.20 | Group 2 |
25-06-2014 | 12.30-13.30 | Group 07 |
25-06-2014 | 13.40-14.40 | Group 5 |
25-06-2014 | 14.50-15.50 | Group 12 |
25-06-2014 | 16.00-17.00 | Group 8 |
26-06-2014 | 9.00-10.00 | Group 12 |
26-06-2014 | 10.10-11.10 | Group 6 |
26-06-2014 | 11.20-12.20 | |
26-06-2014 | 12.30-13.30 | group 9 |
26-06-2014 | 13.40-14.40 | Group 10 |
26-06-2014 | 14.50-15.50 | Group 03 |
26-06-2014 | 16.00-17.00 | Group 01 |
Goal
The goal of the assignment is to get the real-time concepts in embedded software design operational.
The concrete task that has to be solved is to let the PICO robot find his way out of a maze. The final demonstration by each participating group of 4-5 students will be performed during a contest, the winner of which is the group that exits the maze in the shortest amount of time. To prepare for this competition the following guidelines have to be considered:
- to test with PICO and to prepare for the final contest, a simulator will be made available that mimics the in and outputs to the real robot. Specifics of this simulator will be presented in the first lecture on September 4th
- the maze of the final competition will be constructed just before the competition. The maze presented in the simulator is therefore different from the real one used in the final contest.
- both on the real and simulated PICO robot, three sources of sensor information will be available to perceive the environment and to derive the state of the robot:
- laserdata provided by the forward pointing laser scanner,
- images captured by the monocular camera,
- odometry provided by the base controller
- the robot can be actuated by sending information to the base controller
- during the final contest, it is highly imperative that the PICO robot refrains from colliding with the walls in the maze. Colliding with the walls will result in severe time-penalties.
- the walls of the maze will contain several types of pointers to the exit, which can potentially help PICO to speed up execution of the task Click here for a pdf file containing the arrow we will use. We also captured PICO's camera topics in a bag file while the robot was looking at the arrow. You can play this bag-file as follows:
rosbag play 2013-10-08-15-35-04.bag
The topics /pico/camera and /pico/camera_info should then become available. For example, while playing the bag file, userosrun image_view image_view image:=/pico/asusxtion/rgb/image_color
to view the camera images. If your laptop becomes to slow to handle the stream of images, you can also play the bag-file at a lower rate. For example, userosbag play 2013-10-08-15-35-04.bag -r 0.5
to play it at half the recorded speed.
Corridor Competition
An intermediate review will be held on May 16th, 13.45h at the RoboCup soccer field. During this challenge, called the corridor competition the students have to let the robot drive through a corridor and then take the first exit. The precise location of this exit will not be given in advance. Some facts:
Maze Competition
The final competition will be held on June 27th, 13.45h at the RoboCup soccer field. The goal of this competition is to let PICO autonomously drive through a maze and find the exit. Some facts:
- Where and when:
- Fri June 27, 13.45h - 15.30h
- Location: RoboCup Soccer field, GEM-N
- Maze characteristics:
- Exact location of the entrance and exit are unknown, but they will be on the boundaries of the maze
- walls are approximately parallel to each other
- distance between walls is approximately constant throughout the maze, and large enough for the robot to perform complete rotation without hitting the walls
- There may be corners, T-junctions and crossings (+)
- There will NOT be any loops in the maze
- Arrows:
- On some T-junctions there is an arrow pointing to the side that leads to the exit (either left or right, and the arrow will never point in wrong direction)
- Arrows are located on the highest point of the wall, i.e., clearly visible for the camera
- Start, goal and limits:
- PICO will start with its laser range finder within the boundaries of the maze
- You have finished the assignment if PICO did not drive into walls, found the exit and the entire rear wheel is across the finish line.
- There will be a maximum translational velocity of 0.2 m/s (X and Y combined!) and maximum rotational velocity of 1.0 rad/s
- Scoring:
- You have 2 attempts (= maximum one restart)
- restart means:
- PICO restarts at beginning of maze
- MAZE time (= time used for scoring) is reset, BUT
- TOTAL time keeps running
- You have a total of 7 minutes for both attempts
- Hit wall = that attempt fails
- PICO standing still for 30 seconds = that attempt fails
- No second attempt if first attempt was successful
Hardware
The mobile, holonomic PICO robot with Asus Xtion camera and laser range finder with a working ROS interface. In addition, we provide a PICO simulator for offline testing.
Getting Started
To get started, please do the tutorials on the Tutorial Page. Please note:
- Do all tutorials, and all steps. Missing one step may cause a different behavior or incorrect working system later. If something is not working as expected, make sure you correctly did all previous steps.
- Of course, things may still go wrong. If so, do not hesitate to contact us.
- See Using Pico for a quick overview of how to use Pico.
FAQ
Here you can find a collection of Frequently Asked Questions. Please check this page before contacting the student assistants or the tutors! If you find any issues or questions you had to deal with, please add them as well so your colleagues don't run into the same problems.
Group Wiki Pages
Group 1 - visit wiki - Tutor: Sjoerd van den Dries
Group 2 - visit wiki - Tutor: Luis Ferreira
Group 3 - visit wiki - Tutor: Janno Lunenburg
Group 4 - visit wiki - Tutor: Sjoerd van den Dries
Group 5 - visit wiki - Tutor: Luis Ferreira
Group 6 - visit wiki - Tutor: Janno Lunenburg
Group 7 - visit wiki - Tutor: Sjoerd van den Dries
Group 8 - visit wiki - Tutor: Luis Ferreira
Group 9 - visit wiki - Tutor: Janno Lunenburg
Group 10 - visit wiki - Tutor: Yanick Douven
Group 11 - visit wiki - Tutor: Ramon Wijnands
Group 12 - visit wiki - Tutor: Yanick Douven
Group 13 - visit wiki - Tutor: Ramon Wijnands
Group Final Presentations
To be added...
Contact Details
In case of questions related to working with the real Jazz robot or general ROS/C++ questions, please contact Yanick. For questions regarding the simulator or the svn, please contact Sjoerd.
Student Assistent
Yanick Douven - y dot g dot m dot douven at student dot tue dot nl
Ramon Wijnands - r dot w dot j dot wijnands at student dot tue dot nl
Tutors
Sjoerd van den Dries - S dot v dot d dot Dries at tue dot nl
Luis Ferreira - L dot F dot Bento dot Ferreira at tue dot nl
Janno Lunenburg - J dot J dot M dot Lunenburg at tue dot nl
Yanick Douven - y dot g dot m dot douven at student dot tue dot nl
Ramon Wijnands - r dot w dot j dot wijnands at student dot tue dot nl