Difference between revisions of "LURCH - The autonomous wheelchair"

From AIRWiki
Jump to: navigation, search
(Electronics development)
 
(63 intermediate revisions by 8 users not shown)
Line 1: Line 1:
[[Image:LURCH wheelchair.jpg|thumb|right|300px|LURCH in DEI exploration]]
+
{{Project
L.U.R.C.H. is the acronym of "Let Unleashed Robots Crawl the House".
+
|title=LURCH - the autonomous wheelchair
 +
|image=LURCH wheelchair.jpg
 +
|short_descr=Augmenting commercial electric wheelchairs with autonomous navigation, obstacle avoidance, and multi-modal interfaces
 +
|coordinator=MatteoMatteucci
 +
|tutor=SimoneCeriani;
 +
|collaborator=GiulioFontana;AndreaBonarini
 +
|students=DiegoConsolaro;LucaCalabrese
 +
|resarea=Robotics
 +
|restopic=Robot development
 +
|start=2007/02/01
 +
|end=2015/12/31
 +
|status=Closed
 +
}}
 +
<!--[[Image:LURCH wheelchair.jpg|thumb|right|300px|LURCH in DEI exploration]]-->
 +
 
 +
__TOC__
 +
 
 +
L.U.R.C.H. is the acronym of "Let Unleashed Robots Crawl the House" and beside the intentional reminder to the Addam's family character it is the autonomous wheelchair developed at the AIRLab. Its name for "official" settings is RBWC (RoBy WheelChair).
  
 
LURCH is an extended version of an commercial electric wheelchair (Rabbit by OttoBock) equipped with:
 
LURCH is an extended version of an commercial electric wheelchair (Rabbit by OttoBock) equipped with:
Line 13: Line 30:
 
Main goals of the LURCH project are:
 
Main goals of the LURCH project are:
 
# Add sensors and robotic functionalities to the powered wheelchair.
 
# Add sensors and robotic functionalities to the powered wheelchair.
# Add various command interfaces, such as Joypad wireless, speech command, [[Brain-Computer Interface|brain-computer interface]].
+
# Add various command interfaces, such as Joypad wireless, speech command, [[HeadsetControlForWheelChair | facial muscle control]], [[Brain-Computer Interface|brain-computer interface]].
 
# Semi-autonomous navigation with collision and obstacle avoidance.
 
# Semi-autonomous navigation with collision and obstacle avoidance.
 
# Autonomous navigation by path planning and localization.
 
# Autonomous navigation by path planning and localization.
Line 24: Line 41:
 
# Path planning and basic autonomous navigation.
 
# Path planning and basic autonomous navigation.
 
# [[Brain-Computer Interface|Brain-computer interface]] driving system  
 
# [[Brain-Computer Interface|Brain-computer interface]] driving system  
 +
 +
'''NOTE: AIRWiki users can find operative information to use the Lurch robot in the Discussion tab associated to this page.'''
  
 
==Media Coverage==
 
==Media Coverage==
 
Lurch project appeared in many national and international media. You can see the related articles and videos in the [[MediaCoverage]] page.
 
Lurch project appeared in many national and international media. You can see the related articles and videos in the [[MediaCoverage]] page.
 
