Knowledge Base

RVS software involves some important concepts and terms. Here are some explanations:

  • Node:An important concept in RVS that corresponds to a specific task or function. For example, the Load node can load elements such as Cube, Image, PointCloud, and so on. The Emit node can generate Cube, Line, Circle and other elements. Operators can integrate and process tasks by connecting with each other.

  • Group:In RVS, multiple nodes can be encapsulated into a Group to improve the reusability and maintainability of nodes.

  • XML:The XML file is an important configuration file in RVS. It contains the structure information of the whole project, input and output information of the node, interface configuration and so on. When using RVS to develop a project, it is necessary to write and save the corresponding XML file according to the actual requirements.

  • Resource:Used for hardware devices or virtual devices to interact with RVS. If you need to connect the camera, add the TyCameraResource resource node. After the connection is successful, you can perform operations such as image collection and click capture.

    In short, RVS is an node based 3D machine vision development platform, which realizes the organization, management and visualization of algorithm flow through the standardized management of XML configuration files and resources.

Node Browser

  • 2D:For 2D image processing.

  • 3D:For 3D image processing.

  • Basic:Base node. Such as loading elements, saving elements, traversing elements, and so on.

  • Box Unstack:Used for unstacking.

  • Calibration:For different forms of calibration algorithm.

  • Communication:For communication with different robots, industrial computer.

  • File:For system file management.

  • Geometry Detection:For cylinder and plane detection and filtering.

  • ICP:For icp algorithm template matching.

  • Motion Planning:For robot arm motion planning.

  • Python:For AI training and detecting, secondary development in python.

  • Robot:Used to control the simulation of the robot movement behavior as well as the main model generation.

  • Surface:For data processing in polydata.

  • Tycamera:Used to control and manage the Percipio camera and SDK.

  • Universal Robots:For the active control of UR robot.

  • Resource:For hardware devices (including virtual devices) to interact with RVS.

Each node can be in node introduced queries.

Control Signal

Node orange is the control signal port, the control signal port does not distinguish type categories, can be connected to each other.

Port name Feature
start Trigger node.
finished When the node is triggered and runs successfully, the finished port of the node sends a trigger signal, and when the finished port is connected to the next node, the next node is triggered.
failed The node has been triggered, and the operation has completed, but the expected output result is not obtained, then the failed port of the node will give a trigger signal.
stop Pause the node.
reset Reset node.
iterate Run iteratively.
started If the start port on the left is triggered, the started signal on the right is triggered.
processing /
stopped This port is triggered when the stop port is triggered.
reset This port is triggered when the reset port is triggered.
iterated This port is triggered when the iterate port is triggered.

Data Signal

Sky blue ● ■ is the data signal port, is a single data, is list data.Data ports differ by data type,Commonly used ports include cloud, image, string, pose, cube, and their corresponding list data such as cloud_list, image_list, etc.Only data ports of the same type can be connected to each other.

Only data ports of the same type can be connected to each other.

Data type ●■ Port name
Image/ImageList image/image_list
ImagePoints/ImagePointList image_points/image_points_list
Pose/PoseList pose/pose_list
JointArray/JointArrayList joint/joint_list
Cube/CubeList cube/cube_list
Sphere/SphereList sphere/sphere_list
Angle/AngleList angle/angle_list
Circle/CircleList circle/circle_list
Line/LineList line/line_list
Path/PathList path/path_list
PointCloud/PointCloudList cloud/cloud_list
Cylinder/CylinderList cylinder/cylinder_list
String/StringList string/string_list
PolyData/PolyDataList polydata/polydata_list
Object/ObjectList object/object_list
Text/TextList text/text_list
CameraInfo camera_info
CalibInfo calib_info
RobotInfo robot_info
RotatedRect rect/rect_list
MotionPlan motion
PlannedGrasp grasp/grasp_list

Coordinate System Explanation

The RVS software has a built-in 3D view environment, which is the world coordinate system BaseXYZ with the origin at (0,0,0). Poses generated by operators like Emit-Pose are all based on the BaseXYZ coordinate system.

The simulated robot is defined by a CAD model file and has its own base coordinate system RobotXYZ. Since the CAD model of the robot is aligned with the world coordinate system when created, when importing the CAD model file into the RVS software, the RobotXYZ coordinate system is automatically aligned with the BaseXYZ coordinate system.

The 3D point cloud generated by the Graphon camera also has its own coordinate system, the left IR coordinate system CameraXYZ. When displaying CameraXYZ in the BaseXYZ coordinate system, the camera’s left IR is initially positioned with a pose of (0,0,0,0,0,0). However, this display has no practical meaning. We need to find the true spatial pose of the camera in the robot coordinate system, and then correct the CameraXYZ coordinate system in the BaseXYZ coordinate system according to that pose.

In addition, the target captured by the camera, such as a box, also has its own object coordinate system ObjXYZ. This coordinate system represents the pose of the target object.

In the RVS software, each pose (x, y, z, rx, ry, rz) represents a spatial pose and is also represented by a 4x4 coordinate transformation matrix.

This pose includes translation and rotation information:

  • (x, y, z) represents the translation vector of the matrix, i.e., the position of the object in 3D space.

  • (rx, ry, rz) represents the rotation vector of the matrix, i.e., the rotation angles of the object relative to the reference coordinate system.

Euler Angle Introduction

In three-dimensional space, the rotation of a coordinate system around the origin has three degrees of freedom, requiring three independent rotation parameters to describe. Euler angles are a commonly used representation for describing rotations and were first introduced by Euler.

They consist of three angles, known as roll, pitch, and yaw.

image-20231226095259662

Compared to the direction cosine matrix and quaternion representations, the Euler angle representation has the following advantages: it requires the fewest parameters, only three angles; it has a more intuitive physical interpretation and is easier to understand.

The rotation in Euler angles is performed using a non-fixed axis rotation, meaning that the rotation axis changes as the rotation progresses. The definition of Euler angles is not unique, and there are multiple ways to define them depending on the order of rotations around the coordinate axes.

Euler angles can be divided into two main categories: classical Euler angles and Tait-Bryan angles. Among them, Tait-Bryan angles are more commonly used. These two types of Euler angles can be further divided into the following 12 sequences based on the order of rotations:

Classical Euler angles: Z-X-Z, Z-Y-Z, X-Y-X, X-Z-X, Y-X-Y, Y-Z-Y

Tait-Bryan angles: X-Y-Z, X-Z-Y, Y-X-Z, Y-Z-X, Z-X-Y, Z-Y-X

In RVS, the rotation angles of the pose are defined using the Z-Y-X order, which means rotating around the Z-axis (yaw) first, then rotating around the rotated Y-axis (pitch), and finally rotating around the rotated X-axis (roll).

This rotation follows the right-hand coordinate system rule, and the rotation angles are measured in radians.

The rotation sequence of the pose in RVS is illustrated in the following diagram:

rot_en