Project proposal

profilejacobeast916
ENS4152Proposal-Sample1Dawes151.pdf

Page 1 of 14

ENS4152 Project Development

Proposal and Risk Assessment Report

Baxter Research Robot: Solving a Rubik’s Cube

Chris Dawes

Student # 10282558

30 Mar 2015

Supervisor: Dr Alexander Rassau

Page 2 of 14

Abstract

Robotics is currently used to perform many tasks but many of these are simple repetition of a

predefined method. By combining AI with robotics we can greatly increase the applications of

robotics. An algorithm that combines the vision and servo systems of a Baxter Research Robot

with a solving solution for a Rubik’s cube will demonstrate that the use of even simple AI with

robotics allows complex tasks to be completed. Further integration of object recognition will

allow the task to be completed in a dynamic environment, and further increase the areas

robots are capable of working within.

1. Introduction

1.1. Motivation

The Baxter Research Robot by Rethink Robotics is a dual arm robot, with seven degrees of

freedom per arm, released in 2012. Developed to be affordable, flexible in its purpose, and

above all else safe, Baxter includes three cameras, one on each wrist and the other on its head,

and a screen for displaying information relating to Baxter’s current task. The robot is designed

to be a versatile research platform while containing the same hardware as its industry

counterpart, allowing research to translate into industrial applications (Rethink Robotics,

2015).

In general robotics artificial intelligence (AI) has been developed separately to robotics, but is

now starting to become integrated. Unfortunately current AI is fragmented as each application

focuses on one area, as opposed to making a true AI that thinks like a human (Bogue, 2014).

Current usable AI is more akin to ‘smart’ robotics where decisions are made and problems

solved by the robot in very specific applications. In industry, robots are expanding into areas

that require more flexibility allowing robots to fill many more positions in increasingly complex

areas (Hajduk, Jenčík, Jezný, & Vargovčík, 2013). Mobile robots are even becoming more

common place, allowing for dynamic and spread out workspaces. These are all due to adding

sensing and analysis to robots allowing them to react to dynamic environments.

To further robotics in industry, multi robot work cells have been designed that combine

several robots working on the same part while cooperatively performing either one task, such

as welding and the required handling, or multiple tasks at the same time (Hajduk, Jenčík, Jezný,

& Vargovčík, 2013). The number of activities these work cells can perform increases

Page 3 of 14

dramatically, as the complexity of the task or tasks can be higher while the robots don’t need

to be capable of performing the whole task individually.

For performing more human tasks, dual arm robots have begun to emerge (Hajduk, Jenčík,

Jezný, & Vargovčík, 2013). By having two arms on one robot, mobility can be enhanced while

providing some benefits of multi robot systems, further extending the use of industrial robots.

Dual arm robots have a greater operational efficiency as they have a centralized controller,

whereas multiple robots are individual standalone systems, thus needing individual controllers

and additional centralized controllers for communication and task assignment (Zhou, Ding, &

Yu, 2011). An example of dual arm robotics can be found in space applications. Development

of dual arm space robotic systems is currently achieved by relying on tele-operation from an

external location. This requires the same sensory information that could be used by an AI to

automate tasks without the need of constant external control. This could lead to adapting dual

arm robots with AI to industrial applications, especially where the task or environment is

hazardous to humans. This could lead to much safer workplaces along with decreasing running

costs and increasing efficiency while maintaining high quality.

Current research with Baxter has explored many different research areas. For motion planning

an approach was developed that performed a learned task while avoiding obstacles and

reacting to changing task related objects (Bowen & Alterovitz, 2014). This is executed in a

closed loop manner, where an automatic control system is regulated by a feedback loop. This

is implemented by constantly updating information on task-related objects.

The area of object grasping has been explored with Baxter by research into using grippers that

can adapt to the shape and size of an object (Jentoft, Wan, & Howe, 2014). By applying tactile

sensing to each of the three ‘fingers’ of the gripper, information regarding the object shape

can be received, and grips can be adapted. Additionally by analysing sensor data from

