To demonstrate the actuation system, we developed a swing robot as shown below.
OverviewPeople swing by moving their body forwards and backwards. We swing by moving our legs at the right time. We made the robot that reproduces that motion. The robot consists of an arm unit and a body unit. The arm unit connects a fixed joint with bearing (it is referred to as free joint). The body unit connects to the arm unit with a bearing (it is referred to as powered joint). We can control the powered joint with two McKibben actuators. The robot swings by a control powered joint at the right time. The McKibben actuator and pump are in the arm unit. Electric parts are in the body unit. Almost all of the frame parts are made by machining (Download .step file). GoalThe swinging robot needs instantaneous large force when it bends the powered joint. Because of this, the actuator has to be strong enough. The goal of this demonstration is to show that the joint controlled by the actuation system is quick and elastic enough. |
Arm unit |
Body unit |
Weight Balance Simulation
To make the robot we considered the opposite ratio of body unit weight to the total weight with simulations. We use VisualC++ and ODE (Open Dynamics Engine). The program control powered joint so as to be bent 60 degrees when the robot is just below free joint, to be straight when the robot is at maximum amplitude of a swing.
We considered the time of gain in swing amplitude from 20 degrees to 60 degrees.
Below is the result of the simulation. Red graph shows acceleration.
The graph below shows the result of the simulation.
The design guidelines that weight radio should be about 40-60%.
The actual arm unit: length 285mm, weight 1.08kg
The actual body unit: length 183mm, weight 0.66kg
--> The actual ratio: 38%
Powered Joint Operation Unit
To operate the powered joint, two McKibben actuators pull a timing belt that fits the powered joint with timing pulley. We put the sensor that measures the angle of the powered joint. Detected angles are fed back to the McKibben control.
The picture below shows the simplified arm unit. A left bearing hole is connected to the free joint. The right shaft is connected to the powered joint.
Belt Tensioner
Since two McKibben actuators are connected to one pump, the sum of the volume of fluid in two Mckibben actuators is constant. This means that the sum of the length of two Mckibben actuators is not constant because Mckibben actuators do not contract linearly. To avoid timing belt from coming off the timing pulley, we made belt tensioners using springs.
Electronic Circuit
The main controller is AVR ATmega168P, which has 16KB program ROM, 512B SRAM, and 22 GPIOs. And it is operated at 8MHz. The team also used mcp3208 (AD converter) and NJU3711D (IO expander).
The main board has interfaces to acceleration, angle, hydraulic pressure sensors and the motor driver.
To acquire the status of the robot, we use LSM303D which can acquire the value of acceleration up to 16g. To drive the pump, we used the dual VNH2SP30 motor driver carrier MD03A, which can drive up to 30A. For the power supply, we used two 7.2V 1300mAh lithium polymer batteries.
Main board and motor driver |
Angle sensor and acceleration sensor |
XBee WiFi: to connect a PC wirelessly |
Battery |
Pressure sensor: MPX5700GP (up to 700kPa) |