We present an algorithm for offsetting the workspace obstacles of a circular robot. Our method has two major steps: It finds the raw offset curve for both lines and circular arcs, and then removes the global invalid loops to find the final offset. To generate the raw offset curve and remove global invalid loops, O(n) and O((n+k)log m) computational times are needed respectively, where n is the number of vertices in the original polygon, k is the number of self-intersections and m is the number of segments in the raw offset curve, where m ≤ n. Any local invalid loops are removed before generating the raw offset curve by invoking a pair-wise intersection detection test (PIDT). In the PIDT, two intersecting entities are checked immediately after they are computed, and if the test is positive, portions of the intersecting segments are removed. Our method works for conventional polygons as well as the polygons that contain circular arcs. Our algorithm is simple and very fast, as each sub-process of the algorithm can be completed in linear time except the last one, which is nearly linear. Therefore, the overall complexity of the algorithm is nearly linear. By applying our simple and efficient approach, offsetting obstacles of any shape make it possible to construct a configuration space that ensures optimized motion planning.