occurrences where the object is ejected from the hand, these forces and grips can be avoided.

In addition to motion planning and object grasping, real-time tracking of articulated objects

has been demonstrated with Baxter (Schmidt, Newcombe, & Fox, 2014). Using Dense

Articulated Real-Time Tracking (DART), objects consisting of rigid articulated bodies can be

tracked. These can include many object such as chairs, humans and doorknobs. As position can

be determined, robots can more easily interact with objects.

Page 4 of 14

A demonstration of the Baxter Research Robot solving a Rubik’s cube has been developed

previously (Coles-Abell & Pugh, 2014). This was undertaken to demonstrate the ease of

integrating Baxter Research Robot into a research application. They developed a workflow

consisting of detect, verify, solve, manipulate and complete. Baxter was taught to use a flatbed

scanner to image each face of the cube. This information was fed into OpenCV, an open source

computer vision library, and processed generating a mapping of the cube. This mapping was

then verified using custom algorithms to ensure that the cube was a valid cube. If this failed

the cube was rescanned. This mapping was sent to the Kociemba algorithm which solves the

cube and returns a set of required manipulations. Using the standard grippers the

manipulations are achieved by Inverse Kinematics moves.

AI and robotics have been developed separately and are only recently being combined. By

combining these a higher level of automation for robotics can be achieved. As explored

previously, robotics is currently going through a change where AI has the ability to improve

automation and flexibility of robots greatly in many industries and environments. This project

is aimed at developing an algorithm that combines a simple form of AI with a Baxter Research

Robot to automate a task. By choosing the task as solving a Rubik’s cube, vision recognition

and analysis systems are combined with motion planning and manipulation of objects to

demonstrate the added flexibility by implementing simple AI.

1.2. Objectives

The overall objective of this project is to develop an algorithm that controls the vision and

servos of the Baxter robot to allow it to pick up a Rubik’s cube, visually analyse the cube, find a

solution, and allow the Baxter to manipulate the cube to solve it. As research has already been

done on this, I will be aiming to use only the Baxter robot and no external hardware. This

means that the project will require only the Baxter robot and a computer setup as a

workstation to communicate to the robot.

The solving algorithm must allow any combination of a 3x3 Rubik’s cube to be solved. This

requires a set of rules for solving the Rubik’s cube to be programmed, as opposed to using a

database of solutions. The vision must be able to recognise and determine placement of a

Rubik’s cube placed in front of Baxter on a table, and to recognise the different colours on a

Rubik’s cube with accuracy.

Page 5 of 14

Movements made by Baxter will be mostly programmed in, such as the movements for

analysing the cube and for manipulating it. Motion planning will be needed for retrieving the

cube and placing it back. Ideally the cube will be placed on any spot in reach of Baxter.

As an extension the algorithm could also include the ability to solve a 4x4 Rubik’s cube. This

will require additional research into a solving solution, and possible modification of the

grippers. Additionally the vision software will also be required to identify the type of Rubik’s

cube, and additional movements to manipulate the 4x4 cube will need to be defined.

1.3. Significance

By demonstrating the use of an algorithm that solves a task using vision recognition systems,

servo systems and motion planning system, along with a solving solution, it shows robots can

be used in more dynamic and variable systems. This increases the applications of robots

greatly and allows more complex tasks to be automated in industry. In turn safety in

workplaces can be improved by replacing the worker, quality of the products can be ensured,

and speed of tasks can be improved.

Currently robotics is used mainly in repeat tasks, where high repetition is needed, whereas

developing intelligent automation will allow an increase in available environments and tasks

that can be performed by robots. Applying this to dual arm robotics extends task further,

allowing human like manipulations to be performed. This combination of intelligent

automation and dual arm robotics will further the uses of robotics greatly in all applications,

from space, to industry and manufacturing.

2. Proposed Approach

The project can be broken down into a number of task that need to be completed sequentially

and successfully for the objective to be achieved. All the programming will be done in Python

