Lecture and Demo Videos

All video content for the course is posted on the Robotics for Creative Practice YouTube channel. The following guide is intended to help you locate content on individual topics. It is organized by topic, but approximately follows presentation order.

Please note that specific videos may cater more to novices or to students with prior experience, so some will be assigned for everyone to study and some will be optional.

Playlists

Course Overview

  1. Introduction to Robotics for Creative Practice [2:50]. Course introduction, themes, IDeATe introduction, audience.

  2. RCP Course Overview [3:52]. Surprisingly animate machines, expressive dynamic behavior, essential hypotheses.

  3. RCP Course Hypotheses [6:49]. Machine intentionity, essential questions, hidden agency.

  4. RCP Focus and Scope [2:39]. What the course is and is not, rendering grand ideas at small scales.

Webots Simulator

  1. Tour of the Webots Robot Simulator [5:44]. Brief introduction to the Webots simulator and a few operating hints.

  2. Introduction to Webots Robot Modeling [16:12]. Walk through a sample Webots robot scene tree to introduce core kinematic description nodes.

  3. Simulated PD Control [7:55]. Demonstration of PD control using torque motor simulation in Webots. Uses the clock model from the controls project on the course site. Walks through the clock.py demo code.

  4. Imported Webots Geometry [9:33]. Demonstration of importing geometry from Fusion 360 to Webots using an STL file. Discusses physics parameters calculated in CAD, expanding proto-defined robots in the scene tree, inserting geometry objects into the kinematics node tree, bounding objects versus graphical objects.

  5. Webots DistanceSensor [6:23]. Discussion of the Webots DistanceSensor simulator node, including configuration, adding a visible body, and situation in a kinematics tree.

Exercise Walkthroughs

  1. Exercise - Underactuated Two-Link Simulation [14:58]. Companion video for Exercise: Underactuated System Design. Conversational walkthrough about library models; rigid body dynamics of the two-link device; Python script; procedural modeling; commentary on performances; commentary on anthropomorphism.

  2. Exercise - Sensors and Feedback [15:25]. Companion video for Exercise: Sensors and Feedback, focusing on the sample solution. Discusses the overall state machine, the rationale behind the switching function, and implementation in code. Rationale discussion includes plots of distance gradient, policy function, and phase plot.

  3. Exercise - Robot Party - Local [32:46]. Companion video for part 1 of Exercise: Robot Party, covering the sample world and a detailed walkthrough of the sample robot code. Some time points in the video:

    • 00:15 brief introduction to party-sample.wbt, overall objectives

    • 01:12 ramp object implemented as ElevationGrid shape

    • 02:07 wobbly robot details and parameters

    • 04:45 wobbly controller code walkthrough

      • 06:04 init function, actuator, sensor and radio configuration

      • 09:05 peer data table

      • 09:40 main run loop

      • 11:05 poll_sensors, sensor processing

      • 13:30 poll_communication, simulated radio network

      • 16:25 poll_wandering_activity, behavior state machine update

      • 19:58 customData parameter for behavior customization, robot naming

      • 21:02 poll_following_activity, behavior state machine update

      • 24:51 go_still, linear controller to nullify wobble

      • 25:41 go_forward, linear speed controller

      • 27:22 go_rotate, rotational speed controller

      • 29:38 peer_heading_distance, peer robot direction calculation

      • 30:44 nearest_peer, peer list search

    • 31:36 closing comments on suggested approaches

  4. Exercise - Robot Party - Online [15:32]. Companion video for part 2 of Exercise: Robot Party, covering the networking aspects, delegate robot, and proxy bodies. Some time points in the video:

    • 00:25 brief introduction to MQTT and the MQTT Monitor

    • 01:49 sample world network-party.wbt, proxies, delegate

    • 04:14 proxy body parameters

    • 04:44 walkthrough of delegate controller disembod.py

      • 05:46 initialization, MQTT topic configuration

      • 07:23 proxy body discovery

      • 08:23 delegate run loop, data rebroadcasting

      • 10:08 on_message callback, data reception and parsing, proxy update

    • 13:21 recap of the controller operation

    • 14:20 suggestions for testing and debugging

Kinematics, Dynamics, and Control

  1. Introduction to Kinematics [10:28]. Overview of core kinematics terminology: rigid body mechanics, degrees of freedom, joint types, state vector, system trajectory, serial kinematic chains.

  2. Kinematics of the Two-Link Arm [17:04]. Forward and inverse kinematics of a two-link planar robot arm. Errata: at 8:48 I initially omit a 2 before L1 L2; at 9:12 I meant to say “Law of Sines”.

  3. Single-Axis PD control [13:05]. Introduction to position control of a single-joint unstable system using a linear controller and a torque motor. Proportional gain as virtual spring, derivative gain as virtual damper; general comments on stability; general comments on control theory.