Vision Interfaces
Vision interfaces include VisionClient and HandEyeCalibClient.
VisionClient
Source headers:
include/booster/robot/vision/vision_client.hppinclude/booster/robot/vision/vision_api.hpp
Method | Description | Minimum firmware |
|---|---|---|
| Start the vision service and select position, color, and face-detection output. |
|
| Stop the vision service. |
|
| Return detection results through the output parameter. |
|
Vision C++ Example
#include <iostream>
#include <vector>
#include <booster/robot/channel/channel_factory.hpp>
#include <booster/robot/vision/vision_client.hpp>
booster::robot::ChannelFactory::Instance()->Init(0, "<network_ip>");
booster::robot::vision::VisionClient vision;
vision.Init();
if (vision.StartVisionService(true, false, true) == 0) {
std::vector<booster::robot::vision::DetectResults> objects;
if (vision.GetDetectionObject(objects, 0.33F) == 0) {
for (const auto &object : objects) {
std::cout << object.tag_ << " "
<< object.conf_ << " "
<< object.xmin_ << " "
<< object.ymin_ << "\n";
}
}
}
API Enums and Data Fields
Public VisionApiId values are kStartVisionService = 3000 (start detection), kStopVisionService = 3001 (stop detection), and kGetDetectionObject = 3002 (read the latest detections). StartVisionServiceParameter has booleans for position, color, and face outputs; GetDetectionObjectParameter::focus_ratio_ selects the central focus region and defaults to 0.33. DetectResults contains image bounds xmin_, ymin_, xmax_, ymax_, optional 3D position_, class tag_, confidence conf_, and mean color rgb_mean_.
HandEyeCalibApiId:
Enumerator | Value | Meaning |
|---|---|---|
|
| Start / stop a hand-eye calibration job. |
|
| Read progress/status / the latest calibration result. |
|
| Apply the completed camera-extrinsic result. |
Public calibration fields are: StartHandEyeCalibParameter::publish_feedback_ and optional square_size_m_; HandEyeCalibStatus status/job/stage/timestamps, progress, stage-2/3 counters, and error_json_; HandEyeCalibResult status/job/summary, result_json_, reprojection_error_px_, progress/counters, and errors; and HandEyeCalibApplyResult status, applied_path_, and error_json_.
DetectResults fields include xmin_, ymin_, xmax_, ymax_, position_, tag_, conf_, and rgb_mean_.
HandEyeCalibClient
Source headers:
include/booster/robot/vision/handeye_calib_client.hppinclude/booster/robot/vision/handeye_calib_api.hpp
Method | Description | Minimum firmware |
|---|---|---|
| Start hand-eye calibration. |
|
| Stop calibration. |
|
| Query task status and progress. |
|
| Query the calibration result and reprojection error. |
|
| Apply a calibration result. |
|
Hand-Eye Calibration Example
#include <booster/robot/vision/handeye_calib_client.hpp>
booster::robot::vision::HandEyeCalibClient handeye;
handeye.Init();
booster::robot::vision::StartHandEyeCalibParameter parameter;
parameter.publish_feedback_ = true;
parameter.square_size_m_ = 0.025;
if (handeye.StartCalibration(parameter) == 0) {
booster::robot::vision::HandEyeCalibStatus status;
handeye.GetStatus(status);
std::cout << status.status_ << " "
<< status.progress_ << "\n";
}