Multi-Unit Reconfigurable Robot

Student: Zirui Wang
Table: COMP5
Experimentation location: School, Home
Regulated Research (Form 1c): No
Project continuation (Form 7): No

Display board image not available



[1] G. Song, Y. Zhou, Z. Wei and A. Song, A smart node architecture for adding mobility to wireless sensor networks, Sens Actuators A Phys, Vol. 147, No. 1, pp. 216-221, 2008.

[2] Xu, W., Han, L., Wang, X., Yuan, H., & Liang, B. (2020). Intelligent modularized reconfigurable mechanisms for robots: development and experiment. Research Square (Research Square).

[3] Yang, C., Xu, B., Xia, J., Chang, H., Chen, X., & Ma, R. (2023). Mechanical behaviors of inter-module connections and assembled joints in modular steel buildings: A comprehensive review. Buildings, 13(7), 1727.

[4] Dorigo, M. (2005). SWARM-BOT: an experiment in swarm robotics. Proceedings 2005 IEEE Swarm Intelligence Symposium, 2005. SIS 2005.

[5] Dorigo, M. (2014). The Swarm-bots and Swarmanoid experiments in swarm robotics. Dorigo - 2014 IEEE International Conference on Autonomous Robot Systems and Competitions (ICARSC) - 2014.

[6] Liu, C., Lin, Q., Kim, H., & Yim, M. (2022). SMORES-EP, a modular robot with parallel self-assembly. Autonomous Robots, 47(2), 211–228.

[7] Kuo, V., & Fitch, R. (2014). Scalable multi-radio communication in modular robots. Robotics and Autonomous Systems, 62(7), 1034–1046.

[8] Luo, H., & Lam, T. L. (2023). Auto-Optimizing connection planning method for Chain-Type modular Self-Reconfiguration robots. IEEE Transactions on Robotics, 39(2), 1353–1372.

Additional Project Information

Project website: -- No project website --
Presentation files:
Research paper:
Additional Resources: -- No resources provided --
Project files:
Project files

Research Plan:

This project aims to introduce a zoomorphic robot, characterized by its animal-like mobility and adaptability, controlled through a computer interface. The proposed project focuses on the use of joints that, to an extent, replicate the movement capabilities of animals. By leveraging the versatility of jointed structures and their ability to expand, contract, and rotate, this type of robot possesses inherent adaptability, making it suitable for a diverse array of applications and customizable to specific requirements (such as space exploration, deep ocean exploration, etc.). Key features of this project include its modular construction, with each unit comprising three joints. These three joints will have two oriented horizontally in the same direction and one oriented vertically. This allows a single unit to move and control itself pretty effectivly. Then there will connections for each unit, so that different units can attatch to each other, and potentially, different units for different purposes can be created. Besides, the project will use Arduino to control itself. I will use Arduino to make sure each unit can move properly and can recieve wireless information on how to move. In order to make sure each unit will function properly, I will use a custom printed PCB that will contain soldered components, such as the mainboard, and different ports. There will also be a battery in each unit to provide power, otherwise it won't run. Finally, the performace of the product will be tested. Performance such as its movement speed, turning speed will be measure in standard, applicable units (such as m/s and deg/s). In order to make sure every component is safe, I will use multimeter to test each connection for it's safety and labeled the battery such that it won't be plugged in reversed (so it don't explode).

Questions and Answers

1. What was the major objective of your project and what was your plan to achieve it? 

The major objective of the project is to create a robot that is capable of mimicking animals with legs. This kind of robot in the future may have wider range of application in different terrains as it could be more versatile. 

       a. Was that goal the result of any specific situation, experience, or problem you encountered? 

It’s not quite a problem that I really considered a problem, but rather a question: can we potentially climb on walls and have a easier way to explore difficult terrain. I thought about already existing technology, but really all of them seem to have more problem exploring difficult terrain when compared to us (because they are mostly wheels, that are really only good on flat road).

       b. Were you trying to solve a problem, answer a question, or test a hypothesis?

