I'm a Ph.D. student of Computer Science at Dartmouth College advised by Dr. Devin Balkcom. My primary research area is robotics, with a focus on motion planning, 3D fabrication, assemblable structure geometry, and reinforcement learning.
Outside the office, I enjoy fishing, photography, and soccer. Go Barcelona!
Interlocking assemblable structure. We would like to use robots to perform rapid construction for houses, walls, bridges, or scaffoldings. What are the best component elements, and how should they be assembled? We believe a great component for robotic construction should rely purely on geometry and provide stability. One kind of stable structure is interlocking structures. An interlocking structure has only one or a small number of pieces (keys) that have to be dis-assembled before any other block(s) can be taken apart. Wooden puzzles are great examples. A simple sequence of rigid body motions will assemble a solid puzzle. The simplicity is great for robots in almost any environments, even like outer space and underwater.
To build general structures in an interlocking manner, we designed 9 kinds of blocks with joints and provided a layout algorithm [Zhang2016a]. With our work, one can assemble any voxelized structures with only translations. The final structure will have a finite number of keys. The left video shows the assembly of an alpaca model of over 400 blocks using our design.
We later improved the block designs and reduced the number of blocks to two. With the new blocks design, any model can be assembled into an interlocking structure using two kinds of blocks with a small number of keys. A parallel construction scheme was also proposed to reduce the overall construction time. We are one step closer to physically construct large scale structure in an efficient way. Following is a video of a robot arm laying out blocks, and a rendered animation of a chair being assembled. Our paper is accepted by WAFR 2018 [Zhang2018b]. Our next step is to design mobile robots capable of carrying small blocks and stack them based on our layout algorithm. The following two videos are two example structures being assembled by a 4-DoF robot arm.
Disassembling structures with divisible and atomic components. A friend of mine had a car accident years ago. When the firefighters came to save him, they had to cut the damaged vehicle into pieces and extract each piece to pull him out of the car. The cutting and extraction is a common problem in many other rescue operations. Ideally, we want to cut as few pieces as possible, because fewer pieces means faster to save a man. Formally, we want to explore such a problem: given two interlocking objects, one is divisible and another is atomic, how we should cut the divisible part to separate both parts? This is an opposite problem of grasping or caging, where one wants to keep an object in (a) certain configuration(s). [Zhang2016b] and [Zhang2018a] demonstrate some early explorations of the problem in 2D, where a lower-bound number of pieces the divisible part should be cut into is presented, as well as a complete algorithm that guarantees the atomic part to be taken out.
Rearranging agents in a small space using global controls. Many robot motion planning problems assume each robot are individually actuatable and controllable. This is not the case in real life, especially in dealing with small agents. Due to the limit of size and power, small robots could rely on external forces to move. Consider a set of tiny robots sitting in a grid space where we are only allowed to globally control these robots with 4 commands: left, right, up and down. We are also allowed to place obstacles in the grid space. We want to ask how many obstacles we have to place in the space and how many commands should be sent to the robots, in order to reconfigure the robot swarm? [Zhang2017a] explores these problems in a 2D setting where robots are initially forming a matrix and required to form a new matrix in a different order. We show there exists a workspace a constant factor larger than the number of robots that enables complete rearrangement for a rectangle of robots.
Optimal trajectory. Researchers have explored the scenario of optimal motion planning where obstacles are not presented, for example, Dubins and Reeds-Shepp steered cars, differential drives, and omni-directional vehicles. However, finding the optimal trajectories when there are obstacles is still very difficult. In [Balkcom2015] begins to explore the idea that some easy spaces (with large open regions, or large obstacle regions) can be represented easily, without giving up optimality, using a variable-sized cell decomposition approach. We show that a form of convexity can be defined that is suitable for configuration spaces with optimal steering methods and corresponding shortest path metrics, and that a variant on this form of convexity, subconvexity, is available locally everywhere there is a reachable ball in the free configuration space.
In a joined research project with Adobe Inc, we looked at a drone control problem using neural-network. Reinforcement learning provides promising results for generating robot control policies. A big problem with reinforcement learning is the number of trials needed for training, and each failed trail may ruin a robot, which makes it impractical for real robot systems. On the other hand, traditional controllers, like PID or LQR controllers are easy to implement but not self-improving. Inspired by this observation. We proposed an algorithm that combines an existing controller with a learning policy. By optimizing the combined policy and gradually reduce the contribution of the supervisor, we find it possible to have a reinforcement learning algorithm that has consistent stable performance over the whole training process and improves itself to eventually achieve optimality. [Zhang2019a]