Latest Blog Post

New Call-to-action

Book Review of Robot Programming: A Guide to Controlling Autonomous Robots by Cameron Hughes and Tracey Hughes

Karen Smock
by Karen Smock on Apr 12, 2017 7:00:00 AM

The description of this 2016 release from Que publishing promises “a unique introduction to programming robots to execute tasks autonomously.” Although the introduction advises that the reader have some programming knowledge, this comprehensive guide offers much to non-programmers as well.

ShowCover.jpegFrom the title you may expect either a dry, academic treatment of the topic or an overly technical, intimidating approach. Refreshingly, the tone used throughout the book is one of excitement and encouragement, as if the authors had opened the doors to their maker space and invited you in to learn.

In order to translate human language to robot language, the authors provide examples using English commands translated into C and Java using Basic Universal Robot Translation. Topics include the definition of a robot, robot capabilities, visual planning, sensors, and executing tasks autonomously. The examples are for LEGO AV3 Mindstorms robot controllers, Arduino Uno and similar entry-level robot controllers; however, many of the concepts and tools provided are applicable to industrial environments and non-autonomous, collaborative robots. Pages of sample code are provided for programmers, but even non-programmer readers (like me) who skim over the code will still find much value in the theory and background information provided.

The authors devote much attention to describing how to visualize what you want the robot to do and how to represent the physical environment and conditions in language the robot will understand.  They present a series of tools such as Robot Scenario Visual Planning.  Each topic is explained clearly and often supported with streamlined illustrations that give excellent examples of concepts such as reach calculations, obstacle avoidance, and a comparison of robotic arms with 2 degrees of freedom(DOF) vs 6 DOF. Acronyms are introduced and reinforced for key concepts. For example, REQUIRE (Robot Effectiveness Quotient Used in Real Environments) is a means to rate a robot’s effectiveness by evaluating each sensor, actuator, end effector and controller.

Sensors are given much discussion, including a table comparing human and robot senses, with some human senses such as hunger and thirst not applicable for robots, and some robot senses such as magnetic and force not applicable in humans. After a discussion of the types, limitations and precision of sensors, more specific information about programming sensors is provided, with the acronym SPACES (Sensor Precondition/Postcondition Assertion Check of Environmental Situations) used to describe a stop/go test that’s a key decision making tool used by autonomous robots.

SCHAFT-Google-DARPA-Robotics-Challenge-robot-gripper-end_effector.jpgPhotographs and images from the 2015 Defense Advanced Research Projects Agency (DARPA) Robotic Challenge Finals provide an even more comprehensive understanding of some key concepts, along with actual examples of tasks such as climbing stairs and avoiding debris.  

Two examples are followed throughout the book: one of a robot tasked with lighting candles on a birthday cake and clearing dishes; the other a stranded jet-skier who needs to quickly learn robot programming to recharge a battery. The jet skier example doesn’t seem as cohesive as the first example, and could be part of a marketing plan to tack on multimedia to reach a younger audience by adding a graphic-novel style story in the back of the book and linking to a website. Interested readers may find value, and others can easily skim past those parts to get back to the meat of the book.

The closing chapters provide resource lists of open source low-cost robots and components, further reading for those interested in pursuing robotics, and encouragement to start. A glossary and index add even more useful content to make this robot programming guide a valuable reference source, and a good addition to a robotics library.

With robot technology changing so quickly, the DARPA examples may seem dated in a few years, but the theoretical information the book provides will continue to be relevant. Even the code examples shouldn’t become obsolete too quickly. Arduino controllers have been around for over ten years and are still widely used. Overall, the information provided in Robot Programming: A Guide to Controlling Autonomous Robots is ideal for both hobby and professional robot programmers, project managers tasked with implementing robotic solutions in the workplace, and robot enthusiasts.

Hughes, Cameron; Hughes, Tracey. Robot Programming: A Guide to Controlling Autonomous Robots. © 2016 Pearson Education ISBN-10: 0-7897-5500-9; ISBN-13: 978-0-7897-5500-1

grippers for collaborative robots


Subscribe to Robotiq's Blog

Leave a comment

Karen Smock
Written by Karen Smock
Karen Smock is a freelance marketing and technical writer who specializes in manufacturing, manufacturing technology, and clear writing. She lives in a house where robots outnumber people.
Connect with the writer:

Related posts

Yes, Collaborative Robots Can Be Repurposed in a Changing Production Environment

Fast turnaround is a necessity for small and medium manufacturers. Companies that can find ways to decrease lot sizes and...

Karen Smock
By Karen Smock - August 15, 2016
Why I chose a Robotiq Gripper?

In our quest to fulfill the needs of our customers, we went to a couple of real life users of Robotiq Grippers and asked them: ...

Mathieu Bélanger-Barrette
By Mathieu Bélanger-Barrette - December 15, 2015

Using 2 finger gripper attached to UR10 through ROS

Hello,We have a robot UR10 with a 2 finger gripper connected to the Robot controller through one of the USB port. We can manage to control the robot using the modern driver and ROS on another network...Read more

ROS Configuration for the C-Gripper

Hello,We have a problem with the communication with a robotiq gripper using ROS. I will explain the problem with more detail to check if you can help us.We have a robot UR10 with a C-model Gripper (2...Read more

How can I make a UR5 draw arcs and circles?

Hi!I want to make the UR5 make draw random lines, arcs and circles on a piece of paper. My approach for that so far was to generate the geometry in Processing (Java for creatives..) and send points...Read more

Improve cycle time when using the Robotiq Gripper

Hi Pros,In some applications where cycle time is critical, saving a few seconds here and there can be important. Here's a new program template that allows you to save a few tenths of seconds...Read more