|
- Buy the Arduino microcontroller board and kit at the NYU bookstore
- Bring a laptop to class (if you don't have one, see the instructor).
- Install the Arduino IDE on your laptop (see details here)
(versions are available for Linux, Windows and Mac).
- Install Ubuntu Linux on your laptop (it's easy! see details here).
(if you have a Mac, you can get away without installing Linux, but
things like installing Lush will be a bit harder).
- Install Lush on your laptop under linux (or Mac). See details here).
Students are required to bring a laptop to the class.
YOU MUST INSTALL UBUNTU LINUX ON YOUR LAPTOP (if you have a Mac,
you can probably get away without installing Linux, but you
probably should anyway).
If you only have a Windows machine, you have several solutions:
- Install Ubuntu on your Windows machine without repartitioning your harddrive
using Wubi. Wubi is a Windows app
that installs Ubuntu in a file on your Windows partition (the file is a virtual
hardrive from Linux's point of view). Wubi is not an emulator,
so you have to boot your machine in either Linux or Windows. You can't run
them at the same time.
- download and install Ubuntu.
The Ubuntu installer offers you the option of shrinking your Windows partition
non-destructively so as to make space for Linux. The installation is
very simple and takes about 20 minutes.
- Install Ubuntu through VMWare so you can run Window and Ubuntu
at the same time.
After you have installed Ubuntu Linux, you must install a number of
packages using the two shell commands below (type your password when prompted):
sudo apt-get install gcc g++ libx11-dev binutils-dev indent libreadline5 libreadline5-dev
sudo apt-get install emacs cvs libgsl0-dev libcv1 libcv-dev imagemagick
sudo apt-get install avrdude gcc-avr avr-libc binutils-avr
The Arduino board, and the standard part kit are available
from the NYU bookstore. GET YOUR ARDUINO BOARD ASAP.
Go to the Arduino web page,
and download the Arduino
IDE
- R/C servomotors
- Sharp distance sensor
- SonarMAX sonar sensors
- 3-axes Accelerometers
- gyro sensors.
Arduino Robot Rover from RobotShop |
Installing the 3PI Programming Tools
- 1. Installing the AVR tools:
- Linux (simplest/easiest):
Install the avr-related packages with: "sudo apt-get install emacs cvs avrdude gcc-avr avr-libc binutils-avr avra"
- Windows: download/install WinAVR, and
AVR Studio, then follow
these instructions.
- 2. download Pololu AVR Library,
and unzip it in a convenient location (let's call it "avr").
On Linux, this is done with "cd avr; unzip libpololu-avr-081209.zip".
- 3. cd to "avr/libpololu-avr".
- Linux (simplest/easiest): type "sudo make install".
- Windows: Determine the location of your avr-gcc files. They will
usually be in a folder such as: "C:\WinAVR-20070525\avr".
Next, copy libpololu.a into the "lib" subdirectory.
Finally, copy the entire "pololu" subfolder into the "include" subdirectory.
- 4. Connect the 3pi robot to the programmer, and connect the programmer to
a USB port on your computer. Turn on the robot.
- 5. cd to "avr/libpololu-avr/examples/simple-test", and (in Linux) type "make program".
The robot should play a few notes and display "Hello!" in the LCD.
The AVR microcontroller family from Atmel are used in the Arduino and
the 3PI robot. The Arduino can be programmed with the Arduino-specific
Integrated Development Environment, but the 3PI robot requires you to
use the regular AVR toolchain.
Development tools, compilers, IDEs:
- Linux: install the "avr-xxx" packages, including "avr-gcc" and
"avr-dude". Simply use your favorite editor (say emacs), to
write your C program. Then download and modify
this Makefile, and type
"make".
- Windows: install
the WinAVR Integrated
Development Environment.
AVR ATmega168 Microcontroller
The Arduino and the 3PI both use
the Atmel
ATmega168 microcontroller
(download
datasheet)
The ATmega168 hsa 16K Byte of self-programming Flash Program Memory, 1K Byte of SRAM,
512 Bytes EEPROM, 8 Channel 10-bit Analog to Digital converter.
In the Arduino, it is clocked at 16MHz, while in the 3PI it is
clocked at 20MHz.
Rovio mobile robot with Wifi webcam |
We will make extensive use of this great robot.
It's a remotely controlable webcam-on-wheels.
We will have 5 Rovios in the class.
The platform will allow us to do cool things like navigating using
vision, playing robo-soccer, and racing around a race track.
Documents
- Planning Algorithms, by Steven Lavalle (Cambridge)
This book has the considerable advantage of being freely available on-line. It is a very thorough treatise
on motion planning.
-
Simulators
Resources on Computer Vision |
Software
- OpenCV: the OpenCV library
is interfaced to Lush. Many of its functions can be called from Lush.
Resources on the C and C++ language |
Resources on the Lush language |
Lush is a simple to learn interpreter
that has lots of functions for robotics-related tasks such as image
grabbing, image processing, vector/matrix operations, graphics and
visualization, pattern recognition, machine learning and such.
It is free and open source for Linux and Mac.
Lush will be the language of choice to develop programs to control the Rovio.
- Download this package
- at the shell, type "tar xvf lush.tgz"
- start lush with "lush/bin/lush"
- at the Lush prompt, start the on-line help with "(helptool)"
- follow the tutorial.
- Embedded Robotics, by Thomas Braunl (Springer): covers many aspects of robotics and embedded computing, although
the code samples are specific to a particular robot controller platform.
- Introduction to Autonomous Mobile Robots, by Roland Siegwart and Illah Nourbakhsh (MIT Press):
everything about mobile robots: kinematics, localization/mapping, planning, perception, sensors.
- Planning Algorithms, by Steven Lavalle (Cambridge)
This book has the considerable advantage of being freely available on-line. It is a very thorough treatise
on motion planning.
- Probabilistic Robotics by Thrun, Burgard and Fox (MIT Press):
a rather mathematical treatment of localization/mapping topics such as Kalman filters, SLAM, particle filters and such.
There are other robotics book from the "MIT" school. These books talk about "behavior-based robotics",
which attempt to reproduce the behavior of simple animals, such as insects:
- Cambrian Intelligence by Rodney Brooks (MIT Press): "intelligence without reason", "elephants don't play chess".
- Robot Programming: a Practical Guide to Behavior-Based Robotics, by Joseph Jones (McGraw Hill):
a more recent and more practical book on behavior-based robotics, by engineers fro iRobot (of Roomba fame).
Robotics Courses at Other Schools |
|
|