automated barge unloading

Upload: cimut125

Post on 29-May-2018

232 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/8/2019 Automated Barge Unloading

    1/16

    Automated Barge Unloading

    ME 230Real-time Programming for Mechanical Control Systems

    University of California, Berkeley

    Final Project

    Joshua Cemenska

    Mike Mueller

  • 8/8/2019 Automated Barge Unloading

    2/16

    Table of Contents

    INTRODUCTION .........................................................................................................................................................................3

    DEMONSTRATION ....................................................................................................................................................................3

    FEATURES / SPECIFICATIONS............................................................................................................................................8

    TASK DIAGRAM.........................................................................................................................................................................8

    STATE DIAGRAMS ....................................................................................................................................................................9

    MACHINE CONTROL....................................................................................................................................................................9MOTOR SETPOINT PROFILERS ................................................................................................................................................. 10GUI ............................................................................................................................................................................................. 10PID ..............................................................................................................................................................................................10PWM........................................................................................................................................................................................... 11VELOCITY MEASUREMENT ......................................................................................................................................................11

    PVCS

    TATED

    IAGRAM.............................................................................................................................................................. 12

    SOFTWARE .................................................................................................................................................................................12

    GRAPHICAL USER INTERFACE .......................................................................................................................................14

    IMPLEMENTATION ISSUES ................................................................................................................................................15

    CONCLUSION.............................................................................................................................................................................15

  • 8/8/2019 Automated Barge Unloading

    3/16

    Introduction

    With the rise of just-in-time manufacturing, reliability of the supply chain and thelogistics governing the flow of goods has become mission-critical for many businesses. Our

    final project simulates the large mechatronic container crane systems (like those found in the

    Port of Oakland) used to unload containers from barges. Arrangement of containers on ships isdeliberate, allowing the use of robotics and automation to speed unloading at the port.

    A six degree-of-freedom robot arm is used to simulate the container crane system. We

    use Coca-Cola cans in place of semi-sized containers. Cans can be stacked two high, to simulate

    the multiple layers of containers commonly found on barges. Our mechatronic system canremove any container desired. If a container is inaccessible due to the fact that it has a container

    resting on top of it, the mechatronic system can rearrange the containers to allow for the bottom

    container removal.

    Demonstration

    Our demonstration allows a user with no prior training to operate the barge unloading

    mechatronic system. The user simply points and clicks on the desired container and the robot

    removes the containers. The robot will automatically rearrange containers as necessary to carryout the users objective. Our setup assumes that containers are in a predetermined location. Our

    assumption is not unrealistic in that containers are positioned on the boat in a predetermined,

    optimized way to allow for ease of loading/unloading and to allow a ship to contain the greatestnumber of containers.

    Figure 1: The five container setup used throughout our demonstration. Cans are configured into

    three columns. Two of the columns are stacked two cans high.

  • 8/8/2019 Automated Barge Unloading

    4/16

    Figure 2: The robot has been commanded to pick up the bottom diet Coke can. The robot first removes the top

    diet Coke can to allow access to the bottom can.

    Figure 3: Having moved the top diet Coke can to a temporary storage position, the robot now grabs the

    desired bottom diet Coke can.

  • 8/8/2019 Automated Barge Unloading

    5/16

    Figure 4: The robot gives the can a shake to determine whether it is empty or full. This diet Coke can is full,

    and thus it is placed as shown.

    Figure 5: The robot now retrieves the diet Coke can from the temporary storage position.

  • 8/8/2019 Automated Barge Unloading

    6/16

    Figure 6: To complete the move, the robot now returns the stored can to its initial position (now at the lower

    level).

    Figure 7: The robot can also identify empty cans. Here, the robot will pick up the right-most Mountain Dew

    can.

  • 8/8/2019 Automated Barge Unloading

    7/16

    Figure 8: Here, the robot shakes the can to determine whether it is full or empty. Based on the resistance, the

    robot realizes that this can is empty.

    Figure 9: In contrast to the full can scenario, the robot moves the empty can towards the edge of the table.

  • 8/8/2019 Automated Barge Unloading

    8/16

    Figure 10: The robot drops the empty can off the table, allowing it to be automatically discarded into a trash

    can.

    Features / Specifications

    Reliable and repeatable removal of individual cans

    Point-and-click graphical user interface Removal of containers at various z-positions (multi- layer removal) Rearrangement of containers to allow full access

    Automatic tracking of repositioned containers Automatic determination of full / empty containers (damage detection)

    Configuration preferences for three, four, or five containers

    Task Diagram

    The task diagram illustrates the relationships between distinct events that take place in parallel.

    Tasks have been divided into a top-level machine control, motor movement task, and GUI task.Separate tasks are also used to implement PID control, PWM, the setpoint profiler, and the

    velocity measurement.

  • 8/8/2019 Automated Barge Unloading

    9/16

    State Diagrams

    Each state diagram illustrates a task. Only one state is active for a given task at a time.

    Machine Control

    Software

    Hardware

    PID

    Motor Movement GUI

    Motor 1SetpointProfiler

    Task Diagram

    Machine Control

    PWM

    Amp

    Motor

    Encoder

    Motor 2SetpointProfiler

    Motor nSetpointProfiler

    VelocityMeasurement

    PID

    PWM

    Amp

    Motor

    Encoder

    VelocityMeasurement

    PID

    PWM

    Amp

    Motor

    Encoder

    VelocityMeasurement

    Motor Movement State Diagram

    Power up

    UprightEntry:

    Action:

    Move from Uprightto Home

    Entry:Action: Follow profile

    Start=1

    Home

    Entry:

    Action:

    At home

    Set Sequence

    Entry:Determine ifbottom covered,set sequence

    (movement)

    Move to can

    Entry: Loadprofile

    Action: Followprofile for eachmotor

    Sequenceset

    Grab can

    Entry:

    Action: Closegrip

    Move to homeEntry: Load profile

    Action: follow profile

    Move to targetEntry: set target

    load profile

    Action: Followprofile

    Full IDEntry: Setup

    move

    Action: Executemove; averageDC

    Drop canEntry:

    Action: Open

    grip

    Return homeEntry: Load

    profile

    Action: Followprofile

    At home

    Grip openMovedone

    Movedone

    At homeCan = chosen

    Grip closed

    Selectcan Move

    done

    At homeCan = covered

  • 8/8/2019 Automated Barge Unloading

    10/16

    Motor Setpoint Profilers

    GUI

    PID

    On

    Entry: DisplayGUIAction:

    Off

    Entry: Show GUI

    Action:

    GUI State Diagram

    exit =1

    Power up

    display =1

    Profiler On

    Entry:Action: Produceout ut values

    Motor Setpoint Profiler State Diagram

    Power up

    PID OnEntry:Action:Calculate loopoutput

    PID State Diagram

    Power up

  • 8/8/2019 Automated Barge Unloading

    11/16

    PWM

    Velocity Measurement

    The PID, PWM, and velocity measurement, tasks have been combined into a single task, the

    PVC (proportional velocity control). The state diagram incorporating all three subtasks is shownbelow.

    VelocityMeasurment

    Entry:Action: Readvelocity

    Velocity Measurement State Diagram

    Power up

    OffEntry: Turnoutput offAction:

    OnEntry: Turn outputon

    Action:

    PWM State Diagram

    time >duty cycle

    Power up

    time > PWM cycle time

  • 8/8/2019 Automated Barge Unloading

    12/16

    PVC State Diagram

    Software

    Control of the robotic manipulator was implemented in Java using state transition logic.

    Encoder positions of the robotic manipulator were monitored in order to determine a series of

    motions suitable to grasp each can. A home position and a ready position were created toallow for ease of repeatability. The home position put the robot into a fully upright position,

    while the ready position placed the robot in a position from which it could easily grasp any

    desired can.

    HoldEntry: No operation

    Action: No operation

    AccelEntry: Adjust setpoint

    Action: Calculate dutycycle

    Decelerate

    Entry: Adjust setpointAction: Calculate DutyCycle

    Constant VelEntry: Stop motorsAction: Calculate duty

    cycleTime > RiseTime + Time at Max

    Stop == 1

    Zero the positionEntry: No operationAction: Calculate dutycycle

    Start_Move ==1

    Reach 0

    Move to 0command Time > RiseTime +

    Start Time

  • 8/8/2019 Automated Barge Unloading

    13/16

    Figure 11: The 'home' position

    Figure 12: The ready position

  • 8/8/2019 Automated Barge Unloading

    14/16

    Implementation of the control portion of the software requires the use of a proportional-integral-derivative (PID) controller, pulse-width modulation, a setpoint profiler, and velocity

    measurement.

    Each object is created in a top-level file named Run. Because there are 6 motors in the robotic

    arm there are 6 PID controllers, 6 pulse-width modulation objects, and 6 velocity measurementobjects. Each velocity measurement object has a boxcar filter. There are many more setpoint

    profilers because each motor has the ability to make several movements; each movement is madeby following a distinct setpoint profile.

    Not depicted in the task diagram, there is a motor movement object that sets the setpoint profilerfor each of the motors. A movement is simply a collection of profiles for specific motors, and it

    specifies the order in which the motors should successively execute their individual movements.

    The movement is called by the machine control in order to set the profilers and order of motor

    execution.

    The program is constructed such that the user chooses a can from using the GUI, which is

    explained in the next section. This triggers the machine control to identify the chosenmovement, which lines up the profiles for each of the motors for that movement. This happens

    in the state entitled Set Sequence. Set Sequence specifies the movement to the chosen can and

    the movement from the can to back to the home position.

    If the GUI-selected can is covered by another can the robot first moves the covering can to a

    temporary holding position. Then it returns for the chosen can. When the robot is holding the

    chosen can in the home position it makes 1 move to determine whether the can is full or empty.If the can is heavier then it is identified as full and is then moved to the target position. If the

    can is lighter then it is identified as empty and is discarded into a trash pile. If the chosen can

    was originally covered then the robot returns the covering can to the position that the chosen canpreviously was occupying. The robot arm then returns to home to await the next GUI

    command.

    Graphical User Interface

    All commands used throughout the state transition logic aspects of the software have

    been migrated to a graphical user interface to allow operation to occur through a simpler point-

    and-click interface. The graphical user interface adds a layer on top of the implementing code.Removal does not prevent operation of the software. Rather, reversion to manual entry of

    commands is required.

  • 8/8/2019 Automated Barge Unloading

    15/16

    Figure 13: The Graphical User Interface. The robotic arm is controlled by a point-and-click interface. The red

    Coca-Cola buttons each represent a can.

    Figure 14: The Configuration Menu. The GUI allows the user to set preferences as to the number of containers

    on board and removes the controls for cans that are absent. Here, the default five-can configuration has been

    altered to reflect the presence of just three cans.

    Implementation Issues

    Our primary implementation issue was coding for repeatable, reliable performance.Subtle differences in the initial position of the robotic manipulator or slight error in coding the

    encoder positions could produce drastic errors over many moves and long time periods. To

    overcome this difficulty, we created home and ready positions; these positions can be easily

    reached from any state and can be precisely and accurately attained each time.

    Conclusion

    This project has tied together many of the lessons learned throughout the course. We

    successfully implemented a real-time control system that serves as a model for similar systems

    operating on large mechatronic systems to solve real-world problems. We utilized the principles

  • 8/8/2019 Automated Barge Unloading

    16/16

    of object-oriented programming including hierarchical design and code reuse, and successfullydeveloped our system using Java. We successfully broke down a complex set of requirements

    into small building blocks that were more easily managed successfully debugged those blocks

    until they were consistent and reliable, and then integrated the many pieces together. Our project

    serves as a demonstration of the complementary nature of object-oriented programming

    principles with real- time control systems. We hope the lessons learned from this project willallow us to achieve similar success in future control system software design.