For our project, we will attempt to deliver and retrieve objects using a TurtleBot and Sawyer. The TurtleBot should be able to move from a start location to the base of the Sawyer to deliver an object. The Sawyer robot arm should then be able to pick up the objects and place in a storage bin. Our project will enable us to create a futuristic robotic delivery system within a distribution center.
We chose to place AR Tags on the base of the robot to enable us to localize the robot and the objects to retrieve in a single camera frame. By not using camera on the Sawyer, we avoided the problems related to fisheye lens like range issues. We traded off some accuracy in transforms from the camera to the base of the robot to get a more reliable and larger field of view that the web camera provides. We also chose to use the SLAM algorithm for both generating an offline map and path planning on the TurtleBots. This allows us to avoid objects dynamically and travel to fixed start and goal coordinates relative to the map. The advantage of this was a rather robust system that could path plan between to points on an offline map of the room. The main disadvantage was that map creation was not entirely autonomous. However the map of the room only needs to be made once so this is not a major issue.
Using the webcam is very robust and efficient but is highly dependent on the camera's depth perception to be accurate. This would have been an issue with either camera but using a separate camera introduced some error in transforms relative to the base of the robot. We, however, were able to see AR Tags cleanly which we wouldn't have easily been able to do on the Sawyer.
https://github.com/SahilSancheti/ROS-Delivery