using the Integrated Development Environment (IDE) Visual Studios. Python was selected as a

programming language as the Baxter robot has an Application Programing Interface (API) that

allows direct python control of the Baxter robot. Additionally the Python programming

language has been developed with emphasis on code readability allowing creation of well laid

out code.

Page 6 of 14

The majority of the work will be done on two computers, one of which I have set up for

programming, and one with simulation software Gazebo (Open Source Robotics Foundation,

2014). This tool is designed for robot simulation capable of simulating detailed environments

and multiple robots and allowing algorithm testing. The computers will be available at all times

meaning work on the programming will not be limited by resource availability. For movement

planning and manipulation MoveIt will be used (Sucan & Chitta, n.d.). This allows movement

planning without having to interact with Baxter physically, reducing the impact of the robots

unavailability.

When working with Baxter RViz will be used (Rethink Robotics, 2014). This tool allows the

current configuration of Baxter to be displayed, along with camera vision and individual sensor

values which will allow superior control and visualisation of Baxter’s movements.

Only one Baxter robot is available but there are multiple projects running on Baxter. A division

of time to be spent testing and working with Baxter will need to be established to allow all the

projects ample use of Baxter. However, use of the simulation software should allow some

work to be done without working with Baxter directly and thus allowing work to continue at a

similar pace.

First vision recognition will be used to identify a Rubik’s cube placed in front of Baxter. Then

inverse kinematics will be needed to obtain the cube, given the relative positions of the

gripper and the cube. The initial placement of the cube will need to be recorded for returning

the cube. A vision system is already provided with Baxter but colour recognition will need to be

added. This will require research on relevant software and to pick the optimal solution through

a trade-off analysis.

Vision recognition will also serve the purpose of identifying the placement of the 6 different

colours. As this system could have errors a check to ensure that there is 9 of each colour will

be put in place to determine if any errors have occurred. If an error occurs, the colour will

either be inferred or the cube will undergo a rescan. All of the colours will be saved either as

strings or values in tables, each representing a face. The colour will be determined by

comparing the pixel value to a range of values that represent each colour. By including a range

of values for each colour the vision recognition should be more robust.

Before the cube can be scanned, a set of movements must be defined that will scan all 6 sides

of the cube one at a time. This will require programming in a set of movements for each arm to

perform, with the colour recognition being used between each movement to scan the cube.

Page 7 of 14

MoveIt will be used to plan the motions for Baxter’s arms and then these motions will be

converted into Python code.

The saved colour positions will serve as the inputs to a solving solution that will solve the

Rubik’s cube and output a list of face rotations that will need to be performed. These rotations

will be translated to sets of movements that are predefined within the code and then

performed in order. As many programs have been written to solve a Rubik’s cube, research will

be done into an efficient solution that requires the least time to solve, and the smallest

number of movements. However the ability to integrate this program into python, and allow it

to interact with the rest of the algorithm will be the most important criteria that will ultimately

determine the solution used.

After the cube is solved, Baxter will then return the cube to its initial position and the

algorithm will end. This will be achieved using reverse kinematics based on the saved initial

position of the cube.

3. Timeline

A Gantt chart can be found as Attachment 2. This chart assumes that by week 12 of semester

two, all project work should be completed for presentation in week 13. The chart also omits

semester two assessments as dates cannot be determined at this time, although the

assessments will be worked on in parallel to the project. The final report will require

continuous work and as such will run for most of semester two. The semester one report and

presentation have been given two weeks each, and are assigned time parallel to task work.

As seen in the chart each task has been further broken into subtasks. Each task is defined as a

section of the project that can be developed and tested by itself which allows for more

targeted debugging. Each task for the project are completed sequentially as they are designed

to be modules that will be combined after all project work related tasks are completed. Even

though time for testing each module has been assigned, rigorous testing has been allowed for

once all the tasks have been combined. This is for unseen issues that may arise. Additionally

two weeks has been given no project work as this is exam time for other units.

Given the generous time allowed, and the various testing that occurs, this timeline is realistic

