Robomaster Summer Camp Robot
Designed for the 2018 Robomaster Summer Camp
The winter camp is a good memory for me. Therefore, I went ahead and applied for the Robomaster Summer Camp. Of course, I got in without any doubt. The Robomaster Summer Camp took place in July 2018.
The scene of our robot turning over in the winter camp frequently appeared in my mind. In order not to let the tragedy happen again, I decided that I must design a suspension system if I participate in the Robomaster Competition once again. Luckily, the Summer Camp does not conflict with my schedule and I was finally able to realize my goal.
Introducing the 2018 Robomaster Summer Camp
The task of the 2017-2018 Robomaster Summer Camp is to pick up blocks from the resource zone and use them to connect the forts of the same color on the field and build up the blocks to make additional forts. All robots are controlled in FPV mode. The role of the participants is to design an entire robot in less than two weeks’ time.
Since the task is to transport and build blocks, obviously, an arm and a claw are required. In addition to that, the robot must be able to store blocks to save the time of running to the resource zone and pick up blocks. After a little discussion, we decided that the robot should store at least 4 blocks. DJI provides three types of motors with descending output power, the huge stepper motor, the 3508 gear motor, and the 2006 gear motor.
The double-layer-plate base is really good design and it worked perfectly on the RM Winter Camp Robot and the RC Demon. Therefore, I decided to use it again this time. The drive design is the same as the RC Winter Camp Robot, the wheels are Mecanum and each wheel is powered by one DJI Official 3508 gear motor. The width of the base should be around 500mm to reach a combination of stability and trafficability in the field full of blocks and forts.
As I discussed in the prologue, I determined to design a suspension system for the base. The MacPherson suspension worked just fine for my RC Demon. However, the Mecanum wheel is designed to work when the wheel axis is horizontal to the ground. As a result, I decided to use the alternative design, the double-wishbone suspension, which will keep the wheel axis parallel to the ground.
All robots are controlled in FPV mode and the drivers are not allowed to see the field. Therefore, the robot should have a broad view if the driver wants to know the information about the game field and where he should go. As a result, I decided to put the camera at a very high position and make it have one rotational degree of freedom in the y-axis by using a servo so that the driver can even see more.
The claw is designed to catch the long side of the block. To make my design as simple as possible, I have chosen the rotary arm claw instead of a parallelogram one. The claw is designed to be powered by one DJI Official 2006 gear motor with external gears to increase the output torque. The claw arm must be as short as possible to maximize the catching force and the must be something that increases the coefficient of friction to catch the block securely.
Since the robot has to catch the block and put it somewhere in the robot, it is best to have a rocker arm like the one designed for the VEX robot. The rocker arm is either a parallelogram arm or a chain arm to keep the block horizontal. The rocker arm is to be powered by two DJI Official 2006 gear motors with external gears. The rocker arm must have a power assisting structure,
The first idea of storing the block is stacking it one by one on the robot. However, since some force is needed to disconnect the blocks stacked together, it is better to hold the bottom block and retrieve the top one. The idea that I had is using a two-claw, one arm, and one lift design. The lift has a translational degree of freedom in the vertical direction. The rocker arm and the bottom claw are installed on the lift. The top claw is installed on the rocker arm. The bottom claw on the lift holds the bottom block and the top claw on the rocker arm catches and retrieves the top block.
Difficult to retrieve once stacked
Nevertheless, after a test, I found that friction between two stacked blocks is very big and it is hard to disconnect them. As a result, I decided to separate the blocks somehow when storing them in the robot.
Separation using plates
The idea came up to my mind is using plates. The plates can separate the blocks so that they do not need to stack on each other. Nevertheless, how do we design the storage mechanism with the plate so that it can work together with the rocker arm to store blocks?
Drive the plates with chain
At last, I came up with the idea of using a chain. The plates are connected to a chain. At first, all plates are moved back. When we need to store a block, one plate is moved to the front with the chain and the rocker arm puts the block on it. To store the second block, move another plate to the front and do the same thing. To remove a block from the robot, raise the plate with the block to the top and move the rocker arm toward it and catch it, which is basically the reserved operation.
Overall, the robot should have one base with a double-wishbone suspension system, a camera at a high position, one claw with a simple rotary claw arm, one rocker arm, and one chain-plate storage shelf.
Design and build
There must be something to support the rocker arm, the shelf and the shock absorbers of the suspension system. Then I wondered, what about I design single support for everything. By doing so, the support structure which is rather the car body can take all the load so there is no need to make the base a separate component. Therefore, I decided to use a monocoque structure instead of building the base and the rest separately. This would not only improve the structural strength but also reduce weight.
Lock-up MacPherson suspension
As design work proceeded, I realized one problem of the double-wishbone suspension that the wheel-axis is no longer horizontal when turning because of the moment created by lateral acceleration. Since the main use of the suspension system is to absorb shock and there is no need for it to be working all the time, I decided to lock the suspension in place during zero or low shock situation. As a result, the MacPherson suspension would be no different during normal driving so I decided to change the type of suspension back to reduce complexity.
Adding support to the cantilever beam
I chose the parallelogram mechanism for the arm because of its higher rigidity. The position of the arms was adjusted so that it would never reach its dead point. In the first design, only one end of the rocker arm shaft is connected to the support structure with a hinge. However, such a cantilever beam deflects a lot and may cause gear failure. Therefore, I designed the other end of the shaft to be simply connected so that the deflection is a lot smaller to prevent gear failure.
The chain is heavy, so I used a powerful DJI Official 3508 motor to power it with no external gear ratio. At first, we used acrylic to make the plates. However, it turned out that they can break easily. As a result, we replaced them with carbon fiber plates to improve strength. I stuck some strips on the plates to increase the friction so that the block on the top is less likely to slide out. I also designed a shielding structure that prevents the inner blocks from moving and sliding out when stored.
The claw and another way to use the rubber bands
The claw is designed to fit the long side of the block exactly. The upper arm of the claw is designed by Kaibo Wang. The claw is powered by one DJI Official 2006 gear motor with an external gear ratio of 5:1 (12T to 60T). To increase the friction, I have tested different materials and found the rubber band that I used to construct the power assisting structure the best option.
Finishing the prototype
After in total 5 days of working, the prototype was completed.
The practice match
We were the first team to finish the robot and the only team whose members all went to sleep the night before the practice match. We were the second-place in the practice match, even under the situation that we missed one of the four games due to a little mechanical problem.
After the practice match, I went ahead to solve the problems identified.
The unreliable chain
The practice match saw the friction of the storage shelf too large for the PID control to handle. In addition, as you can see in the video, the plate will tilt when a block is put on it. At first, the way to balance the moment produced by the block is by tightening the chain and pressing the end of the plates against the support beam, however, this creates big friction while not really able to balance that moment.
The solution using the rail slot
To solve this problem, I added a rail slot on the supporting beam for the chain, extended the end of the plate and put two bearings, which goes in the rail, on it. As a result, the end of the plate does not need to grind on the support beam to balance the moment because the much more rigid rail that contains bearings does it. The rail slot on the upper half-circle was slightly adjusted to fit the path of the bearings. In addition, I changed the external gear ratio to be 7:3 (30T to 70T) to reduce the load on the motor and improves the torque.
The parallelogram claw
In order to deal with blocks that lie in all directions, I designed a new claw that fits both the short and long sides of the block. The little hat is for pressing the blocks so that it is easier and safer to build blocks. Nevertheless, the arms were of lower rigidity and are not very effective against blocks so at last, I had to change the claw back to the first one.
The Robomaster Summer Camp robot
The robot uses a monocoque structure which saves material and reduces weight. Each of the Mecanum wheels is powered by one DJI Official 3508 gear motor. The lock-on MacPherson suspension system ensures the right function of the Mecanum wheel while absorbs the shock which largely stabilizes our robot. In fact, our robot is the only one with the suspension system and has the best performance on the base.
The parallelogram rocker arm is powered by two DJI Official 2006 gear motor with an external gear ratio of 7:1 (12T and 84T). Benefited from the low weight and the power assisting structure, the motor only needs to deliver a 20% power for the arm to function very.
The claw uses simple rotary arms and is powered by one DJI Official 2006 gear motor with an external gear ratio of 5:1 (12T to 60T). Benefited from the high torque as a result of external transmission, the high force as a result of lower arm length and a high coefficient of friction as a result of bonding the rubber band, the claw is able to catch the block very securely.
The storage shelf
The block storage shelf, powered by one DJI Official 3508 motor with an external gear ratio of 7:3 (30T to 70T) is a combination of plates, chain, and rail. It can store up to 5 blocks which largely improves the efficiency of our robot by reducing the total time used to go to the resource zone.
View from the back
View from the top
The Power Assisting Structure
This time, just like with the VEX robot, I have designed a power assisting structure that stabilizes the arm at any height. Interestingly, I was the only person who came up with this idea in the camp, but then most of the teams followed me and used up the rubber bands we have bought.
The low complexity, high block capacity, independent lock-up suspension system, high efficiency and stability of our robot made it performed outstandingly. Our robot was the most efficient one and held the scoring record for a single game. Overall, we won the second place with a prize of drone – DJI spark. The robot was so successful that the DJI company puts it on the first page of their Robomaster Camp website.
Overall, the robot is good. However, the design of the storage shelf is really a failure. If I have thought about using a rail slot earlier, I do not need to use the heavy chain at all and I can just drive the plates with a string. This would save a lot of work and reduce the mass by at least 4kg. The idea of using a mechanism as support is wrong in its first place. I should never make the same stupid mistake the next time.