Sheng Zhong (Johnson)
Robotics PhD Candidate
- johnsonzhong.me |
- github.com/lemonpi |
- Google Scholar |
- zhsh@umich.edu
2018-09 to now
2018-05 to 2018-08
Kepler Communications Software Engineering Intern
Kepler is a Toronto startup providing communication services with low earth orbit satellites. Challenges from this situation include communication opportunities being limited to when the satellite is above a ground station (a pass), and frequently dropped packets.
Designed and developed mission control backend for commanding and communicating with satellites to replace 3rd party software
Scaled communication to potentially tens of satellites simultaneously
Modularized architecture to allow for handling of any communication protocol without affecting interaction logic
Allowed for task scheduling and progress saving across passes
2016-05 to 2017-09
Verity Studios R&D Engineering Intern with Prof. Raffaello D'Andrea
Verity Studios is an ETH spinoff specializing in indoor drone show systems. I designed and implemented a robust parameters system.
Real time performance
Parameter values smartly retained after adding/removing other parameters
PC software can modify parameters on all hardware platforms and versions without recompilation
Simplified usage so much that a coworker wrote: Tears of joy come to my eyes seeing how much simpler the code becomes
2017-09 to 2018-05
Magnetic Microbead Control for Intracellular Manipulation with Prof. Yu Sun
The lab develops a cutting edge magnetic tweezer to manipulate nano-sized beads
Created simulation of the magnetic system
Explored how practical constraints impacted controllable region
Designed a learned gain scheduling controller to optimize controllable region
2016-05 to 2017-09
Verity Studios R&D Engineering Intern with Prof. Raffaello D'Andrea
Modelled novel indoors localization system using physics first principles
Enabled optimization of flight performance
Achieved correlation of 0.86 (95% confidence >0.80) against experimental performance
2015-05 to 2015-09
FPGA CAD Routing Optimization with Prof. Vaughn Betz
Verilog-to-Routing (VTR) is a CAD flow mapping Verilog to FPGAs. Its runtime performance was bottlenecked by the routing phase for large circuits.
Developed route tree pruning algorithm to allow incremental reroutes, speeding up routing by up to 3x on difficult benchmarks
Designed targeted rerouting algorithm for critical yet suboptimal connections, producing up to 30% faster resulting circuits (maximum frequency)
Benchmarked over realistic circuits, with speedups scaling with circuit size
2018-04
Engineering Science Award of Excellence johnsonzhong.me/res/grad/award_of_excellence.pdf
2018-01
3rd in Ontario Engineering Competition 2018 Programming category 500
2016-03
1st in Ontario Engineering 2016 Competition Programming category 2000 johnsonzhong.me/projects/snowfun
2015-10
1st in Canada in IEEEXtreme 9.0 (286800 globally) johnsonzhong.me/res/ieee9.pdf
2015-01
Context.io API prize in PennApps Winter 2015 500 devpost.com/software/snowball
2014-10
8th in Canada in IEEEXtreme 8.0 (526500 globally) johnsonzhong.me/res/ieee8.pdf
2014-09
Google Cloud Platform prize in Hack the North 2015 1000 devpost.com/software/forenships
2013-10
6th in Canada in IEEEXtreme 7.0 (437500 globally) johnsonzhong.me/res/ieee.jpg
- Experience [> thousands of lines of code]
- Python
- 100
- C++
- 60
- Javascript
- 15
- C
- 5
2021-01 to 2022-06
PyTorch Differentiable Robot Kinematics
Parallel and differentiable robot forward kinematics and Jacobian calculation
>150 stars
Differentiable robot kinematics and Jacobian computation
Load robot description from URDF, SDF, and MJCF formats
2020-01 to 2022-03
PyTorch Model Predictive Path Integral Controller
Batched and GPU friendly implementation of Model Predictive Path Integral (MPPI) controller.
>200 stars
Used by many university labs
Handle stochastic dynamic models
2015-09 to 2015-11
Autonomous Cooperating Robots
The task was to design and build a mobile robot to play connect-4 on a semi-randomized game board. We decided to pursue a two robots approach, one for retrieving the ball and one for playing the ball.
Targeted randomly placed high-reward ball dispensers to obtain fastest ball retrieval time (3 ball/min vs average 0.5 ball/min)
2014-11 to 2015-09
Simple Algorithms and Data Structures Library
Header only C++ template library with an interactive tester focused on implementation readability.
Implemented sets and maps with treaps to get 4x insertion and 2x read time improvements over standard library
- Specialities
- Asynchronous programming, Parallelization
- Build tools
- CMake, Makefile, Catkin
- Version control
- Git, SVN
- Environments
- ROS, Linux, Web, Arduino
- Libraries
- PyTorch, numpy, cvxpy, Boost, QT, D3
- Simulators
- PyBullet, MuJoCo
- Code review
- Gerrit
- Integration
- Buildbot, Jenkins
- Database
- PostgreSQL, MySQL
- Heavy focus
- Control, Machine learning, Modelling, MPC
- Medium focus
- Perception, Kinematics, Probability, Algorithms
- Light focus
- Economics, Marketing