and should allow for any unseen setbacks.

Page 8 of 14

4. Risk Assessment

Majority of the project work is done on a computer, with testing the algorithm done by using

the Baxter robot. This is reflected in the overall low risk rating shown by the risk assessment

matrix as Attachment 1. The risks have all been assigned a three letter reference that fits in the

following categories:

 SUP - Supervisor

 PER - Personal

 ERG - Ergonomics

 EQU - Equipment

 CMP - Computer

 SFT - Software

Many of the risks are inherently low due to low probability of occurrence or low impact on the

project if they were to occur. The two medium risks are eye strain due to computer work and

loss of project data. These risks required minimisation as they couldn’t be removed

completely. For risk ERG_03 the approach to reduce the risk is to require regular breaks from

the computer, and to ensure ergonomic eye angles and screen distance are abided by. Risk

CMP_01 is medium because of its impact to the project. Losing project work can set back the

project by weeks and as such must be minimised. By using cloud storage as an additional

backup to having the files stored on multiple computers, this reduces the risk impact to low.

Cloud storage also has the added benefit of allowing multiple computers to have access to the

same version of project files.

5. Progress to Date

Current progress has been made to get the Baxter research robot ready to be used. A

workstation installed with Ubuntu 14.04 with Robot Operating System (ROS) Indigo has been

set up to allow a permanent connection to Baxter. The software on Baxter itself has also been

updated to the latest version, 1.1. The arm configuration program has also been run to ensure

correct sensor measurements and precise movements by Baxter. However the configuration

program will need to be run every month as recommended by Rethink Robotics.

Page 9 of 14

A personal Laptop has also been installed with Ubuntu 14.04 and ROS. This is for the purpose

of simulating the Baxter robot when physical testing is unavailable. This laptop can also be

setup to connect to Baxter, if the permanent workstation stops working.

6. Conclusion

Automation through the use of robotics is currently at a stage where many tasks are simple

repeating a predetermined method. By applying the growing field of AI to automation, robots

role can expand greatly, increasing the environments they can be used in alongside expansion

of the tasks that can be performed. By developing a set of algorithms that harnesses a solution

algorithm to solve a Rubik’s cube, with vision recognition systems, manipulation and

movement planning systems and a dual arm robot, a task that is relatively complex can be

completed. This can change how robots are used in not only industry, but in applications as

complex as space maintenance and exploration.

7. References

Adorno, B. V. (2011). Two-arm Manipulation: From Manipulators to Enhanced Human-Robot

Collaboration. Université Montpellier II - Sciences et Techniques du Languedoc.

Retrieved from https://tel.archives-ouvertes.fr/tel-00641678/

Bogue, R. (2014). The role of artificial intelligence in robotics. The Industrial Robot, 41(2), 119-

123. doi:http://dx.doi.org.ezproxy.ecu.edu.au/10.1108/IR-01-2014-0300

Bowen, C., & Alterovitz, R. (2014). Closed-Loop Global Motion Planning for Reactive Execution

of Learned Tasks. In K. Lynch, & L. Parker (Ed.), IROS (pp. 1-7). Chicago: IROS.

Chen, F., Sekiyama, K., Cannella, F., & Fukuda, T. (2014). Optimal Subtask Allocation for Human

and Robot Collaboration Within Hybrid Assembly System. Automation Science and

Engineering, IEEE Transactions on, 11(4), 1065-1075. doi:10.1109/TASE.2013.2274099

Coles-Abell, H., & Pugh, V. (2014). Baxter Solves Rubik's Cube. Retrieved from Baxter Research

Robot Wiki: http://sdk.rethinkrobotics.com/wiki/Baxter_Solves_Rubiks_Cube

Hajduk, M., Jenčík, P., Jezný, J., & Vargovčík, L. (2013). Trends in industrial robotics

development. Applied Mechanics and Materials : Robotics in Theory and Practice, 282,

1-6. doi:10.4028/www.scientific.net/AMM.282.1

Page 10 of 14

