Projects Guide for ROBOTIS ENGINEER: Volume 1

Chi N. Thai

ROBOTIS releases the ENGINEER Kit 1 in Fall 2019 and the ENGINEER Kit 2 in Spring 2020 with numerous educational support materials:

  • 3D Printing Outline of 24 lessons (6 pages).

  • 3D Printing Curriculum with the actual 24 lessons (355 pages).

  • 3D Printing Professional Development Content (Teacher’s Guide) (420 pages).

  • TASK 3 Programming Outline of 8 lessons (4 pages).

  • TASK 3 Programming Curriculum (T3PC), with the actual 8 lessons (408 pages).

  • Python Online Workbook (POW), with 24 lessons and practice questions (282 pages).

  • Python Teacher’s Guide (PTG), with 24 lessons – essentially POW with answers and extra practice questions (477 pages).

Building on these ROBOTIS resources, this book series (planned for 2 volumes) is written to help interested users to further utilize the capabilities of the ENGINEER Kits 1 and 2 and extend these resources whenever possible.  This book series is designed for users with intermediate robotics and programming skills who have previously worked with ROBOTIS kits such as BIOLOID-STEM, PREMIUM or MINI.  Volume 1 assumes that the reader also has some practice in Python and C/C++ programming using such IDEs as Thonny and Visual Studio.

These objectives yield an unusual format for this book series:

  • Each chapter showcases one robot type, starting in Volume 1 with the “SimpleBot with Arms” and progressing towards more sophisticated robots in later chapters and into Volume 2 (due end of 2021). 

  • Furthermore, within each chapter, the programming tool/environment used also progresses from “simple” like TASK/MOTION and MicroPython on the CM-550 to more “sophisticated” and “enabling” tools such as standard Python and C++ on a Desktop PC.  In a way, this book is “configurable”, whereas a user unfamiliar with C++ or Python can just stay with the TASK “path” from one chapter to the next, while a more experienced programmer would choose a Python or C++ “path” instead.  Other users may choose or design their “personal” paths depending on their current skill levels and target goals.  Another possible scenario is for/when teaching different levels of students while using the same physical robots (due to budget or time constraints perhaps), then the instructor can use TASK for beginning students in parallel with Python or C++ for more advanced students.

  • The goals of Volume 1 are to establish the foundational robotics concepts and programming techniques for the ENGINEER System using three demonstration robots:

    • The “Simple Bot with Arms” (SBwA) is used to illustrate the basic operations of a purely jointed robot using Dynamixels configured in Position Control.

    • The “Pan-Tilt Commando” (PTC) is used to illustrate the basic operations of a mixed-control robot that has some Dynamixels configured in Position Control mode and some Dynamixels configured in Velocity Control mode.

    • The “MonoBot” is used in conjunction with the PTC to explore the options in dual-robot control from a central PC using the ROBOTIS Remocon Packet Protocol.

For each robot, multiple projects will be showcased first in TASK codes, then the same projects are recoded in MicroPython so that readers can appreciate the “translation” requirements and subtleties.  Programming features of the CM-550 will be combined with synergistic features from the ENGINEER Mobile App and the Raspberry Pi Zero-W with Pi Camera.  The same projects will also be reviewed and revised by adding the Standard Python and C/C++ features available at the Desktop PC levels, such as the OpenCV and Boost.Asio libraries, as well as the PySerial tool.  These projects also showcase the ROBOTIS Remocon Packet Protocol to control up to two robots simultaneously using ZigBee and Bluetooth communications hardware.

The book's Table of Contents can be downloaded here.

An excerpt of the book can be downloaded here.

YouTube demonstration videos can be viewed here.

The Quadruped MicroPython file can be downloaded here.

Volume 1 has 3 chapters:

  1. Chapter 1 provides a systemic view of the main features of the hardware and software systems for the ENGINEER kits:

    • Hardware Controller CM-550.

    • Actuators 2XL430-W250-T and XL430-W250-T.

    • Raspberry Pi Zero W + Pi camera.

    • Software tools: MANAGER V.2, TASK V.3, ENGINEER Mobile App.

    • System view of ROBOTIS Dynamixel Network.

  2. Chapter 2 uses the “SimpleBot with Arms” (SBwA) platform to illustrate the new Actuator Position Control modes such as STEP, RECTANGULAR, TRAPEZOIDAL and TIMED, along with SyncWrite and Smart Device programming techniques.  New Motion Play features such as Variable Motion Speed, Stop Pages and Joint Offsets programming techniques are also described.  These concepts and techniques are demonstrated using TASK codes as well as the new MicroPython facility for the CM-550.  Next, Standard Python and C/C++ applications developed at the Desktop PC level are showcased to demonstrate the versatility of the ROBOTIS Remocon Packet Protocol in coordinating runtime events between the Desktop and the SBwA robot.  Specific projects include Custom Remote Control from Desktop, Integration of Desktop USB Camera (via OpenCV) with Robot’s Arm Control on the CM-550, Coordination Programming when using Desktop software along with local CM-550 codes, which also interact with the ENGINEER App running on a Mobile Device (phone or tablet).

  3. Chapter 3 uses the “Pan-Tilt Commando” (PTC) platform along with the “MonoBot” to demonstrate the Mixed Use of Dynamixels in Position and Velocity Control modes.  Several projects were developed in TASK and MicroPython codes for the PTC to illustrate concepts/techniques for Wheel Synchronization and Maneuver Compensation using the built-in IMU, and to explore the new Hi-Res Display/Touch feature of the ENGINEER App.  The RPi-0W/Pi Camera module was applied to projects that required Color Detection and Visual Servoing/Ranging (CDVSR), Color Line Following and QR Markers Detection.  Equivalent desktop solutions in Python and C/C++  were also developed using a USB Camera and the OpenCV library for the CDVSR project.  Simultaneous Dual Robot Control was demonstrated using Remocon Packets and Broadcast ZigBee using the TASK’s Virtual Controller.  On the Desktop side, parallel projects in Standard Python (using PySerial) and C/C++ (using Boost.Asio) were developed to explore the performances of Broadcast Zigbee vs. Dual Bluetooth communications hardware to control and receive sensor data from both robots (PTC and MonoBot) at the same time.  Using ZigBee, a unique “relay network” configuration between these two robots was also demonstrated to work concept-wise, but the ZigBee hardware was found not to be robust enough for this kind of wireless network demands.

Currently, the Kindle version is available at and the paperback version is available at

For some reasons, the various "Ideas For Further Explorations" (IFFEs) included in the Kindle version did not get reproduced properly (like in the paperback version), thus Kindle readers can download a PDF listing of these IFFEs here.

To receive a copy of the demonstration codes used in this book, please email a copy of your proof of purchase to "", and we'll email you back a ZIP file containing these files and other documentations.