Badminton ACE Shuttle Launcher

A badminton shuttlecock launching robot.

Similar projects worth following
Badminton Ace is a project to create a relatively low cost multi-axis robot capable of launching badminton shuttles in user defined patterns for teaching and training. This project seeks to engage children and adults in the exciting sport of badminton to improve physical health while providing an engaging mechatronics system that demonstrates the power of STEM.

Users or trainers can connect to the launcher using wifi then select and adjust shot placement and pattern to learn or practice new badminton return techniques. This will be done directly in the browser using an interactive 3D court with controls for rotation and trajectory.

The robot can also be used as a powerful STEM educational tool throughout the build process if desired. With multiple sensors, 2 brushless and 4 servo motors, 3D printing, laser cutting, urethane molding, programing, inverse kinematics, and more, this project covers a wide range of topics for those looking to learn how it all works.

Now with CAD & CODE:

First few test feeds from the brand new hardware & software. Software is only roughed in enough to do some feeding so I could make a video but I like where things are headed. A long way to go to get the hardware and software completed and to place shots accurately & repeatable. See project log for more details.

Project Purpose & Social Impact

While this project started as a personal project to improve my own badminton skills it quickly became clear that it was much more. The excitement from children and adults alike testing early prototypes has been incredible. This project seeks to share that excitement with the world and to provide an engaging tool for physical activity, badminton skill building, and STEM education. As a complete mechatronics system it has something for everyone.

Teaching Badminton

One of the best ways for students to learn new skills is through shot repetition carried out using feeding exercises where the shuttle is 'fed' to the student in a specific pattern for them to return. While most coaches are excellent feeders, in larger classes students must often feed each other but they may not be able to do so consistently. This can impede their ability to learn the new skill. Lack of good feeding is particularly relevant for kids' classes where student feeding is not possible. An automated feeder solves these issues.

Learning Badminton

Learning badminton can be incredibly rewarding but it's not always possible to find a training facility that meets your schedule and budget. Coaching can be quite expensive and intimidating with many clubs geared to highly competitive players. With the Badminton Ace you can train at your own level and on your own schedule, using your personal badminton feeder along with the amazing content on YouTube and other online sources.

Learning STEM

While the concept of a launcher seems quite simple, the end product is a fully functioning robot. With many different sensors, motors, and techniques involved in the build it's a great opportunity to explore how it all works. In time, the detailed logs will highlight many of the design choices along with urethane molding, inverse kinematics, assembly, and programming. For those that just want to stick to badminton that deep dive is optional.

Improving Fitness

According to the World Health organization, worldwide obesity has tripled since 1975 and is growing at an alarming rate in children. Since regular physical activity can help prevent obesity and improve overall health it's important to find enjoyable activities. This launcher can help the user to improve their badminton skills to further their enjoyment on court while providing good exercise. Additionally, it can encourage a user, who might not be comfortable in public, to practice on their own to build confidence. More aggressive or random pattern options make for a great workout at any fitness level.

Theory of Operation

Badminton shuttles are placed in a long tube, acting as a supply magazine, which attaches to the top of ACE using magnets (making travel & refills more convenient). Once placed on the launcher, gravity pulls the shuttles down into the launcher where their movement is blocked using a servo controlled pincer gripper. The gripper opens which allows the shuttle stack to fall onto the catch/push arm. The gripper assembly then closes to hold the shuttle second from the bottom of the stack. The catch/push arm is then free to push the bottom shuttle into the firing wheels. Before this occurs, the rotation of the launcher and trajectory of the shot are set using two additional servos and the feed wheels ramp up to the desired speed based on the shot. The catch/push arm pushes the shuttle into the wheels where it is launched, then the feed motors shut off, and the catch/push arm returns to the catch position for the next shuttle priming sequence. The precise shot parameters & pattern...

Read more »

