Ball Balancing Wheel Puts A Spin On Inverted Pendulums

If you march sufficiently deep into the wilderness of control theory, you’ll no doubt encounter the inverted pendulum problem. These balancing acts have emerged with a number of variants over the years, but just because it’s been done before doesn’t mean there’s no space for something new. Here, [David Gonzalez], has taken this classic problem and given it an original own spin–literally–where the balancing act is now a ball balanced precariously upon a spinning wheel. (Video, embedded below.) Mix in a little computer vision for sensing, a dash of brushless motor control, a bit of math, and you have yourself a closed-loop system that’s bound to turn a few heads.

[David’s] implementation is a healthy mix of classic control theory with some modern electronics. From the theory bucket, there’s a state-space controller to drive both the angle and angular velocity of the ball to zero. The “state” is a combination of four terms: the ball angle, the ball’s angular velocity, the wheel angle, and the wheel’s angular velocity. [David] weights each of these terms and sums them together to create an input value to adjust the motor velocity driving the wheel and balance the ball.

From the electronics bin, [David] opted for an ESP32 running Arduino, the custom Janus Brushless Motor Controller running SimpleFOC, and a Maix Bit Microcontroller with an added camera running MicroPython to compute the ball angle. Finally, if you’re curious to dig into the source code, [David] has kindly posted the firmware on Github.

We love seeing folks mix a bit of control theory into an amalgamation of familiar electronics. And as both precision sensors and motor controllers continue to improve, we’re excited to see how the landscape of projects changes yet again. Hungry for more folks closing the loop on unstable systems? Look no further than [UFactory’s] ball balancing robot and [Gear Down for What’s] two wheeled speedster.

Continue reading “Ball Balancing Wheel Puts A Spin On Inverted Pendulums”

Get Yourself A Pupper (For Education)

While the disquieting appearance of some of the robots coming out of DARPA and other labs might give us some reservations about how much intelligence we want to give to those robots, there’s a lot to be learned from them before their inevitable global takeover. This small quadruped called the Mini Pupper is just the robot for that job. With a low cost and familiar platform, it’s the ideal robot to learn some of the tricks of the trade.

For a quadruped so small, some unique changes had to be made to ensure the robot’s functionality. There have been a few developments since it was first shown over a year ago. The first was to design a custom servo that could handle the unique characteristics of this robot. From there, some other improvements were made to the robot chassis such as using threaded rods for ease of assembly and maintenance. Some other things have stayed the same though like using a Raspberry Pi to handle the control systems and self-navigation.

Of course everything needed to make this robot yourself is open source, from the code to the schematics. For experimenting with quadrupeds and even with automatic navigation, this would be a great way to get started, and the small size will also limit its ability for a Skynet-style takeover as well. That’s a nice bonus.

Continue reading “Get Yourself A Pupper (For Education)”

Did You Meet Pepper?

Earlier this week it was widely reported that Softbank’s friendly-faced almost-humanoid Pepper robot was not long for this world, as the Japanese company’s subsidiary in France that had been responsible for the robotic darling of the last decade was being downsized, and that production had paused. Had it gone the way of Sony’s Aibo robotic puppy or Honda’s crouching-astronaut ASIMO? It seems not, because the company soon rolled back a little and was at pains to communicate that reports of Pepper’s untimely death had been greatly exaggerated. It wasn’t so long ago that Pepper was the face of future home robotics, so has the golden future become a little tarnished? Perhaps it’s time to revisit our plastic friend.

A Product Still Looking For A Function

A Pepper earning an honest crust as a tourist guide at the Heijo Palace museum. Tokumeigakarinoaoshima, CC BY-SA 4.0.
A Pepper earning an honest crust as a tourist guide at the Heijo Palace museum. Tokumeigakarinoaoshima, CC BY-SA 4.0.

