Giter VIP home page Giter VIP logo

bilinearcontrol.jl's Introduction

My Sofware Philosophy

  • Open source is best! πŸ’ͺ
  • Write everything like someone else is going to read it πŸ€”
  • Always think about leaving the door open for future development πŸ’‘
  • Keep it clean and neat 🧽
  • Make it fast ⚑

My Tools

C++ C CMake Julia LaTeX Python ROS Vim Git

Brief Bio

Mechanical engineer, student, researcher, aspiring roboticist, and avid hiker, I am dedicated to pursuing robotics research to solve meaningful problems. Currently a PhD Candidate in the Robotics Institute at Carnegie Mellon University, my primary research interests include developing fast, robust, and versatile methods for trajectory optimization for robotics applications. Together with my advisor Dr. Zachary Manchester and my colleagues in the Robotic Exploration Laboratory, I hope to use these methods to endow robotic systems with greater ability to interact with humans and the physical world in a safe, reliable, and predictable way.

I started my research with Dr. Manchester at Stanford University, where I had the privilage of collaborating with and learning from some of the brightest scholars in robotics and optimization. My Master’s coursework at Stanford focused on automatic control, optimization, robotics, and some machine learning.

As an undergraduate student in Mechanical Engineering at Brigham Young University, my research in computational methods for characterizing the microstructure of materials inspired me to pursue a career in research, while my classes in computer science, robotics, and work on the BYU Mars Rover Team helped me find my passion for robotics. I am excited to build upon these experiences as a PhD student at Stanford and now Carnegie Mellon Universities.

Awards / Recognitions

  • ICRA 2020 Best Student Paper Finalist
  • NSF Graduate Research Fellowship
  • Stanford School of Engineering Fellowship
  • Tau Beta Pi Scholarship

Notable Papers

Top Projects

🎁 Project Name πŸ“– Brief Description Language
altro-cpp C++ version of ALTRO C++
rsLQR A multicore direct linear system solver C
Altro.jl SotA nonlinear conic trajectory optimization solver Julia
TrajectoryOptimization.jl Formulating trajectory optimization problems Julia
RobotDynamics.jl Defining controlled dynamics models Julia
RobotZoo.jl A collection of canonical robot models Julia
Mercury.jl Fast ZMQ-based messaging in Julia Julia

bilinearcontrol.jl's People

Contributors

bjack205 avatar jeonghun-jj-lee avatar kevin-tracy avatar zacmanchester avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

Forkers

zacmanchester

bilinearcontrol.jl's Issues

Add example of attitude control

Attitude control is bilinear if the angular velocity is a control input.
Add the following examples

  • fully actuated body
  • body with control about only 2 axes

QP with bilinear cartpole & pendulum

Each example should have a method to generate a prototypical QP to be solved when applying SQP.

  • Pendulum
  • Cartpole
  • Bilinear Pendulum
  • Bilinear Cartpole

QUESTION: What is the exact QP we should be solving? Should the objective include the Hessian of the Lagrangian?

Try adding safeguard to accelerators

COSMO uses safeguarding on their accelerators. Try implementing their safeguard checks to see if it makes the performance improvement more reliable.

Simple quadrotor solver

Add a version of the solver special-cased to the quadrotor MPC problem.
Look into generating custom expressions / functions to fill in Ahat and Bhat or the Jacobian-vector products.

Add benchmark linear systems

Define a suite of benchmark linear systems.

  • Double integrator swarm
  • linearization of SE2(3) quadrotor
  • linearization of swarm of dubins cars

Add rigid body example

Can maybe use an expanded vector to create a bilinear system for a rigid body.
Need to store quadratic terms in omega and cross terms between linear and angular velocity

Consensus trust-region trajopt

Use the consensus form of trajopt ADMM to solve the trust-region problem with box constraints on the controls and norm constraints on the states.

Use Riccati to solve the modified unconstrained problem.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.