LEGO NXT-based Robotic Arm



Similar documents
INTRODUCTION TO SERIAL ARM

Additional Guides. TETRIX Getting Started Guide NXT Brick Guide

Tutorial for Programming the LEGO MINDSTORMS NXT

ROBOTICS AND AUTONOMOUS SYSTEMS

The NXT Generation. A complete learning solution

Hand Gestures Remote Controlled Robotic Arm

An inertial haptic interface for robotic applications

Introduction WELCOME TO LEGO MINDSTORMS EDUCATION

FUNDAMENTALS OF ROBOTICS

Introduction WELCOME TO LEGO MINDSTORMS EDUCATION

What Is an Electric Motor? How Does a Rotation Sensor Work?

Building Robots with NXT and LEJOS. Introduc<on. What is the NXT Robot Michael Wooldridge liv.ac.uk)

Six-servo Robot Arm. DAGU Hi-Tech Electronic Co., LTD Six-servo Robot Arm

Programming LEGO NXT Robots using NXC

Embedded Systems on ARM Cortex-M3 (4weeks/45hrs)

Unit 1: INTRODUCTION TO ADVANCED ROBOTIC DESIGN & ENGINEERING

Sensor Based Control of Autonomous Wheeled Mobile Robots

Stirling Paatz of robot integrators Barr & Paatz describes the anatomy of an industrial robot.

Using the VEX Cortex with ROBOTC

Bluetooth + USB 16 Servo Controller [RKI-1005 & RKI-1205]

A 5 Degree Feedback Control Robotic Arm (Haptic Arm)

EasyC. Programming Tips

The second goal is to provide a list of tips, tricks, and best known methods that have been discovered over the life span of the course.

Self-Balancing Robot Project Proposal Abstract. Strategy. Physical Construction. Spencer Burdette March 9, 2007

Byte code Interpreter for 8051 Microcontroller

CONTENTS. What is ROBOTC? Section I: The Basics

Downloading a Sample Program over USB

CIM Computer Integrated Manufacturing

Computer and Set of Robots

An Experimental Study on Pixy CMUcam5 Vision Sensor

Hazlet Township Public Schools

Best Robotics Sample Program Quick Start

Design-Simulation-Optimization Package for a Generic 6-DOF Manipulator with a Spherical Wrist

Congratulations for making the decision to become one of the many proud KT-X robot owners.

Next Gen Platform: Team & Mentor Guide

INSTRUCTOR WORKBOOK Quanser Robotics Package for Education for MATLAB /Simulink Users

EDK 350 (868 MHz) EDK 350U (902 MHz) EnOcean Developer Kit

Computer Automation Techniques. Arthur Carroll

WISER 14. By the Robosses (Nila, Ishaa, Parvathi, Shivadharshne) National Public School, Bangalore, India And Vishnu Ram

How To Calculate Kinematics Of A Parallel Robot

Design Aspects of Robot Manipulators

Tutorial for MPLAB Starter Kit for PIC18F

Embedded Software Development: Spottbillige Hardware + OSS = Zum Spielen zu Schade!

Design of a six Degree-of-Freedom Articulated Robotic Arm for Manufacturing Electrochromic Nanofilms

High Accuracy Articulated Robots with CNC Control Systems

Force/position control of a robotic system for transcranial magnetic stimulation

Wireless Microcontrollers for Environment Management, Asset Tracking and Consumer. October 2009

DAKTON µ BOX MANUAL µbox User Manual 1

PART I: WELCOME TO THE WONDERFUL WORLD OF ACCESSORIES CHAPTER 1: INTRODUCTION TO ANDROID OPEN ACCESSORY 3

This idea could limit unnecessary visits and help developing countries to provide healthcare remotely as well.

Project Development Plan

FRC WPI Robotics Library Overview

Controlling a Mobile Robot with a Personal Digital Assistant

Board also Supports MicroBridge

Programmable Logic Controllers Definition. Programmable Logic Controllers History

EMX-2500 DATA SHEET FEATURES GIGABIT ETHERNET REMOTE CONTROLLER FOR PXI EXPRESS MAINFRAMES SYSTEM LEVEL FUNCTIONALITY

