RobAIR2013-RICM4-Groupe2-Suivi

= The Team =

This team is composed of two 4th year Polytech Grenoble students, in System & Networks specialty.

The members of this team are Nicolas Afonso and Simon Planès.

You can contact us via our mailing list: [mailto:ricm4-robair2013@googlegroups.com link].

= Project objectives = Our project is a part of the RobAIR2013 project.

The shared project
RobAIR is a shared project with two others schools:
 * ENSIMAG
 * Superior Pole Design of Villefontaine

The project consists of the development of a telepresence robot used for museum tours. It is a low cost robot (well below the maket price). The platform and software used for this robot are extensible and follow the OSOHOD2 main lines: open software, open hardware, open design, open data.

Our subproject objectives
We are responsible for the implementation of the ROS environnement in this project. We had to:
 * learn the ROS principles
 * learn the Python language
 * implement ROS nodes in the lego NXT in order to control it
 * implement ROS architecture for RobAir (node for the Lidar, the Kinect ... and the topics between these sensors)
 * make sufficent documentation for the next RobAir's students (solid fondations to start quickly without loosing time searching the same information as we did)

=Technologies used=


 * ROS
 * Python

=Material=

For the full material list, follow this link (Bonus: photo gallery)

=Progress of the project=

We have nearly 3 months to complete this project, starting the 14th of January and presented to our professor the 11th of January. Because we have normal courses during this period, only 5 hours per week are free in our Schedule to do this project.

WEEK 1: from January 14th to January 20th

 * We discovered the global project,the different teams and objectives.
 * We underlined the difficult points
 * The communication between the differents teams (synchronisation between different schedules, places to work: IMAG or Polytech')
 * What our tutors expects really from us: the project seems to be huge, with a lot of expectations and work to do
 * Installation of ROS and first steps with tutorials.

WEEK 2: from January 21st to January 27th

 * We organized a meeting with the 3I4 and RICM4 students. During this meeting, we talked about what everyone understood of this project and what everyone's objectives are.
 * We met with the three students from Pole Design de Villefontaine and they told us what they have been working on for the last month. Their presentation slides are available here
 * A meeting minute is available here.
 * Meeting with Rémi Barraquand (thanks !) at INRIA to talk about ROS
 * introduction to the ROS principles and architecture
 * useful ROS commands and Tools
 * demonstation: how to make a package and a virtual robot (with Rviz tool), controlled by keyboard or autonomous depending on its driver mode, generating a map during its navigation

WEEK 3: from January 28th to February 3rd

 * Writing of the Software Requirements Specification  (first draft)
 * Talk with Thomas Calmant and Joao Claudio Américo who worked on RobAIR before with Didier Donsez on another robotic subject
 * They warn us about the difficulty to use ROS, they abandoned this robotics development architecture during their project
 * We continued to follow the ROS tutorials

WEEK 4: from January 4th to February 10th

 * First meeting with the RICM5 working on this project
 * They presented to us their first architecture for the project
 * They divided up into different groups, each one on charge of a RICM4 team
 * Elisabeth Paz and Arthur Alexandre were our tutors
 * We finish the basical ROS tutorial and make our firsts practical tests

WEEK 5: from February 11th to February 17th

 * Meeting with the RICM5 working on this project
 * In the updated architecture, ROS is used everywhere ! In fact all the communication go through these technology.
 * We start the intermediate level ROS tutorials
 * a first interactive ROS node: hosted on our git
 * Final SRS version

WEEK 6: from February 18th to February 22nd

 * We had the idea (finally!) to set up mailing lists to improve communication between the different groups of the project
 * [mailto:robair2013@googlegroups.com robair2013@googlegroups.com]for all the Polytech's stakeholders
 * [mailto:ricm4-robair2013@googlegroups.com ricm4-robair2013@googlegroups.com] for the RICM4
 * [mailto:ricm5-robair2013@googlegroups.com ricm5-robair2013@googlegroups.com] for the RICM5
 * Before testing on the final robot, we decided to make in practise the different ROS principles we learned the weeks before
 * We will try to take the control of the Lego Mindstorm NXT robot using ROS and Python scripts
 * Searching for documentation and driver
 * Writing the UML of the project

WEEKS 7 and 8: from March 4th to March 15th

 * HOLYDAYS ;)
 * Searching for a nxt ROS node in order to give us the ability to communicate with this robot
 * nxt-ros is not working on our ROS environments (Ubuntu 12.10 / ROS Groovy). After some researches and tries, nxt-ros is only compatible with old configurations: ROS electric (v5) / Ubuntu 11.10 and lower.
 * nxt-python is working on our ROS environments. We will wrote Python scripts to control the nxt.

WEEK 9: from March 18th to March 22nd

 * We assisted at the RICM5 final presentation
 * Thanks to the help of a great python programmer (Salem Harrache) we are now able to control the nxt over a ROS architecture :)
 * We wrote a simple python script which plays with the ultrasound sensor: available here. It plays a different sound, depending on the distance between an object and the ultrasound sensors.

WEEK 10: from February 25th to February 29nd

 * One of the Ensimag group needed the LidarLidar2.JPG
 * We download the lidar node, accessible from our environment
 * The next is simple, we just have to follow the specific tutorial on ros website.
 * We played with the lidar, using the data its node published on the /scan topic
 * We met a student from this group. We speaks about their part of the project and give him the Lidar and a Exo PC Slate, with a ROS environment installed (but incompatibilities with the Kinect, see the ROS page)

WEEK 11: from April 1st to April 5th

 * easter: brake !
 * eat ROS chocolates
 * See the RobAir Configuration 2 construction by Didier Donsez
 * Writing the ROS tutorial

WEEK 12: from April 8th to April 11th

 * Programming a ROS node and Python scripts in order to control the RobAir Configuration 2
 * Learning how we can send bytes through a serial port in Python: [ http://pyserial.sourceforge.net/ PySerial]
 * Learning how the Devantech card works, what are the data it need to move the robot
 * Implementing the solution
 * test and DEBUG ! (definitely don't use USB extentions, a lot of bytes are lost during communication !)
 * Preparing the RobAir configuration for the presentation
 * Merge the RICM4 multimedia project part
 * Integrating their IHM for publishing data into the RobAir control nodes
 * Completing the Hokuyo Lidar Page with our previous experiment.


 * Final presentation: April, 11th 2:15pm to 15:40pm for all the RobAir's RICM4 groups
 * Writing the requested documents
 * Preparing the presentation
 * For the documents, please refer you to the document section (below)

=Related documents=


 * The Software Requirements Specification (SRS) can be found here.
 * The global project's page can be found here.
 * The UML of this project can be found here.
 * Our ROS tutorial on wiki-air: here
 * The completed Lidar Page on wiki-air.
 * ROS code for controling the robot : here
 * Presentation slides: [[File:PI_G2.pdf]]
 * Our project flyer: [[File:Flyer_robair_g2.pdf]]
 * Our project report: [[File:Rapport.pdf]]


 * The RobAir Website: here!