==Available Documentation==
 
 
- Documentation on the interface circuit between the wheelchair joystick and computer: [[Media:LurchCircuitDocument.pdf]].
 
 
- '''WARNING''': the circuit was modified and the documentation above is upgraded by this new file: [[Media:LurchXBee.pdf]].
 
 
- How to modify the wheelchair joystick to connect to the interface circuit: [[Media:LurchCircuitJoystick.pdf]].
 
 
- Brief discussion about the interface circuit between the wheelchair joystick and computer: [[Media:LurchCircuitJoystickBrief.pdf]].
 
 
- Brief description of the LURCH project: [[Media:LurchBriefDesc.pdf]].
 
 
- Brief description of the communication between the wheelchair interface circuit and a PC via RS232 port: [[Media:LurchProtocol.pdf]].
 
 
- Source code for PIC 18F452 microprocessor and Eagle project (schematic and board): [[Media:LurchCircuitProject.zip]].
 
 
- Battery replacement done on May 2009, description of work: [[Media:LurchBatteryReplacement.pdf]].
 
 
- Thesis by Simone Ceriani, titled ''Sviluppo di una carrozzina autonoma d'ausilio ai disabili motori'' (Development of an autonomous wheelchair to help motor-disabled persons): [[Media:LurchThesisCeriani.pdf]] (in Italian)
 
 
- Thesis presentation by Simone Ceriani (note: Videos don't work, you can found similar videos below): [[Media:LurchPresentazioneThesisCeriani.zip]]
 
 
- Thesis by Marco Dalli, titled ''Sviluppo di un sistema di controllo basato su odometria per una carrozzina robotica'' (Development of a control system based on odometry for a robotic wheelchair): [[Media:LurchThesisDalli.pdf]] (in Italian)
 
 
- Thesis presentation by Marco Dalli: [[Media:LurchPresentazioneThesisDalli.zip]]
 
 
- Pdf with ArtoolKitPlus Fiducial Markers collection. Dimension are 160x160mm. [[Media:ArtoolKitPlusMarkers-160mm.pdf.zip]]
 
 
==PCBricks Configuration==
 
PCBrick-03 and PCBrick-05 feature Xubuntu Linux 7.10, Xfce Window Manager, Openchrome graphics drivers and eGalax touchscreen drivers v1.08.1227 (Drivers [http://210.64.17.162/web20/TouchKitDriver/linuxDriver.htm here]).
 
The touchscreen is configured and calibrated on both machines, hence it can be used with either one or the other indifferently.
 
 
==Electronics development==
 
A new main board for coupling the wheelchair joystick to the PCBricks is currently under design.
 
 
It will count two PIC microcontrollers configured as a master-slave system, where the slave emulates a standard USB mouse that will be operated by the wheelchair joystick when needed.
 
 
[[Image:Breadboard_lurchbox.jpg|400px|thumb|center|Main Board prototype. The LCD (managed by the master PIC) is showing symbols indicating the successful connection to the USB host and the correct initialization of the serial port.]]
 
 
The USB mouse is emulated by a [http://www.microchip.com/wwwproducts/Devices.aspx?dDocName=en010300 PIC18F4550] microcontroller; this unit features an on-board USB module that can be controlled by the HID (''Human Interface Device'') Library provided with the [http://www.mikroe.com/en/compilers/mikroc/pro/pic/ mikroC PRO for PIC] compiler.
 
 
The USB HID standard states that the device must provide the host a descriptor in which it informs the host on which kind of informations it will generate.
 
An appropriate USB mouse descriptor was generated using the [http://www.usb.org/developers/hidpage HID Descriptor Tool] provided by the USB organization.
 
 
A simple circuit has been designed to test the mouse firmware:
 
 
[[Image:Mouse_board_lurchbox.png|400px|thumb|center|Circuit for the USB mouse emulation firmware.]]
 
 
All the components have been placed on a small piece of perfboard to test the circuit on different computers and operating systems:
 
 
[[Image:Mouse_lurchbox.png|400px|thumb|center|Prototype board for the USB mouse emulation firmware.]]
 
 
The mouse emulator was instantly recognized by all the operative systems we tested it on:
 
* Microsoft Windows XP
 
* Microsoft Windows Vista
 
* Ubuntu Linux
 
* Mac OS X
 
 
[[Image:Mouse_on_xp.png|400px|thumb|center|The USB mouse emulator recognized by Windows XP.]]
 
 
[[Image:Mouse_on_linux.PNG|400px|thumb|center|The USB mouse emulator recognized by Ubuntu Linux.]]
 
 
[[Image:Mouse_on_osx.PNG|400px|thumb|center|The USB mouse emulator recognized by Max OS X.]]
 
 
[[Image:Mouse_on_parallels.PNG|400px|thumb|center|The USB mouse emulator managed by Parallels Desktop on Mac OS X while virtualizing Windows XP.]]
 
  
 
==LURCH YouTube Videos==
 
==LURCH YouTube Videos==
Line 112: Line 65:
 
*[http://www.youtube.com/watch?v=zlhePZbRxZA External link]
 
*[http://www.youtube.com/watch?v=zlhePZbRxZA External link]
  
==Software Installation [TODO: complete]==
+
= Restyling =
This guide is tested on Ubuntu 8.10, 9.04 and Xubuntu 8.10. GCC version in 4.3.
+
Lurch has been restyled in June 2010, see [[LURCH_Restyling|here]] the upgrades...
 
+
* Install the following packages:
+
** qt3-dev-tools
+
** qt4-dev-tools
+
** build-essential
+
** flex
+
** bison
+
** libjsw-dev
+
** libboost-dev
+
** libdc1394-13-dev
+
** libgsl0-dev
+
** libgtk2.0-dev
+
** libncurses5-dev
+
 
+
If you want you can cut and paste this command line:
+
sudo apt-get install ...
+
 
+
* Download this file: [TODO], which contains ARToolKitPlus Libraries
+
 
+
** unpack it in /opt folder
+
** go into /opt/ARToolKitPlus_2.1.1
+
** export ARTKP=/opt/ARToolKitPlus_2.1.1
+
** qmake
+
** make
+
** sudo make install
+
 
+
* download lurch-control.tar.gz
+
** extract it in your home folder
+
** make cleanall
+
** make ROBOT=wheelchair MODULE=misc
+
** make ROBOT=wheelchair
+
** cd wheelchair
+
** ln -s ../logExtract.sh ./
+
** ln -s ../run.sh ./
+
 
+
* download lurch-wheelchair-standalone.tar.gz
+
** extract it in your home folder
+
** go into lurch-wheelchair-standalone/config
+
** edit config.ini
+
*** replace line with hostname=airlab-blackbox with hostname=<yourhostname>
+
** edit agent.ini
+
*** find and replace all "airlab-blackbox" with <yourhostname>
+
 
+
* download the server for simulation (you need sun-java6-jdk installed and Eclipse is suggested)
+
...
+
 
+
* from lurch-wheelchair-standalone
+
** sudo ./run.sh
+
 
+
=People Involved=
+
 
+
[[User:AndreaBonarini|Andrea Bonarini]]
+
 
+
[[User:MatteoMatteucci|Matteo Matteucci]]
+
 
+
[[User:DavideMigliore|Davide Migliore]]
+
 
+
[[User:GiulioFontana|Giulio Fontana]]
+
 
+
[[User:BernardoDalSeno|Bernardo Dal Seno]]
+
 
+
[[User:MarcoDalli|Marco Dalli]] (ex-Tesista)
+
 
+
[[User:SimoneCeriani|Simone Ceriani]] (Assegnista di ricerca)
+
 
+
[[User:MatteoRossi|Matteo Rossi]] (Tesista)
+
  
[[User:MarcoAssini|Marco Assini]] (Tesista)
+
== New Board for Joystick Hack! ==
 +
[[user:DiegoConsolaro|Diego Consolaro]] during his thesis time has written [[Media:LurchMontaggioSchede.pdf | a paper]] (in Italian) to assembly the new modular board that he has developed.
 +
 +
Also during the thesis,many kind of joystick of commercial wheelchair were analyzed; the results of this analysis are summarized in his [[Media:LurchThesisConsolaro.zip |thesis]] (in Italian).
  
[[User:MauroBrenna|Mauro Brenna]] (Tesista)
+
In the  [[Media:ManualeUtente.pdf|user manual]] (in Italian) is written the commands for the normal use of the board system.
  
=== Laboratory work and risk analysis ===
+
------------------------------------------------------------------------------------------------
 +
Laboratory work and risk analysis  
  
 
Laboratory work for this project is mainly performed at AIRLab/Lambrate. It includes some mechanical work and electrical and electronic activity. Potentially risky activities are the following:
 
Laboratory work for this project is mainly performed at AIRLab/Lambrate. It includes some mechanical work and electrical and electronic activity. Potentially risky activities are the following:

Latest revision as of 16:38, 28 February 2017

LURCH - the autonomous wheelchair
Image of the project LURCH - The autonomous wheelchair
Short Description: Augmenting commercial electric wheelchairs with autonomous navigation, obstacle avoidance, and multi-modal interfaces
Coordinator: MatteoMatteucci (matteo.matteucci@polimi.it)
Tutor: SimoneCeriani (ceriani@elet.polimi.it)
Collaborator: GiulioFontana (giulio.fontana@polimi.it), AndreaBonarini (andrea.bonarini@polimi.it)
Students: DiegoConsolaro (diego.consolaro@mail.polimi.it), LucaCalabrese (luca.calabrese@mail.polimi.it)
Research Area: Robotics
Research Topic: Robot development
Start: 2007/02/01
End: 2015/12/31
Status: Closed

L.U.R.C.H. is the acronym of "Let Unleashed Robots Crawl the House" and beside the intentional reminder to the Addam's family character it is the autonomous wheelchair developed at the AIRLab. Its name for "official" settings is RBWC (RoBy WheelChair).

LURCH is an extended version of an commercial electric wheelchair (Rabbit by OttoBock) equipped with:

  1. An interface circuit for digital drive via a radio serial link (XBee modules)
  2. Two on-board computers (PCBricks), powered by wheelchair batteries
  3. A 7-inch touchscreen monitor (Xenarc 700TSV), 800x480 resolution (16:10 AR)
  4. Two laser scanners Hokuyo URG 04LX
  5. A colour camera FireI400 (resolution 640×480)
  6. An odometry system based on encoders applied to the rear wheels

Main goals of the LURCH project are:

  1. Add sensors and robotic functionalities to the powered wheelchair.
  2. Add various command interfaces, such as Joypad wireless, speech command, facial muscle control, brain-computer interface.
  3. Semi-autonomous navigation with collision and obstacle avoidance.
  4. Autonomous navigation by path planning and localization.

Functions currently provided by LURCH:

  1. Driving by the original joystick or a Logitech RumblePad2 wireless joypad.
  2. Obstacle sensing using planar scanner lasers.
  3. Basic collision and obstacle avoidance behaviours.
  4. Indoor localization by a fiducial marker system
  5. Path planning and basic autonomous navigation.
  6. Brain-computer interface driving system

NOTE: AIRWiki users can find operative information to use the Lurch robot in the Discussion tab associated to this page.

Media Coverage

Lurch project appeared in many national and international media. You can see the related articles and videos in the MediaCoverage page.

LURCH YouTube Videos

Restyling

Lurch has been restyled in June 2010, see here the upgrades...

New Board for Joystick Hack!

Diego Consolaro during his thesis time has written a paper (in Italian) to assembly the new modular board that he has developed.

Also during the thesis,many kind of joystick of commercial wheelchair were analyzed; the results of this analysis are summarized in his thesis (in Italian).

In the user manual (in Italian) is written the commands for the normal use of the board system.


Laboratory work and risk analysis 

Laboratory work for this project is mainly performed at AIRLab/Lambrate. It includes some mechanical work and electrical and electronic activity. Potentially risky activities are the following:

  • Use of mechanical tools. Standard safety measures described in Safety norms will be followed.
  • Use of soldering iron. Standard safety measures described in Safety norms will be followed.
  • Transportation of heavy loads (e.g. robots). Standard safety measures described in Safety norms will be followed.
  • Robot testing. Standard safety measures described in Safety norms will be followed.