Hands-on Robotics with Programming Feb 22 2010 Shih-Chung Kang Assistant Professor Computer-Aided Engineering (CAE) Department of Civil Engineering National Taiwan University
Course Information Course: Hands-on Robotics with Programming ( 機器人程式實作 )Instructor: Shih-Chung Kang 康仕仲( firstname.lastname@example.org ) Teaching Assistant: Yi-Chu Chen 陳奕竹 ( email@example.com ) Wei-Han Hung 洪偉瀚( firstname.lastname@example.org )Classroom: Civil Engineering Research Building - Room 405Time: Monday 6,7,8 ( 14:20 ~ 17:10 )Semester: 2009-02Course Number: 521 M6800Course Credit: 3Website: http://sites.google.com/a/caece.net/robot-programming-2010/Course Information:NTU Course Information Grading: Class participation 10% Project Assignments 60% Final Project 30%
Course Major Topic • Topic 1: Fundamentals of MSRDS Service– CCR, DSS[Week 02~04 | Project 1] • Topic 2: Robot hardware – hardware service, motion control [Week 05~10 | Project 2] • Topic 3: Robot simulation – simulation service, simulation environment [Week 11~13 | Project 3] • Topic 4: Multi-robot– railway system, multi-robot system design[Week 14~17 | Final Project]
A Typical Class • Before class:Students need to download the code from the course website.“Reading” will help you to understand the topic of the week. • During class:Teacher will explain the code first, then students need to practice the code in the class. • After class:Students need to practice the rest of the code.Every major topic has a project. • Project demonstration:At the first class on project due date.The rest two classes have regular progress.
Programming Environment (1/3) • Microsoft Visual Studio 2008 and C#
Programming Environment (2/3) • MSRDS 2008 R2(Microsoft Robotics Developer Studio) and VPL (Visual Programming Language)
Programming Environment (3/3) • innoBasic: Original mobile robot(innoBot) control language.
WK02Fundamentals Service (1/3): CCR • What is CCR (Concurrency and Coordination Runtime)? • CCR major components:1. Port, PortSet2. Dispatcher, DispatcherQueue, Task3. Arbiter class • Using C#
WK03Fundamentals Service (2/3): DSS • What is DSS (Decentralized Software Services) ? • Using C# and VPL
WK04Fundamentals Service (3/3): Integration • Project 1: Write a service which can control the simulation robot. The service needs to get data from the simulator. After calculating, the service needs to send control command back to the robot.
WK05Hardware (1/5): Robot Introduction • Introduction to “innoBot” and chips • Fundamentals of robot knowledge: square-wave radio signal, servo motor
WK06Hardware (2/5): Building mobile robot • Introduction to “innoBasic”. • Building innoBot, then use innoBasic to check and control the robot
WK07Hardware (3/5): Motion control • Using “innoBot innoSDK.dll” to create “innoBot service”. This service needs to control innoBot movement: foreward, backward, turn right, turn left, get sonar distance.
WK07Hardware (4/5): Behavior control • Modifying “innoBot service”, let the service can be used in VPL. • Using VPL to control innoBot, let innoBot can avoid obstacles atomically.
WK08Hardware (5/5): Integration • Project 2: Write an “innoBot service” and VPL code to control innoBot. innoBot needs to follow the black line and avoid obstacles atomically.
WK11Simulation (1/3): Building robot model • Building virtual environment • Building innoBot model
WK12Simulation (2/3): actuator and sensor • Write a service to control innoBot actuator and sensor.
WK13Simulation (3/3): Integration • Project 3: Write an “innoBot service” and VPL code to control innoBot at virtual enviroment. innoBot needs to follow the black line and avoid obstacles atomically.
WK14Multi-robot (1/3): • Fundamentals of rail way design
WK15Multi-robot (2/3): Railway passing system • Introduction to ATC, ATO, ATP, and AWS.
WK16Multi-robot (3/3): Integration • Final Project: Write an “innoBot service” and VPL code to control multi-innoBot. The service needs to work at actual and virtual enviroment. Students may design a “control panel” to show innoBot status and control innoBot driectly.