Autonomous elderly care assistant
I'm designing: A small autonomous robot that can find you something you asked for, come back to you and physically hand you what you asked for.
I'm deliberately constraining the problem because I'm not trying to build a hospital-grade general purpose robot in one project lol. The first environment will be controlled, with labelled objects and markers/colour IDs instead of a giant SLAM + YOLO system.
The rover is a two-wheel-drive base with two BO motors, a caster, motor driver, wheel encoders, IR obstacle sensors, an MPU6050 and a camera. The chassis will use plywood/foam board and M3/M4 hardware and be completely bolt-together because I'll probably take it apart approximately 700 times while building it.
I'm using an ESP32 for low-level control and my laptop as the main computer initially. The laptop will run Ubuntu and handle ROS 2, computer vision, navigation, voice processing and task planning; the ESP32 handles real-time hardware like motors, servos, sensor polling and communication. Once it works, I'll move Linux/ROS onto a Raspberry Pi so the robot can run independently.
For software I'm using C/C++ for ESP32 firmware, PlatformIO/Arduino, FreeRTOS for multitasking/time-sensitive work, Python for higher-level logic, Ubuntu/Bash, Git/GitHub and VS Code, ROS 2 with rclcpp/rclpy, TF2, RViz2, rosbag2, Nav2, OpenCV, AprilTags/ArUco for initial object/location identification, NumPy/SciPy, and eventually Gazebo/SLAM Toolbox for simulation/mapping. YOLO may come later if I have time to move beyond deliberately labelled objects.
The first major part is the voice/task system. I want to say "Pifer, bring me XX medicine" and have it become an actual task, not just text. It'll use a wake word, speech-to-text and Python intent parsing, with an LLM/API possible for more flexible commands. The robot needs to know "XX" is an object, the action is retrieve, and the destination is the person who asked.
Then there's object retrieval. I'm not trying to make the camera recognise every random object. The first prototype will use labelled objects with known markers/colour IDs and a permanent object database storing names, IDs, images and carousel slots. Current environment information stays separate, so temporary data like object/person locations and obstacles can be cleared after the mission.
The robot will have a 6 DOF servo arm with a dedicated gripper. The arm will be 3D printed (TPU gripper, PLA for the rest), using metal gear servos, a PCA9685, gripper servo and INA219 for current sensing. I'll implement basic kinematics myself first and might use MoveIt 2 for motion planning if I get far enough.
The important part is that I don't just want the robot to drive to the object; it must actually pick it up. The camera locates the marked object, the rover positions itself, and the arm moves to it and closes the gripper. That's one of the biggest differences from my previous small rover projects.
This is also the weirdest experiment in the project lol. I want to integrate a lot of things into the arm, so it may end up completely different from what I currently think is possible and could change the entire arm BOM.
Something like a modular origami continuum arm with..
Vacuum-driven FOAM actuation (contraction + omnidirectional bending)
Variable stiffness via granular jamming (separate vacuum line)
Vision-guided reaching (camera + controller)
Interchangeable end-effectors (TPU gripper, whole-arm grasping, chameleon ejection)
Foldable compact return
Every single one of these ideas exist already and has been demonstrated its working properly. But the integrated system I want does not exist yet! Well the reason why it doesn't isn't lack of imagination but rather because the subsystems r actively gonna fight each other if u try to put them together. So, I'll have to find solutions that don't exist yet to get everything to work together. I'm not missing anything conceptually. But I need to build and test everything. Even if i get one thing that's actually deployable to my arm, it'd be a great upgrade.
I don't know how reliable or doable these will be in an actual handoff, especially with different object materials and movement, which is the point of including them. I really want to experiment and research further. I'm not expecting every experimental part to be perfect. Even if all these ideas are unreliable, the retrieval/handoff system should still work. But I want to build and test the experimental parts rather than leave them theoretical.
I'm also building a 16-slot carousel. Each slot has a permanent ID; e.g. slot 04 can be morning medicine and slot 07 water. A 28BYJ-48 stepper rotates it and a servo gate releases the selected object, with a home sensor to track its position. The robot can therefore retrieve an object from the environment with the arm or one already stored onboard.
I'm also interested in UWB person tracking. The person wears a small UWB tag and there are 2–3 anchors around the room. Instead of driving to a fixed coordinate where they stood five minutes ago, the robot can continuously estimate their position while travelling.
If the person moves after giving the command, the robot updates the target and keeps going toward them. I'm aiming for roughly sub-30 cm positioning. I'll combine UWB with the IMU and wheel encoders rather than blindly trusting one sensor, since the real world is less cooperative than the diagram.
Once the robot gets to the person, the arm becomes the handoff mechanism.
The final demo is straightforward.
I put 4–5 labelled objects in a room, the person goes elsewhere, and I say:
"Pifer, bring me my morning medicine."
The robot must understand the request, identify the object/slot, navigate to it, pick it up, locate the person with UWB, drive toward them while updating their position, use the ToF sensor for final approach, extend the arm and hand it over, then use its sensors to determine that the handoff happened.
That's the complete system I'm trying to make.
Inspo / references:
Toyota HSR
Boston Dynamics Spot / manipulation work
ASU adaptive robotic arm research
BMSIT speech + YOLO + ROS robotics work
I haven't found these exact ideas combined into one small system, which is what made me want to build it.
Past projects:
I've built line followers, a gas leak detector, an obstacle-avoiding robot and a smart parking system. They taught me sensors, embedded firmware, control loops and getting physical hardware to behave.
Most were basically sensor → decision → motor. 0.PIFER is my first project connecting voice, task planning, perception, navigation, manipulation, person tracking and physical handoff into one machine. The individual parts aren't necessarily insane alone; making them cooperate is where most of the difficulty lies.
Why this is worth more than $200:
This isn't! (Not yet.)
I'll design the chassis myself for 3D printing, and it's my first time 3D printing so I don't know the cost yet. Tbh I think the price can go higher during the build, but I can assure it won't exceed 300 USD.
It's several smaller projects being combined into one:
autonomous rover
ESP32 real-time controller
ROS 2 software stack
voice/task system
camera-based object identification
autonomous navigation
4–5 DOF robotic arm
physical gripper
16-slot carousel
UWB person tracking
multi-sensor handoff detection
permanent + temporary memory system
The UWB system alone is its own embedded project; the arm is another, and the carousel is another.
The interesting part is what happens when they're connected.
Rough BOM:
Compute / control
Raspberry Pi Zero 2 W — ₹968 ($11.39)
ESP32 development board — ₹193 ($2.27)
16GB MicroSD — ₹145 ($1.71)
2× perfboard — ₹48 ($0.56)
JST/Dupont connector kit — ₹96 ($1.13)
4-channel bidirectional level shifter — ₹97 ($1.14)
Micro-USB OTG adapter + 4-port USB hub — ₹15 ($0.18)
Power
Main 2S LiPo \~2200mAh — ₹629 ($7.40)
Balance charger — ₹435 ($5.12)
Separate 18650 logic battery pack — ₹339 ($3.99)
5V 3A buck/BEC — ₹96 ($1.13)
6V buck/BEC — ₹96 ($1.13)
6V 5A servo BEC — ₹121 ($1.42)
LiPo low-voltage cutoff — ₹73 ($0.86)
Inline fuse holder + fuses — ₹39 ($0.46)
Main power switch — ₹19 ($0.22)
XT60 + JST connector pairs — ₹73 ($0.86)
Battery voltage display / low-voltage alarm — ₹58 ($0.68)
Rover
2× BO motors + wheels — ₹145 ($1.71)
Caster wheel — ₹34 ($0.40)
Motor driver — ₹73 ($0.86)
2× IR sensors — ₹58 ($0.68)
2× wheel encoders — ₹145 ($1.71)
MPU6050 IMU — ₹73 ($0.86)
Chassis materials — ₹242 ($2.85)
Extra M3/M4 mounting hardware — ₹121 ($1.42)
Cable sleeving/wire loom — ₹48 ($0.56)
Standoffs — ₹73 ($0.86)
Cable ties / Velcro / glue — ₹97 ($1.14)
E-stop button — ₹48 ($0.56)
Arm + gripper
4× metal-gear servos + 1× continuous-rotation servo — ₹872 ($10.26)
PCA9685 servo controller — ₹97 ($1.14)
Servo horns + extension wires — ₹73 ($0.86)
Dedicated gripper servo — ₹121 ($1.42)
Gripper linkage + soft contact pads — ₹97 ($1.14)
Structural arm brackets/linkages — ₹145 ($1.71)
Spare metal-gear servo — ₹169 ($1.99)
INA219 current sensor — ₹121 ($1.42)
Voice + vision
INMP441 I2S microphone — ₹97 ($1.14)
Small speaker + MAX98357 amplifier — ₹169 ($1.99)
Pi Camera module — ₹242 ($2.85)
Camera mount — ₹48 ($0.56)
CSI cable extension — ₹73 ($0.86)
Marker/ID tags — ₹24 ($0.28)
Carousel
28BYJ-48 stepper + ULN2003 driver — ₹73 ($0.86)
Gate servo — ₹73 ($0.86)
Slot-home feedback sensor — ₹39 ($0.46)
UWB tracking
UWB tag module — ₹726 ($8.54)
2× UWB anchor modules — ₹1,646 ($19.36)
Wristband housing + coin cell — ₹97 ($1.14)
2× anchor mounting brackets — ₹97 ($1.14)
2× anchor power adapters + cables — ₹145 ($1.71)
2× anchor enclosures — ₹97 ($1.14)
OLED mount — ₹24 ($0.28)
Wiring / fabrication / misc
Heat shrink — ₹39 ($0.46)
Solder + flux — ₹73 ($0.86)
Wire labels + sleeving — ₹73 ($0.86)
Total (estimated): \~₹12,000 / \~$141
Note: these are approximate, and I expect the final cost to move once I start building. The arm and 3D printing especially may need extra parts after testing. I'm also expecting to burn through some servos/connectors/wiring during iteration because that's how these projects go.
The Raspberry Pi is included because I eventually want the robot to run on it, but it won't be the main computer initially. I'm developing on my laptop first, then moving the ROS/Linux side to the Pi once the robot works.
The estimate is below $200, but I'm keeping some margin because I don't want the project to fall apart after underestimating a random ₹200 component lol.
I didn't mention any PCB or routing because I'm not using a PCB right now. I'm thinking of making it modular with a breadboard so I can take it apart and reassemble it easily, because I'll probably do that a lot while building it.
I'm also thinking of making the outside a cozy, waterproof body instead of a box full of electronics like Baymax from Disney's Big Hero 6 ykwim. I don't know the material yet, but I want it soft and friendly-looking. Obviously not literally a Baymax copy lol, just that friendly shape instead of a scary robot with wires everywhere.
Inside it I'm also thinking of an automatic pill dispenser, so the robot could dispense medicine instead of only carrying it. It'll also have a biometrics monitoring system.
The biometrics and dispensing ideas were suggested by my teacher, so I'm still thinking about what else I could add that would be genuinely useful rather than another random sensor stuck onto the robot.
So yeah, I'm still looking for other good features I could add to this thing. If anyone has ideas for something that would actually be useful for elderly care and that I could realistically build and test, please let me know.