Making My Neato LIDAR Mobile Again
The laser distance sensor I bought off eBay successfully managed to send data to my desktop computer, and the data looks vaguely reasonable. However, I'm not interested in a static scanner - I'm interested in using this on a robot that moves. Since I don't have the rest of the robot vacuum, what's the quickest way I can hack up something to see how this LIDAR unit from a Neato XV-11 works in motion?
Obviously something on the move needs to run off battery, and there's already a motor voltage regulator working to keep motor speed correct. So that part's easy, and attention turns to the data connection. I needed something that can talk to a serial device and send that data wirelessly to my computer. There are many ways to do this in the ROS ecosystem, but in the interest of time I thought I'd just do it in the way I already know how. A Raspberry Pi is a ROS-capable battery-powered computer and everything I just did on my computer would work on a Pi. (The one in the picture here has the Adafruit servo control PWM HAT on board, though the HAT is unused in this test.)
The Raspberry Pi is powered by its own battery voltage regulator I created for Sawppy, supplying 5 volts and running in parallel with an identical unit tuned for 3 volts supplying power to spin the motor. As always, the tedious part is getting a Pi on the wireless network. But once I could SSH into the Pi wirelessly, I could run all the ROS commands I used on my desktop to turn this into a mobile distance data station. Reading in data via FTDI serial port adapter, sends data out as ROS topic /scan
over WiFi.
Using a Raspberry Pi 3 in this capacity is complete overkill - the Pi 3 can easily shuttle 115200 bps serial data over the network. But it was quick to get up and running. Also - the FTDI is technically unnecessary because a Pi has 3.3V serial capability on board that we could use. It's not worth the time to fuss with right now but something to keep in mind for later.
Now that the laser is mobile, it's time to explore its behavior on the move...