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.
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):

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);
| 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. |
Documentation:
Reads periodically a movement trajectory: CommManipulatorObjects.CommManipulatorTrajectory
Documentation:
Writes periodically position etc. : CommManipulatorObjects.CommMobileManipulatorState
Documentation:
Writes on request position etc. : CommManipulatorObjects.CommMobileManipulatorState
Documentation:
Sends an event: CommManipulatorObjects:ManipulatorEvent
Documentation:
Reads periodically position etc. of an mobile robot: CommBasicObjects.CommBaseState
Documentation:
Documentation:
Documentation:
Documentation:
| Attribute Name | Attribute Type | Attribute Value | Attribute Description |
|---|---|---|---|
| robotName | String | "UR5" | the webots robot arm name |
Property: active = true
Documentation:
Property: active = true
Documentation:
Property: active = true
Documentation:
Property: active = true
Documentation:
Property: active = true
Documentation:
Property: active = true
Documentation:
Property: active = false
Documentation:
Property: active = false
Documentation:
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.
| 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 |
Documentation:
the pose of the base coordinate system relative to the world coordinate system
| Attribute Name | Attribute Type | Attribute Value | Attribute Description |
|---|---|---|---|
| on_base | Boolean | false |
|
| 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 |
Documentation:
the pose of the manipulator coordinate system relative to the mobile robot base coordinate system
| 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] |
