You're reading the documentation for a development version. For the latest released version, please have a look at master.
Communication Flow
Calibration
Manual Calibration
The flow of Manual Calibration is like followed:
Setup all the waypoints in the program.
Robot sends
RC_START_MANUAL_CALIBRATIONinitiating the manual calibration mode.Vision replies
DAOAI_MODE_CALIBRATIONacknowledge the manual calibration mode.
4. Robot sends RC_MANUAL_ACCUMULATE_POSE and requests Vision to enter accumulate mode, accumulates the poses and images for calibration. Then Vision replies
DAOAI_MODE_CALIBRATION to continue manual calibration, robot moves to next waypoint.
After robot traversed all the waypoints, robot will send
RC_STOP_MANUAL_CALIBRATIONto exits Vision from manual calibration mode.
Guidance Calibration
The flow of Guidance Calibration is like followed:
Setup the first calibration pose.
Robot sends
RC_GUIDANCE_CALIBRATIONto request start of Guidance Calibration.Vision collects the first pose then calculate and show the next recommended calibration pose.
Robot would be manually moved to the recommended pose, then collect this pose with
RC_GUIDANCE_CALIBRATIONcommand to Vision .Based on the pose sent back from robot, Vision will calculate and decide if it is a good pose:
if this pose is acceptable, Vision sends
DAOAI_GUIDANCE_CALIBRATION_GOODas well as showing the next recommended pose for you;if this pose is not good enough, Vision would recalculate the current pose then output the recalculated pose showing to you, you should move to this pose then repeat the calculation;
Repeats tje 4-5 step until Vision has collected enough poses to perform final calibration.
After the accumulations, Vision sends
DAOAI_DONE_GUIDANCE_CALIBRATIONto terminate Guidance Calibration process on robot.
Auto Calibration
The flow of Auto Calibration is like followed:
Setup the first calibration pose
Robot sends
RC_START_AUTO_CALIBRATIONto initiate the calibration process, Vision repliesDAOAI_MODE_AUTO_CALIBRATIONto enter Auto Calibration process. This command also sends the current pose to Vision.Robot follows this status, it sends back the pose(after moving to the calibration pose) and command
RC_ACCUMULATE_POSEto Vision . Vision will collect this pose and calculate the next calibration mode, repliesDAOAI_MODE_AUTO_CALIBRATIONand the calculated pose.Repeating step 4 until Vision has collected enough poses for calibration result. Then, Vision sends
DAOAI_DONE_AUTO_CALIBRATIONto terminate the Auto Calibration process at robot side.
Picking
The flow of picking process is like followed:
Setup the detection pose. When the camera is capturing image, robot needs to stay outside of the scene. Hence, this pose is where the robot should be when camera is capturing the image.
Robot sends
RC_DAOAI_CAPTURE_AND_PROCESSto initiating the start of picking process, this is acknowledge stage. Vision replies backDAOAI_DETECTIONto inform it is at picking process.
3. Robot sends RC_DAOAI_GET_NEXT_OBJECT to request the detection results from Vision . Based on the detection results, there are 3 possibilities from the detection: image capture failed, no objects detected on scene and objects found.
So that, Vision has 3 status to reply: DAOAI_NO_IMAGE_CAPTURED , DAOAI_NO_OBJECT_FOUND and DAOAI_OBJECTS_FOUND respectively.
According to Vision replies, robot would perform picking:
When Vision has failed capturing image, robot holds still and sends
RC_DAOAI_GET_NEXT_OBJECTto request detection again, and repeats;When Vision cannot detect any objects, robot holds still and sends
RC_DAOAI_GET_NEXT_OBJECTto request detection again, and repeats;When Vision detected objects in scene, robot will receive the pose, and robot performs picking. Then, robot moves back to detection pose.The replies from Vision contains
payload_which represents the number of remaining objects in scene. Then robot sends backRC_DAOAI_GET_NEXT_OBJECTwaiting for next object pose, and repeats;