Skip to main content

Exercises: Sensorimotor Learning

Basic Level Exercises​

Exercise 1: Sensorimotor Loop Visualization​

Objective: Understand the components of the sensorimotor loop

Create a ROS 2 node that visualizes the sensorimotor loop by:

  1. Subscribing to joint state data
  2. Publishing motor commands based on sensor input
  3. Recording and plotting the interaction over time

Implementation Requirements:

  • Use rclpy for node creation
  • Subscribe to /joint_states topic
  • Publish to /position_commands topic
  • Create plots showing sensorimotor loop iterations

Expected Outcome: A clear visualization of how sensory input leads to motor output and environmental changes.

Exercise 2: Simple Learning Algorithm​

Objective: Implement a basic sensorimotor learning algorithm

Create a learning algorithm that adjusts motor commands based on sensory feedback to reach a target position.

Implementation Requirements:

  • Define a target joint position
  • Calculate error between current and target position
  • Adjust commands based on error with a learning rate
  • Monitor convergence to target

Expected Outcome: A robot that learns to move its joints to reach a target position through sensorimotor interaction.

Intermediate Level Exercises​

Exercise 3: Multi-Joint Coordination​

Objective: Extend sensorimotor learning to coordinate multiple joints

Implement a sensorimotor learning system that coordinates multiple joints to achieve a complex task, such as reaching a 3D position with an end-effector.

Implementation Requirements:

  • Use inverse kinematics to convert Cartesian targets to joint space
  • Implement sensorimotor learning for multiple joints simultaneously
  • Handle joint limits and constraints
  • Visualize the learning progress

Expected Outcome: A multi-joint system that learns to coordinate its movements through sensorimotor interaction.

Exercise 4: Adaptive Learning Rates​

Objective: Implement adaptive learning that adjusts based on environmental conditions

Create a sensorimotor learning system that adjusts its learning rate based on the stability of the environment and the success of previous actions.

Implementation Requirements:

  • Monitor error reduction over time
  • Adjust learning rate based on convergence patterns
  • Implement safeguards to prevent instability
  • Test with different environmental conditions

Expected Outcome: A learning system that automatically adjusts its learning parameters for optimal performance.

Advanced Level Exercises​

Exercise 5: Hierarchical Sensorimotor Learning​

Objective: Implement a multi-level sensorimotor learning system

Design a hierarchical learning system where high-level goals are broken down into sensorimotor primitives that are learned at lower levels.

Implementation Requirements:

  • Create high-level goal setting mechanism
  • Implement low-level sensorimotor primitives
  • Design learning at both levels
  • Handle coordination between levels
  • Test with complex tasks requiring multiple skills

Expected Outcome: A sophisticated learning system that can acquire complex behaviors through hierarchical sensorimotor learning.

Exercise 6: Multi-Modal Sensorimotor Learning​

Objective: Implement sensorimotor learning using multiple sensory modalities

Create a learning system that integrates visual, tactile, and proprioceptive information in the sensorimotor loop.

Implementation Requirements:

  • Subscribe to multiple sensor topics (camera, force/torque, joint states)
  • Implement sensor fusion for the learning algorithm
  • Handle different sensor update rates
  • Test with tasks requiring multiple sensory modalities
  • Evaluate the contribution of each sensory modality

Expected Outcome: A robot that learns through integration of multiple sensory channels in its sensorimotor interactions.

Evaluation Rubric​

Technical Implementation (50%)​

  • Correct ROS 2 node structure and communication
  • Proper error handling and logging
  • Efficient algorithm implementation
  • Code documentation and readability

Learning Performance (30%)​

  • Convergence to target goals
  • Adaptation to environmental changes
  • Stability of learned behaviors
  • Efficiency of learning process

Analysis and Documentation (20%)​

  • Clear explanation of approach and results
  • Proper visualization of learning progress
  • Identification of challenges and solutions
  • Discussion of limitations and improvements

Hints and Resources​

  • Start with single-joint learning before moving to multi-joint coordination
  • Use simulation environments (Gazebo) for safe testing
  • Monitor joint velocities to ensure smooth motion
  • Consider using PID controllers as a baseline for comparison

Extension Opportunities​

  • Implement learning with neural networks for more complex behaviors
  • Add obstacle avoidance to the sensorimotor learning system
  • Create a library of reusable sensorimotor primitives
  • Implement meta-learning for faster adaptation to new tasks

These exercises were created using the exercise-creator.skill from the Claude Code skills system.