Pick en Place Casus/Experiments manual
Instructions for measuring and controlling the Pick and Place setup.
This manual describes the necessary hardware #Hardware and Software for measuring and controlling the Pick and Place setup. The section #Performing Real-Time experiments includes an introduction to the use of the preparation and the actual execution of experiments. To use a setup, you can subscribe at the appropriate registration lists in SEL3 (1 setup per half day per group).
Almost every day, for several hours assistance available in SEL3, where you can ask your questions. For questions during the experiments, please contact Jacco Hubregtse or your group tutor. The project coordinator is Rene van de Molengraft ( , tel 2998, GEM-Z -1.141).
The case is a special designed three degree of freedom robotarm with a solenoid as end effector, depicted below. The required hardware for the experimental set-up is included in Table 1. You have to take your own notebook to do experiments.
- Notebook with E/box image installed;
- Experimental Pick and Place setup (see below);
- Two E/boxes including ethernet cable;
- Three BNC cables (one included in each E/box kit)
- Three differential connected encoder cables. Note: These are NOT the ones included in the E/box kit.
The three axes of the pick and place robot are driving using stepper motors (ST4118, NEMA17). The stepper motors are controlled in torque using specific controllers (iPOS360x BX-CAN). The radial position of the motors is measured using incremental encoders with differential output (WEDS5541). As visible, gears are used to couple the torque from the motor to the bodies of the robot. The gears are preloaded with springs to overcome the problem of backlash.
To control and measure the robot two E/boxes are needed. E/boxes can be connected in series by using a link ethernet cable. The connections that have to be made before starting the model are depicted in Figure 1. Once again, the encoder cables included in the E/box kit are not sufficient for this setup, use the differential connected cables. The differential connected cables have more connections; the PWM output of the E/box is used for controlling the solenoid and safety and the encoder are connected differential in order to reject noise.
Installation of Ubuntu with Wubi
WARNING: This installation will only work on a normal installation of the Windows Operating System as it depends on the Windows Boot loader. If you use another operating system or if you are unsure please contact one of the course supervisors.
Wubi is a linux installer for Windows which can install and uninstall Ubuntu in the same way as any other Windows application in a simple and safe way. Ubuntu will be installed within a file in the Windows system ebox_root.disk. This file is seen by Ubuntu as a real hard disk.
The installation of Ubuntu used for this course takes up 30 GB of free-space. Therefore, it is recommended to install Ubuntu by connecting to TU/e network via an ethernet cable. Using VPN or wireless is strongly discouraged!
The wubi-installer can be obtained from the TU/e network share: \\ai-stosrv02\EBox. Install by opening the executable "wubi_dd-mm-yy-time". Because the installation is quite large this will take some time, especially creating the virtual disk, so please be patient. Connected to gigabit network the installation will take approximately 15 minutes, on a 100 mbits network connection it will take about an hour.
When you have installed Ubuntu with Wubi, you can start ubuntu by rebooting your computer. A menu will appear during startup which allows you to choose whether to run Windows and Ubuntu. When you choose Ubuntu in this menu, you will go to a new bootloader called GRUB. Here you can choose which version of Ubuntu to run as well as alter the start-up commands for running Ubuntu. Unless you are having problems starting up, you should just select the default version by pressing enter. When prompted for account information use the following:
- Username: ebox
- Password: ebox123
You can change the password if desired.
Installing software for experiments
The version of Matlab installed on Ubuntu needs to be activated. To do so, start matlab from a terminal window with
- sudo su
and follow the instructions and use the activation key linked on the campus software site. Matlab activatie
If the student activation key doesn't work, take the employee activation key
Update to the latest experiment software
The software to perform experiments is already present, but possibly outdated. To update the software and simulink models used, you have to checkout the latest stable revision from the SVN (subversion) server. This can easily be done using the svn_update script:
- Open a terminal (via the icon on the desktop)
- Type svn_update
The simulink model for experimenting with the pick and place robot is given in the link below. (left-click link -> left-click file, to download).
Save the zip file and extract the file to an appropriate location such that the entire path is no longer than 260 characters. Such as: ~/Documents. The model includes a homing routine implemented in Stateflow and virtual airbags at the physical limits.
Compiling and installation the software
First start matlab from a terminal (if not done already):
- Open a terminal
- Type sudo matlab
To obtain a fresh copy of the latest version:
- Run svn_update according to subsection #Update to the latest experiment software in a terminal window.
- Change the Matlab current directory to /home/ebox/svn/trunk/src/E-box
- Run make_all_clean in matlab
- Run make_all_install in matlab, answer yes to TU/e toolboxes installation question
Preparation prior to performing experiments
Connecting the E/BOX, changing ethernet index number
Connect the power supply to the E/BOX. Use a network cable to connect your laptop to the In-port of the E/BOX. Since the index number of the Ethernet port you are using can vary for different pc's, the right number has to be set:
- Open a terminal
- Type sudo geteth (returns the right port number, only when the E/box is connected)
- Start matlab (type sudo matlab)
- Type changeeth(x) in the matlab command window where x is the port number found with geteth.
These commands set the right ethernet index number, this needs to be done each time a new software revision is checked out.
Choose a proper location and name
In the model Stateflow is used to implement a homing routine. In order to let Stateflow build the code well, the path name of the entire model should not exceed 260 characters. It is therefore sensible to choose a short model name and short path. A well chosen path could be /Home/Documents (in terminal from any location: ~/Documents). Be sure to copy the model (.mdl) as well as the S-Function (.c) to that location.
In order to reset the encoders while the robot is homing a S-Function is written. This function is named ec_EboxResetEnc.c and needs to be compiled from matlab. Open Matlab and go to location you chose in the previous step. type: mex ec_EboxResetEnc.c. The compiled file ec_EboxResetEnc.mexa64 should appear after succesfull completion.
To be safe, you should save the data you obtain via experiments outside of Ubuntu. This means that it will not be deleted if Ubuntu is uninstalled. You can save it to your Windows hard disk or use a web service such as Dropbox or Box. The partition of your hard disk on which you have installed Ubuntu can be found under \host, any other partitions can be found in \media or in the places menu from the taskbar. Be also sure to save your model!
Performing Real-Time experiments
The following steps are have to be followed to execute the experiment:
- Open the simulink file and press "Ctrl-B" to start building the real-time code
- Switch on the pick and place setup
- Open a terminal
- type sudo su
- Go to the folder where you just built the file (the file is built to the current directory of Matlab). Use cd to specify the path.
- Type ./RA -w in the terminal to execute your experiment (Assuming you saved your model as RA). The -w part means the realtime application will be run in external mode. If you have renamed the model, RA in the previous commands has to be replaced by the name of your Simulink model.
- The external mode requires you to connect the Simulink model to the real-time application and start it manually from the Simulink. This has to be done by choosing "Connect to Target" and "Start Real-time Code" from the Simulation menu respectively.
- The standard simulation time is 30 seconds, to change this, in Simulink go to "Simulations", "Configuration Parameters" and change the "Stop time".
- After the experiment has finished you can return to Matlab, load your data ("load RA.mat") and perform the required actions to post-process the measurement data. Save all your commands in a Matlab m-file. Created variables have the prefix rt_
- The -w option can be omitted to let the real-time application run in stand alone mode.
- The robot has physical limits; the range and velocity of all axis is limited. Take this into account when working with the robot. The range limits are considered in the Simulink model and the model will stand still in the axis that reached its limit. Restarting the model will re-home the robot.
- The robot has a singularities. Find out what they are and try to locate the singularities of this robot!
- For more information regarding system identification, the following book can be read: Feedback Control of Dynamic Systems, Franklin, Powell.
- Take an extra phaselag in the open-loop into account, which has the order of magnitude of
ωT, where T is the sample time in
[s], equal to the Fixed step size from the simulation parameters. Futhermore,
ωis the frequency in
[rad/s]. Increasing the open-loop gain will eventually always result in instable behevior.
If encountering any problems you can contact Jacco Hubregtse (firstname.lastname@example.org) or your group tutor. If you encountered any problem yourself and you solved it yourself, it is highly appreciated if you would inform Jacco about the problem. This way we can add these to FAQ, this will help your fellow students and further generations which is of course honourable!