We are developing a balance-control algorithm for our robotic bicycle. The controller tries to keep the bicycle from falling. We start by studying bicycle dynamics. We use computer simulations of our bicycle as well as tests on our physical prototype. Presently, we are using a linear feedback controller. Eventually, we will implement a nonlinear, state-space-based control policy. First, we will try to use Dijkstra's algorithm to find an approximate solution to an appropriate dynamic programming problem. Alternatively, we may use brute force to test many nonlinear controllers in simulation.
The vision team works towards developing a system to be able to automatically extract and understand information from a sequence of images to help further the amount of information that the bike has to make decisions while moving along a route. The team is currently working on obstacle detection and localization with a stereo camera, in order to create a system that expands on the flexibility of locations that the bike could travel to. The team's goal is to eventually have a computer vision system fully integrated with the navigation systems on the bike.
We're building a bicycle, with self-balancing features, for a person to ride. That is, the Steer-By-Wire bicycle would balance automatically, using the same algorithm as our fully autonomous bike. A rider would provide direction (steering) commands to the bicycle. These commands would inform the bicycle's controller, but not turn the wheel directly. Our goals are to build a bicycle that is more pleasurable to ride than a normal bike, could be ridden by someone who does not know how to ride an ordinary bike, and could assist someone who does not have the balance or coordination necessary to ride a bike.
The prerogative of the Systems subteam is to design, build, and maintain the bike's mechanical systems. For example, the team is responsible for the front motor column, landing mechanism, wire organization, and circuit board and sensor placement. Projects range from wiring using CAD to design and machining parts or mechanisms to assembling and installing microcontrollers. Our goal this semester is to enhance the organization, efficiency of use and troubleshooting, and aesthetics of some of the bike's features. The team's main project is to redesign and build the "brain" of the autonomous bike, which stores the motor controllers, sensor inputs, printed circuit board.
The Navigation subteam works on the algorithms and code that allow the bike to navigate pre-planned paths. The current main navigation algorithm was developed during the summer of 2017, and is continuously being improved by subteam members. The navigation code depends on accurately determining the bike's location, so the subteam also works on a variety of localization strategies like GPS and dead reckoning. This semester, the subteam is making progress on getting the algorithm working on the physical bike, instead of just in simulation.