Accomplishments:
We completed the design and successfully tested the full system
Accomplishments:
This week, we achieved full integration and completion of the design.
Challenges:
The main challenge this week was that a few of the critical parts broke (some of which were on our way to the practice competition). They were all 3D printed, so they were weaker than most of the rest of the structure. Luckily, we can simply redesign them to be stronger and reprint them with no extra cost.
Our other major challenge was balancing the weight on the Roomba base. The throwing mechanism is on its own set of wheels so the Roomba does not have to bear the full weight; the Roomba has to take some of the weight, otherwise the wheels slip. However, this is a very imprecise balancing act. We had been practicing in Graf, which has a very uneven floor, which counterintuitively made this less of an issue. Unfortunately, we did not get the balance right for the competition and were struggling with the drive controls.
Next Week:
Reprint the wheel attachments. Fine tune the weight balancing on an even (i.e. non-Graf) floor to ensure we have full drive controls.
Accomplishments:
This week we finalized the integration of all components and are now able to control the full system. We integrated the reload mechanism into the control scheme and have a fully functional drive and fire mechanism. The software and electrical components are complete.
Challenges:
We have designed and began to implement a fully automated throwing and reloading system. However, this creates a major issue with the control of the system. We discovered early on that any delay added to the code will interfere with the input from the radio controller. The automated firing system needs delays in order to ensure the timing is correct. The other option is to create a state machine, but some of our systems (such as the reload mechanism) do not have sensors so this would be very difficult to design. At this stage, we do not have the bandwidth to write the automated firing mechanism.
Next Week:
There are no software or electrical goals for next week.
This week we focused on integration. Period.
Accomplishments:
Further reinforcement of the frame (to combat bending due to the 500N linear actuator) and attaching the cross bar. The cross bar provides a hard stop for the throwing arm, providing a more impulse-like release to the beanbag.
Challenges:
The only challenge this week was adding in t-nuts to the frame, which involved some frame disassembly.
Next Week:
Begin tuning the catapult for optimal distance and trajectory of our throws.
Accomplishments:
This week we completed the wiring
We wrote two separate flows for our firing system. The first will be used to practice and will provide a good idea of the timing for the system. The second is our final goal to implement before game day, which will be a fully automated system.
Plan 1:
The first plan is to have a switch that allows us to use the control sticks in two different states: drive mode and firing mode. Given that these two actions should never be happening at the same time, this is an easy control scheme to implement. This will also prevent any accidental movement or firing while the other action is occurring. The two control sticks will be assigned four actions (each mapping to up or down on one stick): pull back arm, load bean bag 1, load bag 2, release clutch.
Plan 2:
Our plan for the automated firing system is as follows:
For three rounds:
Challenges:
The main challenges we face going forward are ensuring the power is routing to the correct places and not overvolting any individual motor. Both of the above control schemes are fairly straightforward; the one major issue we could face is if we start to see interference issues again when we have everything running from one central location.
Next Week:
We are still heavily focused on integration and getting all the individual pieces to work together. Our goal is to have the majority of this integrated within the next week, so we will still have time for finalizing details and practice.
This week we focused on three main areas: finalizing mechanism to release the clutch, mounting the catapult mechanism to the Roomba, and starting work on electrical integration.
Accomplishments:
After many challenges with the clutch, we are finally able to reliably engage and release it. We are using a linear actuator to release, which will be activated after the arm has been fully pulled back
Additionally, we began the work to mount the catapult to Roomba. While the Roomba has a ~20lb payload capacity, we decided to mount the catapult on its own caster wheels and use the Roomba only to move it, similar to the Chairbot design. Our caster wheels have arrived but printing problems have caused a bottleneck in obtaining the mounts we need.
Challenges:
The primary challenge of this week was finding method to actuate the clutch mechanism. Due to the high amount of force it is under and the rough surface of the 3D-printed pulley, it requires an extreme amount of force to disengage it. We initially explored various lever and cam mechanisms before settling on a 500N linear actuator.
Next Week:
Finish mounting the catapult to the Roomba and perform testing to ensure there is no further slippage within the catapult mechanism. We will also mount the stopper bar and begin tuning it for optimal distance and trajectory of our throws.
Accomplishments:
This week we wrote two separate flows for our firing system. The first will be used to practice and will provide a good idea of the timing for the system. The second is our final goal to implement before game day, which will be a fully automated system.
Plan 1:
The first plan is to have a switch that allows us to use the control sticks in two different states: drive mode and firing mode. Given that these two actions should never be happening at the same time, this is an easy control scheme to implement. This will also prevent any accidental movement or firing while the other action is occurring. The two control sticks will be assigned four actions (each mapping to up or down on one stick): pull back arm, load bean bag 1, load bag 2, release clutch.
Plan 2:
Our plan for the automated firing system is as follows:
For three rounds:
Challenges:
The main challenges we face going forward are ensuring the power is routing to the correct places and not overvolting any individual motor. Both of the above control schemes are fairly straightforward; the one major issue we could face is if we start to see interference issues again when we have everything running from one central location.
Next Week:
We are still heavily focused on integration and getting all the individual pieces to work together. Our goal is to have the majority of this integrated within the next week, so we will still have time for finalizing details and practice.
Accomplishments:
The four major components we tackled this week were the clutch, the drive for the arm, the camera for remote viewing, and the reloading mechanism.
Clutch
The clutch mechanism was switched from an electromagnetic clutch to a mechanical-only dog clutch on a custom-made 1/2" steel shaft. The mechanical dog, between the red bearing block and the black belt, rides on the hex portion of the clutch shaft. It is pinned through the clutch shaft, which connects it to the shifter block on the right of the black pulley. By moving the shifter block, the dog can be engaged or disengaged from driving the black pulley. When disengaged, the black pulley spins freely on the shaft and is captured by an e-clip. Two bearings capture the shaft and resist the forces from belt tension. The two bearings are now in a sturdier unified holder, as the two individual holders had significant deformation under belt tension. This caused the belt to slip and the catapult to launch prematurely.
Motor
Once the new clutch was put in, we faced a number of problems in actually getting the motor to pull down the arm:
Camera
Given the challenges from the camera we were originally using, we decided to move to a more robust and reliable platform. One of our team members had a spare phone, so we decided to connect to that through a wifi video chat service. We will use either Facebook Chat or Google Hangouts - one is higher quality but the other has less lag. Our big concern is that the final competition will be in a very busy building during dead week, so the wifi bandwidth may be severely limited. We plan to test it the week before the competition in case we need to find a backup plan.
Reloading Mechanism
The reload mechanism is fully assembled. There are two cups that sit on either side of the arm. They are controlled with individual servos, and will be turned one at a time.
Challenges:
The main challenge we keep facing that has affected multiple aspects of our design is how much torque is required for this game. Our system is able to throw the full 3m required, but in the process we have had to change and redesign multiple parts due to the forces required to hold the arm in place. As well, disengaging the clutch has been very challenging given how much pressure is on it, and we are still working toward a reliable mechanical solution for this.
Originally, we were using a pan/tilt camera that we had left over from another project. However, that camera had no documentation online. We were finally able to connect to it, but it provided a very poor quality image and had a very serious (3-5 second) lag.
Next Week:
The goal in the next week is to finalize the design and assembly of the clutch actuation mechanism, test the throwing mechanism, and begin integration of the full system. As stated above, the clutch mechanism is very challenging, so it may take longer than expected to come to a final design.
Accomplishments:
This week, we took the first steps toward integrating the individual pieces into a full system. Given that there are still challenges on the mechanical side, we have yet to be able to fully control every aspect of the system. However, we have been able to integrate the motor that pulls back the catapult arm and drive that with the Arduino. Harnesses made for the wiring that has been finalized (Roomba, RC receiver).
Challenges:
The original Roomba base was non-responsive for much of the week. We reached out to the iRobot Create team and have been working with them to troubleshoot the misbehaving Roomba base. They have been very helpful and responsive, and are working with us to find a solution. We believe we have gotten things sorted with the addition of carefully-placed delay statements to give the Roomba sufficient time to boot.
Next Week:
Once the mechanical issues are solved, the next big step is to code up the planned control scheme. We will not be able to do this until we know exactly how the final mechanical design will look, as the nuance of how the clutch is released could change the control flow.
This week, we accomplished three major goals. The first was to re-spec, redesign, and assemble the clutch mechanism (minus a few final pieces that have not been delivered yet). The second was to integrate the radio controller with the Roomba for teleoperation. The third was to finalize the design and build the initial prototype of the loading mechanism.
Accomplishments:
The two major mechanical components we tackled this week were the clutch and reload mechanisms.
The clutch is in the final stages of assembly; we are still waiting on a few parts to be delivered. Our initial electromagnetic clutch was not able to hold the torque required by our design, so we switched to a much stronger dog-tooth clutch. The downside is that the dog-tooth clutch requires a separate actuator to engage / disengage. We tested two different release mechanisms, an electric and a pneumatic solenoid. We decided on the pneumatic solenoid for its power density and quick actuation. This, however, adds both a small compressor and a separate valve. We had initially shied away from this because the compressor is very noisy and adds a lot of vibration, but the other design we tried did not pan out. Regardless, we must machine a small but complicated partially-hex shaft whose design is still being worked out.
The reload mechanism will be mounted to two 80-20 aluminum posts on the sides of the catapult. Each will hold a wood cup, which will be above the launch arm when it is fully pulled back. The wood cups will be attached to a servo, which will rotate when that bean bag is needed. This week, we finalized the design and made the initial build of this system.
Challenges:
The clutch provided us many challenges along the way - our initial spec and the clutch we purchased were not able to hold the amount of torque we needed. This caused a re-design and second round of ordering for parts. We are waiting on the final parts to be delivered so we can assemble and test the full throwing mechanism.
One of our biggest challenges this week has been the limited bandwidth of all team members. Week 5 is always a tough week between project deadlines, midterms, and research deadlines. We have, however, found time to balance the workload and make incremental progress.
The camera, which we were told would be plug-and-play, is from China and has zero documentation available anywhere. We have tried connecting it to the campus visitor wifi, setting up a separate router, and connecting it via ethernet. We have yet to be successful.
Next Week:
Our major goal for next week is to begin integrating the individual pieces into a full system. The first step will be to unify the mechanical pieces into one system.
Accomplishments:
We were finally able to integrate the radio controller and Roomba to talk to one another in real time. For some odd reason, calling a function from a particular library from the main loop will interfere with the radio control signals. Originally, we were following best practices by having a separate functions file in order to keep our primary code clean and free of individual serial commands. However, we will now need to do just that and have one very long (and very ugly) loop running.
Challenges:
The primary challenge faced this week is that the Roomba we were working with will no longer take in Serial commands. We have determined that this is a hardware issue on the Roomba side (in the past we have mainly faced Arduino / software issues) because we have a secondary Roomba base that still works well. We have moved over to using the back-up Roomba for now and will troubleshoot the first base once we have our system up and running.
Next Week:
Our primary goal for next week is to focus on integration. We will have most of the primary hardware components complete and will be able to start controlling the motors, first with Arduino and then with RC through Arduino.
Our goal for week 4 was to complete an initial basic build of each major component of the system. This initial pass allowed us to see what of our design works, what details are missing, and which parts would not work for the system.
Accomplishments:
This week, we completed the initial assembly of the basic launch mechanism. We initially tested the system without the motor and found that it can launch the beanbag the required distance (approximately 10').
Challenges:
During assembly, we found a few issues with the parts we ordered. First, we currently have just enough torque to launch the beanbag the right distance, but only when the arm is fully extended. We would like to add additional springs so we have more room for error. This will allow us to refine the distance thrown by the amount the arm is pulled back and the launch angle. Second, we found that the clutch ordered is not able to hold the amount of torque required. Both of these issues will require additional parts to be ordered.
Next week:
By next week, we would like to have a fully functional catapult, which will then be mounted on the Roomba. Our goal is to have a functional system (aside from the loading mechanism), which can then be refined.
Accomplishments:
The first major accomplishment was recovering the board we thought was fried from last week's wiring mishap. Second, we got the Roomba to listen to commands and are able to control it once again through Serial. Third, we are now able to read in and parse commands from the radio controller.
Challenges:
The biggest challenge we are currently facing is that the Roomba is interfering with the signal from the radio controller when they are running from the same board. This may be an issue with the clock speed of the board, or an electrical interference issue.
Next Week:
The next step is to find a board with a higher clock speed, which will hopefully fix the interference issue. Once that issue is fixed, our goal for next week will be to control the Roomba and catapult motor through the radio controller.
Initial build of catapult
Updated CAD (without loading mechanism)
Our goal for week 3 was to advance the design to a state sufficient to place orders to build a full, albeit tethered (i.e. wall supplies instead of batteries) first pass design. This week, we finished a full mechanical design of the throwing arm prototype, sufficient to place parts orders and begin fabrication. Effort was made to use scavenged parts wherever possible so as to stretch our budget as far as it would go. Additionally, the electronics developed a control scheme using a hobby radio controller and the controls developed the code necessary for Roomba control via the radio controller.
Our mechanical design for the thrower is a spring-loaded torsion catapult.
The arm is attached to a live axle via a 40-tooth L-series timing belt pulley, which is press fit on the axle. This axle also has several large torsion springs, the quantity of which we will adjust as-needed, to provide the spring tension force. The live axle is captured by a pair of 1/2" ID pillow block bearings. The 40T timing-belt pulley is driven by a smaller 10T timing-belt pulley, which connects to the window motor via an electronic clutch. The electronic clutch is a 24V model of unknown provenance and maximum holding torque; these unknowns are the rationale for gearing down the window motor, as it will reduce the holding torque required of the clutch. When the clutch is released, the torsion springs will attempt to return to rest, and thus throw the arm without requiring the window motor to be backdriven. As the window motor used a worm drive, backdriving it is impossible.
Accomplishments:
Challenges:
Next week's goals:
Our electrical design strives for simplicity. The robot will be controlled via a R/C hobby controller. The R/C signals are interpreted by the Arduino into serial commands for the iRobot Create 2. The window motor and electronic clutch are controlled through a switchable MOSFET board. In later weeks, the electrical and software sections may be broken into separate sections, but they are combined here due to their tightly-intertwined nature at this stage.
Accomplishments:
Challenges:
Next week's goals:
Initial system mock-up