These days I'm working as a robotics software developer using C++. I'm proficient in Python and C, and getting up to speed with modern C++. I've got some decent experience with ROS. I used to spend a lot of time with Matlab, but I've moved completely over to a data analysis and visualization workflow based on Numpy, Matplotlib, and Jupyter notebooks. I've got many years of experience writing robot control firmware and other embedded software in C.
I can't share much of my code, since it's proprietary. But check out the side menu for things that I've worked on in academic settings or in my spare time.
Some software and firmware projects I've worked on include:
- Inverse kinematics, dynamics, and path planning code in C++ for industrial robotic manipulators
- Python libraries for automated parametric Abaqus FEA model builds, result postprocessing, and simulation metadata management
- Python experimental control and data acquisition for static thrust testing of underwater thrusters
- Neural-inspired motion control firmware in C for biomorphic underwater robots
- C driver code for I2C and SPI peripherals
- ROS computer vision motion tracking for robot performance testing and position estimation
- Custom ROS nodes for logging LabJack data measurements and robot control data along with motion tracking data
- A simple multithreaded Python GUI and microcontroller firmware for network control of an 80kW power supply
- Embedded MAVLink communications to QGroundControl for teleoperation and telemetry.
- Reproducible data analysis and reporting workflows using Jupyter Notebooks
- Magnetic field analysis and visualization in Matlab.
- A quick and ugly static site generator in Python for maintaining this website.