Musings of an Engineer-Researcher.


  • How not to be a bad researcher.
    Curated good research practices from the gatekeepers of knowledge in Control, Computer Vision, Robotics, Mathematics and Machine Learning.

  • Control Commons.
    Sporadically updated collection of stability, continuity, existence, and uniqueness theorems for nonlinear control -- and their applications.

  • On the necessary and sufficient conditions for optimal controllers.
    Necessary and sufficiency conditions, differentiability and continuity assumptions, and analytical solutions to optimal control problems.

  • Should I use ROS or MuJoCo?
    Good controller algorithm formulations are based on numerical optimization ...

  • Twanging git pull, push and clone.
    It is useful being able to share one's work among different computers using native git commands such as merge, fetch, push, clone, or pull without resolving to using ssh, scp which are without the benefits of diff and merge strategies of git.

  • Ubuntu-16.04 and Cuda-8.0 Install Guide.
    Installing NVIDIA/CUDA Libraries, without breaking Xserver in Ubuntu 16.04.

  • PyTorch and rospy interoperability
    Avoiding pitfalls and potential landmines when installing and using the pytorch neural network framework in rospy.

  • Backpropagation and convex programming in MRAS systems.
    A constraint-based approach to solving the backpropagation optimization problem in nonlinear model reference adaptive systems.

  • Cloning specific folders from git.
    ...[sic] sparse checkoutallows us to sparsely populate the working directory by using skip-worktree bit to inform GIT if the file in the working directory deserves a look.

  • Optimal Control: Model Predictive Controllers.
    Optimal controllers belong to the class of controllers that minimize a cost function with respect to a predicted control law over a given prediction horizon.

  • Safely upgrading your linux kernel.
    We are telling GRUB to use the last-saved selection, do an auto boot-up after 5 seconds if user does nothing, and inform all kernels to reboot after 10 seconds if they die completely. Note, the TIMEOUT option is disabled in GRUB 2.02