資源簡介
matlab與VREP通信控制四輪小車到達指定位置,matlab控制小車實現(xiàn)轉向、調(diào)速、調(diào)偏差,里面含有VERP建立四輪小車的模型

代碼片段和文件信息
%此代碼的功能是控制小車自動轉向并行駛到目標點
vrep=remApi(‘remoteApi‘);?%?using?the?prototype?file?(remoteApiProto.m)
vrep.simxFinish(-1);?%?just?in?case?close?all?opened?connections
clientID=vrep.simxStart(‘127.0.0.1‘19999truetrue50005);
if?(clientID<0)
????disp(‘Failed?connecting?to?remote?API?server‘);????
else?
????vrep.simxAddStatusbarMessage(clientID‘Connection?succeeded‘vrep.simx_opmode_oneshot);
????vrep.simxStartSimulation(clientIDvrep.simx_opmode_oneshot);
????[resMotorHandle_Left]?=?vrep.simxGetobjectHandle(clientID‘joint2‘vrep.simx_opmode_blocking);
????[resMotorHandle_Right]?=?vrep.simxGetobjectHandle(clientID‘joint1‘vrep.simx_opmode_blocking);
????
????[resTarget]?=?vrep.simxGetobjectHandle(clientID‘target‘vrep.simx_opmode_blocking);%獲取目標位置
????[resTip_M]?=?vrep.simxGetobjectHandle(clientID‘tip_M‘vrep.simx_opmode_blocking);%獲取M點
????[resTip_R]?=?vrep.simxGetobjectHandle(clientID‘tip_R‘vrep.simx_opmode_blocking);%獲取R點
????
????[~Position]=vrep.simxGetJointPosition(clientIDTargetvrep.simx_opmode_streaming);
????disp(‘Position:‘);
????disp(Position);
????
????tic;?%計時開始
????Left_vel?=?0.2;??%正號向后
????Right_vel?=?0;%正號向后
????[~num]=vrep.simxGetobjectParent(clientID5vrep.simx_opmode_oneshot);%獲取父關節(jié)句柄編號
????disp(‘num:‘);
????disp(num);
????Adjustnum=1;
????while?toc<100?%計時結束
????????vrep.simxSetJointTargetVelocity(clientIDMotorHandle_LeftLeft_velvrep.simx_opmode_oneshot??);%設置非球關節(jié)固有目標速度
????????vrep.simxSetJointTargetVelocity(clientIDMotorHandle_RightRight_velvrep.simx_opmode_oneshot??);
????????
????????[~Position_M]=vrep.simxGetobjectPosition(clientIDTip_M-1vrep.simx_opmode_blocking);%注意讀取模式否則會出問題獲取tip_M相對于坐標原點的x/y/z值
????????[~Position_R]=vrep.simxGetobjectPosition(clientIDTip_R-1vrep.simx_opmode_blocking);%獲取tip_R相對于坐標原點的x/y/z值
????????[~Position_T]=vrep.simxGetobjectPosition(clientIDTarget-1vrep.simx_opmode_blocking);%獲取Target相對于坐標原點的x/y/z值
????????
????????
????????MT=[Position_T(1)-Position_M(1)Position_T(2)-Position_M(2)];%向量MT
????????MR=[Position_R(1)-Position_M(1)Position_R(2)-Position_M(2)];%向量MR
????????
????????angle(Adjustnum)=acos((MT(1)*MR(1)+MT(2)*MR(2))/(norm(MT)*norm(MR)))*180/pi;
???????
????????if?angle(Adjustnum)>90
????????????Left_vel=0.2;
????????????Right_vel=0;
???????????if?angle(Adjustnum)>110
?????????????Left_vel=1;
?????????????Right_vel=0;
???????????end
????????else
????????????Left_vel=-0.2;
????????????Right_vel=0;
???????????if?angle(Adjustnum)70
?????????????Left_vel=-1;
?????????????Right_vel=0;
???????????end
????????end
????????????
????????
????????if?angle(Adjustnum)>85?&&??angle(Adjustnum)<95
????????????if?angle(Adjustnum)>88?&&??angle(Adjustnum)<92
?????????????????Left_vel=-2;
????????????????Right_vel=-2;
????????????else
????????????????if?angle(Adjustnum)>90
????????????????????Left_vel=0.5;
????????????????????Right_vel=0;
????????????????else
????????????????????Left_vel=-0.5;
?????????
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2018-10-28?12:31??控制小車到達目標點\
?????文件??????310664??2018-10-28?12:35??控制小車到達目標點\car.ttt
?????目錄???????????0??2018-10-28?12:35??控制小車到達目標點\Matlab\
?????文件????????3959??2018-10-28?12:35??控制小車到達目標點\Matlab\body.m
?????文件??????100875??2018-01-25?17:03??控制小車到達目標點\Matlab\remApi.m
?????文件???????70656??2018-01-25?17:03??控制小車到達目標點\Matlab\remoteApi.dll
?????文件???????35378??2018-01-25?17:03??控制小車到達目標點\Matlab\remoteApiProto.m
?????文件????????2718??2018-10-23?15:13??控制小車到達目標點\Matlab\simpleTest.m
?????文件??????????97??2018-10-24?08:49??控制小車到達目標點\Matlab\test.m
?????文件????????1025??2018-10-26?22:47??控制小車到達目標點\Matlab\Unti
評論
共有 條評論