dilBot - JavaScript powered autonomous rover
dilBot
A loving little rover
dilBot is a JavaScript powered Wild Thumper-based rover that makes heavy use of zip ties. More photos
What does it do?
Right now, dilBot does:
- Remote control via an iPad-compatible web interface or 2.4GHz controller
- Clumsy autonomous object avoidance and roaming using ultrasonic sensors
What will it do eventually?
dilBot's ultimate final goal is to compete in the RoboMagellan challenge, or at least intelligently plan paths between waypoints and recognize goal objects.
Plans are to employ the LazeeEye 3D camera and a Neato XV11 LiDar to do 3D SLAM.
Base
With 6WD and enough juice to drive for hours, dilBot weighs in at just over 4.8kg.
- Wild Thumper 6WD 75:1
- Venom 7.4V 10,000mAh 35C 2S LiPo battery
Sensors
Just about all the usable I/O is packed with sensors.
- 3x Parallax PING))) ultrasonic sensors
- 2x Wild Thumper encoders
- AltIMU-10 v3 Gyro, Accelerometer, Compass, and Altimeter
- Spektrum AR400 2.4GHz receiver
- Globalsat BE252 USB GPS
Brain
Wild Thumper Robot Controller
This controller is the perfect match for the chassis and provides just enough I/O to get the job done.
- ATmega168-powered Arduino
- 2x 15A FET "H" bridges
- I2C + 12 usable I/O pins
HP Slate 500
A developer edition saved from a Silicon Valley dumpster, this device serves as the main brain.
- Intel Atom Z530 @ 1.60GHz
- 1GB RAM
- 32GB SSD
- WiFi / Bluetooth / USB 2.0
- lubuntu 12.10
Software
dilBot uses Node.js to control the Arduino over USB serial. Commands are sent in a simple low-level format and sensor/motor status comes back from the device as JSON. An iPad compatible remote control client/server is provided to control the bot wirelessly, and (very crude) autonomous driving is implemented using a Promises-based API.
Source Code
- JavaScript Server/Client/Brain: github.com/lazd/dilBot-rc
- Arduino sketch: github.com/lazd/dilBot-arduino
- Encoder library: pjrc.com/teensy/td_libs_Encoder.html
- Timer1 library: pjrc.com/teensy/td_libs_TimerOne.html
Autonomous navigation, web-based remote control