Skip to content

Latest commit

 

History

History

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

README.md

ComponentWebotsRobotArm Component

ComponentWebotsRobotArm-ComponentImage

Component Short Description:

A robot arm (manipulator) in the webots simulator.

This component needs OpenRave todo:add link to install instructions to be installed first.

Example program:

Set the joint angels of the robot arm.

CommManipulatorObjects::CommManipulatorTrajectory trajectory;
// do these calls in this order only
// 1. set JOINT_ANGLES
trajectory.setFlag(CommManipulatorObjects::ManipulatorTrajectoryFlag::JOINT_ANGLES);
// 2. set number of points in trajectory
trajectory.set_trajectory_size(1);
// 3. set number of values of each point in the trajectory. must be 6 for the UR5e (6 motors)
trajectory.set_joint_count(6);
// 4. set points:
// time to move to point 0 is 0.3 seconds
trajectory.set_joint_time(0, 0.3);
// point 0, set all 6 motor rotations [radians]
trajectory.set_joint_angle(0, 0, 0.+231);
trajectory.set_joint_angle(0, 1, 0.-215);
trajectory.set_joint_angle(0, 2, 0.-541);
trajectory.set_joint_angle(0, 3, 0.+374);
trajectory.set_joint_angle(0, 4, 0.-121);
trajectory.set_joint_angle(0, 5, 0.+084);
COMP -> sendTrajectoryServiceOut -> send(trajectory);

Coordinate systems of robot arm and vacuum gripper (tool center point): image

Move the robot arm to a given pose (position and orientation) of the end tool relative to the base mounting point. The robot arms 'UR5' or 'UR5e' or 'UR10e' with a vacuum gripper of length 0.11m are supported.

The orientation of the vacuum gripper's coordinate system is given by three Euler Angles called azimuth, elevation, roll using zyx convention (1. angle rotates around z-axis, 2. y, 3. x)

  • start with same coordinate system orientation as the robot arm (x/y/z-axis have same direction)
  • rotate around blue z-axis by angle azimuth (in webots, you can click on the blue curved arrow and move the mouse to rotate objects)
  • rotate around green y-axis by angle elevation (the y-axis could have been rotated by azimuth already)
  • rotate around red x-axis by angle roll (the x-axis could have been rotated by azimuth or elevation already)

In below example, the robot arm coordinate system is copied and rotated around x-axis by -PI/2 (-90 degrees), the new y-axis and the vacuum gripper will point downwards, ready to pick things from above.

CommManipulatorObjects::CommManipulatorTrajectory trajectory;
trajectory.setFlag(CommManipulatorObjects::ManipulatorTrajectoryFlag::POSE_TCP);
double x, y, z, azimuth, elevation, roll;
x = 0.5; // 0.5m forward relative to robot arm
y = 0.3; // 0.3m left
z = 0.2; // 0.2m up
azimuth = 0.0;
elevation = 0.0;
roll = -M_PI/2; 
trajectory.set_pose_TCP_robot(x, y, z, azimuth, elevation, roll, 1);
COMP->sendTrajectoryServiceOut->send(trajectory);

other similar components:

Component-Datasheet Properties

Table: Component-Datasheet Properties
Property Name Property Value Property Description
MarketName ComponentWebotsRobotArm
Supplier Servicerobotics Ulm
Homepage https://wiki.servicerobotik-ulm.de/directory:collection
Purpose The robot arm UR5e in the webots simulator.

Component Ports

trajectorySendServer

Documentation:

Reads periodically a movement trajectory: CommManipulatorObjects.CommManipulatorTrajectory

posePushServer

Documentation:

Writes periodically position etc. : CommManipulatorObjects.CommMobileManipulatorState

poseQueryServer

Documentation:

Writes on request position etc. : CommManipulatorObjects.CommMobileManipulatorState

manipulatorEventServiceOut

Documentation:

Sends an event: CommManipulatorObjects:ManipulatorEvent

baseStateServiceIn

Documentation:

Reads periodically position etc. of an mobile robot: CommBasicObjects.CommBaseState

ioQueryServer

Documentation:

ioEventServer

Documentation:

programQuery

Documentation:

Component Parameters: ComponentWebotsRobotArmParams

Internal Parameter: webots

Documentation:

Table: Internal Parameter webots
Attribute Name Attribute Type Attribute Value Attribute Description
robotName String "UR5"

the webots robot arm name

ParameterSetInstance: ManipulatorParameter

Trigger Instance: MOVE_LINEAR

Property: active = true

Documentation:

Trigger Instance: MOVE_CIRCULAR

Property: active = true

Documentation:

Trigger Instance: SET_PCS

Property: active = true

Documentation:

Trigger Instance: CLEAR_PCS

Property: active = true

Documentation:

Trigger Instance: SET_TCP

Property: active = true

Documentation:

Trigger Instance: MOVE_PATH

Property: active = true

Documentation:

Trigger Instance: LOAD_PROGRAM

Property: active = false

Documentation:

Trigger Instance: START_PROGRAM

Property: active = false

Documentation:

Internal Parameter: TCP

Documentation:

The pose of the TCP relative to the tool flange. A tool can be attached to an flange at the end of an robot arm. The Tool Center Point (TCP) is the tip of the current tool.

Table: Internal Parameter TCP
Attribute Name Attribute Type Attribute Value Attribute Description
x Int32 0

x coordinate of the TCP relative to the tool flange [m]

y Int32 0

see x

z Int32 0

see x

azimuth Double 0

rotation around z-axis (euler angles ZYX convention) [radians]

elevation Double 0

rotation around y-axis

roll Double 0

rotation around x-axis

Internal Parameter: base

Documentation:

the pose of the base coordinate system relative to the world coordinate system

Table: Internal Parameter base
Attribute Name Attribute Type Attribute Value Attribute Description
on_base Boolean false

  • on_base = true: robot arm is mounted on top of an mobile robot, the mobile robot should send its actual position through the Port 'BaseStateServiceIn'
  • on_base = false: robot arm is mounted on a fixed point

x Int32 0

x coordinate of the fixed point relative to the world [mm]

y Int32 0

see x

z Int32 0

see x

azimuth Double 0

rotation around z-axis

elevation Double 0

rotation around y-axis

roll Double 0

rotation around x-axis

Internal Parameter: manipulator

Documentation:

the pose of the manipulator coordinate system relative to the mobile robot base coordinate system

Table: Internal Parameter manipulator
Attribute Name Attribute Type Attribute Value Attribute Description
verbose Boolean true

print more debug information

x Int32 0

x coordinate of the manipulator relative to the base [mm]

y Int32 0

see x

z Int32 0

see x

azimuth Double 0

rotation around z-axis

elevation Double 0

rotation around y-axis

roll Double 0

rotation around x-axis

tcp_velocity Double 1.0

velocity of TCP movement [m/s]