Skip to content
Jonathan Meyer edited this page Jul 13, 2015 · 10 revisions

Godel Wiki

Welcome to the Godel Wiki!

Installation

Create a workspace for the Godel project

mkdir godel_ws
mkdir godel_ws/src
cd godel_ws/src
catkin_init_workspace && cd ..
catkin_make

Source the workspace

cd <path>/godel_ws
source devel/setup.bash

You'll need to do this on every individual terminal you use to communicate with Godel

Get the dependencies:

libsocket

In any folder you want (it does NOT have to be in the godel_ws):

git clone https://github.com/dermesser/libsocket.git
cd libsocket
cmake CMakeLists.txt
make
make install

libcurl

This one is available as a debian package:

sudo apt-get install libcurl4-openssl-dev

godel_openvoronoi

This package DOES need to be in the Godel ws:

cd <path>/godel_ws/src
git clone https://github.com/ros-industrial-consortium/godel_openvoronoi.git
sudo apt-get install libqd-dev

keyence_driver

This package DOES need to be in the Godel ws:

cd <path>/godel_ws/src
git clone https://github.com/ros-industrial/**TODO**
sudo apt-get install libqd-dev

abb_file_suite

This package DOES need to be in the Godel ws:

cd <path>/godel_ws/src
git clone https://github.com/Jmeyer1292/abb_file_suite.git

ROS Industrial Package

Clone the latest ROS-I core packages and the packages for hte robot you'll be using:

cd <path>/godel_ws/src
git clone https://github.com/ros-industrial/industrial_core.git
git clone https://github.com/ros-industrial/abb.git

Download the Motoman package, https://github.com/ros-industrial/motoman.git if that's what you need.

Kinect2

To install follow the directions at: https://github.com/code-iai/iai_kinect2#install.

July Demo Branch

In the godel ws:

cd <path>/godel_ws/src
git clone https://github.com/Jmeyer1292/godel.git
git checkout july_demo_gui

Calibration

Intrinsic Calibration of Camera

For the Kinect2, follow the guide that comes as part of the driver: https://github.com/code-iai/iai_kinect2/tree/master/kinect2_calibration. You will need to print a physical target to look at.

Extrinsic Calibration of Camera to Robot

Download the extrinsic calibration library and the caljob creator. Print out the visual target from godel_calibration_config/images: Please ensure that the spacing and diameter of the circles is maintained. Circles should be 25mm and spacing between centroids should be 35mm.

git clone https://github.com/ros-industrial/industrial_calibration.git
git clone https://github.com/Jmeyer1292/caljob_creator

Build your workspace.

Now lets bring up an interface to the robot and the camera:

roslaunch <robotname>_calib_moveit_planning_execution.launch sim:=false robot_ip:=<ip>

And in a seperate terminal: roslaunch godel_surface_detection sia20d_sensor_setup.launch

Now rosrun caljob_creator caljob_creator_node. This should bring up a camera feed. With the window selected, press <space to capture a joint state and q to quit and save.

  1. First place your calibration target in the workcell and and jog the robot until it can see the entire target.

  2. Now move the robot so that it views the target from a new angle. Press space to record a joint position.

  3. Try to get at least 12 images at different angles and with the target in different parts of the image (e.g. center vs. in a corner).

  4. When you're done, press q and note the presence of caljob.yaml file in your working directory.

  5. Now navigate to the godel/godel_calibration_configuration/yaml/ directory. Copy the caljob file into this directory and rename it to something meaningful.

  6. Navigate back to the godel/godel_calibration_configuration/launch/ directory. Open the blending_calibration.launch file and change the value corresponding to the cal_job_file key inside the rosparam list to the name of your file.

Now we're ready to actually run the calibration. Keep both the camera node and the <robot_name>_calib_moveit_planning_execution.launch node going.

  1. In an empty terminal, roslaunch godel_calibration_config blending_calibration.launch.
  2. When the previous node has come up, you're ready to begin. In a new terminal, rosservice call /calibration_service. The robot should automatically move through the poses you defined and take images at each.
  3. When the routine is finished, the new joint values will be written to <path>/godel/godel_calibration_config/yaml/godel_mutable_joint_states.yamlnew.
  4. These new values can be copied into the end effector description in the godel_robot_config/urdf directory.

Operation

  1. Bring up the appropriate robot launch file. For example, given an ABB IRB2400: roslaunch godel_surface_detection irb2400_blending.launch sim_robot:=false sim_sensor:=false robot_ip:=<ip>. Replacing the <ip> with the appropriate value.

  2. Bring up the camera: roslaunch godel_surface_detection sia20d_sensor_setup.launch.

  3. If the simple menu is not active, you can add it through a menu at the top of the interface: Panels -> Add New Panel -> godel_simple_gui -> Blending Panel.

  4. The rest should follow from the menus.

Best Practices