www.gusucode.com > Mobile Robotics Simulation Toolbox > examples/matlab/multirobot/mrsMultiRobotSensors.m
%% Multi-Robot Sensor Example % Copyright 2018 The MathWorks, Inc. % Create a multi-robot environment numRobots = 3; env = MultiRobotEnv(numRobots); env.robotRadius = [0.2,0.5,0]; env.showTrajectory = [true;true;true]; env.hasWaypoints = true; load exampleMap env.mapName = 'map'; %% Create sensors sensor1 = LidarSensor; sensor1.sensorOffset = [0,0]; sensor1.scanAngles = linspace(-pi/2,pi/2,9); sensor1.maxRange = 3; attachLidarSensor(env,1,sensor1); sensor2 = ObjectDetector; sensor2.fieldOfView = pi/4; attachObjectDetector(env,2,sensor2); sensor3 = LidarSensor; sensor3.sensorOffset = [0,0]; sensor3.scanAngles = linspace(-pi/4,pi/4,10); sensor3.maxRange = 10; attachLidarSensor(env,3,sensor3); %% Define waypoints, objects, and initial poses waypoints = [2 4; 12 12; 1 11]; objects = [2, 8, 1; 8, 11, 2; 8, 4, 3]; env.objectColors = [1 0 0;0 1 0;0 0 1]; env.objectMarkers = 'so^'; pose1 = [2;5;pi/2]; pose2 = [2;8;-pi]; pose3 = [10;10;0]; % Call visualizer without any robots env([],[],waypoints,{},objects); %% Now loop through the animation for idx = 1:100 pose1 = pose1 + [0.075;-0.025;-pi/32]; pose2 = pose2 + [0.025;0.005;pi/64]; pose3 = pose3 + [0;0;pi/24]; ranges1 = sensor1(pose1); detections2 = sensor2(pose2,objects); ranges3 = sensor3(pose3); % In multiple commands % env(1,pose1, waypoints, ranges1, objects); % env(2,pose2, waypoints, [], objects); % env(3,pose3, waypoints, ranges3, objects); % In single command env([1,2,3],[pose1,pose2,pose3],waypoints,{ranges1,[],ranges3},objects) end