top of page

Projects Guide for ROBOTIS ENGINEER: Volumes 1 & 2
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 was written in 2021 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.  Both Volumes assume that the reader also has some practice in Python and C/C++ programming using such IDEs as Thonny, Code::Blocks and Visual Studio on Windows OS and Raspberry Pi OS (using Buster OS and RPi4B back in 2020-2021).

In 2024, the reader most likely wants to use Bookworm OS on the RPi4B or RPi5, and the concepts and source codes for this 2021 book still apply, but there are a few changes to be made when compiling the Dynamixel and Zigbee SDKs (because of updates in the gcc compiler), and quite a bit of work to be done to use the new libcamera library with OpenCV and GStreamer.  Please consult with these 2 postings for further details:

To accommodate a possible broad range of robotics hardware and software skills from readers/users, this book has an unusual format:

  • Each chapter showcases one robot type, starting with the “SimpleBot with Arms” in Chapter 1 and progressing towards an RPi4B-enhanced Humanoid in Chapter 7. 

  • 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/C++ on Windows PCs and Single Board Computers such as RPi4B and Jetson Nano.  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 C++ or Python “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 Chapters 1-3 (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 (ZigBee SDK).

  • The goals of Chapters 4-7 (Volume 2) are to broaden as well as deepen robotics skills developed in Volume 1 by integrating the Engineer Kits with Single Board Computers (SBC) such as the RPi4B and Jetson Nano, and by incorporating more advanced hardware such as Dynamixel HAT and U2D2, as well as more sophisticated software interfaces such as the Dynamixel SDK and GStreamer Framework:

    • Chapter 4 starts with the standard Commando robot, adds a Pan-Tilt platform for a Pi Camera (E-PTC) and integrates an RPi4B 8GB to serve as Co-Controller to the CM-550.  Projects investigated include Dual Control from Mobile Device and/or PC, Autonomous Obstacle Avoidance, RPi4B as Vision Processor and Remote Controller, PC as Central Data Hub or Supervisory Controller using Serial Communications via ZGB-SDK or Boost ASIO, Using DXL-HAT and DXL-SDK for Independent Dynamixel Networks Control.

    • Chapter 5 begins with the standard Quadruped robot, adds 4 XL430-controlled wheels, and produces 4 robot variants (A4WP-123 & A4WP-H).  These robots were then used to explore similar concepts/ideas described in Chapter 4 but now as a robotic platform whereas the Pi Camera is rigidly attached to the robot chassis.  This requires the robot to physically change its mechanical poses to aim the camera towards a chosen target.  These “special” moves were implemented with the use of standard Motion Units and appropriate Joint Offsets via the TASK/MOTION interface.  For Python and C++ interfaces, the DXL-SDK is used to send SyncWrite Goal Position packets into targeted servos set in Time Control mode and using standard Python/C++ arrays as Motion Arrays.   The final project showcases the concept of using a Desktop PC as Supervisory Controller of two SBC-enhanced robots which can act as independent Vision Processors and Remote Controllers to the CM-550. 

    • Chapter 6 sets out with the standard hexapod SPI robot and adds a Pan-Tilt platform to control its Pi Camera (E-SPI).  This platform is then used to test out different integration concepts for the CM-550 with either the RPi4B or Jetson Nano, using similar projects as the ones implemented in Chapters 4 and 5.  It is also used to test out the limits of the battery power options.

    • Chapter 7 builds on the successes and failures demonstrated in Chapters 4, 5 and 6 to construct a MAX-E2 based robot, equipped with a Pan-Tilt platform + Pi Camera as its Head Assembly, along with an RPi4B attached to its back (E-ME2).  It uses independent tethered power cables to power the CM-550 and RPi4B controllers separately.  The major challenge is to maintain its static and dynamic balance due to the extra hardware that this bipedal robot must carry.  This challenge is accomplished by using static Motion Offsets along with dynamically adjusted Joint Offsets set into critical servo-joints of this E-ME2 robot.

​Volume 1's Table of Contents can be downloaded here and an excerpt of Volume 1 can be downloaded here.

Volume 2's Table of Contents can be downloaded here and an excerpt of Volume 2 can be downloaded here.

YouTube demonstration videos can be viewed here.

The Quadruped MicroPython file can be downloaded here.

For Volume 1, the Kindle version is available at https://www.amazon.com/Projects-Guide-ROBOTIS-ENGINEER-1-ebook/dp/B08KGHQZGP and the paperback version is available at https://www.amazon.com/Projects-Guide-ROBOTIS-ENGINEER-1/dp/0999391844.

 

For Volume 2, the Kindle version is available at https://smile.amazon.com/Projects-Guide-ROBOTIS-ENGINEER-2-ebook-dp-B09GN3VJ9P/dp/B09GN3VJ9P and the paperback version is available at https://smile.amazon.com/dp/0999391860.

A Combined Edition is also available at https://www.amazon.com/dp/0999391879 (hard cover) and https://www.amazon.com/dp/B09KQCH2FV (e-book).

For some reasons, the various "Ideas For Further Explorations" (IFFEs) included in the Kindle version of Volume 1 and Volume 2 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 these books, please email a copy of your proof of purchase to "roboteer@comcast.net", and we'll email you back a ZIP file containing these files and other documentations. 

Please email me (roboteer@comcast.net) for any comment/suggestion that you may have and visit my Amazon Author Page for a complete list of my books.

Fig3_50.jpg
Fig2_79.jpg
Fig3_31.jpg
Fig3_2.jpg
Fig3_1.jpg
Fig2_70.jpg
Fig4_59.jpg
Fig5_104.jpg
Fig5_106.jpg
E-SPI_1.JPG
ME2_Final_Config.JPG
ME2_RunTime.JPG
bottom of page