Capstone Project: The Autonomous Humanoid
Project Overviewโ
The Capstone Project is the culmination of 13 weeks of learning, integrating all skills from Modules 1-4:
Goal: Build a simulated humanoid robot that receives a voice command, plans a path, navigates obstacles, identifies an object using computer vision, and manipulates it.
Example scenario:
- User says: "Clean the room - pick up the red cup"
- Robot transcribes command using Whisper
- Robot uses LLM to understand task
- Robot navigates to cup using Nav2
- Robot detects cup using computer vision
- Robot grasps cup using manipulation controller
- Robot reports: "Task completed"
Learning Objectivesโ
By completing this project, you will demonstrate:
-
ROS 2 Mastery (Module 1):
- Multi-node system architecture
- Topic/service communication
- Launch file orchestration
-
Simulation Proficiency (Module 2):
- Gazebo or Isaac Sim environment
- Physics-accurate humanoid model
- Sensor simulation
-
AI Integration (Module 3):
- Isaac ROS perception (VSLAM, object detection)
- Navigation (Nav2)
- Real-time decision making
-
VLA Implementation (Module 4):
- Voice-to-action pipeline
- LLM cognitive planning
- Vision-language-action coordination
Project Requirementsโ
Minimum Viable Product (MVP)โ
Required features:
-
Voice Command Input:
- Use OpenAI Whisper for speech-to-text
- Support at least 3 commands:
- "Pick up the [color] [object]"
- "Navigate to [location]"
- "Stop"
-
Humanoid Simulation:
- Use Gazebo or Isaac Sim
- Humanoid with arms, legs, head
- At least 15 DOF (degrees of freedom)
- Stable standing position
-
Navigation:
- Use Nav2 or custom planner
- Path planning with obstacle avoidance
- Reach target within 0.5m accuracy
-
Object Detection:
- Detect objects by color or class
- Use YOLO, RT-DETR, or similar
- At least 80% detection accuracy
-
Manipulation:
- Grasp object using gripper
- Pick up and hold object
- Basic success: Touch object with gripper
-
System Integration:
- All nodes communicate via ROS 2
- Launch entire system with one command
- Graceful error handling
Extended Features (Optional)โ
Choose 2-3 for extra credit:
-
Advanced Manipulation:
- Place object at target location
- Two-arm coordination
- Force-feedback grasping
-
Dynamic Locomotion:
- Bipedal walking (not just sliding base)
- Balance control while moving
- Recover from push disturbances
-
Multi-Object Scenarios:
- "Pick up all red objects"
- Sort objects by color/type
- Handle occlusions
-
Natural Language Understanding:
- Complex commands: "Go to the kitchen and bring me a drink"
- Question answering: "What objects do you see?"
- Clarification questions: "Which cup - red or blue?"
-
Sim-to-Real Transfer:
- Deploy to physical Jetson Orin Nano
- Test on real camera/sensors
- Demonstrate on physical robot (if available)
-
Learning from Demonstration:
- Teleoperate robot to demonstrate task
- Learn policy from demonstrations
- Reproduce task autonomously
Project Phasesโ
Phase 1: Planning (Week 11)โ
Deliverables:
- System architecture diagram
- Node communication graph
- Task breakdown (Gantt chart optional)
- Risk assessment
Questions to answer:
- Which simulator (Gazebo or Isaac Sim)?
- Which object detector (YOLO, RT-DETR)?
- How will you handle failures (object not found, path blocked)?
- What is your testing strategy?
Phase 2: Implementation (Weeks 12-13)โ
Week 12: Core functionality
- Setup simulation environment
- Implement voice command pipeline
- Implement navigation
- Implement object detection
Week 13: Integration and polish
- Connect all modules
- Error handling and robustness
- Testing and debugging
- Documentation
Phase 3: Demonstration (End of Week 13)โ
Requirements:
- Live demo (5-10 minutes)
- Video recording (backup if live demo fails)
- Code submission (GitHub or zip)
- Project report (5-10 pages)
Technical Specificationโ
System Architectureโ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ USER INTERFACE โ
โ - Microphone (voice commands) โ
โ - RViz (visualization) โ
โโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ
โโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ COGNITIVE LAYER โ
โ - Whisper STT Node โ
โ - LLM Planner Node (GPT-4) โ
โ - Task Scheduler โ
โโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ
โโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ PERCEPTION LAYER โ
โ - Camera Driver (simulated) โ
โ - YOLO Object Detector โ
โ - VSLAM (Visual SLAM) โ
โโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ
โโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ PLANNING LAYER โ
โ - Nav2 Path Planner โ
โ - Grasp Planner โ
โ - Motion Planner โ
โโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ
โโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ CONTROL LAYER โ
โ - Locomotion Controller โ
โ - Arm Controller โ
โ - Gripper Controller โ
โโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ
โโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ SIMULATION LAYER โ
โ - Gazebo / Isaac Sim โ
โ - Humanoid URDF/USD โ
โ - Environment (obstacles, objects) โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
Key ROS 2 Topicsโ
# Voice and cognitive
/audio/utterance # Audio file path (String)
/voice_command # Transcribed text (String)
/robot/task # Parsed task (RobotTask)
# Perception
/camera/image_raw # Camera image (Image)
/detections # Object detections (Detection2DArray)
/odom # Robot odometry (Odometry)
# Planning
/cmd_vel # Velocity commands (Twist)
/plan # Planned path (Path)
# Control
/joint_states # Joint positions (JointState)
/arm_command # Arm trajectory (JointTrajectory)
/gripper_command # Gripper state (Float64)
# Status
/robot/status # Robot state machine (String)
/task_result # Task completion status (TaskResult)
Grading Rubric (100 points)โ
Core Functionality (60 points)โ
-
Voice Command Pipeline (15 points):
- Whisper integration (5 pts)
- Command parsing (5 pts)
- LLM planning (5 pts)
-
Navigation (15 points):
- Path planning (5 pts)
- Obstacle avoidance (5 pts)
- Reaches target (5 pts)
-
Object Detection (15 points):
- Detection accuracy >80% (5 pts)
- Correct object identification (5 pts)
- Real-time performance (5 pts)
-
Manipulation (15 points):
- Reaches for object (5 pts)
- Grasps object (5 pts)
- Lifts object (5 pts)
System Integration (20 points)โ
-
ROS 2 Architecture (10 points):
- Clean node design (3 pts)
- Proper topic usage (3 pts)
- Launch file completeness (4 pts)
-
Robustness (10 points):
- Error handling (4 pts)
- Recovery from failures (3 pts)
- Logging and debugging (3 pts)
Documentation & Presentation (20 points)โ
-
Code Quality (5 points):
- Comments and docstrings (2 pts)
- Code organization (2 pts)
- Follows best practices (1 pt)
-
Project Report (10 points):
- System architecture (3 pts)
- Implementation details (3 pts)
- Results and analysis (2 pts)
- Challenges and solutions (2 pts)
-
Demonstration (5 points):
- Live demo or video (3 pts)
- Clear presentation (2 pts)
Bonus (up to 15 points)โ
- Extended features (5 pts each, max 3)
- Exceptional creativity (up to 5 pts)
Total: 100 points + 15 bonus = 115 max
Testing Scenariosโ
Your system will be tested on these scenarios:
Scenario 1: Basic Pickupโ
Command: "Pick up the red cup"
Environment: Single red cup on table, no obstacles
Expected: Navigate to table, detect cup, grasp cup
Time limit: 2 minutes
Scenario 2: Navigation with Obstaclesโ
Command: "Go to the kitchen"
Environment: Multiple obstacles between start and kitchen
Expected: Plan path avoiding obstacles, reach kitchen
Time limit: 3 minutes
Scenario 3: Multiple Objectsโ
Command: "Pick up the blue ball"
Environment: Red cup, blue ball, yellow cube on table
Expected: Identify correct object, grasp blue ball
Time limit: 2 minutes
Scenario 4: Complex Taskโ
Command: "Clean the room - pick up all red objects"
Environment: 3 red objects scattered in room with obstacles
Expected: Plan multi-step task, pick up all red objects
Time limit: 5 minutes
Starter Codeโ
Project Template Structureโ
capstone_project/
โโโ launch/
โ โโโ capstone.launch.py # Main launch file
โโโ config/
โ โโโ navigation.yaml # Nav2 params
โ โโโ perception.yaml # Detector params
โโโ src/
โ โโโ voice_control/
โ โ โโโ whisper_node.py
โ โ โโโ llm_planner.py
โ โโโ perception/
โ โ โโโ object_detector.py
โ โ โโโ vslam_node.py
โ โโโ planning/
โ โ โโโ task_planner.py
โ โ โโโ grasp_planner.py
โ โโโ control/
โ โโโ locomotion_controller.py
โ โโโ arm_controller.py
โโโ urdf/
โ โโโ humanoid.urdf.xacro # Robot description
โโโ worlds/
โ โโโ capstone_environment.world # Gazebo world
โโโ tests/
โ โโโ test_scenarios.py # Unit tests
โโโ README.md
โโโ package.xml
Example Task Plannerโ
import rclpy
from rclpy.node import Node
from std_msgs.msg import String
import json
class TaskPlanner(Node):
def __init__(self):
super().__init__('task_planner')
self.command_sub = self.create_subscription(
String, '/robot/task', self.task_callback, 10
)
# State machine
self.state = "IDLE" # IDLE, NAVIGATING, DETECTING, GRASPING, DONE
def task_callback(self, msg):
task = json.loads(msg.data)
action = task['action']
if action == "pick":
self.execute_pick_sequence(task)
def execute_pick_sequence(self, task):
# 1. Navigate to object location
self.state = "NAVIGATING"
self.navigate_to_object(task['object'])
# 2. Detect object
self.state = "DETECTING"
object_pose = self.detect_object(task['object'], task['color'])
# 3. Grasp object
self.state = "GRASPING"
self.grasp_object(object_pose)
# 4. Done
self.state = "DONE"
self.get_logger().info('Task completed!')
# Implement navigation, detection, grasping methods...
Submission Requirementsโ
Code Submissionโ
Submit via GitHub (preferred) or zip file:
your-name-capstone.zip/
โโโ src/ # All source code
โโโ launch/ # Launch files
โโโ config/ # Configuration files
โโโ urdf/ # Robot description
โโโ worlds/ # Simulation worlds
โโโ README.md # Setup instructions
โโโ DEMO.md # How to run demo
โโโ requirements.txt # Python dependencies
Project Reportโ
5-10 pages, include:
- Introduction: Project goal and motivation
- System Architecture: Diagrams, component descriptions
- Implementation: Key algorithms, design decisions
- Results: Test scenarios, success rates, performance metrics
- Challenges: Problems encountered and solutions
- Future Work: What you would improve given more time
- Conclusion: Summary of learning outcomes
Video Demonstrationโ
3-5 minutes, show:
- System startup (launch file)
- Voice command input
- Robot execution (sped up if needed)
- Successful task completion
- Brief code walkthrough (optional)
Upload to YouTube (unlisted) or include in submission.
Resourcesโ
Example Projectsโ
- Example 1: Simple pick-and-place (GitHub: robotics-course/example-pick)
- Example 2: Voice-controlled navigation (GitHub: robotics-course/example-voice-nav)
- Example 3: Full capstone reference (GitHub: robotics-course/reference-capstone)
Useful Librariesโ
# Voice
pip install openai-whisper openai
# Vision
pip install ultralytics opencv-python
# Robotics
sudo apt install ros-humble-navigation2
sudo apt install ros-humble-moveit
Testing Tipsโ
- Test incrementally: Test each component before integration
- Use rosbags: Record sensor data for repeatable testing
- Simulation first: Perfect in sim before deploying to hardware
- Error injection: Test failure modes (object not found, path blocked)
FAQโ
Q: Can I work in a team? A: Yes, teams of 2-3 students allowed. Clearly state each member's contributions.
Q: Must I use Gazebo or Isaac Sim? A: You must use a physics simulator. Gazebo or Isaac Sim recommended, but PyBullet/MuJoCo allowed.
Q: Can I use pre-trained models? A: Yes, encouraged (YOLO, Whisper, GPT-4). Focus on integration, not training from scratch.
Q: What if my robot can't walk? A: Sliding base (like a mobile robot) is acceptable. Bipedal walking is optional (bonus points).
Q: Hardware required? A: No. Simulation-only is acceptable. Deploying to Jetson Orin Nano earns bonus points.
Q: Can I extend the deadline? A: Extensions require instructor approval, granted only for extenuating circumstances.
Conclusionโ
The Capstone Project is your opportunity to demonstrate mastery of Physical AI and Humanoid Robotics. It's challenging but rewardingโyou'll build a system that would have seemed impossible at the start of the course.
Good luck, and have fun building your autonomous humanoid!
- Start early: Don't wait until Week 13
- Test often: Catch bugs early
- Ask for help: Use office hours, Discord, forums
- Simplify: MVP first, polish later
- Document: Future you will thank present you
- Over-engineering: Start simple, add complexity only if needed
- Integration hell: Test components individually first
- Ignoring edge cases: What if object not found? Path blocked?
- Poor time management: Leave time for integration and debugging
Next Stepsโ
You've completed the entire course outline! Now it's time to start building.
Course complete - Good luck with your projects!