Skip to content

robot configuration

Felix von Drigalski edited this page Oct 1, 2021 · 1 revision

This page describes how the robots are set up and the project is generally structured.

System diagram:

Catkin workspace configuration

This repository is intended to be used with the three scripts that set up a docker container on one or two host PCs running Ubuntu 18.04 or higher.

The packages are separated into two catkin workspaces: underlay_ws and catkin_ws. The former contains dependencies that are either not released as packages or which we have customized, and the latter extends the underlay_ws so that the heavy packages do not have to be constantly rebuilt. You should generally develop inside catkin_ws. Sourcing the catkin_ws with source ~/catkin_ws/devel/setup.bash includes the packages in underlay_ws if catkin_ws is configured correctly.

If the workspace configuration is broken, running o2ac-reset-catkin-workspace should fix the issue. This command cleans, reconfigures and rebuilds both workspaces.

PC configuration

The system can be run with either one or two host PCs. In the first case, one machine runs everything, and setup is simple. However, the robot commands may be delayed and less reliable, as the PC is not running a realtime kernel. It is not recommended to run the robots at high speeds with this setup.

In the second case, one PC is connected to the cameras and runs the roscore. The second PC is connected to the robots on a separate network, has a real-time kernel installed (see instructions), and runs the robot drivers, MoveIt (the move_group) and the "main" robot script.

The latter configuration ensures that the robots always receive their command signals on time. It also reduces the load on the machine solving the IK, increasing the success rate and speed of motion planning. This is the configuration that was used during the competition.

Note that you need to ensure time synchronization between the machines (use chrony and look for an up-to-tdate tutorial online).

Robot configuration

The robot system consists of two UR5e robot arms, each with one Robotiq gripper and two Realsense SR305 cameras. It also includes a number of screw tools with motors and pressure sensors, as well as non-actuated tools. The robots are prefixed a_bot and b_bot. The b_bot controller box is used to activate/deactivate suction from a compressor.

  • The physical environment (table, tools, bases) is described in the o2ac_scene_description package. It is divided into several macro files, the topmost file being base_scene.urdf.xacro.
  • o2ac_moveit_config is generated via the moveit_setup_assistant and uses the robot descriptions to generate a package that can calculate trajectories for the robot. It includes a set of allowed collisions, the definition of which actuated joint groups, end effectors and more.
  • The kinematics and shapes of the robots are defined in the ur_description and robotiq_description packages, in URDF and xacro format. You can find them in the underlay_ws.

Robot hardware

Robots

  • UR5e (a_bot)
  • UR5e (b_bot)

Robot grippers, sensors & accessories

  • Robotiq 2-Finger Gripper 85
  • Robotiq 2-Finger Gripper 140

Other

  • Robot table (for UR5e_a with holes for fixing parts and table )
  • Robot table (for UR5e_b with holes for fixing parts and table )
  • Experiment table with a surface made from 20x20 aluminium profiles
  • M3, M4 screw feeder
  • M3, M4, M4(without suction pad) screw tools and a set screw tool (see here for details)
  • A rack made from 40x40 frames, holding the tools, feeders and a TV

PC

  • Ubuntu PC_1 (18.04 / Melodic) (o2ac-ur)
  • Ubuntu PC_2 (18.04 / Melodic) (vision-pc) (optional)