Automative infinte circular motion of Aerotech Ensemble Motion Controller (5.06.000) via MATLAB
23 views (last 30 days)
Show older comments
I'm trying to move a stage with an Aerotech Ensemble Motion Controller (v5.06.000) via MATLAB, but instead of a full circular motion I only get multiple arc trajectories in one direction.
Does anyone have experience with this controller?
clear; clc; close all;
arch = computer('arch');
if strcmp(arch,'win32')
addpath('C:\Program Files (x86)\Aerotech\Ensemble\Matlab\x86');
else
addpath('C:\Program Files (x86)\Aerotech\Ensemble\Matlab\x64');
end
X = 0;
Y = 1;
disp('Connecting...');
h = EnsembleConnect;
EnsembleMotionEnable(h, X);
EnsembleMotionEnable(h, Y);
EnsembleMotionFaultAck(h, X);
EnsembleMotionFaultAck(h, Y);
% ====== USER PARAMETERS ======
R = 10; % mm
Speed = 1; % mm/s
% ====== CURRENT POSITION (this will become top of circle) ======
startX = EnsembleStatusGetItem(h, X, EnsembleStatusItem.PositionFeedback);
startY = EnsembleStatusGetItem(h, Y, EnsembleStatusItem.PositionFeedback);
% ====== BREAK BUTTON ======
DlgH = figure('Position',[800 500 200 120]);
H = uicontrol('Style','PushButton', ...
'String','Break', ...
'FontSize',16, ...
'FontWeight','bold', ...
'Position',[20 20 160 60], ...
'Callback','delete(gcbf)');
disp('Continuous circular motion started...');
while ishandle(H)
EnsembleMotionCWRadius(h, X, startX, Y, startY, R, Speed);
EnsembleMotionWaitMode(h, 1);
end
EnsembleMotionHalt(h);
EnsembleDisconnect();
1 Comment
Ayush
on 16 Dec 2025 at 6:32
Hi,
The repeated "EnsembleMotionCWRadius" command seems to be sending the same arc move each time, so the stage only traces multiple arcs in one direction instead of a full circle. To achieve continuous circular motion, you might need to update the arc endpoints or use a different approach.
Answers (0)
See Also
Categories
Find more on Manage System Data in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!