Teja Kanthamneni, Moaaz Akbar, Saajid Ahmed, Aaron Guo
This project was inspired by Teja’s previous research with UC Berkeley's Kaylene Stocking about the game of Alchemy, in which pairs of items in a state space have opposing effects that are initially unknown. Our robot solves an exploration problem that involves integrating feedback from its surroundings. We have multiple colors of objects and each one is only valid at a corresponding goal state, but the robot does not have this information until it first attempts to deliver a cup to a goal. Additionally, we created an environment with multiple rooms to introduce an additional layer of complexity to exploration and path planning due to partial observability.
This problem applies to real-world applications because autonomous robots often do not know everything about their environment and will need to adapt to their environment to perform their tasks. One example is search and rescue operations, where one may have an initial map, but the environment was altered due to a disaster, and the robot must explore, interact, and navigate through the novel environment in real time to deliver aid.
Our Environment
An H-shaped room that provided partial observability, requiring exploration to find objects and goal positions
Multi-colored plastic cups as objects
Multiple goal regions marked by AR tags on the wall
Objectives:
Explore and map the environment out
Autonomously move one cup to one goal
Incorporate feedback about whether more cups of that color should go to that specific goal or not
Continue moving cups to their correct goals until there are no cups remaining
Hardware
Turtlebot 2 using ROS Kinetic run on lab laptop
Astra camera with RGB capabilities and a depth sensor, used for cup detection and room mapping
Ideally, we would have used a LiDAR for mapping and the camera for cup and goal detection, but we did not have access to a functioning LiDAR with our hardware constraints.
Velcro to grab the cups
This is not a robust solution for a real-world application, where actuators would likely be necessary. However, this somewhat abstracted the actuators away from our problem so that we could focus on the more important goals like mapping, autonomous planning, and incorporating feedback.
Software
Perception:
ROS packages to convert the camera depth image to a laser scan to build an occupancy grid using SLAM
OpenCV HSV color detection to detect multiple different colored cups combined with depth information to find their 3D position in our world frame
Occupancy grid data conversion that allows us to navigate around obstacles and walls via our A* path-planning algorithm
Path Planning:
Implemented an A* path-planning algorithm that took in a multi-modal map and object position data and outputted a set of waypoints that followed a smooth path and avoided obstacles.
The complete system works as follows:
1. Environment Exploration
In this phase, our robot is teleoperated into both rooms (which initially do not have any objects) to generate its initial mapping of the walls in the environment
The robot also initially locates the AR tags and finds a 3D position in front of the tag to represent the goal zone
2. Cup Search and Acquisition
The robot goes to the center of the environment and autonomously spins until it detects a cup.
Once the cup is found, the robot computes the 3D position of the cup using HSV and the depth sensor. The process was improved and generalized such that it can search for and detect a variety of colors simultaneously and report which classification of the cup it sees.
The 3D location of the cup is passed into our modified A* path-planning algorithm, which then outputs waypoints to the cup.
Then via an autonomous PID controller, follows the path of waypoints and arrives at the cup.
3. Cup Delivery
Once the TurtleBot has reached the cup, it uses the A* path planning algorithm again to plan a path from the current position to one of the previously saved goal states while avoiding the walls and other objects.
4. Response to Human Feedback
Once it delivers the first cup, it awaits human feedback that tells the robot if the cup delivered is the right color for that goal.
5. Deliver the Remaining Cups
The TurtleBot now knows which cups should go to which goals and can correctly take the remaining cups to their corresponding goal state.
Using this information, the turtlebot goes back to the center of the environment and repeats steps 2 and 3 to deliver the remaining cups.
The full system design is shown below:
Our robot successfully performs the complete system described above. While we needed to alter the design in a few ways to make certain tasks easier (for example, using velcro rather than an actuated or releasing claw and using manual control for mapping the environment), the robot achieved the fundamental goals of exploring an environment, performing tasks within that environment, factoring in external feedback, and finishing the tasks with the new feedback.
Visualizations of the SLAM algorithm and the A* path planning algorithm that uses the mapped occupancy grid are shown below:
Occupancy Grid generated by SLAM
Visualization of A* path planning
Our project establishes a unique challenge and environment setup and attempts to complete the task through classical control methods. This serves as a baseline to allow for testing and improvement in efficiency and accuracy through simulating and training an RL agent.
Difficulties
Numerous issues relating to our hardware/firmware/software stack as the lab laptop was recently updated to ROS Noetic and Python3.
This required us to rewrite some previously abstracted functions.
A wired connection between our laptop and TurtleBot was required.
The laptop had limited bandwidth and processing power.
The fidelity of our data was limited by having to use converted depth sensor data instead of LiDAR, and we did not have access to a compatible LiDAR sensor.
The background of our environment in the lab room caused interference with the color detection.
We did not have a great way of grabbing the cups (working on this would take away time from the main goals of the project), so we used Velcro to grab cups, and we manually removed the cups once they were brought to the goal.
Future Improvements
Add more pairs of colored cups and more goals to better model Alchemy
Incorporate an active claw that does not require human intervention to function
Introduce more complexity by including object mobility as a variable
This might require a more robust hardware/sensor setup and/or substantial training and fine-tuning through RL to be able to combine all of these elements consistently.
Teja Kanthamneni
Teja is a 3rd year Computer Science major interested in modeling decision-making for autonomous robots. He has been working with Kaylene since last spring on a project dealing with unsupervised learning.
Moaaz Akbar
Moaaz is a 4th year EECS Major, interested in the intersection of ML and robotics, specifically Reinforcement Learning
Aaron Guo
Aaron is a 3rd year EECS Major and Mechanical Engineering Minor, interested in ML and robotics controls
Saajid Ahmed
Saajid is a 4th year EECS Major with experience in ML and chip design, interested in applying ML techniques to design advanced control algorithms and path planning systems for more autonomous and intelligent robots.
Contains our entire catkin workspace. We primarily made use of the mapping, perception, and plannedcntrl packages, where most of our original code was written.
We additionally made use of ROS packages depthimage_to_laserscan and ar_track_alvar.