Many years ago, I was working on a MSc Project with A #ROS robot called Baxter
The MSc project was around collaborative robotics and VR. - The idea was that you could reach out and touch a surface in VR, and that that surface could be manipulated by the robots end-effector - for example, a doorknob.
I had a few good prototypes working, (including the doorknob example) but ultimatly the project didnt progress
Ill try to dig up a video of this some time!
Sadly the company that built and maintained Baxer - https://www.rethinkrobotics.com/ Decided to discontinue this model, and no longer support it.
As such, it was hard to give to other students, and so it was decided to build a demo out of baxter.
So I rigged a robot to hug people, and print stickers...
The project was split into 3 seperate systems.
Server
The server was a python flask http server, which worked to orchestrate the system.
- It requested/responded to data from the android app (image files and triggers)
- It handled the ROS communication to replay pre-recoreded robot path movements.
- It used python, and opencv to generate the final sticker files.
- It used a bespoke printer driver developed by epson to print the final sticker!
Android App
This was a very early cordova app that was designed to run on the tablet - a rooted Amazon fire tablet. The app was written in javascript, compiled for Android.
The app sent push/get commands to the Server, and also used the camera to obtain the "Selfie" image.
Robot
The Robot itself was running ROS, and I wrote a custom application designed to replay specific motion paths.
ROS is (or was at the time) not really designed to do specific repeatable motion paths. It was designed to be more specific - eg "Move from XYZ to XYZ". But since we are dealing with close proximity to humans, we needed a more consistant approach.
The application instead worked its way through a series of points, with a threshold for achieving each one.
As the "Hug" action takes place, the threshold was increased, to allow for "larger" or "smaller" people.... (if someone with a larger body mass gets hugged, the robot doesnt try to squeeze too hard!)
Legacy.
The demo has now been running for almost 8 years, and as of 2024 seems to still be working!
One day I suspect baxter will break down. Hopefully I will be called back to fix him...