REU Project: Jackson Benning

Project #1: Obstacle avoidance for apple orchards

The first project I worked on was obstacle avoidance for movement in apple orchards. For the apple orchards, I covered both even and non even spaced rows. In the apple orchard problem you have two waypoints, one at the beginning of the first row and one at the end of the last row. One assumption I make is that you have accurate gps data(which my lab has). Your goal is to navigate through each row from the start to the end waypoint without hitting any of the trees along the way. I did this by separating the problem into two parts: driving in between the rows and turning. While driving in between the rows, I calculate the distances from the center of the robot to the trees on its right and its left. Then I issue velocity commands to its wheels in order to get the robot to have about an equal distance from it to the trees to its right and left. I know that the robot is at the end of a row when its y position is past the y coordinate of either waypoint. Then, this means the turning portion of the movement needs to start. For turning, I keep one wheel speed the same speed as it is when the robot is going straight. I then calculate the other wheel speed in order for the robot to arrive just past the first tree of the row it is turning into. Then drive straight until you are past the y coordinate of the waypoint and then start the straight process again. This process relies on the fact that the robot will be in the center of the row facing towards the end of the row when it starts turning in order to archive a good turn. I started out by solving the turning problems for even and non even spaced rows separately, but when i solved the non even spaced rows I realized I could use the solution for both problems. Two videos showing the robot in simulation are shown below.

Project #2: Autonomous navigating of indoor environments for simple robotic platform

The second project I worked on was autonomous navigating in indoor environments for a simple robotic platform. I used a create robot, pictured below, and the goal was to have it navigate in a known map, also pictured below. To do this I used the ROS navigation stack. The package provided by ROS does everything from building and localizing in a map to high and low level path planning. This project was stalled because I ran into an error with the package that deals with building and loading maps that I couldn't find any documentation for. I then ran out of time in my summer experience to do more with this project but if I had more time I think I would switch to a new computer, do a fresh installation of every package required, and then I'd be pretty confident that I could fix the bug and get it running. The only thing stopping me from finishing the project was the small error but other than that the project was pretty much finished.