I created a ROS driver for the ELP-1MP2CAM001 Dual Lens stereo camera while working on some underwater point-cloud applications. Included in the package is: a URDF macro for the camera a usable calibration udev rules to reliably access the two cameras a launch file to start two usb_cam nodes and a stereo_image_proc node a launch file to start the calibration process Links Source: https://github.com/joshvillbrandt/elp-stereo-camera-ros-pkg Documentation: http://wiki.ros.org/elp_stereo_camera
Software Development
Mecanumbot Hector SLAM
I finally set some time aside to build some maps of my apartment using a SLAM algorithm! I ended up using the hector_slam package in ROS to do the job. There was a lot of trial and error involved in tuning my odometry and the hector_slam algorithm, but it eventually worked just fine. Check out the screenshots below! Links Mecanumbot ROS package
SmartThings Door Lock
My latest creation is an internet-of-things door lock. The package actuators the deadbolt using a servo and determines if the door is shut or not using a reed switch. There is also a motion sensor that can determine if someone is approaching the door. The lock builds on the SmartThings platform using their Arduino Shield. With it I can control the lock over the Internet using the SmartThings app. What…
SolarSurfer Satellite Control
One of the most fun projects that I’ve gotten to work on recently was the SolarSurfer project. A unique aspect of that project which I hadn’t done before was remote control via a satellite connection. The project is extensively documented on Hackaday; check out the logs on satellite comm overview, real-time tracking, and mission simulation. Here is a short summary of the different project aspects: Developed telemetry protocol for bandwidth-constrained…
Mecanumbot Ball Following
I have updated my Mecanumbot code to the latest and greatest ROS distribution – Hydro. During the upgrade, I wrote a companion app to publish velocity commands based of of the output of my ball tracker. The result is that the Mecanumbot can follow a red ball around the room! I wrote the ball tracking code itself back in college. The segmentation approach is pretty naive, but I only spent…
Wireless Control of Multiple GoPro Cameras
I recently created a little Django app that controls can control multiple GoPros simultaneously. It makes use of the GoProController Python class which does the leg work of actually taking to the camera over a wifi adapter on Linux. Links GoProApp GoProController
Django Quick-Start Templates
In the last two years at SpaceX, I have worked on a number of quick turn around web applications. Every time I start a new app, it takes me at least a day or two just to get the essentials in place, even with a framework like Django. In order to aid myself and others in future projects, I’ve taken advantage of Django’s template option to create the django-quick-start-project template…
Arduino and Django Data Logger
In an effort to demonstrate a new django-quick-start package I’m making at work (similar in purpose to pinax, but with some SpaceX-specific packages), I decided to create an Arduino data logger that is viewable through Django. The data from a couple different sensors is first collected with an Arduino. A Python daemon polls the Arduino periodically and asks for new data. The daemon saves this data to the Django database.…
Mecanumbot Integrated Lights Test
I’ve finally achieved end-to-end control of the Mecanumbot’s LEDs! The latest hurdle which prevented me from writing the LED code was a RAM limitation on the microcontroller side. The solution involved swapping over from an Arduino Duemilanove with 1KB of RAM to a Seeeduino Mega with 8KB of RAM. The increased RAM also opens the door for me to code up the Mecanumbot low-level telemetry including items like bus voltage and bus current.…
Automatic Daily Fish Food Dispenser
Meet Bob, the goldfish (pictured below.) Bob is a pet at work, and we needed to keep him fed over the Thanksgiving break. I had an Arduino and a servo that were free, so I wanted to make something that would supply him with the right amount of food for the four days we would be gone. I came up with a little cylinder that I 3D-printed with a MakerBot…