automated barge unloading
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.