NASA Lunabotics Engineering Challenge
Semester 2 Plan
(as of 1/22/20)
Members:
-
CSE
-
Anton Godez - agodez2016@my.fit.edu
-
-
Non-CSE
-
Timothy Blackman - tblackman2016@my.fit.edu
-
Joshua Connolly - jconnolly2016@my.fit.edu
-
Johnathan Watts - wattsj2016@my.fit.edu
-
Kelli Bara - kbara2016@my.fit.edu
-
Claudia Aguilera - caguilera2016@my.fit.edu
-
Kyle Bissonette - kbissonnette2016@my.fit.edu
-
Lauren-Ann Graham - lgraham2016@my.fit.edu
-
Prashoon Ashvinkumar Patel - prashoon2015@my.fit.edu
-
Jasrayman Thind - jthind2017@my.fit.edu
-
Archit Srivastava - asrivastava2016@my.fit.edu
-
Lobna Abdelraheim Salah Mahmoud - lmahmoud2016@my.fit.edu
-
Faculty Sponsor: Dr. S. Bhattacharyya
Client: Dr. K. Demoret (AEE Professor at FIT)
Client Meeting Date: 1/13/20, 1/15/20
Goal & Motivation:
The goal of the CSE part of the project is to develop a working autonomous driving and mining system that will require no human input. Currently, individual sections of the autonomous drive mode exist, however, last year’s team was unsuccessful in implementing any form of autonomy. Completing the challenge autonomously would yield a much higher score.
CSE Features:
​
-
Detecting Obstacles & Mining Point:
We will be using one Zed camera to navigate through the field. First, the camera will find the mining point, using a marker, and begin to head toward it. Then, along the way, the robot will detect obstacles and move around them to get back on track to the mining point.
2. Shortest Path through Obstacles:
An obstacle is detected if there is a large difference in the positions of various 3D points in the robot’s field of view. Once the obstacles are approached and detected, the robot will then navigate around them using the Field D* algorithm while using the mapping of the obstacle(s) as reference.
3. Autonomous Driving & Mining:
We will develop an autonomous drive / mine mode for the robot. The start-stop times, power output, and direction will be synchronized among the drive motors by using ROS. Encoders will also be used for active feedback when any motor is successfully running. This feedback will be used to determine if the motor should stop running in case of an unforeseen problem or physical obstacle.
Technical Challenges:
-
The use of cameras to navigate the field involves various aspects of computer vision, however, I don’t have much experience processing output from cameras.
-
Sending information to the drive motors in serial would result in all the motors being desynchronized.
-
ROS has a rather steep learning curve, however, it is worth using considering the alternative of writing each individual piece of software.
System Architecture:
Success:
-
Defined by mining and depositing at least 1 kg of regolith in the collection bin.
-
Points are taken away by the weight of the robot. Points are awarded as more regolith is deposited in the collection bin. 3 lumpsums of points are individually awarded for each section of autonomy that works with no human intervention (navigation, mining, & deposition).
Progress Summary:
​
1. Implement class for autonomous control - 50% completion - Must achieve inter-node communication over a network
​
2. Field D* using camera output - 25% completion - Must analyze point cloud for algorithm
3. Integrating autonomous motor control with camera node(s) to navigate - 0% completion - Requires completion of first two features
​
4. Autonomous mining, deposition, & position finding - 0% completion - Must create other autonomous ROS nodes and implement using tele-op motor control
Milestone 4:
-
Complete autonomous control class: Allows for easy implementation in autonomous code through passing parameters to control the motors.
-
Inter-node communication over network: Get two ROS nodes on two different machines to communicate with each other over a network.
-
Analyze point cloud from camera: Use input from camera to create a 2-D map of the arena. Then use the 2-D map as input to the Field D* algorithm.
Milestone 5:
-
Improve error handling
-
Autonomous mining
-
Autonomous deposition
-
Autonomous position finding
Milestone 6:
-
Improve error handling
-
Any listed task not yet completed
* The order in which tasks are completed is subject to change