Design of a Robotic Arm with Gripper & End Effector for Spot Welding

Autonomous Advertising Mobile Robot for Exhibitions, Developed at BMF

Mechanical Design of a 6-DOF Aerial Manipulator for assembling bar structures using UAVs

EV3 Programming. Overview for FLL Coaches. A very big high five to Tony Ayad

Embedded and mobile fingerprint. technology. FingerCell EDK

2.0 Command and Data Handling Subsystem

Android, Bluetooth and MIAC

PROJECT PRESENTATION ON CELLPHONE OPERATED ROBOTIC ASSISTANT

Waspmote. Quickstart Guide

Courtney Pinnell. Dr. Can (John) Saygin. Edward E. Whitacre Jr. College of Engineering

Intelligent Submersible Manipulator-Robot, Design, Modeling, Simulation and Motion Optimization for Maritime Robotic Research

INTRODUCTION. Robotics is a relatively young field of modern technology that crosses traditional

Lab 3 Microcontroller programming Interfacing to Sensors and Actuators with irobot

WinCon Programmable Automation. Controller

CB-OLP425 DEVELOPMENT KIT GETTING STARTED

C.I. La chaîne d information LES CAPTEURS. Page 1 sur 5

UNIT 1 INTRODUCTION TO NC MACHINE TOOLS

Simulation of Trajectories and Comparison of Joint Variables for Robotic Manipulator Using Multibody Dynamics (MBD)

Lego Mindstorms NXT Network

SIP Protocol as a Communication Bus to Control Embedded Devices

Using the Android Platform to control Robots

Cypress Semiconductor: Arduino Friendly PSoC Shield

Figure Cartesian coordinate robot

Nagpur, Maharashtra, India

How To Control Gimbal

Flight Controller. Mini Fun Fly

Accurate Measurement of the Mains Electricity Frequency

DROFLY PRO V3 User Guide

Human-like Arm Motion Generation for Humanoid Robots Using Motion Capture Database

Communication Protocol

ROBOTC Software Inspection Guide with Additional Help Documentation

How To Program An Nxt Mindstorms On A Computer Or Tablet Computer

Dell Wyse Cloud Connect

Internet of things (IOT) applications covering industrial domain. Dev Bhattacharya

Mobile Operating Systems Lesson 05 Windows CE Part 1

Fachbereich Informatik und Elektrotechnik SunSPOT. Ubiquitous Computing. Ubiquitous Computing, Helmut Dispert

Robotics and Automation Blueprint

Programming the VEX Robot

Electronic Interface for Pneumatic Grippers Using USB Port

Synapse s SNAP Network Operating System

Servo Info and Centering

Prototyping Connected-Devices for the Internet of Things. Angus Wong

Microcontrollers and Sensors. Scott Gilliland - zeroping@gmail

Selecting Robots for Use in Drug Discovery and Testing

Transcription:

Óbuda University e Bulletin Vol. 2, No. 1, 2011 LEGO NXT-based Robotic Arm Ákos Hámori, János Lengyel, Barna Reskó Óbuda University barna.resko@arek.uni-obuda.hu, hamoriakos@gmail.com, polish1987@gmail.com Abstract: This paper presents a 3 DOF robotic arm. The arm s end effector was equipped with a pen, and the robot was constructed so that it can draw on a paper sheet with the attached pen. The robotic arm is constructed using LEGO NXT. The purpose of the development was to create a control system of the servo motors for the robot, as well as the inverse kinematics, used for moving the arm. The NXT controller is using the LejOS firmware for optimal motor control, while inverse kinematics is being calculated on a PC connected to the NXT via bluetooth. The robotic arm is used in education projects, and several further student projects have been inspired by the results of this paper. 1 Introduction The robots play an important role nowadays in the industry, research, and their growing number is due to their wider and more extensive use in different areas. In order to make them tangible for students, they should also be well applied in education in the field of technical and information sciences. This paper deals with a 3DOF robot arm made from the popular LEGO-NXT, which can be controlled remotely via the Internet. The LEGO-NXT robot arm is made up of building blocks, so it can be easily further developed. The arm pivot movement of the servomotors in stock ensure that the positioning ones own software carried out by the inverse-kinematics, Bluetooth and other technologies. In this paper we present a model of a robot arm, which was built out of LEGO-NXT. We designed the structure and the software. The robotic arm can be controlled from a PC, via bluetooth. The coordinate data on the PC side software is sent to the articulation angles of the displacement of the NXT brick. The NXT-Brick in the joint area of engine positioning. Following chapters discuss in detail the background of robotics, LEGO NXT-operation and how we applied our solution to these. The goal of the robot arm is to provide a robotic platform that can draw on a paper 493