Jentoft, L. P., Wan, Q., & Howe, R. D. (2014). Limits to Compliance and the Role of Tactile

Sensing in Grasping. International Conference on Robotics and Automation (pp. 1-6).

Hong Kong: International Conference on Robotics and Automation.

Open Source Robotics Foundation. (2014). Gazebo. Retrieved from Gazebo:

http://gazebosim.org/

Rethink Robotics. (2014). Baxter Research Robot Datasheet. Retrieved from Rethink Robotics:

http://cdn-staging.rethinkrobotics.com/wp-

content/uploads/2014/08/BRR_009.09.13.pdf

Rethink Robotics. (2014). Baxter Research Robot Wiki. Retrieved from Rethink Robotics:

http://sdk.rethinkrobotics.com/wiki/Main_Page

Rethink Robotics. (2014). Rviz. Retrieved from Baxter Research Robot Wiki:

http://sdk.rethinkrobotics.com/wiki/Rviz

Rethink Robotics. (2015). Baxter Research Robot. Retrieved from Rethink Robotics:

http://www.rethinkrobotics.com/baxter-research-robot/

Schmidt, T., Newcombe, R., & Fox, D. (2014). DART: Dense Articulated Real-Time Tracking.

Robotics: Science and Systems (pp. 1-9). California: Robotics: Science and Systems.

Sucan, I. A., & Chitta, S. (n.d.). MoveIt! Home. Retrieved March 1, 2015, from MoveIt!:

http://moveit.ros.org/

Zhang, T., & Ouyang, F. (2012). Offline motion planning and simulation of two-robot welding

coordination. Frontiers of Mechanical Engineering, 7(1), 81-92. doi:10.1007/s11465-

012-0309-4

Zhou, J., Ding, X., & Yu, Y. Q. (2011). Automatic planning and coordinated control for

redundant dual-arm space robot system. The Industrial Robot, 38(1), 27-37.

doi:http://dx.doi.org/10.1108/01439911111097823

Page 11 of 14

Attachment 1 – Risk Assessment Matrix

R is

k R

e fe

re n

c e

Risks Consequences Current

Risk Treatments

Current Level of Risk

Additional Risk Treatments

Residual Level of Risk

L ik

e li

h o

o d

C o

n s e q

u e n

c e

R is

k L

e v e l

R a n

k in

g

L ik

e li

h o

o d

C o

n s e q

u e n

c e

R is

k L

e v e l

R a n

k in

g

SUP_01 Supervisor is not contactable/unavailable

for an extended period of time

Advice and guidance cannot be given, possibly

allowing misinformation and a lack of help

when needed.

The unit co-ordinator can be

approached for general information. 1 2 2 L None Required 1 2 2 L

PER_01 Sickness or unrelated injury

Reduced work progress or complete stoppage.

Can set behind the whole project causing

stress.

Computers available at residence

has required software to work on

much of the project, allowing work

to continue, abet at a slower pace.

2 2 4 L None Required 2 2 4 L

PER_02 Project work causes too much stress

Reduced ability to work on both project and

other units. Can fall behind further increasing

stress.

Maintain health level of

commitment to work, while allowing

for time spend outside of project

and unit work.

2 2 4 L None Required 2 2 4 L

ERG_01 Bad posture or sitting position

Sore back, shoulders and neck. Will reduce

productivity and act as a distraction preventing

focused work.

Adjustable chairs with movable seat

angle and back position allowing an

ergonomic seating position.

2 2 4 L None Required 2 2 4 L

ERG_02 Repetitive Strain Injuries in hands or

wrists

Computer work becomes painful impacting on

both project work and unit work.

Regular breaks from computer

work. 2 2 4 L

Implement regular wrist exercises.

Use correct hand position according

to ergonomic standards.

1 2 2 L

ERG_03 Eye strain/soreness Work must be stopped to rest eyes. Have regular breaks from computer

work. 3 2 6 M

Correct ergonomic eye level and

distance from screen. 2 2 4 L

Page 12 of 14

