These Are the Droids You’re Looking For
James Bruton's self-balancing, bipedal robot was designed to mimic the Star Wars BD-1 droids seen at Disney's Galaxy's Edge attraction.
Star Wars fans, captivated by the iconic droids portrayed in the beloved film franchise, are sometimes struck with an intense desire to have their very own astromech or protocol droid. The allure of these mechanical companions stems from the unique personalities and helpful functionalities displayed by droids like R2-D2 and C-3PO. The immersive experience provided by attractions such as Galaxy's Edge at Disney parks, where meticulous reproductions of these droids come to life, only deepens the yearning among enthusiasts to make these mechanical companions a reality in their own lives.
The allure of owning a Star Wars droid goes beyond mere fandom; it is a desire to bring a touch of the galaxy far, far away into everyday life. Engineer and YouTuber James Bruton has had his eye on the BD-1 droids that roam around Galaxy’s Edge to entertain park guests for a while, and decided to try to recreate a custom version of one of these robots for his own enjoyment. These BD-1 droids are quite capable, having been shown to be capable of walking on uneven, rough terrain, and also of maintaining their balance even if they are pushed. And to make them popular with us humans, they have been given a personality, possibly powered by some form of artificial intelligence.
While Bruton is an experienced engineer, he does not have the resources of Disney at his disposal, so he settled on building a somewhat simplified version of the BD-1 droid. This meant leaving out the emotive aspects of the droid, and also ignoring the hip joints and simplifying the leg design. For this initial version, at least, the goal was to simply create a bipedal robot with a similar look that can walk and maintain its balance.
The structural components of the droid were all custom-designed and 3D printed. A set of four DYNAMIXEL servos (XM540-W270-T) were installed inside custom housings, each fitted with a bearing for attachment to the legs. The servos were driven by a DYNAMIXEL interface shield, which was wired to a Teensy 4.1 microcontroller via a serial connection. The Teensy 4.1 served as the primary processing unit. A SparkFun inertial measurement unit (IMU) breakout board was also included to give the droid a sense of balance. These components were all hidden within the robot’s body, and were powered by a 3S LiPo battery.
Before the droid could take its first step, Bruton needed to code up an inverse kinematics algorithm. This process determines the angles that the leg joints should be at (and accordingly, the rotation of the servos) to move the legs to a specific position. This was paired with an interpolation step (with the help of the Ramp Arduino library) which serves to slow down the transition from one leg position to the next. If the servos simply shifted from one position to the next at top speed, the robot would be likely to flip itself over.
With the hardware and software in place, Bruton installed a radio receiver in the droid that was paired with a remote control that was left over from a previous project. While the legs moved as expected, the robot had no sense of balance, and without a bit of help, it would fall over after a few steps. To overcome this problem, roll measurements from the IMU were fed into an algorithm that slowed down the step rate as the roll angle grew larger.
That was enough to get the robot’s balance under control, but it just looked unnatural. To correct that issue, the step cycle itself was shortened as the gap in time between steps increased. Finally, the droid could walk, maintain stability, and not look like it was malfunctioning in the process.
The operation of the droid is pretty rudimentary at this time. When turned on, it continuously takes small, shuffling steps. While it is a very impressive build, it falls far short of the BD-1 droids of Galaxy’s Edge. Bruton does promise to upgrade the robot in future videos, however, so be sure to check back for updates.