RBE3000s Series

WPI's RBE3001 and 3002 series are advanced robotic kinematics, sensory integration, and embedded programming course offerings.

RBE3001 Final

Over the course of the 7 week term, we designed circuits for and programmed the ATME644 microchip to fucntion with a variety of sensors including potentiometers, encoders, strain gauges, ultrasonic rangefinders, and motor strain sensors. Additionally, we created and programmed control loops for DC motors and electromagnets. The final project attempted to combined all of these concepts with a 2 degree of freedom pick and place robot. The challenge was to pick blocks of different weights off of a moving conveyor belt, identify them based on weight, and then sort them into the correct bin. In order to make the problem a little more interesting, and because I was kind of on a MatLab binge after my brainwave detection and classification software, I created a communication schema between the ATMEL644 and a desktop PC and then ran all of my kinematics work on the PC. I think this was pretty brillant, if only because I was able to achieve superior path planning and velocity control. Also, it allowed for easier debugging, which meant we were only up time 4 in the morning the day this guy was due, instead of pulling another all nighter.





RBE3002 Final

The focus of rbe3002 was on mobile robotics kinematics. Again, using the ATMEL644, our task was to have our robot navigate a maze completely autonomously. We were given several rangefinders (IR and ultrasonic), a drive platform with encoded motors and sensor turret. For this project, we connected the mobile vehicle to a master PC via zigbee module, and had a Java applet coordinate the robot activities. Unfortunately, I seemed to have misplaced any video of the system in action, but the images below show the classy exploration GUI I created. Instead of using a grid of descrete values, our project group (Nick Smith, Eric Jones, and Nick Alunni) decided to implement probability masks based on the returns of different sensors, and high resolution probability grids (in the form of bitmaps), which were ultimately down sampled when it came time for running dijsktra's.

Any new map the robot started on was a midlevel grey. The robot new its own starting location, and by clicking elsewhere on the map, the robot knew its intended destination. It would then run a dijkstra algorithm on the bitmap to determine the least cost path to the target, with high probabilities (i.e. darker colors) having more cost to travel through. At a certain threshold, the robot would deem a path 'unsafe,' triggering a sensor sweep of the surrounding environment. From our experience, we knew that ultrasonics were very good at finding things that were not there, so a probability mask of a lightening cone (with gradient tapering off around the edges) was applied for the distance to obstacle range returned by the ultrasonic. Short and long range IR sensors were fused. They were usually very good at placing an obstacle with precision, so their returns applied circular darkening probability masks to the map. These masks were combined with the current map features using the laws of probability, and then dijsktras was run again.Below are the images of the system running along one of the straight sections of the maze, and the second two are theoretical test cases demonstrating the iterative search, sensor sweep, and path following of the system. Hurray!