Difference between revisions of "ME 333 Suggested Final Projects"

From Mech
Jump to navigationJump to search
 
(20 intermediate revisions by the same user not shown)
Line 1: Line 1:
Students working on the projects listed below may begin their work right away, upon approval. Students wishing to propose their own project must write a proposal of approximately 3-5 pages, with at least one drawing (hand drawing OK) showing the whole device, a paragraph or two discussing the overall function and goal of the project, as well as discussions of the sensors and actuators you will use, the computation, and the mechanical design. Although you do not have to have worked out all the details, the proposal should show that you've thought about how the whole project will work. It can be a fun whimsical project, or it can solve a practical problem. Your project should creatively use simple sensors and actuation, but your proposal should be beyond simply applying what we do in lab. Previous projects are a good indicator of what's possible. Your proposal must also include milestones to be met during week 8.
Students working on the projects listed below may begin their work right away, upon approval. Students wishing to propose their own project must write a proposal of approximately 3-5 pages, with at least one drawing (hand drawing OK) showing the whole device, a paragraph or two discussing the overall function and goal of the project, as well as discussions of the sensors and actuators you will use, the computation, and the mechanical design. Although you do not have to have worked out all the details, the proposal should show that you've thought about how the whole project will work. It can be a fun whimsical project, or it can solve a practical problem. Previous projects are a good indicator of what's possible. Your proposal must also include milestones to be met during week 9.


'''Your final project cannot be a robot for DC.'''
'''Your final project cannot be a robot for DC.'''
Line 7: Line 7:
== Recommended Projects ==
== Recommended Projects ==


=== High-speed Motor Control from Matlab ===
=== Underwater Electrosense ===


Electrosense is a new underwater sensing technology being developed at Northwestern. The sensor's emitters generate an electric field, and detectors sense perturbations in the electric field due to objects in the environment. Robots carrying the sensor can determine their own position in a known environment, or identify objects in an unknown environment.
You will make motor control PICs that make it easy for anyone to do high-speed encoder-based feedback control of brushed DC motors with only a few dollars of hardware and a cable to connect to matlab on your PC. Your project will build on [[I2C Motor Controller|this project]], see also [[Granular Flow Rotating Sphere|this project]], and will consist of a "master" PIC that communicates with the PC plus any number of "slave" PICs, one for each motor to be controlled. The job of the master PIC is to take the program written in matlab and communicate it to the slave PICs, and to coordinate the initiation of moves by the slave PICs, which implement PID controllers at rates up to 2 kHz. Your final project will demonstrate high-speed trajectory following by a 2-DOF parallelogram linkage that can throw and catch objects in a vertical plane. Optional: use an EEPROM to perform data logging at each slave PIC, and send this data back to matlab upon request.


This project will develop a new kind of electrosensor and place it on a robot moving along one linear direction (e.g., a sensor on a ball screw carriage). The sensor will generate fields at different frequencies and use the frequency-dependent response to characterize the impedance of nearby objects. The robot will scan the sensor along one degree-of-freedom to generate an "electrosense image" of the environment.
'''Week 8 milestone:''' Demonstrate controlled moves by the motors following a simple program in matlab, and show a design of the parallelogram linkage.


'''Week 9 milestone:'''
<!--
=== High-speed Wireless Communication ===


