This week, we continued to work on the launch system. We have finished and tested the hook release system, and created the hardward to mount the motor that will pull the launch pad back. We have mounted the rack and pinion that will act as our trigger system, along with the motor that drives the pinion. Finally, we have assembled the final launch system. There are a few parts that need some work, but it is very close to being done.
Pull Motor and Mount
Launch System
Hook Release System
Trigger System
We made the initial design of our reloading system. Just within a week the system has undergone through a series of redesigns as we push to make our system more compact and lightweight. We have not yet been able to test the motion with the beanbags within the system, but if our motor is not strong enough we have a stronger but larger replacement.
This video shows the carriage being pulled back by hand and the hook system successfully holding on to the launch pad. Then, the hook is triggered with a push (which will eventually be done by the rack and pinion trigger system, and the bean bag is launched.
Testing Release Mechanism
We successfully connected all modules to power using power distribution blocks, so all electrical components in the system now can run off battery power and the robot can run un-tethered. In addition, we tuned the control signals to the drive motors such that they run at approximately the same speed via open-loop control.
We made an important addition to the electrical system in the form of a kill switch between the battery and the power distribution blocks. This switch allows us to quickly power down the robot in the case of potential danger to the robot or others.
At this point, all actuators and sensors have been connected to power and controlled by or sent signals to the Arduino.
We successfully paired our base station laptop with the new Bluetooth module purchased last week and were able to demonstrate active wireless communication between the Arduino and the base station laptop through the Bluetooth module. We wrote a Python script that accepts commands from an Xbox controller and converts those commands into strings that can be interpreted by the Arduino. The script then sends the commands through the Bluetooth serial port connected to the Arduino module, which then sends the serial messages received to the Arduino processor. The Arduino interprets these commands through a serial interrupt event and generates the control output corresponding to the interpreted command.
Initially, there was significant latency of approximately one second between the command being sent from the base station laptop to the Arduino; we determined that this was due to the Arduino waiting after receiving the serial message to see if more data was going to be delivered. We have since optimized the Bluetooth transmission method such that the latency is approximately 100 ms, which will be useful when teleoperating the robot.
The current problem we are facing in the Mechanical subsystem is mounting the Pull Motor. Because the shaft mount is 3D printed, it is not an exact fit. So when the motor rotates, the shaft does not rotate completely concentrically. So there is interference with the bearing (that can be seen in the picture) which causes the shaft mount to eventually separate from the motor.
We are working on a solution for this problem, but our current plan is to either change the bearing mount so there is room for mechanical slop, or create a better shaft mount. It is okay for the shaft to not rotate concentrically since it is only winding the cord that pulls the Launch and Pull Carriage backwards.
We did not think to check the kill switch that we scavenged from the project lab to make sure that it was connected in the way we expected. Because of this, we accidentally shorted our battery for about one second, during which sparks could be seen inside the switch's terminal housing. We quickly removed the connection, which appears to have saved both the battery and switch from being destroyed. In the future, we will make sure to thoroughly test scavenged parts for expected behavior before integrating them into our system.
Now that the electrical system has been fully prototyped, our biggest challenge for the electrical system will be reducing clutter. Though this is not difficult, it is time-consuming, and should only be completed once the rest of the system design has been finalized.
At this point, the largest challenge we will face software-wise will be optimization and failure case management, making sure that the driver cannot provide a series of commands or simultaneous commands that will cause the robot to damage itself.
An additional issue we're facing is that the Bluetooth module is occasionally finicky in initiating communication with the base station laptop. Once the module is connected, the signal is strong and consistent; however, when powering up the laptop or the robot, it can occasionally take a few tries to establish a connection. We will look into how this connection might more easily and consistently be established.
The plan for next week is to completely finalize the launch system. To do this, we need to to figure out how to mount the pull motor and pull motor shaft and create a shield to protect the hook from being hit by the beanbag. After that, the launch system is finalized.
With our confidence in our launcher design, then we will then need to asses whether our practice chassis will be able to carry the launcher and loader system. The main constraint is that it has a small footprint. Most likely we will need to upgrade the chassis and incorporate into that design our methods for supporting and attaching the launcher and loader system.
We will also assess our reload mechanism prototype and work on designing the final reload mechanism. the main things to check for is the ability to push all three beanbags, have a very high success rate of having the bean bags fall through the bottom slot, and that it will be easy too attach to and be supported by the chassis.
Electrical system development will likely be on hold this week to wait for the chassis and shooter systems to be finalized. At that point, we will be ready to start finalizing the electrical design by cutting wires to their needed length, mounting all electrical hardware in final locations, and implementing cable management.
This week, we will focus on allowing a range of driving input speeds rather than the hard maximum levels that the system currently uses. Additionally, we will work on making the initial Bluetooth connection more consistent and handling potential failure modes caused by certain combinations of driver inputs.