Using Simscape Multibody to Throw an Object at a Target
Today’s guest post is by Veer Alakshendra. Veer will be sharing a Simscape – Simulink modeling and controls workflow for pneumatic actuators throwing a ball at a target.
For last few years, I have been following RoboCon very closely. Fortunately, this year I got a chance to watch the live action at National Robotic Contest RoboCon 2018. Like every year, this year also the theme had an object and a target. Students came up with new innovative designs to complete the task, and most of the teams used pneumatic actuators for throwing the ball at the target. However, it’s a challenge to select appropriate pneumatic components and design the throwing mechanism. Also, it’s impossible to directly control the trajectory of the object because once it’s in the air there are no actuators to direct object’s projectile motion to the target. Hence, motivated by the students and to answer few underlying questions we thought to build a simulation environment which would help the students to complete the task.
Find all models described here on MATLAB Central File Exchange “Modeling Pneumatic Robot Actuators“. Additionally we have created instructional videos that are linked at the end of the post.
Throwing Mechanism Implemented Using Simscape Multibody
We came back to our workplace and just like an undergraduate RoboCon participant, we first drew a simple throwing mechanism on a piece of paper. Next, the complete design was built in Simscape Multibody which provides a multibody simulation environment for 3D mechanical systems.
Having built that, we tried some cool stuff in the simulation environment:
- Play with dimensions: We tried multiple simulations by changing the dimensions of the design. For example, increasing the density of the ball inside the box proved that the lower surface of the box is unable to withstand the load of the ball.
- Visualize our imaginations: We tried all our imaginations in the simulation environment. For example, what would happen if the sinusoidal signal is given as a motion input to the prismatic joint?
- Incorporate dynamics: The best part that Simscape Multibody lets you is to understand the dynamics of the system. One can change the internal mechanics, input motion, input torque or input force to understand the system operation. For example, what would happen if you provide zero value to the damping coefficient of the revolute joint?
- Reference input signal: With a liberty to fail multiple times, we tried numerous simulations to throw the ball in the yellow box. After failing several times, we finally found a few input signals for the motion of the piston which made the ball land in the yellow box.
Now, the next question was the possibility to directly provide the desired input signal to the piston. Of course, No! We can’t because the motion of the piston is generated by the pressure difference at two sides of the double acting actuator. Hence, it was necessary to build and simulate a model which could give information about the pressure difference.
Pneumatic Actuation Circuit Implemented using Simscape
We went back to our hand-written notes which we took during the National Robotic Contest RoboCon 2018 where we drew a basic pneumatic schematic diagram consisting of a plastic bottle, supply pipes, a directional control valve (DCV) and a double acting actuator. Without making any changes, we simply replicated the complete schematic diagram from a piece of paper to Simscape using physical blocks and the simulations gave us some interesting information:
- Spool movement: When the spool of the DCV is moved, there is a delay in the movement of the load attached to the piston. This is because it takes some time for the fluid to develop the pressure difference on both sides of the double acting actuator.
- Bottle pressure: When the piston starts moving, pressure drops in the plastic bottle.
- Size of DCV: The dimensions of a DCV are important to decide the flow direction and pressure developed in the pneumatic system. Even a small change in the valve diameter can bring a drastic change in the pipe pressure.
Implementation of PID Controller
Once the Simscape model was ready, we interfaced it with the throwing mechanism model built as seen in the figure below:
Please note that the linear interface block is available in Simscape Multibody Multiphysics Library.
However, when we ran the simulation, we realized that it’s not an easy task to find the required amount of DCV’s spool movement which can throw the ball in the target because the piston movement doesn’t change linearly with DCV’s spool movement. Here is an animation which shows that for 30% spool movement, the link is unable to throw the ball.
Hence, we used a PID controller where the goal was to track the reference piston position and find the appropriate DCV’s spool position.
Note: The reference piston position is the signal which was obtained by the throwing mechanism model.
Here is what we got from the results once we ran the simulation with the PID controller.
From the animation and the results, it was evident that the controller successfully tracks the reference trajectory so that the ball successfully lands in the yellow box.
We have a 3-part video series of Modeling Pneumatic Robot Actuators where you can find a detailed explanation of the applied approach.
- Modeling Pneumatic Robot Actuators – Part 1
- Modeling Pneumatic Robot Actuators – Part 2
- Modeling Pneumatic Robot Actuators – Part 3
You can find the example models used in this video on MATLAB Central File Exchange.
Please feel free to download the models, try to throw the ball in the target, and post your comments or questions below.
To leave a comment, please click here to sign in to your MathWorks Account or create a new one.