Pepper made its debut back in 2014, a diminutive and child-like robot with basic speech recognition and conversation skills, the ability to recognize some facial expressions, and a voice to match those big manga-style eyes. It was a robot built for personal interaction rather than work, as those soft tactile hands are better suited to a handshake than holding a tool. It found its way into Softbank stores as well as a variety of other retail environments, it was also used in experiments to assess whether it could work as a companion robot in medical settings, and it even made an appearance as a cheerleading squad. It didn’t matter that it was found to be riddled with insecurities, it very soon became a favourite with media tech pundits, but it remained at heart a product that was seeking a purpose rather than one ready-made to fit a particular function.

I first encountered a Pepper in 2016, at the UK’s National Museum of Computing. It was simply an exhibit under the watchful eye of a museum volunteer rather than being used to perform a job, and it shared an extremely busy gallery with an exhibit of Acorn classroom computers from the 1980s and early ’90s. It was an odd mix of the unexpected and the frustrating, as it definitely saw me and let me shake its hand but stubbornly refused to engage in conversation. Perhaps it was taking its performance as a human child seriously and being shy, but the overwhelming impression was of something that wasn’t ready for anything more than experimental interaction except via its touch screen. As a striking contrast in 2016 the UK saw the first release of the Amazon Echo, a disembodied voice assistant that might not have had a cute face but which could immediately have meaningful interactions with its owner.

How Can A Humanoid Robot Compete With A Disembodied Voice?

In comparing the Pepper with an Amazon Echo it’s possible that we’ve arrived at the root of the problem. Something that looks cool is all very well, but without immediate functionality, it will never capture the hearts of customers. Alexa brought with it the immense power of Amazon’s cloud computing infrastructure, while Pepper had to make do with whatever it had on board. It didn’t matter to potential customers that a cloud-connected microphone presents a huge privacy issue, for them a much cheaper device the size of a hockey puck would always win the day if it could unfailingly tell them the evening’s TV schedule or remind them about Aunty’s birthday.

Over the next decade we will see the arrival of affordable and compact processing power that can do more of the work for which Amazon currently use the cloud. Maybe Pepper will never fully receive that particular upgrade, but it’s certain that if Softbank don’t do it then somebody else will. Meanwhile there’s a reminder from another French company that being first and being cute in the home assistant market is hardly a guarantee of success, who remembers the Nabaztag?

Header: Tokumeigakarinoaoshima, CC0.

SimpleFOC Demystifies Precision BLDC Motor Control

Brushless DC (BLDC) motors are standard fare in low-precision, speedy RC applications. The control schemes needed to run them slowly or precisely go deep into motor theory and might put these motors out of reach for your next homebrew robot project. [Antun Skuric] and crew aim to change just that. They’ve taken the field-oriented control algorithm and encapsulated it into a compact Arduino library, added a host of examples, and minted a stackable BLDC motor control shield to boot. The sum of their efforts is captured into the SimpleFOC Project in the aim of bringing precision BLDC control to a wide community of new hackers.

Field-Oriented Control is a BLDC motor control scheme that involves using a microprocessor to control the stator winding current in such a way that it always applies torque to the rotor. Doing so requires that your processor measure both motor current (think: shunt resistor) and rotor position (think: encoder). Implementing the algorithm, though, can get a bit tricky since it touches bits of linear algebra, motor physics, and control theory. But that’s the magic behind SimpleFOC. With the library at your fingertips, you don’t have to! And with that, the hardest part of brushless motor control has been made simpler with a solution that’s almost plug-in-and-play.

SimpleFOC has been implemented to extend to a variety of possible implementations. While you can certainly design your own control board, you can also start with the SimpleFOC motor shield for a single motor pulling up to 5 A of current. From there, you’ve got a pretty wide range of micros to choose from as the library has been extended to work on the Arduino, Teensy, STM32, and a few other microcontroller families. For implementation details, theory, and setup, there’s a healthy set of documentation to reference. And if you’re looking to share your project or ask questions, you can pop into the community forum for some high-fives and tips. Best of all, the source code has been offered for your enjoyment under a generous MIT License.

While the project kicked off last year, it’s undergoing continuous improvements including added support for current sensing and torque control in addition to position control. With a healthy community emerging around the project, we’ll keep our eyes peeled for more projects that build off of this fantastic reference design.