Á. Hámori et al. LEGO NXT based Robotic Arm sheet, with the purpose of educational use in the field of robotics and robot programming. The rest of the paper is organized as follows. Finally, Section concludes the paper. The paper is based upon the paper of the authors published in [1]. 2 Background 2.1 LEGO NXT Lego NXT [2] is a very popular robotics kit released by the Lego company. It is very easy and intuitive to build robotics hardware with the available lego pieces, and the controller provided gives full control over the actuators and sensors of the kit, allowing fast and efficient software development. The Lego NXT control block has an embedded computer, some buttons, 4 inputs and 3 outputs. The main processor is an Atmel 32-bit ARM processor with 256 KB FLASH, 64 KB RAM, 48 MHz, and there is an Atmel 8-bit AVR coprocessor, ATmega48 4 KB FLASH, 512 Byte RAM, 8 MHz. The NXT's three output ports (A, B, C) allow for attaching motors, while the four input ports allow for attaching sensors and a USB port to download programs from your computer to the NXT. A wireless Bluetooth connection is also available for for uploading, downloading programs, as well as for real-time data communication and control. The programming of an NXT brick can be done in many ways. The simplest way is to use the LabView extension of the software that comes with the kit. For advanced users, a c-like language with an extensive API is also available, called NXC. LejOS is an alternative operating system on the NXT brick, which allows development in Java. No matter which language is used, the NXT can be applied to implement robotics tasks from beginners to advanced software developers. The bluetooth connection of the NXT opens the gate for higher levels of intelligent autonomous behavior, which can run on a remote PC, controlling the NXT via a wireless link. The advantages above were the main reasons why the Lego NXT kit was applied in the implementation of the robot discussed in this paper. 2.2 Inverse Kinematics The inverse kinematics problem is simply stated as, "Given the desired position of the robot's hand, what must be the angles at all of the robot's joints?" This is in contrast to the forward kinematics problem, which is, "Given the angles at all of 494

Óbuda University e Bulletin Vol. 2, No. 1, 2011 the robot's joints, what is the position of the hand?" When moving their hands, or even typing this paper, humans constantly solve the inverse kinematics problem without any conscious effort. Kinematics is the formal description of motion. One of the goals of rudimentary mechanics is to identify forces on a point object and then apply kinematics to determine the motion of the object. Ideally the position of the object at all times can be determined. For an extended object, (rigid body or other), along with linear kinematics, rotational motion can be applied to achieve the same objective: Identify the forces, develop the equations of motion, find the position of center of mass and the orientation of the object at all times. An articulated figure consists of a set of rigid segments connected with joints. Varying angles of the joints yields an indefinite number of configurations. The solution to the difficult inverse kinematics problem is to find the joint angles given the desired configuration of the figure (i.e., end effector or pen). In the general case there is no analytic solution for theinverse kinematics problem. However, inverse kinematics may be solved via nonlinear programming techniques. Certain special kinematic chains - those with a spherical wrist - permit kinematic decoupling. This treats the end effector's orientation and position independently and permits an efficient closedform solution. In our Lego NXT robot, there are three joints, and one horizontal rotation axis. These we can move with the nxt and positioning the end effector to the desired position. 495

Á. Hámori et al. LEGO NXT based Robotic Arm 496

