Esmée Kramer Portfolio
This article will provide a brief look into my mechanical dinosaur project. It’s meant for those of you interested in building similar projects, or if you simply want to know how it functions. I can’t cover all design choices, so this is not a step by step tutorial. But if you have any specific questions feel free to contact me.
Most of this information is also covered in my in depth video on my project page.
Okay, so let’s start with the body frame. After choosing PVC as my main material (as explained in the ‘getting started’ article) I started building a frame around me. I bend pipes to fit over my shoulders to create some sort of ‘harness’ and attached it to a horizontal rectangle around me. The red dots in the picture below are rotatable points. These make the body function as a seesaw in which I am the fulcrum. By pulling/pushing the neck the body leans forward or backward, but for this to work both sides (head and tail) need to be around the same weight. This mechanism gives me more flexibility without straining my back.
Because of the diagonal pipes between the harness and the rectangle, a lot of weight is essentially on my hips. I used some foam (light grey parts in the sketch) to minimize any bruises and most of the time still wear a back brace under my clothes if I walk around with it for a more than a few hours, especially if I don’t have a thick layer of clothes underneath.
At the start of my build I used two diagonal pipes at the front of my harness and two at the back. For those of you wondering why there is a part of 3/4 inch pipe (red/brown) over the 5/8 inch pipe (orange) at the front and back of the harness, it was actually meant to keep the two outer diagonal pipes in place, but I didn’t account for the two added pipes later on to better support the weight. The belt (black) helps to keep the harness in place.
The green arrows in the sideview sketch below indicate the tension of the horizontal rectangle. At the back it’s more balanced because of the tail, but at the front the neck is attached higher, thus there’s no force pushing the front pipe backwards and the attachment of the neck forwards. Therefor I used some extra pipes at the front for support.
Lastly, in the top view of the body frame you can see two horizontal pipes within the rectangular frame. These two pipes are released and used as support beams whenever I put the costume on the ground. They support the back of the body frame when the front is placed down, so the harness doesn’t get crushed.
Head and Neck
After setting up the main body frame, the next key point to define was how to attach the neck. It needed it to be stuck in place, yet movable from left to right, and up and down. The solution I came up with was using a conduit box with a hole, sticking the pipes (I used three, bound together with duct tape because duct tape is awesome) through it and keeping them in place using a piece of rope. The rope allows enough flexibility for the required movements, including a slight rotation of the neck, thus resulting in the head shakes and tilts.
But the side of the head would be much heavier than the side of the steer and considering the differences in length on both sides of the fulcrum of the neck it would be quite heavy to continuously push the steer down. Therefor I decided to use some elastics (green in the sketches), so the neck and head are standardly kept upwards and only move down when I deliberately move the handle upwards.
One of the more challenging parts came when I had to figure out how to move and control the head in all directions. I wanted it to move up and down, left and right and to rotate. Luckily I already had the rotation part down with the attachment of the neck, so I chose to go with two joints, one for horizontal positioning and one for vertical positioning. On the side of the steer I used the same two joints, although mirrored horizontally. I used ropes (blue in the sketches) to synchronize the positioning of the steer with that of the head. So this gave me a steer I could move in its entirety (left, right, up, down and rotate along the axis of the neck) to position the neck. And by rotating the steer along its own axes I could position the head.
But now I still had to figure out a way to control the mouth. I didn’t want any of the positioning to affect the mouth, so simply using a rope would be extremely difficult, since it would have to compensate for (or move through) all previous rotations. Then I found some old bike brake cable, and that provided the solution I needed. Attaching both ends of the casing of a brake cable, allows flexibility in the middle.
Legs and Paws
The next part, the legs. (Well honestly, I may have worked on the body, legs, head and tail without clear order, but I’m just trying to get a structure in this text)
The legs of a raptor seemingly bend in the opposite direction. Where my knee would bend forwards, their heel would bend back. Wearing the costume backwards didn’t seem like the best solution, and I feared using stilts for my legs would make walking and balancing myself rather difficult, so I chose not to hide my legs and keep them detached from the raptors legs.
I used pipes with joints for the structure and made the paws attachable to my shoes. However, when moving my foot up only the heel would properly move with my legs. I fixed that with some elastics, connecting the heels of the raptor to the body.
I also had a problem with the toes defying gravity (or in other words getting stuck in an upwards position), which was also fixed with an elastic rope as shown in the images below. Duct tape is still the number one problem solver, but elastics are getting close…
The raptor also contains two small arms, they each consist of one pipe attached to the front conduit box of the body rectangle. Although I didn’t have any free hands to really control the arms, I still attached a rope to them, so I could reel the arms in when I place the costume on the ground.
The tail had to be easily detachable, otherwise I had no way of transporting the costume. So I opted for some clickable joints and screws. (Screws were needed because sometimes the weight of the tail would cause the joints to detach itself)
I also wanted to be able to swing it. My hands were full with the steer, but a slight swing of my body would also work for that. So, I gave the tail two inflection points. At first, I used some of that flexible ribbed PVC for those points, but that easily tore after a couple of swings. After that I used a bit of garden hose instead (filled orange in the sketch below). The tail contains a fiberglass stick (pink in the sketch) that I found somewhere in our garage within the top pipe, so the tail returns to a straight position. (Till this day no-one complained about missing that stick so I think I’m good)
The PVC pipes provide a sturdy structure and the mechanics, but for the visual aspect I used foam. I was never planning on fully covering the costume due to the following reasons:
- Weight: Adding a full layer around the costume would make it quite heavy.
- Vision: I wanted freedom to play around with my environment and interact with people around me. Having limited vision would make this harder. Even with a camera installation you’ll still have less freedom.
- Form: The raptor didn’t have the proper ‘round’ forms everywhere, covering it with a thin layer would give weird blocky/angular forms.
- Movement limitations: A full cover that doesn’t limit the mechanics could get quite complicated.
- And honestly, I kind-of like that you could still see the mechanics and rough build underneath. It gives the project more character and shows the complexity.
So I used foam to highlight the key features of the raptor, but kept the costume open on the parts where I didn’t deem the foam necessary. I tried stuff out with cardboard first. The foam is mainly attached with screws.
The last addition to the costume was the speaker. The use of my raptor in outside environments meant it needed to be quite loud. I still had a JBL speaker, so I figured I could use that, with either a phone or a Raspberry Pi. I went with a Raspberry Pi because I wanted to control the sounds blindly, thus using buttons I could feel instead of a touchscreen. The speaker itself had quite a long battery runtime, however, I would need something wireless for my Raspberry Pi. I ended up with a Pijuice hat and a 12 ampere lithium battery. Which works quite well (although I must remind myself to disconnect the battery when it’s not in use, to prevent another deep discharge…)
I used three stacks of 4 or 5 sounds, one for growls, one for roars, and one for some other purrs or sounds that didn’t fit the first two categories. Each button plays a random sound of the corresponding stack. You can read out the buttons in two different ways, either by connecting one side to ground and the other to an output pin, or connecting one side to a voltage pin and the other to an input pin. I went with the second, but for no particular reason.
I tried out several libraries, including some for Bluetooth, but the ‘mpg123’ library was simple enough to get it properly working. A wired connection wasn’t really an issue. The “amixer sset PCM 100%” command is used to set the volume of the Raspberry Pi to max at the start of the python file. The python program I wrote is nothing impressive, but u’know, if it works it works.
I wouldn’t be starting or operating the RPI with a screen, so the python file needed to run automatically. Therefor I put a line in the /etc/rc.local file, which immediately runs when starting up the Raspberry Pi:
sudo -H -u pi python /home/pi/Documents/Raptor_roar.py &
Don’t forget the ‘&’ at the end of the line if you want your RPI to continue booting while the python program is running. (And for the forgetful noobs like me out there, make a back-up of your RPI image before you start messing with the start-up files…)
The entire process was a constant back and forth between getting a clear picture of where I was with the project and what I needed to solve, brainstorming about possible solutions and implementing said solutions. I generally like to sketch and write ideas down, both to get a clear picture and to brainstorm about the next actions to take. This approach together with the determination to rethink things again and again is in the end what made the project successful. If one implementation fails, learn from it to generate better ideas.