ARM Cortex M3 based autonomous robot “rob01″
This is my first robot project. Primary goal of the project was to build a small robot which is able to drive autonomous as well as remote controlled by a human. The result is rob01 which currently has the following features:
- Drives autonomously, tries to avoid obstacles. To detect obstacles, two distance sensors are used.
- Also the average wheel turns are measured continuously to detect if the robot is stuck.
- The robot also provides a shell to which one could log in through a wireless connection. On the shell the internal robot parameters could be monitored or set, and the robot could be driven remote controlled.
Programming of the robot firmware was done completely by using open source tools. For compiling, the ARM gcc form the "Summon ARM Toolchain" is used, and as a kick start for accessing the STM32 hardware functionality, "libopencm3" is used.
For more pictures, videos, firmware (incl. doxygen docs) and schematic see the project page on my blog!
Drives autonomous, avoids obstacles by using IR sensors, an measuring the wheels rpm. Could also be remote controlled through XBee.
- Actuators / output devices: 2 gear motors
- Control method: autonomous, or remotely by logging into a shell on the robot through XBee (ZigBee)
- CPU: STM32VL Discovery (ARM Cortex-M3)
- Operating system: none - bare metall
- Power source: 2 9V blocks
- Programming language: C
- Sensors / input devices: 2 Pololu QTR-1RC IR sensors for rpm measurement, 2 Pololu GP2Y0D805Z0F IR sensors as bumper sensors
- Target environment: indoor