# Robotics Crash Course w/ Phil & Flo
## Overview
0. Big Picture
1. Hardware
2. Perception
3. Planning
4. Control
5. Software
## Big Picture
- bla, bla robots widespread
- what is a robot? - agent that acts in the world, w/ some degree of autonomy, usually with some sort of sensors and actuators
- Roomba == robot?
- 3D printer == robot?
- RC car == robot?
- Perception -> Planning -> Control -> Perc...
## 1. Hardware
### 1.1 Platforms
- UGV - Unmanned Ground Vehicle / self-driving car (ClearPath)
- UAV - drone (DJI)
- robot arms (UR, Kinova, ABB, Sawyer, ErgoJr)
- humanoids or partial systems (iCub, Valkyrie, Nao/Darwin, ASIMO, Pepper, Atlas)
- quadrupeds (AIBO, Spot, Anymal, Pupper)
### 1.2 Actuators
- Motors: DC motors, steppers, servos
- Screens
- Lights
### 1.3 Sensors
- too many to list
- servos: potentiometer/encoder
- grippers: force feedback sensor / force-torque sensor
- cameras, esp. RGB-D sensors (RealSense)
## 2. Perception
### 2.1 "Simple" stuff
- range-finders (ultrasonic/laser)
- buttons
- see sensors
### 2.2 Vision
- vision = simple, right?
- preprocessing (Mask-RCNN, background removal, Kalman filtering)
- voxelization
- reconstructions
### 2.3 Localization/Mapping
- SLAM, loop closure
- OrbSLAM
- GradSLAM
- Structure-from-motion
- COLMAP
### 2.4 Research questions
- what are objects?
- where are objects / what is their pose?
- what objects are relevant to me?
- where am I?
## 3. Planning
TODO
## 4. Control
### 4.1 Kinematics
- creating Kinematic Chain
- KC + set of angles (per joint) = Forward Kinematics --> by giving the joints to FK, you get x,y,z of end effector
- Inverse Kinematics: go from x,y,z to joint angles
### 4.2 Control basics
#### Low-Level
- joint-torque
- joint-velocity
#### High-level
- joint angle
- "cartesian"/end-effector control
### 4.3 PID/MPC Control
## 5. Sim & Sim2real
### Simulators
Sims
- Mujoco
- (Py)Bullet
- Dart
- Gazebo
- V-Rep
Environments
- AI2Thor
- Habitat
- Gibson
### Sim2Real
Problems:
- noise
- stationary differences (measuring sthg wrong)
- non-stationary dyn diff
- unmodelled effects
Approaches:
- evolutionary
- randomization-based
- model-based
- misc
Settings:
- Zero-shot (w/ or w/o task-independent samples)
- Few-shot
- Iterative