If BLDC motor control has your interest piqued, have a look through our archive for other BLDC motor control projects, including motor/controller hybrids, anti-cogging control schemes, and other low-speed position controllers. And if you’re up for a real challenge, why not 3D print the motor too?

Continue reading “SimpleFOC Demystifies Precision BLDC Motor Control”

Litter Buggies Haul Trash Off The Beach

There is a depressing amount of trash in our oceans, and a lot of it is washes up on beaches. [Glenn Morris] has turned collecting all this trash into a favourite pastime, using a series of custom radio-controlled Litter Buggies to haul the load.

The most basic versions of these buggies are off the shelf RC rock crawlers, usually a Traxxas TRX-4, with a basket mounted in place of the body. However, [Glenn] has developed the buggies far beyond that, making extensive use of 3D printing to create purpose-built trash haulers. He has created several frame systems to hold removable baskets, buckets, lights and tools. Most of the buggies use lithium power tool batteries to allow quick swapping, and the electric motors, ESCs and gearing is selected for low speed and high torque. Since the buggies spend a lot of time exposed to salt water, almost all the steel hardware on the chassis are replaced with stainless steel. To allow for one handed control, [Glenn] attached 3D printed levers to the steering knobs of the standard RC controllers, allowing steering to be done with his thumb.

We really like what [Glenn] has been doing with these buggies, and think they might be a good platforms for adding some autonomous capabilities. Add a smartphone for target following or obstacle avoidance, or some solar panels and a GPS autopilot system.

Continue reading “Litter Buggies Haul Trash Off The Beach”

A Robot To Top Up Your Tesla

The convenience of just plugging in your car in the evening and not going into a gas station is great as long as you remember to do the plugging. You really don’t want to get caught with an empty battery while you’re in a rush. [Pat Larson]’s Tesla plugging robot might be a handy insurance policy if you count forgetfulness among your weaknesses.

The robot consists of a standard Tesla charging plug attached to a 2-axis robotic arm mounted on [Pat]’s garage wall. Everything is controlled by a Python script running on Raspberry Pi 4. After taking a picture with a camera module, it uses a Tensor Flow Lite machine learning model to determine the position of a reflector on the charging port cover. The platform moves back and forth to align with the charging port, after which it opens the charging port using the Tesla API. It then extends the arm towards the charging port, using ultrasonic proximity sensors for distance control, and again uses the camera module and Tensor Flow to look for the illuminated Tesla logo adjacent to the charging port. The charge plug is flipped out using a large servo, and after some final position adjustment, it takes the plunge. While robot won’t be winning any interior design contests, it does the job well, and adds a bit of convenience and peace of mind.

Other Tesla hacks we’ve seen include building a working Model S for $6500, turning an old Honda into a speed demon using Tesla parts, and a Casio F-91W that can unlock your Tesla.

Robotic Ball-Bouncing Platform Learns New Tricks

[T-Kuhn]’s Octo-Bouncer platform has learned some new tricks since we saw it last. If you haven’t seen it before, this device uses computer vision from a camera mounted underneath its thick, clear acrylic platform to track a ball in 3D space, and make the necessary (and minute) adjustments needed to control the ball’s movements with a robotic platform in real time.

We loved the Octo-Bouncer’s mesmerizing action when we saw it last, and it’s only gotten better. Not only is there a whole new custom ball detection algorithm that [T-Kuhn] explains in detail, there are also now visualizations of both the ball’s position as well as the plate movements. There’s still one small mystery, however. Every now and again, [T-Kuhn] says that the ball will bounce in an unexpected direction. It doesn’t seem to be a bug related to the platform itself, but [T-Kuhn] has a suspicion. Since contact between the ball and platform is where all the control comes from, and the ball and platform touch only very little during a bounce, it’s possible that bits of dust (or perhaps even tiny imperfections on the ball’s surface itself) might be to blame. Regardless, it doesn’t detract from the device’s mesmerizing performance.

Design files and source code are available on the project’s GitHub repository for those who’d like a closer look. It’s pretty trippy watching the demonstration video because there is so much going on at once; you can check it out just below the page break.

Continue reading “Robotic Ball-Bouncing Platform Learns New Tricks”