computational robotics

from tasks to motions

Senior Design

Senior design is a two-semester course where senior undergraduate students work closely with a faculty member on a senior-design project, which provides the students with research experience. If you are a junior or a senior student and are interested in doing your senior-design project in Robotics or Artificial Intelligence contact me so that we can discuss possible projects and set up a research plan. You can work on KUKA youBot, iRobot Creates equipped with Kinect senors, laser-range finders, and wireless cameras.

KUKA youBot iRobot Create Kinect Wireless Camera Laser-Range Finder
Check out some of the previous senior-design projects that I have advised:

Self-Balancing Skateboard (2014--2015)

Matthew Dillon, Jorge Coronado

Self balancing robotics has been readily deployed in several modern control systems, particularly in the aviation industry and autonomous robots. Our goal was to design a self-balancing robotic control system for a skateboard that will balance a variety of loads, particularly a human user under a reasonable terrain and environment. The design of the system is similar to that of the inverted pendulum control system, which consists of a gyroscope and accelerometer sensor input to a microcontroller. The Arduino fuses the sensor data and calculates using a PID motor controller, the appropriate speed for motors to balance the system. Closed loop feedback is used to take the input inclination angle from the sensors and make the corrections based off the closed-loop error. To test the system response, MATLAB simulations were performed where the system was modeled as an inverted pendulum in order to show the system is stable. Parameters such as rise time and percent overshoot were found from plotting the real-time response. Future work includes enhancing the self-balancing algorithm for balancing the roll, rather than limiting it to pitch as well as a more compact hardware design

Real Environment Collision in Virtual Space (2014--2015)

Matthew Melly, Lance VanArsdale

The objective of this project is to create an augmented reality system. The system will allow the user to introduce virtual objects into a physical environment and to simulate the interactions between the two. There are many applications for this type of system in areas of industrial training, entertainment, and advertising. For example where training might be an expensive endeavor, this system could reduce the costs of training and increase its portability. To our knowledge, this kind of system has not been robustly implemented using open source, easily obtainable, and low cost components. The hardware for this project consists entirely of off the shelf materials and custom parts that can be easily manufactured at home or on a 3D printer. Specifically, this project will take Xbox Kinect, Oculus Rift DK2, and generic webcams to create the augmented reality platform. The Xbox SDK and Unity/Oculus SDKs will also be used to write the software. As part of the contributions of this project, all of the source code generated as part of this project will also contribute to the open source community surrounding the Oculus Rift.

Motion Planning with Moving Obstacles

Phuong Pham

This project develops a motion-planning program that enables a robot to autonomously reach a goal region while avoiding collisions with static and moving obstacles. The project is motivated by driverless cars which are required to autonomously avoid collisions not only with static obstacles but also with other moving vehicles. Another application relates to robotic-guided tours, where the robot needs to avoid collisions with people as it gives a tour of a museum or a university building. The presence of moving obstacles makes the problem more challenging, since the robot needs to modify its path on-the-fly as it encounters moving obstacles. To address these challenges, the program combines global path planning with local obstacle avoidance. Global path planning is based on the Rapidly-exploring Random Tree (RRT) approach, which computes a path to the goal that avoids collisions with static obstacles by creating a tree of feasible motions from the current robot position to the goal. If the robot encounters any moving obstacles as it executes the planned path, then repulsive potentials are used to move the robot away from the obstacles. Once the robot is at a safe distance, RRT plans another collision-free path to the goal. The process of planning paths and moving away from encountered obstacles is repeated until the robot successfully reaches the goal. The program is implemented in simulation and on an iRobot roomba equipped with an Xbox Kinect sensor for obstacle detection.

Motion Planning with Multiple Goals

Minh Le

The aim of this project is to develop a program that can plan a short path that enables a robot to reach multiple destinations while avoiding collisions with obstacles. The project is motivated by industrial applications where the robot is required to minimize the distance it travels from one factory station to the other. The strength of the program is derived from its probabilistic sampling, which allows it to create a roadmap of collision-free routes that the robot can follow. The roadmap is created by first sampling robot configurations and then connecting neighboring configurations via straight-line paths, keeping only configurations and paths that are not in collision. The roadmap is then searched using a variant of Dijkstra's shortest-path algorithm to find a short path that reaches all the specified destinations. In addition to simulation, the program is implemented on an iRobot roomba, which obtains obstacle information via an Xbox Kinect sensor.


Motion planning with multiple goals in simulation

Motion planning with multiple goals using the iRobot Create

Exploration of Unknown Environments by a Team of Robots

Joseph Lattisaw

This project develops a computer program that enables one or more robots to autonomously explore an unknown environment while maintaining communication with one another so that no robot gets lost in the process. The project is motivated by applications in Mars exploration, search-and-rescue missions, and exploration of hazardous environments where it is difficult or impossible to send humans. The program starts by constructing a virtual grid of the environment. Breadth-first-search is then used to determine the next target cell that the robot needs to explore. As the robot moves toward the unexplored target cell, information gathered from its sensors is used to mark encountered cells in the virtual grid as either free or occupied by an obstacle. In a team of robots, one robot takes the lead, while the other robots explore neighboring areas as they follow the leader. The program is implemented in simulation and on iRobot roombas equipped with Xbox Kinect sensors and laser-range finders to detect obstacles.