=== High-speed Motor Control with Your PC ===
To allow two PICs, or a PIC and a PC, to communicate wirelessly, we are currently using RS-232 and the xbee 802.15.4 chips. RS-232 is an old technology, and the data rates are relatively low in this solution (250 kbps max for the xbee chips, and typically 115.2 kbps for RS-232). In this project, you will develop a new higher-speed solution based on faster SPI communication and [http://www.sparkfun.com/commerce/product_info.php?products_id=691 this wireless product]. You will demonstrate high-speed wireless communication between a PC and the PIC. You will then demonstrate the high-speed communication by some dynamic task, such as wireless teleoperation of a one-dof robot arm as it juggles a ball or balances an inverted pendulum.


You will make motor control PICs that make it easy for anyone to do high-speed encoder-based feedback control of brushed DC motors with only a few dollars of hardware and a cable to connect to matlab on your PC. Your project will build on [[I2C Motor Controller|this project]], see also [[Granular Flow Rotating Sphere|this project]], and will consist of a "master" PIC that communicates with the PC plus any number of "slave" PICs, one for each motor to be controlled. The job of the master PIC is to take the program, written in Matlab or Processing, and communicate it to the slave PICs, and to coordinate the initiation of moves by the slave PICs, which implement PID controllers at rates up to 2 kHz. Your final project will demonstrate high-speed trajectory following by a 2-DOF parallelogram linkage that can throw and catch objects in a vertical plane. Optional: use external memory to perform data logging at each slave PIC, and send this data back to the PC upon request.
'''Week 8 milestone:''' Demonstrate high-speed wireless communication and finalize the mechanical details of the dynamic task.

'''Week 9 milestone:''' Demonstrate controlled moves by the motors following a simple program in matlab, and show a design of the parallelogram linkage.


->
=== Portable 6-DOF Vibratory Platform for Parts Manipulation ===
=== Portable 6-DOF Vibratory Platform for Parts Manipulation ===


The [http://lims.mech.northwestern.edu/projects/frictioninducedforcefields/index.htm PPOD] is a 6-degree-of-freedom vibratory platform that manipulates multiple parts simultaneously. See [http://lims.mech.northwestern.edu/projects/frictioninducedforcefields/PPOD2video.mov this video], for example. You will make a small, portable version (PPOD-Lite) that uses 6 small speakers arranged with 3 acting in the horizontal plane and 3 acting vertically. This version will be no larger than 8"x8"x6". It will have 6 axes of accelerometer feedback on the motion of the plate, and it will use FFTs of the accelerometer data to update the periodic speaker control signals so that the plate learns to follow the desired periodic motion profile. Desired motion profiles will be sent to the plate via a USB connection with a PC. Power for the device will come from a power adapter plugged into the wall.
The [http://lims.mech.northwestern.edu/projects/frictioninducedforcefields/index.htm PPOD] is a 6-degree-of-freedom vibratory platform that manipulates multiple parts simultaneously. See [http://lims.mech.northwestern.edu/projects/frictioninducedforcefields/PPOD2video.mov this video], for example. You will make a small, portable version (PPOD-Lite) that uses 6 small speakers arranged with 3 acting in the horizontal plane and 3 acting vertically. It will have 6 axes of accelerometer feedback on the motion of the plate, and it will use FFTs of the accelerometer data to update the periodic speaker control signals so that the plate learns to follow the desired periodic motion profile. Desired motion profiles will be sent to the plate via a USB connection with a PC. Power for the device will come from a power adapter plugged into the wall.


'''Week 9 milestone:''' Have the mechanical design completed, and be able to command analog profiles to the speakers and read in analog signals from the 6 accelerometers.
'''Week 8 milestone:'''

=== Swarm Robot ===

The [http://www.e-puck.org/ e-puck] is a small PIC-based mobile robot. These are being used for different research projects at Northwestern, including swarm robotics. These robots cost nearly $1000 each. For most swarm projects, though, we should be able to build a mobile robot that costs 1/10th of that, based on the more powerful PIC32. This project is to build a prototype of this "cheap puck" swarm mobile robot, including a first version of the control software. The robot will use two geared stepper motors for its wheels, xbee wireless radio communication, a light color sensor for sensing the environment, and a unique LED pattern for each robot so that an overhead vision system can recognize each robot's position and orientation.

'''Week 9 milestone:''' Have the mechanical system and circuitry essentially finalized, and basic code to drive the motors and speak RS-232 over the wireless xbee. (The last week will focus on software and control system development.)

=== Furuta Pendulum (Inverted Pendulum) ===

[[Image:furutapendulum.jpg|right]]
Build an inverted pendulum system to experiment with balancing control algorithms. This kind of inverted pendulum is called a Furuta pendulum. A motor controls the rotation of a horizontal beam about a stationary vertical pivot axis, and a second beam rotates freely about an axis along the horizontal beam. The goal is to take the second beam from the hanging down configuration to balanced in the up configuration. An encoder measures the angle of the second beam. The motor pumps energy into the beam, then (probably) switches to a stable linearizing controller when the beam is vertical. See [http://www.control.tfe.umu.se/Set_Ups/Furuta_Pendulum/Furuta_Pendulum_info.html this page], for example. This problem is a challenging dynamic task, and is impressive when it works.

'''Week 9 milestone:''' Have the mechanical system nearly finalized, with controlled motion of the motor. The swing-up and balancing algorithms do not have to be implemented yet.

=== Other Educational Control System ===

Create an inexpensive educational control system, where students learn to develop controllers to stabilize a mechanical system. You can check out [http://www.quanser.com/english/html/challenges/fs_chall_overview.html Quanser] for ideas. A successful final project could be a prototype for future EECS 360 or EECS 374 labs or projects. An example is the Furuta pendulum, above.

=== Monkeybot 2 ===

Last year a student team built the Monkeybot, seen in this [http://www.youtube.com/watch?v=0hfwJEVQyeQ video]. It uses two electromagnets on bearings with encoders, and a DC gear motor with encoder, to locomote dynamically on a steel wall. The proposed project is to build something similar, except wireless and with only one electromagnet. This robot "flings" itself from handhold to handhold. It can also implement a control algorithm to take it from hanging straight down to balanced in the up position.

'''Week 9 milestone:'''

=== Rolling Manipulation ===

Build a research apparatus for control of rolling manipulation. See [http://lims.mech.northwestern.edu/~lynch/research/videos/dynamic.html#rolling this page] for example, and this [http://lims.mech.northwestern.edu/~design/mechatronics/2006/butterfly/index.htm previous project page]. Your apparatus will be used in future research experiments in stabilization of dynamic rolling. It will likely make use of a resistive element and a conductive ball for sensing.

The "butterfly" you see in the examples above is a form of "contact juggling." Check out [http://www.youtube.com/watch?v=FX7xruR12YA this video of Michael Moschen] to see other contact juggling (with the butterfly about halfway through). Check out other Michael Moschen videos on youtube to see some amazing performances!

'''Week 9 milestone:'''

=== Ferrofluid Art ===

[http://www.youtube.com/watch?v=PvtUt02zVAs]

<br clear=all>


<!--
<!--

=== Trick Shot Pool Robot ===

=== Science Roadshow ===

=== Marionette ===
=== Marionette ===


Line 39: Line 81:


'''Week 8 milestone:''' Demonstrate trajectory following of sinusoidal motions by a carriage along a linear rail using either a stepper motor or a motor and encoder.
'''Week 8 milestone:''' Demonstrate trajectory following of sinusoidal motions by a carriage along a linear rail using either a stepper motor or a motor and encoder.

=== Whisker-Based Tactile Profilometer ===

(Client: Prof. Mitra Hartmann.)
Use a whisker-like sensor to measure object shapes in 3D, without use of a laser scanner. A simple length of wire (a "whisker") can be tapped along the contours of an object to extract the object's complete 3D shape. You will build a whisker/follicle combination actuated at the proximal end by a motor. The proximal end of the whisker will also be outfitted with strain gauges to measure bending moments and axial force. By moving the wire over an object and sensing these forces and moments, the object's shape can be reconstructed. Find some cool videos of rat whisking [http://www.mech.northwestern.edu/hartmann/Publications.html here] (scroll down to the eighth paper or so).


=== Experiment in Nonlinear Dynamics: Ball Bouncing ===
=== Experiment in Nonlinear Dynamics: Ball Bouncing ===
Line 59: Line 96:
'''Week 8 milestone:''' Demonstrate control of one speaker using a signal generator chip and analog (knob) inputs to the PIC. Show initial (traditional) Chladni patterns.
'''Week 8 milestone:''' Demonstrate control of one speaker using a signal generator chip and analog (knob) inputs to the PIC. Show initial (traditional) Chladni patterns.


=== High-speed Wireless Communication ===
-->
=== Furuta Pendulum (Inverted Pendulum) ===


To allow two PICs, or a PIC and a PC, to communicate wirelessly, we are currently using RS-232 and the xbee 802.15.4 chips. RS-232 is an old technology, and the data rates are relatively low in this solution (250 kbps max for the xbee chips, and typically 115.2 kbps for RS-232). In this project, you will develop a new higher-speed solution based on faster SPI communication and [http://www.sparkfun.com/commerce/product_info.php?products_id=691 this wireless product]. You will demonstrate high-speed wireless communication between a PC and the PIC. You will then demonstrate the high-speed communication by some dynamic task, such as wireless teleoperation of a one-dof robot arm as it juggles a ball or balances an inverted pendulum.
[[Image:furutapendulum.jpg|right]]
Build an inverted pendulum system to experiment with balancing control algorithms. This kind of inverted pendulum is called a Furuta pendulum. A motor controls the rotation of a horizontal beam about a stationary vertical pivot axis, and a second beam rotates freely about an axis along the horizontal beam. The goal is to take the second beam from the hanging down configuration to balanced in the up configuration. An encoder measures the angle of the second beam. The motor pumps energy into the beam, then (probably) switches to a stable linearizing controller when the beam is vertical. See [http://www.control.tfe.umu.se/Set_Ups/Furuta_Pendulum/Furuta_Pendulum_info.html this page], for example. This problem is a challenging dynamic task, and is impressive when it works.


'''Week 8 milestone:''' Have the mechanical system nearly finalized, with controlled motion of the motor. The swing-up and balancing algorithms do not have to be implemented yet.
'''Week 8 milestone:''' Demonstrate high-speed wireless communication and finalize the mechanical details of the dynamic task.


-->
=== Educational Control System ===

You can create an inexpensive educational control system, where students learn to develop controllers to stabilize a mechanical system. You can check out [http://www.quanser.com/english/html/challenges/fs_chall_overview.html this page] for ideas.

<br clear=all>


=== Other Ideas ===
=== Other Ideas ===
Line 83: Line 114:
== Class Selections ==
== Class Selections ==


The '*' indicates that a proposal is due.
The * indicates that a proposal is due.

* Team 11: Rolling Manipulation
* Team 12: Furuta Pendulum
* Team 13: Ferrofluid Art
* Team 14: Swarmbot
* Team 15*: Remote-controlled Guitar
* Team 21: Music Suit
* Team 22: Pantograph Haptics
* Team 23: High Speed Motor Control
* Team 24: 6-DOF Shaker Table
* Team 25: Conservation of Momentum Locomotion
* Team 26: Electrosense
* Team 27*: Fridge Can Launcher


<!--
<!--

Latest revision as of 07:27, 10 March 2010

Students working on the projects listed below may begin their work right away, upon approval. Students wishing to propose their own project must write a proposal of approximately 3-5 pages, with at least one drawing (hand drawing OK) showing the whole device, a paragraph or two discussing the overall function and goal of the project, as well as discussions of the sensors and actuators you will use, the computation, and the mechanical design. Although you do not have to have worked out all the details, the proposal should show that you've thought about how the whole project will work. It can be a fun whimsical project, or it can solve a practical problem. Previous projects are a good indicator of what's possible. Your proposal must also include milestones to be met during week 9.

Your final project cannot be a robot for DC.

Projects will be judged on functionality (does it do what it's supposed to do? does it serve a useful function?), reliability (does it do it every time?), ambitiousness (is the problem challenging? did you contribute a new capability to the wiki?), and aesthetic appeal (is it packaged nicely? is it pleasing to watch or fun to interact with?).

Recommended Projects

Underwater Electrosense

Electrosense is a new underwater sensing technology being developed at Northwestern. The sensor's emitters generate an electric field, and detectors sense perturbations in the electric field due to objects in the environment. Robots carrying the sensor can determine their own position in a known environment, or identify objects in an unknown environment.

This project will develop a new kind of electrosensor and place it on a robot moving along one linear direction (e.g., a sensor on a ball screw carriage). The sensor will generate fields at different frequencies and use the frequency-dependent response to characterize the impedance of nearby objects. The robot will scan the sensor along one degree-of-freedom to generate an "electrosense image" of the environment.

Week 9 milestone:

High-speed Motor Control with Your PC

You will make motor control PICs that make it easy for anyone to do high-speed encoder-based feedback control of brushed DC motors with only a few dollars of hardware and a cable to connect to matlab on your PC. Your project will build on this project, see also this project, and will consist of a "master" PIC that communicates with the PC plus any number of "slave" PICs, one for each motor to be controlled. The job of the master PIC is to take the program, written in Matlab or Processing, and communicate it to the slave PICs, and to coordinate the initiation of moves by the slave PICs, which implement PID controllers at rates up to 2 kHz. Your final project will demonstrate high-speed trajectory following by a 2-DOF parallelogram linkage that can throw and catch objects in a vertical plane. Optional: use external memory to perform data logging at each slave PIC, and send this data back to the PC upon request.

Week 9 milestone: Demonstrate controlled moves by the motors following a simple program in matlab, and show a design of the parallelogram linkage.

Portable 6-DOF Vibratory Platform for Parts Manipulation

The PPOD is a 6-degree-of-freedom vibratory platform that manipulates multiple parts simultaneously. See this video, for example. You will make a small, portable version (PPOD-Lite) that uses 6 small speakers arranged with 3 acting in the horizontal plane and 3 acting vertically. It will have 6 axes of accelerometer feedback on the motion of the plate, and it will use FFTs of the accelerometer data to update the periodic speaker control signals so that the plate learns to follow the desired periodic motion profile. Desired motion profiles will be sent to the plate via a USB connection with a PC. Power for the device will come from a power adapter plugged into the wall.

Week 9 milestone: Have the mechanical design completed, and be able to command analog profiles to the speakers and read in analog signals from the 6 accelerometers.

Swarm Robot

The e-puck is a small PIC-based mobile robot. These are being used for different research projects at Northwestern, including swarm robotics. These robots cost nearly $1000 each. For most swarm projects, though, we should be able to build a mobile robot that costs 1/10th of that, based on the more powerful PIC32. This project is to build a prototype of this "cheap puck" swarm mobile robot, including a first version of the control software. The robot will use two geared stepper motors for its wheels, xbee wireless radio communication, a light color sensor for sensing the environment, and a unique LED pattern for each robot so that an overhead vision system can recognize each robot's position and orientation.

Week 9 milestone: Have the mechanical system and circuitry essentially finalized, and basic code to drive the motors and speak RS-232 over the wireless xbee. (The last week will focus on software and control system development.)

Furuta Pendulum (Inverted Pendulum)

Furutapendulum.jpg

Build an inverted pendulum system to experiment with balancing control algorithms. This kind of inverted pendulum is called a Furuta pendulum. A motor controls the rotation of a horizontal beam about a stationary vertical pivot axis, and a second beam rotates freely about an axis along the horizontal beam. The goal is to take the second beam from the hanging down configuration to balanced in the up configuration. An encoder measures the angle of the second beam. The motor pumps energy into the beam, then (probably) switches to a stable linearizing controller when the beam is vertical. See this page, for example. This problem is a challenging dynamic task, and is impressive when it works.

Week 9 milestone: Have the mechanical system nearly finalized, with controlled motion of the motor. The swing-up and balancing algorithms do not have to be implemented yet.

Other Educational Control System

Create an inexpensive educational control system, where students learn to develop controllers to stabilize a mechanical system. You can check out Quanser for ideas. A successful final project could be a prototype for future EECS 360 or EECS 374 labs or projects. An example is the Furuta pendulum, above.

Monkeybot 2

Last year a student team built the Monkeybot, seen in this video. It uses two electromagnets on bearings with encoders, and a DC gear motor with encoder, to locomote dynamically on a steel wall. The proposed project is to build something similar, except wireless and with only one electromagnet. This robot "flings" itself from handhold to handhold. It can also implement a control algorithm to take it from hanging straight down to balanced in the up position.

Week 9 milestone:

Rolling Manipulation

Build a research apparatus for control of rolling manipulation. See this page for example, and this previous project page. Your apparatus will be used in future research experiments in stabilization of dynamic rolling. It will likely make use of a resistive element and a conductive ball for sensing.

The "butterfly" you see in the examples above is a form of "contact juggling." Check out this video of Michael Moschen to see other contact juggling (with the butterfly about halfway through). Check out other Michael Moschen videos on youtube to see some amazing performances!

Week 9 milestone:

Ferrofluid Art

[1]



Other Ideas

  • Claude Shannon, known as the "Father of Information Theory," made a bounce juggling machine many years ago, perhaps the first to make a real juggling machine. It uses no sensor feedback. See the video at [2]. Can you build something similar?
  • This would make a great demo if you had a dog! See [3].
  • Build a 2-DOF pizza manipulator. See [4].

Class Selections

The * indicates that a proposal is due.

  • Team 11: Rolling Manipulation
  • Team 12: Furuta Pendulum
  • Team 13: Ferrofluid Art
  • Team 14: Swarmbot
  • Team 15*: Remote-controlled Guitar
  • Team 21: Music Suit
  • Team 22: Pantograph Haptics
  • Team 23: High Speed Motor Control
  • Team 24: 6-DOF Shaker Table
  • Team 25: Conservation of Momentum Locomotion
  • Team 26: Electrosense
  • Team 27*: Fridge Can Launcher