Hi! I'm Weilin Xu,
a master student in University of Michigan.
About Me
Hi! Thanks for your visit. I am a master student in University of Michigan now.
My major is Electrical and Computer Engineering. I am passionate in Robotics and Software Development.
In University of Michigan, I am involved in extensive robotics and computer science courses,
and I am really into software, computer vision, SLAM and control.
I also worked in several researches on planning, control, and simulation for autonomous vehicle before.
My software engineer internship in 2019 summer is in PlusAI, an autonomous driving company.
I worked on the development of motion planning algorithm. It is a valuable opportunity for me since
I experienced the whole software development process in industrial.
In 2018 summer, I received my bachelor's degrees both on Electrical and Computer Engineering in Shanghai Jiao Tong University,
and on Mechanical Engineering in University of Michigan. Benefiting from the dual degree background,
my solid learning and research skills were cultivated.
If you want to learn more about me or make friends, don't hesitate to contact me by the email
at the bottom of this page.
Education
University of Michigan
Electrical and Computer Engineering, Master of Science in Engineering (M.S.E.)
September 2018 - Present
Mechanical Engineering, Bachelor of Science in Engineering (B.S.E.)
September 2016 - April 2018
I am working on Master's Degree on ECE, and received my Bachelor's degree on ME
in University of Michigan, a top public research university in Ann Arbor, Michigan.
My future career as an engineer benefits from substantial academic resources in U of M.
I take courses on robotics, computer science and mechanical engineering, and obtain solid
knowledge base on software, machine learning, computer vision, control, SLAM, etc. Meanwhile, I gain
rich project experience through those courses.
In U of M, I also worked on extensive researches. In Fall 2019, I worked as a graduate research
assistant instructed by Prof. Stein on autonomous driving. Previously, I also worked as a
undergraduate research assistant supervised on quadrator navigation.
Through these experiences, my academic and teamwork skills were strengthened.
Courseworks:
Computer Science: Data Structure & Algorithm, Computer Architecture, Computer Vision, Deep Learning, Database Management Systems.
Robotics: Self-Driving Cars, Robotics Kinematics, Mobile Robotics.
Control: Automatic Control, Advanced Powertrain Control, Mechatronic System Design, Embedded Control Systems.
GPA: 3.83/4.00 (Graduate), 3.92/4.00 (Undergraduate)
Shanghai Jiao Tong University
Electrical and Computer Engineering, Bachelor of Science in Engineering (B.S.E.)
September 2016 - August 2018
I received my Bachelor's Degree on ECE in Shanghai Jiao Tong University,
a top university in China, in August 2018. I studied in University of Michigan-Shanghai
Jiao Tong University Joint Institute (UM-SJTU JI), an institute founded by the both SJTU and U of M.
Benefiting from its unique dual degree program, I obtained the chance to study in undergraduate programs
of both universities.
I spent my first two years and the summer semester of senior year in Joint Institute. I completed all fundamental engineering
courses, and some ECE courses on programming, circuits, semi-conductor and electromagnetism. My study experience
in SJTU aroused my interest in software and robotics, and urged me to make the final career decision
as an engineer in related areas.
Courseworks:
Logic Design, Analog Circuit, Signal Processing, Semiconductor, Electromagnetism.
GPA: 3.70/4.00
Work Experience
PlusAI
Software Engineering Internship
May 2019 - August 2019
I was a software engineer intern in PlusAI, an autonomous driving company.
I worked in Planning Team and the project I was responsible for is
planning algorithm development.
The goal was to develop path planning algorithm in lane-follow and lane-change
scenarios. The focus and challenge is to plan a path which avoids all encountered
obstacles, both static and dynamic.
I regarded the problem as a 2D graph-search problem by discretizing the search space. The locations of the obstacles
where they threaten to our autonomous vehicle was spotted in the search
space, based on the predicted trajectories of our vehicle and obstacles. Then, I implemented Djisktra and A* algorithms,
with a well-designed cost function. In this way, the optimal path is found, under the constraints of lane boundary, obstacles,
and vehicle kinematics. All the algorithm was implemented in C++.
The path planning algorithm was tested in the simulator and passed most test cases, indicating its good performance,
especially for lane-merge and nudge cases.
Finally, with the help of my mentor, the algorithm was tested on real road. The road test result verified the functionality
of the planning algorithm, while some parameters requires further tuning and testing.
This is my first industry experience in both software development and autonomous driving.
I learnt how to read colleagues' code and write standardized code. More importantly,
my skill on Object-Oriented Design was significantly improved. Furthermore, my presentation and communication
skills were also improved through the experience of group meetings, code review and tech-sharing.
Research Experience
Automotive Research Center, University of Michigan
Graduate Research Assistant
September 2018 - December 2018
I was a graduate research assistant in Automotive Research Center, instructed by Prof. Stein.
The project is Autonomous Vehicle Proving Grounds. The goal is
to develop an open-source self-driving simulator to evaluate the performance of
control and planning algorithms, such as nonlinear optimization, in Docker.
My task was to realize vehicle dynamics simulation function using Chrono model and
obstacle detection function using Gazebo in ROS. For vehicle dynamics simulation part,
I implemented both PID and Pure Pursuit controllers so that the Chrono vehicle in the simulator
could follow the trajectory calculated by the nonlinear optimization which is to be evaluated.
For obstacle detection function, 2D LiDAR model and ROS obstacle detection package were used.
Under the cooperation of the whole team, all functions of the simulator were implemented properly,
and the simulator yielded expected simulation results for different nonlinear optimization methods.
HUAYU Automotive Systems Co Ltd
Capstone Design (Shanghai Jiao Tong University)
May 2018 - August 2018
My capstone design project in SJTU is sponsored by HUAYU Automotive Systems Co Ltd.
The goal of the project is to build a prediction model for vehicle's dynamic trajectory.
The results could be used for real-time automatic headlight adjustment.
The baseline of the model was kinematic bicycle model implemented in Python and its performance was further
improved by test results. During the test, I applied Mean shift algorithm to track the trajectory of vehicle from camera,
and implemented B-spline non-rigid image registration to handle the distortion of the camera. In this way, the observed real path results
of vehicle in global coordinate system were obtained, and used to make correction the model.
Finally, the prediction error for trajectory was reduced by 60% to 0.05m/m. A user interface was also
implemented using PyQt5 to visualize the predicted trajectory.
University of Michigan
Undergraduate Research Assistant
May 2017 - August 2017
I was an undergraduate research assistant in Prof. Panagou's group in 2017 summer.
I worked in Multi-UAV Trajectory Planning Algorithm Project. The goal of the project
is to develop 3D dynamic coverage control and obstacle avoidance algorithm for UAV to map unknown space.
The planning algorithm is based on potential field. Apart from helping implementing the algorithm
in MATLAB, I mainly worked on the realization of wireless communication interface between quadrotor (with IMU and controller), LiDAR
and the ground computer through ROS. Using the algorithm in the testing, the quadator covered over 95%
in 3D testing space, which gathered adequate information for mapping. This is my first
research experience, and my academic and teamwork skills were cultivated.
Projects
3D Bounding Box Estimation with Monocular Images
Deep Learning Course Project
March 2019 - April 2019
The goal of the project is to detect and estimate 3D bounding box for objects using
only one monocular camera in autonomous driving scenario. Since the model does not require another camera
and LiDAR, the expense of autonomous driving could be reduced.
The model includes four components: Mask RCNN to detect the 2D pixel locations of objects (such as vehicle on the road),
Monocular Depth Estimation Model to generate disparity map, a two-layer CNN to convert disparity
map into 3D location of pixels, a 3D bounding box regression model to integrated the result of detection
and depth estimation. All codes were implemented using Pytorch. Although only a few trainings were
performed, the model still reached 51% accuracy for detection and 3D bounding boxes estimation of
vehicle objects. This result indicates that this model is promising.
Simultaneous Localization and Mapping Project
Mobile Robotics Course Project
January 2019 - March 2019
In this project, I implemented Kalman Filter and Particle Filter for 2D localization in MATLAB.
The motion model is odometry model, and range-bearing sensor is used for sensor model.
Afterwards, I implemented EKF SLAM with Nearest Neighbor data association for both
field with several landmarks and Victoria Park dataset.
Autonomous Vehicle Control on a Pre-Defined Map with Unknown Obstacles
Self-Driving Car Course Project
November 2018 - December 2018
The goal of the project is to design planner and controller for autonomous vehicle
(represented by kinematic bicycle model) to avoid random unknown static obstacles in a
pre-defined map during MATLAB simulation.
Since the obstacles were known once simulation started, the path using center line of the lane
as baseline with low-curvature sinusoidal cruve to avoid obstacles was designed.
Then, I designed and simulated PID/MPC controllers in MATLAB to follow the
planned path. The planner and controller were not only
robust but also computationally efficient,
and we won the 2nd place in all 27 course teams
Inverted Pendulum System Control
Mechatronic System Design Course Project
Octember 2018
The system was composed of a pendulum and a horizontal arm driven by DC motor,
I modeled the system, and then designed LQR and classical (with inner and outer loops) controllers
for it. Then, the controllers were implemented in LabVIEW so that the pendulum could
swing up and balance vertically.
Magnetic Levitation System Control
Mechatronic System Design Course Project
September 2018
The magnetic levitation system was composed of emitter, photo-transistor, current driver,
and electromagnet. The system was modeled and a lead controller was then designed for it in MATLAB.
Using LabVIEW, the photo-transistor was calibrated, and the controller was implemented.
Due to the robustness of the controller, the iron shot could be levitated in the air below the
electromagnet.
Contact
Email: xuweilin@umich.edu