EQU_01 Baxter robot breaks completely Baxter cannot be used to test or demonstrate

project.

Simulation software Gazebo can be

used in place of Baxter for proof of

concept.

1 3 3 L None Required 1 3 3 L

EQU_02 Collision of Baxter robot with person Affected area can have slight soreness.

Baxter's limited force application

(lifting limit of 2kg) and slow motion

ensures all collisions are low

impact.

2 1 2 L Area near Baxter to be clear of

persons before and during use. 1 1 1 L

EQU_03 Some systems of Baxter stop working All the main functions are needed, and as such

this could completely eliminate using Baxter.

Use of Gazebo simulation software

in place of Baxter may be required

but will be sufficient to perform tests

and present the project.

1 3 3 L None Required 1 3 3 L

CMP_01 Loss of data Time and effort wasted by losing data due to

hard drive crashes or data corruption.

Copies of all project files are on

different computers and backed up

on USB's

2 3 6 M Use of cloud storage to add another

backup of project data and allow

syncing between devices.

1 1 1 L

CMP_02 Workstation computer that connects to

Baxter fails

Communication through workstation to Baxter

and thus testing cannot be done.

Laptop is set up with required

software and can be used instead

of lab computer. Software can be

reinstalled on a different computer

in the lab. This would require a

couple hours of work.

1 3 3 L None Required 1 3 3 L

CMP_03 Either personal computer used for

programming work fails

Limit personal computer work and therefore set

back or slow down project work.

Multiple computers set up to work

on. 1 2 2 L None Required 1 2 2 L

SFT_01 Communication software becomes

unsupported

Cannot communicate and thus use the Baxter

robot.

Gazebo Simulation Software can

be used in place of Baxter robot. 1 3 3 L None Required 1 3 3 L

SFT_02 MoveIT software becomes unsupported Motion planning cannot be done using the

software. Can cause a large setback.

Motion planning will require test

with the Baxter robot, or use of

Gazebo simulation software.

1 3 3 L None Required 1 3 3 L

Page 13 of 14

SFT_03 Rviz software becomes unsupported Detailed information about Baxter cannot be

displayed while testing.

Although less information can be

obtained, tests can still be

performed. Debugging of Baxter

can be done by rqt_console

software.

1 2 2 L None Required 1 2 2 L

SFT_04 Visual Studios IED becomes

unsupported

Programming cannot be done using Visual

Studios, stopping relevant work.

Another IDE can be used in place

to allow programming work to

recommence.

1 2 2 L None Required 1 2 2 L

SFT_05 Gazebo Simulation software becomes

unsupported

Accurate simulation of Baxter robot in an

environment cannot be done. Can slow down

project development.

Physical testing with Baxter must

replace simulation tests. 1 3 3 L None Required 1 3 3 L

Activity Overall Risk Rating 0.00 Low

Page 14 of 14

Attachment 2 – Timeline Gantt chart

30-Mar 13-Apr 27-Apr 11-May 25-May 8-Jun 22-Jun 6-Jul 20-Jul 3-Aug 17-Aug 31-Aug 14-Sep 28-Sep

Total for Task

Research best vision system for detecting cube

Motion planning to grab Rubik's cube

Testing

Total for Task

Raise cube into head camera vision

Identify and save values of colours

Motion planning to allow all sides to be analysed

Testing

Total for Task

Research and determine best solution method

Implement into python and Testing

Total for Task

Motion planning for each face rotation required

Testing

Total for Task

Place cube in original position and Testing

Total for Task

Testing and Finalising

Total for Task

Poster Presentation

Project Report

G ra

b R

u b

ik 's

cu b

e Id

e n

ti ty

C u

b e

c o

lo u

rs So

lv e

R u

b ik

's cu

b e

M a

n ip

u la

te R

u b

ik 's

c u

b e

R e

tu rn

R u

b ik

's cu

b e

O ve

ra ll

A lg

o ri

th m

Se m

e st

e r

1 A

ss e

ss m

e n

ts