====== Humanoid Robot Programming ====== * We will work in the docker environment you prepared in [[courses:hro:tutorials:0dockertutorial|Docker tutorial]]. * All lab tutorials can be found in our [[https://gitlab.fel.cvut.cz/body-schema/teaching/b3m33hro-labs|Gitlab]]. ==== Goals ==== * Become acquainted with Yet Another Robot Platform. * Control humanoid robot both in joint and operational space. * Implement traditional methods to solve Inverse Kinematics problem. ===== Yet Another Robot Platform (week 2) ===== Introduction to YARP middleware {{ :courses:hro:tutorials:yarp.pdf |}} ^ Tutorial ^ description ^ | [[https://gitlab.fel.cvut.cz/body-schema/teaching/b3m33hro-labs/-/tree/main/lab2/tutorial_yarp-producer-consumer|How YARP communicates]] | This tutorial helps you understand the behavior of different types of ports. | | [[https://gitlab.fel.cvut.cz/body-schema/teaching/b3m33hro-labs/-/tree/main/lab2/tutorial_RFModule-simple|YARP support classes]] | This tutorial will show you YARP support classes for handling command line parameters and writing modules that perform periodic activities and respond to network commands.| | [[https://gitlab.fel.cvut.cz/body-schema/teaching/b3m33hro-labs/-/tree/main/lab2/tutorial_yarp-basics|YARP basics]] | This tutorial shows some of the basic features of YARP, usually required when dealing with a robot.| | [[https://gitlab.fel.cvut.cz/body-schema/teaching/b3m33hro-labs/-/tree/main/lab2/tutorial_yarpmanager|yarpmanager]] | This tutorial will quickly guide you to use yarpmanager to run Yarp applications. **Write fakeFrameGrabber instead of test_grabber in yarpdev parameters.**| ===== Robot control I (week 3) ===== iCub Motor Control {{ :courses:hro:tutorials:motor-control.pdf |}} **[[https://gitlab.fel.cvut.cz/body-schema/teaching/b3m33hro-labs/-/tree/main/lab3/tutorial_joint-interface|Joint interface]]** * This tutorial will guide you to the use of Motor Interfaces to control the iCub movements in the joint space. ** [[https://gitlab.fel.cvut.cz/body-schema/teaching/b3m33hro-labs/-/tree/main/lab3/tutorial_cartesian-interface|Cartesian interface]]** * This tutorial will guide you to the use of Cartesian Interface component that enables the control of the iCub arms in the Operational Space. ==== HW 1 ==== * [[courses:hro:tutorials:hw:hw1|Develop a simple module that moves the iCub arm.]] ===== Robot control II (week 4) ===== **[[https://gitlab.fel.cvut.cz/body-schema/teaching/b3m33hro-labs/-/tree/main/lab4/tutorial_gaze-interface|Gaze control tutorial]]** * This tutorial will guide you to the use of Gaze Interface component that enables the control of the iCub gaze. ==== HW 2 ==== * [[courses:hro:tutorials:hw:hw2|Develop a module that employs the Joint Interface, the Cartesian Interface, and the Gaze Interface to accomplish the given task.]] ===== Inverse kinematics (week 5) ===== **[[https://gitlab.fel.cvut.cz/body-schema/teaching/b3m33hro-labs/-/tree/main/lab5/tutorial_inverse-kinematics|Inverse kinematics tutorial]]** * This tutorial will guide you through the practical implementation of those methods that are traditionally employed to solve the Inverse Kinematics problem. ==== HW 3 ==== * [[courses:hro:tutorials:hw:hw3|Design a controller, which implements a suitable Inverse Kinematics algorithm to meet the given requirements.]]