I’m mainly trying to achieve a goal of making something work, which is similar to solving a problem and testing a hypothesis. 



2. What were the major tasks you had to perform in order to complete your project?

Here is the list of major tasks that I had to perform:

  1. Single unit design
    1. Because of the nature of the project (like having multiple units), I have to design a unit that is capable of connecting with each other (in many ways), move independently and be able to accomplish tasks together.
  2. Unit connections
    1. I have to come up with a way of connecting different units together through a way that’s very strong but also don’t consume a lor of power. My two options are: to create a mechanical joint, or to use some electromagnets. Despite electromagnets will be easier to implement, it generates way too much heat and consumes a lot of power. Therefore, I have to come up with a special mechanical joint that would do the job.
  3. Software programming
    1. There are multiple things that this program has to do, such as wireless communication and motor control. The units have to be able to move collectively through a central control board, then the central control board have to be able to send data to each of them, as well as receive data from my computer to control it.
  4. Testing
    1. Theory is one thing, application and experimentation are a different things. I have to be able to test my robot on whether if it can run properly and what it can actually achieve.





3. What is new or novel about your project?

A new thing that my project includes is the way it connects and moves. Before, many other robots like mine used magnets and most commonly wheels. However, my robot attempts to mimic animals with movable joints. 

       a. Is there some aspect of your project's objective, or how you achieved it that you haven't done before?

Some of the things that I haven’t done before is the control of multiple units. Before, I was only concerned about controlling only one unit at a time. However, in this project, it specifically requires the control of multiple units, which I have to come up with ways to do.

       b. Is your project's objective, or the way you implemented it, different from anything you have seen?

One different implementation that I haven’t really seen before is the way on how I manage my connections between each unit. It’s pretty simplistic, tight, and effective (it hasn’t broke or shown really any cracks yet). Another difference are the joints within each unit, it’s much similar to the results of natural selection (like animals and us). It could be very effective for exploring many terrains that wheels will have a hard time on.

       c. If you believe your work to be unique in some way, what research have you done to confirm that it is?

I have read many popular papers on robots of similar kinds, most of them talk about a similar concept of robot that can combine, but none of them really tried to do what I’m trying to accomplish.



4. What was the most challenging part of completing your project?

The most challenging part of completing my project is definitely the programming, it require knowledge about a lot of Arduino stuff, and how to make different code execute simultaneously.

      a. What problems did you encounter, and how did you overcome them?

- when creating a working program, I met a problem where different programs won’t run together at the same time, causing massive delays. Therefore, I went through a lot of online resources to understand how to over come it, and finally landed on FreeRTOS.

- Another problem is the joint design. When I first designed it, I only realized how it needed be close to each other, but didn’t consider about the orientation locking mechanism. After I realized this problem, I quickly came up with the idea of using existing screws for the orientation lock, which is actually very effective.

      b. What did you learn from overcoming these problems?

I learned more about research and software programming (with its core concepts). I believe that the most important skill throughout this process is how to find additional resources online as well as communication with others to find solutions to my existing problems.



5. If you were going to do this project again, are there any things you would you do differently the next time?

If I were to do this project again, I would design the joint slightly different. I would choose a smaller joint that could do the same purpose. I believe that my current joint despite doing the job, is not the most effective. I can change the design of the joint that it can turn 360 degrees instead of being blocked by another unit. 



6. Did working on this project give you any ideas for other projects? 

It gave me some more ideas on the programming side of the project. One of such ideas is to create a system that would allow each unit to compute what they are supposed to do by themselves, instead of relying on a central control board to tell them what they are supposed to do. Another prominent idea more on the side of engineering is to design a joint that can move in more than one dimension. Since my current unit is really limited by the degrees of freedom with my joints, and it would really benefit from a sturdy joint that can move in multiple directions.



7. How did COVID-19 affect the completion of your project?

It didn’t affect the completion of my project at all. :)