View all 12 components

  • It's Released!

    Peter Sinclair09/12/2023 at 01:34 0 comments

    CAD & Code is now available:

    The latest CAD & code has now been published! For anyone brave enough to tackle this project now I wish you luck!  Only recommended for advanced users until the calibration issues get sorted.

  • Wheel Manufacturing

    Peter Sinclair05/05/2023 at 23:46 0 comments

    The wheel origins were covered in a different log but, in summary, the overall geometry is based on the Baddy open source projects' wheel with an adjusted mounting hole pattern to suit the motor and mounting I planned. I also followed Benoit's suggestion that rubber hardness should be 40-50 Shore A.

    Based on the application I decided that Urethane would be best as it has high wear resistance, is readily available, and is easy to cast. Armed with these knowns I went to my favourite supply store and used their expertise to select my final products.

    I used:

    Smooth-On Vytaflex 45

    UVO Color Pigment (Optional)

    Release Agent

    Wheel Hubs

    Due to the high speed of rotation and need for balancing I decided to have the hubs laser cut out of Acrylic to ensure they are strong and solid. 


    The wheel casting process was performed based on the manufacturers recommendations with the following notes:

    1. Use painters tape to cover both sides of the hub then trim the tape using the top cover as a guide. This will prevent the Urethane from filling the larger holes as well as protect against any skin forming on the surface of the hub.
    2. Install the taped hub into the printed mold and install the top side cover.
    3. Mix the Urethane according to the manufacturers directions. Each wheel requires about 35mL. I prepared 50mL per wheel to be safe with plenty leftover. 
    4. Pour from a height so the stream thins out and breaks any bubbles.

    Wheel Balancing

    Due to the high speeds of rotation it is incredibly important to properly balance the wheel so that it can safely spin at the high RPM's. To do this I used a prop balancer to find the heavy parts of the wheel and removed rubber or rim material with a small drill bit. However, I believe this could be done more easily and more cheaply as noted in the section 'Thoughts on the Future'. 

    Du-Bro 499 Tru-Spin Prop Balancer

    Thoughts on the Future

    If I was to make new wheels I would consider changing the wheel design to cast in a mean for balancing, and I would design tooling to balance without a purchased prop balancer.

    Wheel Design

    I would look at casting small features into the wheel that are made to be removed. This could either be small tabs of rubber on the ID that could be cut away, or plugs that go through the hubs. 


    One option would be to 3D print a prop balancer of the classic design similar to the one I purchased. However, there's another type of balancer called a pyramid balancer that could be replicated even more easily. A paperclip can be bent to act as the pivot tower while a small hub can be printed to act as the wheel center. This combined with a wheel design that can be easily adjusted would make this process much more user friendly.

  • Manufacturability

    Peter Sinclair04/23/2023 at 19:22 0 comments

    In order to keep the project cost low and accessible I decided to use 3D printing for the majority of the design. 3D Printing has many benefits including low cost, high availability, and very high design flexibility. All of the printed parts are made out of PETG because of it's strong performance characteristics and ease of printing and they were printed on a Prusa MK3.

    There are only a few items that were not printed:

    1. Trajectory Pivot Shaft - I decided to make a shaft out of steel round bar. I purchased a short length of it at Home Depot and cut it to length with a hack saw. I filed a flat near each end and drilled a hole for cotter pins to hold it in place. I used the cotter pin approach because it was easy to do with minimal tools compared to circlips or other methods.
    2. Wheels - Due to the high wheel speeds (7000 RPM) and shock loading I decided to laser cut the wheel hubs out of Acrylic as the design was already proven on the Baddy project. The urethane rubber exterior was then cast onto the acrylic in a 3D printed mold. The wheels were balanced using a cheap prop balancing rig by drilling holes in the heavy areas. I have some ideas on how to improve this process, but I expect wheels will also be available amongst the community. I plan to release a detailed log on making these in the future for anyone that wants to give it a try.
    3. Hardware - Screws and heat-set inserts were purchased off of Amazon.
    4. Electronics - The majority of the items were purchased off of Amazon. 
    5. Magnets - Used to magnetically couple the shuttle tube to the baddy launcher. These were purchased from Lee Valley and glued in place.
    6. Shuttle Tube - This clear tube was purchased from Amazon.

    This printed approach limits the number of separate parts and makes the build process straight forward. All of the component mount locations, cable tie-down points, and other features can be designed into the parts directly.

    1. Print Parts & install heat-set inserts.
    2. Purchase or manufacture non-printed parts.
    3. Assemble electronics.
    4. Download firmware to ESP32.
    5. Connect to the ESP32 and command servos to their setup positions.
    6. Power off & assemble the launcher.
    7. Power up & configure servo positions.
    8. Get Training!

    It is still an early prototype but if you're eager to get going the CAD & Code can be found on the projects github page. Keep in mind that since this is a high speed kinetic launcher it can be dangerous. Build it at your own risk!

  • Version 4 - It's Alive!!!

    Peter Sinclair04/22/2023 at 18:40 0 comments

    It's been a lot of work getting here, but I finally have version 4 coded and running enough to launch some shuttles. Through the build & programing I've identified many areas of improvement, but I am really liking where it's going.

    Next Steps..


    This is the real bear I have to face. Since I've decided on a UI where the user tells the shuttle where to go on the court all of magic happens in the background. This means that we need mathematical models to determine the wheel speeds and these must be perfect for a good shot accuracy & user experience. How does a user calibrate this or adjust it if it's wrong? 

    There are many places this can fall apart:

    1. Flight Trajectory - The shuttle path estimation is performed using a flight algorithm from Hugo Janton (see log 'User Interface - Version 2' for details). This will only be accurate for a specific shuttle type (feather/plastic) and geometry (brand variances). I'll need to validate this and determine an appropriate way to adjust & calibrate for different shuttles. If this model is incorrect the calculated launch speed will be incorrect so all subsequent steps will be incorrect.
    2. Wheel Speed - Once a launch speed is calculated it must then go through another algorithm to determine the required rotation speed of each wheel. When the wheel speeds are perfectly matched the shuttle should fly straight and the required wheel RPM easily calculated based on the tangential speed components. However,  the wheel speeds will not always be matched. This could be desired because the +-19 degree of physical rotation on the launcher is not sufficient to reach the desired court position, or because we want to prevent or limit physical rotation to add deception to the shots. In these cases we'll vary the wheel speeds to angle the shots. I believe this speed mismatch will result in a sort of rolling motion where the shuttles center-line speed is roughly based on the lower wheel speed + 1/2 the wheel speed difference. Is this correct? Do the wheel speeds synchronize when the shuttle jams between them? Is it consistent across all wheel speeds and speed differences? If this model is correct we'll command the wheels to go at the wrong wheels speeds.
    3. Wheel Speed Execution - After the desired wheel speeds are calculated in the step above, we then must convert that wheel speed to a pulse width modulation (PDM) signal that can be sent to the electronic speed controls (ESC's). The translation of the desired speed to the appropriate PDM signal is important. If we have determined the wheel must rotate at 1000 RPM, but in reality it's only rotating at 800 RPM then of course the shuttle will not land where expected.

    Each of these areas will need to be broken down and tested and accounted for in some sort of calibration procedure when dialing it in. That procedure will need to be documented and coded into the final system.

    Code Completion

    The code is very much a work in progress. When I ended the last test session you could only stop feeding by pulling the power due to code issues. I need to work out the bugs, add the code related to different presets (loading, saving, and editing), add in the calibration  routines & parameters,finalize the mathematical models, add in data sanitizing, error checking, clean and comment the code, and more...


    Testing is just beginning so a lot of reprints and running is needed to eliminate miss-feeds, improve accuracy, and determine if the physical parts can last. Calibration and testing is the hardest to sort out right now as I don't have any indoor space large enough to test in. Long term I'll probably need to rent out some court space to test properly, but I'll need to get the basics working first.

    A few of the known issues:

    • Attachment of upper plate assembly to main body is not sufficient.
    • Wiring and wire paths need to be adjusted.
    • Miss feeding - Likely related to shape of chute and/or pusher.
    • Accuracy Poor - Likely related to shape of chute and/or pusher.
    • Sonar...
    Read more »

  • User Interface - Version 2

    Peter Sinclair04/07/2023 at 12:46 0 comments

    With version 2 of the application I decided on a radical redesign. Version 1 was very functional but it was hard to adjust the shots quickly. When a beginner player came to try it there was no way to reduce the difficulty without just limiting the shot pattern or reprograming all 9 shots. I wanted to fix these issues and make it a lot more friendly and so I came up with the idea to use a full interactive 3D interface. I'm working on implementing that but I'm very excited about what it allows.

    This type of  3D view is often created with the assistance of a library, but I was concerned about trying to fit one onto the microcontroller so I decided it would be best to keep it as small as possible by writing it without any libraries. While learning about these options I came across 3D plot code from Frido Verweij which showed this was possible and laid the ground work I needed to proceed.

    Check it out here:

    That example was designed to show a single math function and only allow rotation of the view so there was a lot of work to make it work for this application:

    • Added zoom and pan functionality (touch & mouse)
    • Added plotting of lines, court plane, nets, launcher, shot positions, etc.
    • Added shot markers and the ability to resolve & adjust their position on the court once it's rotated in the 3D view.
    • Added the ability to create, modify, and clear shot sequences.
    • Added Play/Stop button to start and stop the feed.
    • Added full flight path modeling and velocity solving.
    • & more.

    Main Page

    Here the user will be able to adjust shot placement and create shot sequences along with all other controls needed to run the launcher.

    The presets allow pre-population of the shots based on court size (Singles vs Doubles) and training type (Full Court, Front Court, Service Return, Out of Bounds, Locked Rotation, etc). After they are populated the shots can be adjusted directly on the court if needed.

    As with the version 1 interface, the user can select the play type: play once, repeat the shot pattern continuously, mix the order of the selected shots, or fully random. I may remove the fully random shots as I think the user should add all 9 shots with desired delays based on shot type then mix up the order of those.

    To add a shot to the pattern the user simply clicks on the shot indicator on the court in the desired shot order. The delay will be based on the currently set default but can be adjusted by click on the delay value in the pattern. The shots themselves can be removed by clicking on the number in the pattern or by using the clear all button. If the shots are not landing where expected or the user wants to make a change they can do so directly on the 3d view. More information on that can be found below.

    Shot placement can be adjusted by simply dragging the shot marker. Green flight paths & markers indicate that a valid solution was found by the solver while red means the shot placement cannot be achieved based on the current constrains. This is dependent on the selected trajectory, current physical head rotation, and the maximum angle that can be imparted by the feeder wheels. 

    Currently the solver is set to allow 15 degrees of angle to be imparted by mismatching the two feeder wheel speeds. In the below graphic the head has been set to be rotated to +20 degrees, but the angle needed for the shot is close to 0 degrees. Since the feeding wheels can only impart 15 degrees of correction the shot cannot be achieved (5 degrees off). 

    Using the wheel correction to impart angle can be a valuable tool to allow the launcher to be deceptive (up to +-15 degrees) or to allow a locked mode where the head does not rotate at all to avoid telegraphing the next shot.

    The flight trajectory is based on a paper from Hugo Janton from 2019 where he analyzed the Baddy launcher. His algorithm plots the flight path given an input velocity...

    Read more »

  • User Interface - Version 1

    Peter Sinclair04/07/2023 at 12:07 0 comments

    When deciding on the software for this project I wanted to avoid the need for a custom phone application. This was to avoid developer licensing and costs maintaining such an app in android and IOS. It would also result in a more complex system that could not be easily modified by users. Instead I decided to use an ESP32 microcontroller as a wifi access point that would serve a simple web page. That web page would communicate with the micro-controller through a web-socket and JSON for a nice simple responsive system.

    ESP32 [C Code] <-- Web Socket [JSON]--> User Phone [HTML + Javascript].

    In this post we're going to focus on the user interface design. Originally I wanted it to be as simple as possible so I could start testing the system. The general workflow was influenced from screenshots of the Baddy UI I had seen in reports and online. The user could select from a series of 9 shots that could be calibrated individually in a separate section. Changing the shot in that section would be done by adjusting the 4 parameters: Left Feed Wheel Speed, Right Feed Wheel Speed, Trajectory, and Rotation. 

    This UI was operating successfully but was never polished up as I decided to abandon it for a shiny new generation UI. While perfectly functional, this version had limited adjustability and required a lot of user testing to find the right shot parameters. The hope with the new UI is that the user will tell the system what kind of shot they want and the code will do the heavy lifting to determine the wheel speeds and all other functions. 

    Automatic Feed

    Here is where the user would enter in a shot pattern for training. The user could click on the shot ID buttons to add them to the shot sequence or manually edit the shot sequence. The delay selected would be used between all shots. They could also chose the shot order: play the pattern once, repeat the pattern continuously, use the entered shots but randomize them, or do a random selection of any of the 9 shots.

    Automatic Feed

    On this page the user would adjust the settings for each of the standard shots. Selecting the shot would have the shot parameters load into the lower sliders where they can be adjusted. To simplify the entry the sliders calculate the balance (speed mismatch between the two feed wheels) and the max distance the system can achieve (based on max RPM) so that the user does not need to work directly in RPM. The custom shot option could be used for testing new shots before over-writing values on the standard shots. Shot parameters could be saved to memory for future use.

    Manual Feed

    This was mainly used for testing but ultimately wasn't required because of the custom shot option on the settings page. Users can set the wheel motor speeds directly on this page, but it was never expanded to include trajectory and rotation.


    This page was used to prepare the system for first use. The servo arms need to be attached at the correct positions to avoid any jams or other issues during startup and the rotation amounts adjusted. The ESC's also need to be calibrated.

  • Version 4 - Work in Progress

    Peter Sinclair04/02/2023 at 19:53 0 comments

    Version 2 seemed to be working pretty well, but I was not comfortable leaving it unattended because it lacked proper guarding and I did not think my original guarding plan would be sufficient given the amount of movement (rotation & trajectory). 

    So I decided a new version was needed and made my upgrade feature list:

    1. Redesigned with guarding in mind. Minimize access and pinch points.
    2. Dedicated electronics & battery mounting.
    3. Proximity sensor to detect people standing directly in the shuttle path.
    4. Through-beam IR sensor to detect shuttle run-out.
    5. Radical user interface redesign.
    6. Carrying handle.
    7. Nicer form factor.

    It's this build that I am working on right now. I've completed a preliminary mechanical build and completed a good portion of the user interface redesign. I still have to rewrite the firmware before I can even start testing.

    Once it's running that will just be the start as no versions of the launcher have even been on a court. I'll need to calibrate and test precision and reliability. I've already identified problems that have to be addressed on the next version and I'm sure testing will find many more.

    There is a long way to go to get this finished, documented, and shared, but I'm really excited to be sharing it with everyone. I'm also thrilled to see it looking like a real product!

  • Versions 2 & 3

    Peter Sinclair04/02/2023 at 11:57 0 comments

    Version 2

    In version 2 I explored using a single motor mechanism to feed the shuttles into the wheel. I decided that this was more mechanically complex and would require extra sensors & a continuous rotation servo or stepper to operate. I decided instead to continue building off of the V1 design.

    Version 3

    After testing of the hacked together version 1 I had a list of changes to make for the next version. Some of those were:

    • Add tower rotation for better court coverage
    • Mount gripper separately from tower so the shuttle stack does not rotate with the tower
    • Pincer gripper redesign
    • Add functioning trajectory controls
    • Make proper feed wheels
    • Add enclosure
    • Add stop/start buttons

    Rotation Mechanism

    In order to keep costs down I started with a very low cost 4" turntable bearing from Amazon. Using a bearing minimized the forces needed to turn the unit and the large form factor provided mounting holes and good stability.

    To determine the mechanism needed to rotate the tower I first had to identify how much rotation was required. I decided that doing a direct shot to the far court corners would be a good metric as this is a challenging shot to return so would be very valuable for training. Pointing directly at the corner would allow the feed wheels to run at equal speed and give the best chance of achieving the corner shot. Since I intended to place the launcher at the service line on the far side I could calculate the angle of the launcher for a direct shot. 

    Court Width = 6.1m

    Court Width / 2 =  3.05m

    Shot Distance = Court Length / 2 + Service-to-Net

    Shot Distance = 13.4m / 2 + 2m = 8.7m

    Using trigonometry we know:

    While larger angles would be needed to drop to the near-net corners I wanted to limit the movement to make guarding the device easier. I also surmised that +-19 degrees along with the direction compensation that can be achieved by mismatching the launcher wheel speeds would be enough to hit these corners. This has not yet been confirmed.

    At first I considered a geared option but this would have required the servo motor to be very far away from the tower center to provide room for the gear. With a servo that can only rotate 180 degrees the servo mounted gear would need to be quite large.

    Instead I decided to use a cam follower & track method which is even simpler in its construction. The servo arm has a small post mounted to it that runs inside a groove mounted to the lower plate. I kept this separate so that it could be replaced if needed and connected it with thin walls so it might break-away in case of a jam during testing.

    In a future post I'll go through the basic inverse kinematics used to determine the required servo angle based on the desired turret angle.


    In order to allow the launcher to achieve many shot types I included the ability to change the trajectory for each shot. This should allow a high clear, drive shots, and drop shots. This was achieved by mounting the motors to a pivoting platform connected to the servo through a linkage. By changing the servo angle the platform position can be adjusted. 

    In a future post I'll go through the basic inverse kinematics used to determine the required servo angle based on the desired shot trajectory.


    The original gear train had a few downsides:

    1. Backlash - With 3D printed gears designed to be easily printed the backlash is high. Given the full travel of the grippers is only 10 degrees or so the unintended movements were quite large.
    2. Poor Resolution - Since the full travel was such a small amount the adjustments were quite coarse.
    3. Risk of overtravel - There were a lot of values that could be entered during calibration that would result in a crash since it was using such a small portion of the servo...
    Read more »

  • Version 1 - Fail Quickly

    Peter Sinclair04/01/2023 at 11:58 0 comments

    When designing something new there's always things you didn't know that come out during testing so it's incredibly important to put together a proof of concept to learn as much as you can as quickly as you can. The first version of the launcher was always meant to be a rough development platform to review the concept, electronics, and programming. To create this design I started with the system constraints/knowns. These can come in a variety of forms: capabilities, physical, financial, manufacturing process limitations, etc.


    • Relatively low cost but feature rich (Below $1k)
    • No hidden part costs (ie. I used these $500 motor controllers I already had so they are free!)

    Manufacturing Process

    • 3D printed parts wherever possible
    • Non-printed parts should be easily manufactured using minimal equipment


    • Easy to transport
    • Battery powered
    • As small as possible
    • As safe as possible


    • Easily available parts for others to duplicate


    • Good court coverage
    • Trajectory control
    • Rotation control
    • Programable shot pattern
    • Adjustable shot calibration

    Launching Wheels

    I started with the Baddy wheel design as it was proven so would be safer/faster than designing one from scratch. 

    Using that geometry as the known we can calculate a rough estimate for the required rotation speed to perform a smash. A good smash is 100m/s and the wheel diameter is 104mm.

    Solving for the rotation speed omega gives:

    Where omega is in rad/s, V_tan is in m/s, and r is in meters.

    This gives a rotation speed of about 1923 rad/s. We can convert to rotations per second by dividing by (2*PI), and multiply by 60 to get the rotations per minute.  This gives 18,364 RPM. Since this ignores many factors, such as slip between the wheels and shuttle, the real motor speed would need to be even higher.

    For the wheel motors I wanted to use brushless motors such as those used on drones. These tend to be rated by kV which is the motors' unloaded RPM/Volt. Since I was considering using a common 11.1V 5000mAh 3S LiPo battery we can divide out the desired RPM by 11.1 to determine the required motor kV of 1654. In reality to achieve this smash speed we would need a much higher KV to account for the loaded motor speed, losses, and the voltage drop of the battery over the session.

    However, if we then consider a drop shot of 10m/s we would only be at 10% of the motor's maximum speed. Since most brushless motors and ESC's without feedback don't operate well below 1/3 of their max speed we can't handle such a powerful motor, so let's start from the drop shot instead. At an estimated 10 m/s we'd need a kV of 165 RPM/Volt so if that was 1/3 of the motor's maximum it would have a kV of 495 RPM/Volt. Recalling all of the factors that result in this number being low I'd estimate we want to be above 600 kV.

    In the end I selected a 750 kV motor which was close to the target value. I suspected that the large diameter form factor of the selected motor would have a stronger bearing to take the shock loading of the feeding sequence and provide higher toque compared to a smaller motor. Its short length also helped minimize the height of the launcher.

    While I'd adopted the general wheel geometry from the Baddy project I needed one that could mount to the selected motor so for the initial testing I decided to try a complaint wheel 3D printed entirely out of PETG. This worked relatively well when a rubber band was glued around the outer diameter but the band failed quickly.

    Trajectory / Rotation / Gripper / Pushers

    In order to speed up design and reduce risk I eliminated the trajectory & rotation features from the preliminary build. While the force for the gripper & pusher is very low I settled on a two low cost 25kg servo motors with the intention of using them for all 4 controls in the final design.

    For the catch/push arm I directly mounted it to one of the servo horns included with the servo. 


    Read more »

  • How it all started

    Peter Sinclair03/31/2023 at 15:54 0 comments

    Like any great project this one started with a pure and noble purpose: To improve my badminton skills to outperform my older brother.  We've always played together and were fairly closely matched, but that all changed when I took a few years off and returned a feeble opponent. Having previously had a very brief opportunity to train at the wonderful BC Drop Shot in Netherlands (, I knew that I needed to add skills training to my routine instead of just playing matches. Since the Netherlands is too far a commute from Canada I was left with only one possible option: to buy or build a robot friend to train me.

    At first I searched online for opportunities to purchase one and there are some impressive offerings but they're mostly geared towards high performance clubs with price tags that match (>$2K). On the lower end there's a cheap option for around $200 available under a number of brand labels, but it's treated as a disposable item that cannot be serviced and provides little control over the shots. 

    Eventually I came across a impressive open source project by Benoit Greslebin called Baddy where he designed and built a launcher along with apps to control it. Ready to buy and build I headed to purchase a kit only to find that the project is defunct with no available parts, support, and only much older project designs on-line.

    I could have stopped there, but every great story has a setback and where would that leave me? No, I had to proceed on my own. So I took the features of Baddy I liked and started designing a launcher from the ground up to be even more capable and accessible.

    From this the project goals were formed:

    • Low Cost - Somewhere between the cheap and professional options.
    • Feature Rich - Examples:
      • Maximum Court Coverage - Include head rotation & shot trajectory to allow a wide variety of shots.
      • Adjustable Shot Positions - Ensure the user can reprogram shot positions based on their shuttle type & training needs.
      • Adjustable Shot Patterns - User can set a shot sequence & delay.
    • Portable - Since this will not stay at a club it needs to be easy to transport & set up.
    • Mostly 3D Printed - With the explosion of 3D printers this makes the project more accessible.
    • No phone apps - Having dabbled in these before I knew I didn't want to spend my time and money maintaining apps for Android & IOS forever after.
    • Safe - While a machine like this will always have some risk I wanted to make it as safe as I could reasonably make it.

    Project goals in hand I was ready to get started.

View all 10 project logs

Enjoy this project?



Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates