1#ifndef XCORESDK_SRC_MANAGED_WELDING_CLI_HPP_
2#define XCORESDK_SRC_MANAGED_WELDING_CLI_HPP_
4#include <unordered_map>
6#include "exception_cli.hpp"
9using namespace System::Collections::Generic;
10using namespace System::Runtime::InteropServices;
102 rokae::BaseWelding* ptr;
118 void setWeave(
bool enable,
double frequency,
double amplitude, array<double>^ dwell_time, [Out]
ErrorCode ^ %ec);
197 Frame^ teach_point_1,
double offset_1,
198 Frame^ teach_point_2,
double offset_2,
199 array<double>^% offset_start, array<double>^% offset_target,
219 List<List<Frame^>^>^
calcWeldOffset_Multi(List<Frame^>^ way_points, List<Frame^>^ teach_points, List<array<double>^>^ offsets,
int% error_index, [Out]
ErrorCode^% ec);
void startTracking([Out] ErrorCode^% ec)
开始激光跟踪
void adjustTrackOffset(array< double >^ offset, [Out] ErrorCode^% ec)
电弧跟踪偏移 - 调整焊道偏移量
void calcWeldOffsetCalculatedZ(Frame^% start, Frame^ start_offs, Frame^% target, Frame^ target_offs, [Out] ErrorCode^% ec)
多层多道偏移 - 计算直线轨迹偏移。偏移量的参考坐标系并非焊道坐标系,X,Y轴采用焊道坐标系,而Z轴由X,Y轴叉乘得到。
void bindWeaveDo(String^ signal, String^ action, bool value, [Out] ErrorCode^% ec)
设置摆动过程中DO输出规则。和设置系统IO类似,但不保存设置,重启后需要重新设置。 开始DO输出的时机为通过接口绑定DO号后,非摆动轨迹默认DO全部置0,如果开启摆动,则按照设定规则输出。
void transformOffsetByTeaching(Frame^ start, Frame^ target, Frame^ teach_point_1, double offset_1, Frame^ teach_point_2, double offset_2, array< double >^% offset_start, array< double >^% offset_target, [Out] ErrorCode^% ec)
多层多道辅助接口 - 根据指定的直线轨迹起点和终点,以及两个偏移方向,按指定的偏移距离进行坐标系转换, 使偏移量相对的坐标系与calcWeldOffsetCalculatedZ()接口中的一致
void addLaserTrackOffset(double x, double y, double z, Boolean valid, [Out] ErrorCode^% ec)
设置添加激光跟踪偏移
void unbindWeaveDo(String^ signal, [Out] ErrorCode^% ec)
取消设置摆动过程中DO输出
void getLaserOffset(double x, double z, Frame^% tar_tcp, [Out] ErrorCode^% ec)
获取偏移目标点
void setSensorFrame(Frame^ sensor_frame, [Out] ErrorCode^% ec)
设置激光器相对tcp坐标
void setSwingMotion(double acceleration, double jerk, [Out] ErrorCode^% ec)
设置摆动加速度和加加速度
void setLaserTrackParameters(LaserTrackParams params, [Out] ErrorCode^% ec)
设置激光跟踪参数。需要在开始跟踪之前调用
void calcWeldOffset(Frame^% start, Frame^ start_offs, Frame^% target, Frame^ target_offs, Frame^% aux, Frame^ aux_offs, [Out] ErrorCode^% ec)
多层多道偏移 - 计算圆弧轨迹沿焊道坐标系的偏移
List< List< Frame^>^> calcWeldOffset_Multi(List< Frame^>^ way_points, List< Frame^>^ teach_points, List< array< double >^>^ offsets, int% error_index, [Out] ErrorCode^% ec)
多层多道偏移 - 多条轨迹,适用于平角焊/平焊/横焊
void setWeave(bool enable, double frequency, double amplitude, array< double >^ dwell_time, [Out] ErrorCode ^ %ec)
开始/停止摆动。开始摆动时可设置摆动参数
void setWeaveParameters(double frequency, double amplitude, array< double >^ dwell_time, [Out] ErrorCode^% ec)
设置摆动参数,支持在摆动过程中调整
void addLaserTrackOffset(double x, double z, Boolean valid, [Out] ErrorCode^% ec)
设置添加激光跟踪偏移
void calcWeldOffset(Frame^% start, Frame^ start_offs, Frame^% target, Frame^ target_offs, [Out] ErrorCode^% ec)
多层多道偏移 - 计算直线轨迹沿焊道坐标系的偏移
void stopTracking([Out] ErrorCode^% ec)
结束激光跟踪
void calcWeldOffsetCalculatedZ(Frame^% start, Frame^ start_offs, Frame^% target, Frame^ target_offs, Frame^% aux, Frame^ aux_offs, [Out] ErrorCode^% ec)
多层多道偏移 - 计算圆弧轨迹偏移。偏移量的参考坐标系并非焊道坐标系,X,Y轴采用焊道坐标系,而Z轴由X,Y轴叉乘得到。
Double cycle_time
激光器数据刷新周期,与addLaserTrackOffset()调用周期保持一致,建议为激光器允许的最大刷新周期,范围[0, 0.5]s
Boolean dir_z_enable
焊道坐标系Z方向是否启用跟踪偏移
Double filter_data
激光器数据指数滑动滤波因子,范围[0, 1], 建议值: 0.2
Double jerk_max
跟踪偏移值的最大加加速度, 单位: 米/秒^3, 范围(0, +∞), 建议值: 2.0m/s^3
Boolean dir_y_enable
激光器坐标系Y方向是否启用跟踪偏移
Double delay_time
激光器数据延迟时间,用于与TCP数据对齐, 单位: 秒, 范围[0, +∞]。不同激光器延迟时间不同,明图建议值为0.06s,创想建议值为0.12s
Double filter_window_size
激光器数据中值滤波窗口大小, 范围[0, 10], 建议值: 5.0 (过大产生滤波滞后)
Double dir_y_max
焊道坐标系Y方向最大跟踪偏移值,超过该值停止跟踪和运动,范围[0, +∞]m
static LaserTrackParams Default
默认激光跟踪参数
Double acc_max
跟踪偏移值的最大加速度, 单位: 米/秒^2, 范围(0, +∞), 建议值: 0.2m/s^2
Double filter_track
跟踪偏移值指数滑动滤波因子,范围[0, 1], 建议值: 0.2
Double vel_max
跟踪偏移值的最大速度, 单位: 米/秒, 范围(0, +∞), 建议值: 0.01m/s
String coord_feature
激光器坐标系的方向特征,需要在跟踪前调用。目前支持: "xz" - 创想为XZ有效,激光器的写入有效数据为(X,0,Z) "yz" - 明图为YZ有效,激光器的写入有效数据为(0,...
Double dir_z_max
焊道坐标系Z方向最大跟踪偏移值,超过该值停止跟踪和运动,范围[0, +∞]m