Óbuda University e Bulletin Vol. 2, No. 1, 2011 3 Results 3.1 Hardware Design of the Robotic Arm Robot arms, grippers and end-effectors (devices that attach to the end of an arm such as electromagnets, etc.) are the best ways for a robot to interact with the environment it is exploring. Simple robot arms can have just one motion, while more complex arms can have a dozen or more unique degrees of freedom. Lego Mindstorms based robots is one of the best way of amateur robotics buildingpacked with the latest in servo motor technology, microcontrolled hardwares and remote controllers. The most important advantages of using Lego Mindstorms lego elements provides a simple way to rebuild the architecture in the development phase anytime [3]. We built a robot arm using LEGO-NXT. Two LEGO-NXT bricks are used to handle the motors and connect to PC over bluetooth and USB cable. Four servo motors work together to position the endpoint of the robotic arm. Because we must have four motors, we must use two lego bricks, and synchronize them. Six batteries provide the energy for each NXT Bricks, and these batteries discharge in a few minutes. So we used a better way to keep the power on the maximum continuously. Batteries were replaced with a power supply. We tried many unofficial Lego NXT Brick Firmwares. One of them is called LejOS that we chose because of it's advantages. We used a programming library called NXT.Net for controlling NXT Bricks so we decided to create pc side software in.net Framework. 3.2 Software Design The program that we created to control the robot arm using inverse kinematics includes the NXT.Net library (NxtNet.DesktopLib.dll), the InverseKinematics library (IKLib.dll) and the host program (nxt.exe). NXT.NET is a.net library written in C sharp 3.0 that enables host applications to control the LEGO Mindstorms NXT from managed code via Bluetooth connection. NXT.NET contains a desktop and a mobile library and sample desktop Windows Forms and Windows Mobile Pocket PC applications. It is created by the Hungarian MSDN Competence Center. NXT.NET contains the following components: NxtNet.DesktopLib and NxtNet.MobileLib are two class libraries with the same feature set compiled as a desktop and as a mobile component. The library enables the host application to control a LEGO Mindstorms NXT robot via a Bluetooth connection. NxtNet.DesktopApp is a.net Windows Forms desktop application that is built using the NxtNet.DesktopLib component and enables the user to test the library features and remotely control a LEGO Mindstorms NXT robot from a PC. 497

Á. Hámori et al. LEGO NXT based Robotic Arm NxtNet.MobileApp is a.net Compact Framework mobile application that is built using the NxtNet.MobileLib component and enables the user to test the library features and remotely control a LEGO Mindstorms NXT robot from a Windows Mobile 5.0 Pocket PC. NXT.Net library (NxtNet.DesktopLib.dll) enables the host to connect to the NXT, query general parameters (brick name, version, Bluetooth address, free flash memory, battery level, keep alive time), initialize sensors and query sensor values. The program module of controlling the robot arm (IKLib.dll) uses trigonometric functions which computes the alpha, beta, gamma and eta degrees from the specified x, y, z coordinates for the motors. Alpha, Beta and Eta degrees used for vertical and horizontal movement, Gamma for positioning the end-effector. We built our own three degree of freedom robot arm that uses our software developed for inverse kinematics, so it can position the end-effector. 3.3 The Robot Arm in Operation First step: switch on the NXT bricks. Second step: set the robot arm in the base position for the software that compares the workspace from this point. Third step: Set the coordinates to positioning the end-effector. 3.4 Testing and Evaluation We had to rebuild the robot arm several times to make it stable. Rotation of robot arm We tried a lot of gear to make the rotaion precise. Finally we decided to use a wormgear to solve this problem. Motor moves, degree problems NXT-G firmware was unable to convert degrees to tacho values. We figured out we need an other operating system on the NXTs. Finally, we found LejOS firmware, and replaced the original with it. Multiple NXT Bricks connected to PC In the first times it was a problem to connect multiple Bricks to one PC at the same time. Using NXT.Net solved this. Using Lego NXT to build our robotarm has had many advantages: easy hardware and software developement, hardware variability, Bluetooth support, highly accurate motor control. Working on this project we have gained experience, and we expanded our knowledge. In the future we would like to work on and develop multiple degrees of freedom robot arms. References [1] A. Hámori, J. Lengyel, and B. Reskó: 3DOF Drawing Robot Using LEGO- NXT, Proc. of 15 th IEEE International Conference on Intelligent Engineering Systems 2011 [2] O. L. website: About lego nxt, On the web, 2010 [3] J. A. B. Moral: Develop Lejos Programs Step by Step, www.juanantonio.info, 2009 498