This thesis considers the problem of safe navigation for autonomous mobile robots working in partially known environments with static and non-adversarial dynamic obstacles. A virtual reference governor system is designed to serve as a local regulation point for the real robot system. We calculate a safe set of the robot-governor system by actively measuring the distance from surrounding static obstacles. The motion of the governor is designed to guide the robot towards the goal, while remaining within the safe set. To avoid dynamic obstacles, a control barrier function is built to further constrain the governor-robot system away from dynamic obstacles. A quadratically constrained quadratic program (QCQP) is formulated to minimally modify the governor control input to ensure dynamic obstacle avoidance. Combining these two techniques, the robot can navigate autonomously in unknown environments -- slowing down when approaching obstacles, speeding up in free space, and reacting to the position and velocity of the surrounding dynamic obstacles. Our techniques are demonstrated in simulations and real-world experiments using a ground robot equipped with LiDAR to navigate among a cluttered environment in the presence of humans.