├── README.md ├── grid_motion_planning ├── Artificial Potential field │ ├── GradientBasedPlanner.m │ ├── PotentialFieldScript.m │ ├── artificial_potential.gif │ ├── quiver_plot.jpg │ └── total_potential.jpg └── Dijkstra_Astar │ ├── AStarGrid.m │ ├── AstarGrid.gif │ ├── DijkstraGrid.gif │ ├── DijkstraGrid.m │ └── TestScript1.m └── quadcopter_gazebo ├── CMakeLists.txt ├── launch ├── gmap.launch ├── octomap_uav.launch └── uav.launch ├── meshes ├── hokuyo.dae ├── hokuyo_convex.stl ├── kinect.dae └── quadrotor_base.dae ├── models ├── Box │ ├── model.config │ └── model.sdf ├── BoxesLargeOnPallet │ ├── materials │ │ └── scripts │ │ │ └── BoxesLargeOnPallet.material │ ├── model.config │ └── model.sdf ├── D60 │ ├── D60.dae │ └── D60 │ │ ├── Carpet_Diamond_Olive.jpg │ │ ├── Carpet_Loop_Pattern.jpg │ │ └── Carpet_Pattern_Leaf_Squares_Tan.jpg ├── big_box │ ├── materials │ │ └── textures │ │ │ ├── Kraft_Tile.jpg │ │ │ ├── barcode.png │ │ │ ├── front.pdn │ │ │ ├── front.png │ │ │ ├── side1.pdn │ │ │ ├── side1.png │ │ │ ├── side2.pdn │ │ │ └── side2.png │ ├── meshes │ │ └── big_box.dae │ ├── model.config │ └── model.sdf ├── depth_camera │ ├── depth_camera.sdf │ ├── depth_camera.sdf.jinja │ ├── depth_camera.sdf.last_generated │ ├── meshes │ │ ├── hokuyo.dae │ │ └── hokuyo_convex.stl │ └── model.config ├── fla_hotel_3doors │ ├── fla_hotel_3doors.dae │ ├── fla_hotel_3doors.skb │ ├── fla_hotel_3doors.skp │ └── fla_hotel_3doors │ │ ├── Carrera_Marble.jpg │ │ ├── Granite_Dark_Gray.jpg │ │ ├── Stone_Vein_Gray.jpg │ │ ├── Stone_Vein_Gray_0.jpg │ │ └── Wood_OSB.jpg ├── fla_office │ ├── fla_office.dae │ ├── fla_office.stl │ └── fla_office │ │ ├── Beadboard.jpg │ │ ├── Brick_Colored_Blue.jpg │ │ ├── Brick_Colored_Blue_3.jpg │ │ ├── Carrera_Marble.jpg │ │ ├── Cladding_Siding_Tan.jpg │ │ ├── Leather_Blue.jpg │ │ ├── Marble_Carrara_Floor_Tile.jpg │ │ ├── Modern_Siding.jpg │ │ ├── Modern_Siding_0.jpg │ │ ├── Modern_Siding_1.jpg │ │ ├── Mosaic_Hexagonal_Tile.jpg │ │ ├── Rough_Square_Concrete_Block.jpg │ │ ├── Rough_Square_Concrete_Block_2.jpg │ │ ├── Rough_Square_Concrete_Block_3.jpg │ │ ├── Tile_Ceramic_Multi.jpg │ │ ├── Tile_Navy.jpg │ │ ├── Tile_Navy_0.jpg │ │ ├── White_Square_Tile.jpg │ │ ├── White_Subway_Tile.jpg │ │ ├── White_Subway_Tile_1.jpg │ │ ├── White_Subway_Tile_2.jpg │ │ ├── Wood_Cherry_Original.jpg │ │ ├── __Carpet_Pattern_Squares_Multi_1.jpg │ │ ├── __Metal_Corrogated_Shiny_4.jpg │ │ ├── grey_gloss.jpg │ │ ├── material_1.jpg │ │ ├── material_2.jpg │ │ ├── material_3.jpg │ │ ├── stainless_steel.jpg │ │ ├── stainless_steel2.jpg │ │ ├── stainless_steel2_0.jpg │ │ └── stainless_steel2_1.jpg ├── forest0 │ ├── Tree1.dae │ ├── Tree2.dae │ ├── Tree3.dae │ ├── Tree4.dae │ ├── Tree5.dae │ ├── Tree6.dae │ └── forest0 │ │ ├── Tree1.dae │ │ ├── Tree2.dae │ │ ├── Tree3.dae │ │ ├── Tree4.dae │ │ ├── Tree5.dae │ │ ├── Tree6.dae │ │ ├── bark.jpg │ │ ├── bark.png │ │ ├── bark_loo.jpg │ │ ├── blatt.jpg │ │ ├── blatt.png │ │ ├── blatt1.jpg │ │ ├── blatt1_a.jpg │ │ ├── nadeln4.jpg │ │ ├── nadeln4.png │ │ ├── nadeln4a.jpg │ │ ├── nadeln4a.png │ │ ├── stamm2.jpg │ │ ├── stamm2.png │ │ ├── stamm21.jpg │ │ ├── stamm21.png │ │ └── stamm22.jpg ├── ground_plane_residential │ ├── model-1_2.sdf │ ├── model-1_3.sdf │ ├── model-1_4.sdf │ ├── model.config │ └── model.sdf ├── iris │ ├── iris.sdf │ ├── iris.sdf.jinja │ ├── iris.sdf.last_generated │ ├── meshes │ │ ├── iris.stl │ │ ├── iris_prop_ccw.dae │ │ └── iris_prop_cw.dae │ └── model.config ├── iris_depth_camera │ ├── iris_depth_camera.sdf │ └── model.config ├── occupancy_grid │ ├── model.config │ └── occupancy_grid.sdf ├── ros_interface │ ├── model.config │ └── model.sdf └── rplidar │ ├── model.config │ └── model.sdf ├── package.xml ├── src ├── px4_offboard.py └── teleop.py └── worlds ├── D60.world ├── basic.world ├── cyl_pillars.world ├── empty.world ├── forest_Large.world ├── outdoor.world ├── pillars.world ├── quad.world ├── warehouse.world └── waypoint.world /README.md: -------------------------------------------------------------------------------- 1 | 2 | ## Grid Motion Planning 3 | In this project, we aim to learn and implement different motion planning algorithms. 4 | 5 | ### Path planning algorithms for point object 6 | **Dijkstra** 7 | 8 | ![](https://github.com/Ayush1285/Quadcopter_Planning/blob/main/Grid_Motion_Planning/Dijkstra_Astar/DijkstraGrid.gif) 9 | 10 | **A star** 11 | 12 | ![](https://github.com/Ayush1285/Quadcopter_Planning/blob/main/Grid_Motion_Planning/Dijkstra_Astar/AstarGrid.gif) 13 | 14 | **Artificial Potential Field** 15 | 16 | ![](https://github.com/Ayush1285/Quadcopter_Planning/blob/main/Grid_Motion_Planning/Artificial%20Potential%20field/artificial_potential.gif) 17 | 18 | **Quiver Plot for APF method** 19 | 20 | ![](https://github.com/Ayush1285/Quadcopter_Planning/blob/main/Grid_Motion_Planning/Artificial%20Potential%20field/quiver_plot.jpg) 21 | 22 | 23 | 24 | ### References 25 | 26 | * [Autonomous Navigation, Part 4: Path Planning with A* and RRT, by MATLAB](https://www.youtube.com/watch?v=QR3U1dgc5RE) 27 | * [A* playlist by Sebastian Lague](https://www.youtube.com/watch?v=-L-WgKMFuhE) 28 | * [RRT, RRT* & Random Trees by Aaron Becker](https://youtu.be/Ob3BIJkQJEw) 29 | * [Robotics: Computational Motion Planning ](https://www.coursera.org/learn/robotics-motion-planning/home/welcome) 30 | 31 | -------------------------------------------------------------------------------- /grid_motion_planning/Artificial Potential field/GradientBasedPlanner.m: -------------------------------------------------------------------------------- 1 | function route = GradientBasedPlanner (f, start_coords, end_coords, max_its) 2 | % GradientBasedPlanner : This function plans a path through a 2D 3 | % environment from a start to a destination based on the gradient of the 4 | % function f which is passed in as a 2D array. The two arguments 5 | % start_coords and end_coords denote the coordinates of the start and end 6 | % positions respectively in the array while max_its indicates an upper 7 | % bound on the number of iterations that the system can use before giving 8 | % up. 9 | % The output, route, is an array with 2 columns and n rows where the rows 10 | % correspond to the coordinates of the robot as it moves along the route. 11 | % The first column corresponds to the x coordinate and the second to the y coordinate 12 | 13 | [gx, gy] = gradient(-f); 14 | 15 | 16 | %%% All of your code should be between the two lines of stars. 17 | % ******************************************************************* 18 | route = start_coords; 19 | current_coords = start_coords; 20 | norm = sqrt(gx.*gx + gy.*gy); 21 | gx = gx./norm; 22 | gy = gy./norm; 23 | 24 | 25 | 26 | for i = 1:max_its 27 | a = end_coords-current_coords; 28 | norm_a = sqrt(a(1).*a(1) + a(2).*a(2)); 29 | current_pos(1) = round(current_coords(1)); 30 | current_pos(2) = round(current_coords(2)); 31 | if norm_a >=2 32 | next_coords = [current_coords(1)+gx(current_pos(2),current_pos(1)),current_coords(2)+gy(current_pos(2),current_pos(1))]; 33 | route = [route;next_coords]; 34 | next_coords; 35 | current_coords = next_coords; 36 | else 37 | break; 38 | end 39 | end 40 | 41 | % ******************************************************************* 42 | end 43 | -------------------------------------------------------------------------------- /grid_motion_planning/Artificial Potential field/PotentialFieldScript.m: -------------------------------------------------------------------------------- 1 | % 2 | % PotentialFieldScript.m 3 | % 4 | 5 | %% Generate some points 6 | 7 | nrows = 400; 8 | ncols = 600; 9 | 10 | obstacle = false(nrows, ncols); 11 | 12 | [x, y] = meshgrid (1:ncols, 1:nrows); 13 | 14 | %% Generate some obstacle 15 | 16 | obstacle (300:end, 100:250) = true; 17 | obstacle (150:200, 400:500) = true; 18 | 19 | t = ((x - 200).^2 + (y - 50).^2) < 50^2; 20 | obstacle(t) = true; 21 | 22 | t = ((x - 400).^2 + (y - 300).^2) < 100^2; 23 | obstacle(t) = true; 24 | 25 | %% Compute distance transform 26 | 27 | d = bwdist(obstacle); 28 | 29 | % Rescale and transform distances 30 | 31 | d2 = (d/100) + 1; 32 | 33 | d0 = 2; 34 | nu = 800; 35 | 36 | repulsive = nu*((1./d2 - 1/d0).^2); 37 | 38 | repulsive (d2 > d0) = 0; 39 | 40 | 41 | %% Display repulsive potential 42 | 43 | figure; 44 | m = mesh (repulsive); 45 | m.FaceLighting = 'phong'; 46 | axis equal; 47 | 48 | title ('Repulsive Potential'); 49 | 50 | %% Compute attractive force 51 | 52 | goal = [400, 50]; 53 | 54 | xi = 1/700; 55 | 56 | attractive = xi * ( (x - goal(1)).^2 + (y - goal(2)).^2 ); 57 | 58 | figure; 59 | m = mesh (attractive); 60 | m.FaceLighting = 'phong'; 61 | axis equal; 62 | 63 | title ('Attractive Potential'); 64 | 65 | %% Display 2D configuration space 66 | 67 | figure; 68 | imshow(~obstacle); 69 | 70 | hold on; 71 | plot (goal(1), goal(2), 'r.', 'MarkerSize', 25); 72 | hold off; 73 | 74 | axis ([0 ncols 0 nrows]); 75 | axis xy; 76 | axis on; 77 | 78 | xlabel ('x'); 79 | ylabel ('y'); 80 | 81 | title ('Configuration Space'); 82 | 83 | %% Combine terms 84 | 85 | f = attractive + repulsive; 86 | 87 | figure; 88 | m = mesh (f); 89 | m.FaceLighting = 'phong'; 90 | axis equal; 91 | 92 | title ('Total Potential'); 93 | 94 | %% Plan route 95 | start = [30, 350]; 96 | 97 | route = GradientBasedPlanner (f, start, goal, 1000); 98 | 99 | %% Plot the energy surface 100 | 101 | figure; 102 | m = mesh (f); 103 | axis equal; 104 | 105 | %% Plot ball sliding down hill 106 | video1 = VideoWriter('artificial_potential'); %creating animation 107 | video1.FrameRate = 20; 108 | open(video1) 109 | [sx, sy, sz] = sphere(20); 110 | 111 | scale = 20; 112 | sx = scale*sx; 113 | sy = scale*sy; 114 | sz = scale*(sz+1); 115 | 116 | hold on; 117 | p = mesh(sx, sy, sz); 118 | p.FaceColor = 'red'; 119 | p.EdgeColor = 'none'; 120 | p.FaceLighting = 'phong'; 121 | hold off; 122 | 123 | for i = 1:size(route,1) 124 | P = round(route(i,:)); 125 | z = f(P(2), P(1)); 126 | 127 | p.XData = sx + P(1); 128 | p.YData = sy + P(2); 129 | p.ZData = sz + f(P(2), P(1)); 130 | 131 | drawnow; 132 | 133 | drawnow; 134 | frame = getframe(gcf); %get frame 135 | writeVideo(video1, frame); 136 | end 137 | close(video1) 138 | %% quiver plot 139 | [gx, gy] = gradient (-f); 140 | skip = 20; 141 | 142 | figure; 143 | 144 | xidx = 1:skip:ncols; 145 | yidx = 1:skip:nrows; 146 | 147 | quiver (x(yidx,xidx), y(yidx,xidx), gx(yidx,xidx), gy(yidx,xidx), 0.4); 148 | 149 | axis ([1 ncols 1 nrows]); 150 | 151 | hold on; 152 | 153 | ps = plot(start(1), start(2), 'r.', 'MarkerSize', 30); 154 | pg = plot(goal(1), goal(2), 'g.', 'MarkerSize', 30); 155 | p3 = plot (route(:,1), route(:,2), 'r', 'LineWidth', 2); 156 | -------------------------------------------------------------------------------- /grid_motion_planning/Artificial Potential field/artificial_potential.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IvLabs/grid_motion_planning/5868ba527146f06ccadce3e5bfc491a72100fb45/grid_motion_planning/Artificial Potential field/artificial_potential.gif -------------------------------------------------------------------------------- /grid_motion_planning/Artificial Potential field/quiver_plot.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IvLabs/grid_motion_planning/5868ba527146f06ccadce3e5bfc491a72100fb45/grid_motion_planning/Artificial Potential field/quiver_plot.jpg -------------------------------------------------------------------------------- /grid_motion_planning/Artificial Potential field/total_potential.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IvLabs/grid_motion_planning/5868ba527146f06ccadce3e5bfc491a72100fb45/grid_motion_planning/Artificial Potential field/total_potential.jpg -------------------------------------------------------------------------------- /grid_motion_planning/Dijkstra_Astar/AStarGrid.m: -------------------------------------------------------------------------------- 1 | function [route,numExpanded] = AStarGrid (input_map, start_coords, dest_coords) 2 | % Run A* algorithm on a grid. 3 | % Inputs : 4 | % input_map : a logical array where the freespace cells are false or 0 and 5 | % the obstacles are true or 1 6 | % start_coords and dest_coords : Coordinates of the start and end cell 7 | % respectively, the first entry is the row and the second the column. 8 | % Output : 9 | % route : An array containing the linear indices of the cells along the 10 | % shortest route from start to dest or an empty array if there is no 11 | % route. This is a single dimensional vector 12 | % numExpanded: Remember to also return the total number of nodes 13 | % expanded during your search. Do not count the goal node as an expanded node. 14 | 15 | % set up color map for display 16 | % 1 - white - clear cell 17 | % 2 - black - obstacle 18 | % 3 - red = visited 19 | % 4 - blue - on list 20 | % 5 - green - start 21 | % 6 - yellow - destination 22 | 23 | cmap = [1 1 1; ... 24 | 0 0 0; ... 25 | 1 0 0; ... 26 | 0 0 1; ... 27 | 0 1 0; ... 28 | 1 1 0; ... 29 | 0.5 0.5 0.5]; 30 | 31 | colormap(cmap); 32 | 33 | % variable to control if the map is being visualized on every 34 | % iteration 35 | drawMapEveryTime = true; 36 | 37 | [nrows, ncols] = size(input_map); 38 | 39 | % map - a table that keeps track of the state of each grid cell 40 | map = zeros(nrows,ncols); 41 | 42 | map(~input_map) = 1; % Mark free cells 43 | map(input_map) = 2; % Mark obstacle cells 44 | 45 | % Generate linear indices of start and dest nodes 46 | start_node = sub2ind(size(map), start_coords(1), start_coords(2)); 47 | dest_node = sub2ind(size(map), dest_coords(1), dest_coords(2)); 48 | 49 | map(start_node) = 5; 50 | map(dest_node) = 6; 51 | 52 | % meshgrid will `replicate grid vectors' nrows and ncols to produce 53 | % a full grid 54 | % type `help meshgrid' in the Matlab command prompt for more information 55 | parent = zeros(nrows,ncols); 56 | 57 | % 58 | [X, Y] = meshgrid (1:ncols, 1:nrows); 59 | X = X'; 60 | Y = Y'; 61 | 62 | xd = dest_coords(1); 63 | yd = dest_coords(2); 64 | 65 | % Evaluate Heuristic function, H, for each grid cell 66 | % Manhattan distance 67 | dx = X-xd; 68 | dy = Y-yd; 69 | H = sqrt(dx.*dx + dy.*dy); 70 | 71 | 72 | % Initialize cost arrays 73 | f = Inf(nrows,ncols); 74 | g = Inf(nrows,ncols); 75 | 76 | g(start_node) = 0; 77 | f(start_node) = H(start_node); 78 | 79 | % keep track of the number of nodes that are expanded 80 | numExpanded = 0; 81 | 82 | % Main Loop 83 | 84 | 85 | while true 86 | 87 | % Draw current map 88 | map(start_node) = 5; 89 | map(dest_node) = 6; 90 | 91 | % make drawMapEveryTime = true if you want to see how the 92 | % nodes are expanded on the grid. 93 | 94 | if (drawMapEveryTime) 95 | image(1.5, 1.5, map); 96 | grid on; 97 | axis image; 98 | drawnow; 99 | 100 | end 101 | 102 | % Find the node with the minimum f value 103 | [min_f, current] = min(f(:)); 104 | 105 | if ((current == dest_node) || isinf(min_f)) 106 | numExpanded = numExpanded-1; 107 | break; 108 | end; 109 | numExpanded = numExpanded+1; 110 | % Update input_map 111 | map(current) = 3; 112 | f(current) = Inf; % remove this node from further consideration 113 | 114 | % Compute row, column coordinates of current node 115 | [i, j] = ind2sub(size(f), current); 116 | 117 | % ********************************************************************* 118 | % ALL YOUR CODE BETWEEN THESE LINES OF STARS 119 | % Visit all of the neighbors around the current node and update the 120 | % entries in the map, f, g and parent arrays 121 | % 122 | [p1,p2]=ind2sub(size(map),parent(i,j)); 123 | numExpanded = numExpanded+1; 124 | 125 | if i+1<=nrows 126 | if (map(i+1,j) == 1 || map(i+1,j) == 6) && (i+1~=p1 || j~=p2) 127 | map(i+1,j) = 4; 128 | g(i+1,j) = g(i,j)+1; 129 | f(i+1,j) = g(i+1,j)+H(i+1,j); 130 | parent(i+1,j) = current; 131 | end 132 | end 133 | if j+1<=ncols 134 | if (map(i,j+1) == 1 || map(i,j+1) == 6) && (i~=p1 || j+1~=p2) 135 | map(i,j+1) = 4; 136 | g(i,j+1) = g(i,j)+1; 137 | f(i,j+1) = g(i,j+1)+H(i,j+1); 138 | parent(i,j+1) = current; 139 | end 140 | end 141 | if i-1>=1 142 | if (map(i-1,j) == 1 || map(i-1,j) == 6 ) && (i-1~=p1 || j~=p2) 143 | map(i-1,j) = 4; 144 | g(i-1,j) = g(i,j)+1; 145 | f(i-1,j) = g(i-1,j)+H(i-1,j); 146 | parent(i-1,j) = current; 147 | end 148 | end 149 | if j-1>=1 150 | if (map(i,j-1) == 1 || map(i,j-1) == 6 ) && (i~=p1 || j-1~=p2) 151 | map(i,j-1) = 4; 152 | g(i,j-1) = g(i,j)+1; 153 | f(i,j-1) = g(i,j-1)+H(i,j-1); 154 | parent(i,j-1) = current; 155 | end 156 | end 157 | 158 | %********************************************************************* 159 | 160 | 161 | end 162 | 163 | %% Construct route from start to dest by following the parent links 164 | if (isinf(f(dest_node))) 165 | route = []; 166 | else 167 | route = [dest_node]; 168 | 169 | while (parent(route(1)) ~= 0) 170 | route = [parent(route(1)), route]; 171 | end 172 | 173 | 174 | 175 | video1 = VideoWriter('astar5'); %creating animation 176 | video1.FrameRate = 20; 177 | open(video1) 178 | 179 | % Snippet of code used to visualize the map and the path 180 | for k = 2:length(route) - 1 181 | map(route(k)) = 7; 182 | pause(0.01); 183 | image(1.5, 1.5, map); 184 | grid on; 185 | axis image; 186 | frame = getframe(gcf); %get frame 187 | writeVideo(video1, frame); 188 | end 189 | close(video1) 190 | end 191 | 192 | end 193 | -------------------------------------------------------------------------------- /grid_motion_planning/Dijkstra_Astar/AstarGrid.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IvLabs/grid_motion_planning/5868ba527146f06ccadce3e5bfc491a72100fb45/grid_motion_planning/Dijkstra_Astar/AstarGrid.gif -------------------------------------------------------------------------------- /grid_motion_planning/Dijkstra_Astar/DijkstraGrid.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IvLabs/grid_motion_planning/5868ba527146f06ccadce3e5bfc491a72100fb45/grid_motion_planning/Dijkstra_Astar/DijkstraGrid.gif -------------------------------------------------------------------------------- /grid_motion_planning/Dijkstra_Astar/DijkstraGrid.m: -------------------------------------------------------------------------------- 1 | function [route,numExpanded] = DijkstraGrid (input_map, start_coords, dest_coords) 2 | % Run Dijkstra's algorithm on a grid. 3 | % Inputs : 4 | % input_map : a logical array where the freespace cells are false or 0 and 5 | % the obstacles are true or 1 6 | % start_coords and dest_coords : Coordinates of the start and end cell 7 | % respectively, the first entry is the row and the second the column. 8 | % Output : 9 | % route : An array containing the linear indices of the cells along the 10 | % shortest route from start to dest or an empty array if there is no 11 | % route. This is a single dimensional vector 12 | % numExpanded: Remember to also return the total number of nodes 13 | % expanded during your search. Do not count the goal node as an expanded node. 14 | 15 | 16 | % set up color map for display 17 | % 1 - white - clear cell 18 | % 2 - black - obstacle 19 | % 3 - red = visited 20 | % 4 - blue - on list 21 | % 5 - green - start 22 | % 6 - yellow - destination 23 | 24 | cmap = [1 1 1; ... 25 | 0 0 0; ... 26 | 1 0 0; ... 27 | 0 0 1; ... 28 | 0 1 0; ... 29 | 1 1 0; ... 30 | 0 0.95 0]; 31 | 32 | colormap(cmap); 33 | 34 | % variable to control if the map is being visualized on every 35 | % iteration 36 | drawMapEveryTime = true; 37 | 38 | [nrows, ncols] = size(input_map); 39 | 40 | % map - a table that keeps track of the state of each grid cell 41 | map = zeros(nrows,ncols); 42 | 43 | map(~input_map) = 1; % Mark free cells 44 | map(input_map) = 2; % Mark obstacle cells 45 | 46 | % Generate linear indices of start and dest nodes 47 | start_node = sub2ind(size(map), start_coords(1), start_coords(2)); 48 | dest_node = sub2ind(size(map), dest_coords(1), dest_coords(2)); 49 | 50 | map(start_node) = 5; 51 | map(dest_node) = 6; 52 | 53 | % Initialize distance array 54 | distanceFromStart = Inf(nrows,ncols); 55 | 56 | % For each grid cell this array holds the index of its parent 57 | parent = zeros(nrows,ncols); 58 | 59 | distanceFromStart(start_node) = 0; 60 | 61 | % keep track of number of nodes expanded 62 | numExpanded = 0; 63 | 64 | % Main Loop 65 | while true 66 | 67 | % Draw current map 68 | map(start_node) = 5; 69 | map(dest_node) = 6; 70 | 71 | % make drawMapEveryTime = true if you want to see how the 72 | % nodes are expanded on the grid. 73 | 74 | if (drawMapEveryTime) 75 | image(1.5, 1.5, map); 76 | grid on; 77 | axis image; 78 | 79 | end 80 | 81 | % Find the node with the minimum distance 82 | [min_dist, current] = min(distanceFromStart(:)); 83 | 84 | if ((current == dest_node) || isinf(min_dist)) 85 | numExpanded = numExpanded-1; 86 | break 87 | end 88 | numExpanded = numExpanded+1; 89 | % Update map 90 | map(current) = 3; % mark current node as visited 91 | distanceFromStart(current) = Inf; % remove this node from further consideration 92 | 93 | % Compute row, column coordinates of current node 94 | [i, j] = ind2sub(size(distanceFromStart), current); 95 | 96 | % ********************************************************************* 97 | % YOUR CODE BETWEEN THESE LINES OF STARS 98 | 99 | % Visit each neighbor of the current node and update the map, distances 100 | % and parent tables appropriately. 101 | [p1,p2]=ind2sub(size(map),parent(i,j)); 102 | 103 | if i+1<=nrows 104 | if (map(i+1,j) == 1 || map(i+1,j) == 6) && (i+1~=p1 || j~=p2) 105 | map(i+1,j) = 4; 106 | distanceFromStart(i+1,j) = min_dist+1; 107 | parent(i+1,j) = current; 108 | end 109 | end 110 | if j+1<=ncols 111 | if (map(i,j+1) == 1 || map(i,j+1) == 6) && (i~=p1 || j+1~=p2) 112 | map(i,j+1) = 4; 113 | distanceFromStart(i,j+1) = min_dist+1; 114 | parent(i,j+1) = current; 115 | end 116 | end 117 | if i-1>=1 118 | if (map(i-1,j) == 1 || map(i-1,j) == 6 ) && (i-1~=p1 || j~=p2) 119 | map(i-1,j) = 4; 120 | distanceFromStart(i-1,j) = min_dist+1; 121 | parent(i-1,j) = current; 122 | end 123 | end 124 | if j-1>=1 125 | if (map(i,j-1) == 1 || map(i,j-1) == 6 ) && (i~=p1 || j-1~=p2) 126 | map(i,j-1) = 4; 127 | distanceFromStart(i,j-1) = min_dist+1; 128 | parent(i,j-1) = current; 129 | end 130 | end 131 | 132 | %********************************************************************* 133 | 134 | end 135 | %% Construct route from start to dest by following the parent links 136 | if (isinf(distanceFromStart(dest_node))) 137 | route = []; 138 | else 139 | route = [dest_node]; 140 | 141 | while (parent(route(1)) ~= 0) 142 | route = [parent(route(1)), route]; 143 | end 144 | 145 | %for making all free cell white again 146 | %for n = 1:sub2ind(size(map),nrows,ncols) 147 | % if map(n) == 3 || map(n) == 4 148 | % map(n) = 1; 149 | % end 150 | video1 = VideoWriter('dijkstra5'); %creating animation 151 | video1.FrameRate = 20; 152 | open(video1) 153 | 154 | % Snippet of code used to visualize the map and the path 155 | for k = 2:length(route) - 1 156 | map(route(k)) = 7; 157 | pause(0.01); 158 | image(1.5, 1.5, map); 159 | grid on; 160 | axis image; 161 | frame = getframe(gcf); %get frame 162 | writeVideo(video1, frame); 163 | end 164 | close(video1) 165 | end 166 | 167 | end 168 | -------------------------------------------------------------------------------- /grid_motion_planning/Dijkstra_Astar/TestScript1.m: -------------------------------------------------------------------------------- 1 | % 2 | % TestScript for Assignment 1 3 | % 4 | 5 | % map = false(50); 6 | % 7 | % map(5,5:7) = true; 8 | % map(6:7,7) = true; 9 | % start_coords = [1,2]; 10 | % dest_coords = [48, 48]; 11 | 12 | %% Define a small map 13 | 14 | map = false(80); 15 | 16 | %Add an obstacle 17 | map(1:20,9:16) = true; 18 | map(6:45,36:42) = true; 19 | map(50:70,56:62) = true; 20 | map(1:23,55:61) = true; 21 | map(17:27,76:79) = true; 22 | map(31:46,76:79) = true; 23 | 24 | start_coords = [24, 2]; 25 | dest_coords = [80, 80]; 26 | 27 | 28 | %% 29 | close all; 30 | [route, numExpanded] = DijkstraGrid (map, start_coords, dest_coords); 31 | %Uncomment following line to run Astar 32 | %[route, numExpanded] = AStarGrid (map, start_coords, dest_coords); 33 | 34 | %HINT: With default start and destination coordinates defined above, numExpanded for Dijkstras should be 76, numExpanded for Astar should be 23. 35 | -------------------------------------------------------------------------------- /quadcopter_gazebo/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 2.8.3) 2 | project(quadcopter) 3 | 4 | ## Compile as C++11, supported in ROS Kinetic and newer 5 | # add_compile_options(-std=c++11) 6 | 7 | ## Find catkin macros and libraries 8 | ## if COMPONENTS list like find_package(catkin REQUIRED COMPONENTS xyz) 9 | ## is used, also find other catkin packages 10 | find_package(catkin REQUIRED COMPONENTS 11 | rospy 12 | std_msgs 13 | ) 14 | 15 | ## System dependencies are found with CMake's conventions 16 | # find_package(Boost REQUIRED COMPONENTS system) 17 | 18 | 19 | ## Uncomment this if the package has a setup.py. This macro ensures 20 | ## modules and global scripts declared therein get installed 21 | ## See http://ros.org/doc/api/catkin/html/user_guide/setup_dot_py.html 22 | # catkin_python_setup() 23 | 24 | ################################################ 25 | ## Declare ROS messages, services and actions ## 26 | ################################################ 27 | 28 | ## To declare and build messages, services or actions from within this 29 | ## package, follow these steps: 30 | ## * Let MSG_DEP_SET be the set of packages whose message types you use in 31 | ## your messages/services/actions (e.g. std_msgs, actionlib_msgs, ...). 32 | ## * In the file package.xml: 33 | ## * add a build_depend tag for "message_generation" 34 | ## * add a build_depend and a exec_depend tag for each package in MSG_DEP_SET 35 | ## * If MSG_DEP_SET isn't empty the following dependency has been pulled in 36 | ## but can be declared for certainty nonetheless: 37 | ## * add a exec_depend tag for "message_runtime" 38 | ## * In this file (CMakeLists.txt): 39 | ## * add "message_generation" and every package in MSG_DEP_SET to 40 | ## find_package(catkin REQUIRED COMPONENTS ...) 41 | ## * add "message_runtime" and every package in MSG_DEP_SET to 42 | ## catkin_package(CATKIN_DEPENDS ...) 43 | ## * uncomment the add_*_files sections below as needed 44 | ## and list every .msg/.srv/.action file to be processed 45 | ## * uncomment the generate_messages entry below 46 | ## * add every package in MSG_DEP_SET to generate_messages(DEPENDENCIES ...) 47 | 48 | ## Generate messages in the 'msg' folder 49 | # add_message_files( 50 | # FILES 51 | # Message1.msg 52 | # Message2.msg 53 | # ) 54 | 55 | ## Generate services in the 'srv' folder 56 | # add_service_files( 57 | # FILES 58 | # Service1.srv 59 | # Service2.srv 60 | # ) 61 | 62 | ## Generate actions in the 'action' folder 63 | # add_action_files( 64 | # FILES 65 | # Action1.action 66 | # Action2.action 67 | # ) 68 | 69 | ## Generate added messages and services with any dependencies listed here 70 | # generate_messages( 71 | # DEPENDENCIES 72 | # std_msgs 73 | # ) 74 | 75 | ################################################ 76 | ## Declare ROS dynamic reconfigure parameters ## 77 | ################################################ 78 | 79 | ## To declare and build dynamic reconfigure parameters within this 80 | ## package, follow these steps: 81 | ## * In the file package.xml: 82 | ## * add a build_depend and a exec_depend tag for "dynamic_reconfigure" 83 | ## * In this file (CMakeLists.txt): 84 | ## * add "dynamic_reconfigure" to 85 | ## find_package(catkin REQUIRED COMPONENTS ...) 86 | ## * uncomment the "generate_dynamic_reconfigure_options" section below 87 | ## and list every .cfg file to be processed 88 | 89 | ## Generate dynamic reconfigure parameters in the 'cfg' folder 90 | # generate_dynamic_reconfigure_options( 91 | # cfg/DynReconf1.cfg 92 | # cfg/DynReconf2.cfg 93 | # ) 94 | 95 | ################################### 96 | ## catkin specific configuration ## 97 | ################################### 98 | ## The catkin_package macro generates cmake config files for your package 99 | ## Declare things to be passed to dependent projects 100 | ## INCLUDE_DIRS: uncomment this if your package contains header files 101 | ## LIBRARIES: libraries you create in this project that dependent projects also need 102 | ## CATKIN_DEPENDS: catkin_packages dependent projects also need 103 | ## DEPENDS: system dependencies of this project that dependent projects also need 104 | catkin_package( 105 | # INCLUDE_DIRS include 106 | # LIBRARIES quadcopter 107 | # CATKIN_DEPENDS rospy std_msgs 108 | # DEPENDS system_lib 109 | ) 110 | 111 | ########### 112 | ## Build ## 113 | ########### 114 | 115 | ## Specify additional locations of header files 116 | ## Your package locations should be listed before other locations 117 | include_directories( 118 | # include 119 | ${catkin_INCLUDE_DIRS} 120 | ) 121 | 122 | ## Declare a C++ library 123 | # add_library(${PROJECT_NAME} 124 | # src/${PROJECT_NAME}/fly_bot.cpp 125 | # ) 126 | 127 | ## Add cmake target dependencies of the library 128 | ## as an example, code may need to be generated before libraries 129 | ## either from message generation or dynamic reconfigure 130 | # add_dependencies(${PROJECT_NAME} ${${PROJECT_NAME}_EXPORTED_TARGETS} ${catkin_EXPORTED_TARGETS}) 131 | 132 | ## Declare a C++ executable 133 | ## With catkin_make all packages are built within a single CMake context 134 | ## The recommended prefix ensures that target names across packages don't collide 135 | # add_executable(${PROJECT_NAME}_node src/fly_bot_node.cpp) 136 | 137 | ## Rename C++ executable without prefix 138 | ## The above recommended prefix causes long target names, the following renames the 139 | ## target back to the shorter version for ease of user use 140 | ## e.g. "rosrun someones_pkg node" instead of "rosrun someones_pkg someones_pkg_node" 141 | # set_target_properties(${PROJECT_NAME}_node PROPERTIES OUTPUT_NAME node PREFIX "") 142 | 143 | ## Add cmake target dependencies of the executable 144 | ## same as for the library above 145 | # add_dependencies(${PROJECT_NAME}_node ${${PROJECT_NAME}_EXPORTED_TARGETS} ${catkin_EXPORTED_TARGETS}) 146 | 147 | ## Specify libraries to link a library or executable target against 148 | # target_link_libraries(${PROJECT_NAME}_node 149 | # ${catkin_LIBRARIES} 150 | # ) 151 | 152 | ############# 153 | ## Install ## 154 | ############# 155 | 156 | # all install targets should use catkin DESTINATION variables 157 | # See http://ros.org/doc/api/catkin/html/adv_user_guide/variables.html 158 | 159 | ## Mark executable scripts (Python etc.) for installation 160 | ## in contrast to setup.py, you can choose the destination 161 | # install(PROGRAMS 162 | # scripts/my_python_script 163 | # DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION} 164 | # ) 165 | 166 | ## Mark executables and/or libraries for installation 167 | # install(TARGETS ${PROJECT_NAME} ${PROJECT_NAME}_node 168 | # ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION} 169 | # LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION} 170 | # RUNTIME DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION} 171 | # ) 172 | 173 | ## Mark cpp header files for installation 174 | # install(DIRECTORY include/${PROJECT_NAME}/ 175 | # DESTINATION ${CATKIN_PACKAGE_INCLUDE_DESTINATION} 176 | # FILES_MATCHING PATTERN "*.h" 177 | # PATTERN ".svn" EXCLUDE 178 | # ) 179 | 180 | ## Mark other files for installation (e.g. launch and bag files, etc.) 181 | # install(FILES 182 | # # myfile1 183 | # # myfile2 184 | # DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION} 185 | # ) 186 | 187 | ############# 188 | ## Testing ## 189 | ############# 190 | 191 | ## Add gtest based cpp test target and link libraries 192 | # catkin_add_gtest(${PROJECT_NAME}-test test/test_fly_bot.cpp) 193 | # if(TARGET ${PROJECT_NAME}-test) 194 | # target_link_libraries(${PROJECT_NAME}-test ${PROJECT_NAME}) 195 | # endif() 196 | 197 | ## Add folders to be run by python nosetests 198 | # catkin_add_nosetests(test) 199 | -------------------------------------------------------------------------------- /quadcopter_gazebo/launch/gmap.launch: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | --> 63 | 64 | 68 | 69 | 70 | 71 | -------------------------------------------------------------------------------- /quadcopter_gazebo/launch/octomap_uav.launch: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | -------------------------------------------------------------------------------- /quadcopter_gazebo/launch/uav.launch: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | -------------------------------------------------------------------------------- /quadcopter_gazebo/meshes/hokuyo_convex.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IvLabs/grid_motion_planning/5868ba527146f06ccadce3e5bfc491a72100fb45/quadcopter_gazebo/meshes/hokuyo_convex.stl -------------------------------------------------------------------------------- /quadcopter_gazebo/models/Box/model.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Box 5 | 1.0 6 | model.sdf 7 | 8 | 9 | Warehouse environment. 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /quadcopter_gazebo/models/Box/model.sdf: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | true 5 | 6 | 7 | 8 | 9 | model://Box/meshes/Box.dae 10 | 11 | 12 | 13 | 14 | 15 | 16 | model://Box/meshes/Box.dae 17 | 18 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /quadcopter_gazebo/models/BoxesLargeOnPallet/materials/scripts/BoxesLargeOnPallet.material: -------------------------------------------------------------------------------- 1 | material BoxesLargeOnPallet/Diffuse 2 | { 3 | receive_shadows off 4 | } 5 | -------------------------------------------------------------------------------- /quadcopter_gazebo/models/BoxesLargeOnPallet/model.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Boxes large on pallet 5 | 1.0 6 | model.sdf 7 | 8 | 9 | Warehouse environment. 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /quadcopter_gazebo/models/BoxesLargeOnPallet/model.sdf: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | true 5 | 6 | 7 | 8 | 9 | model://BoxesLargeOnPallet/meshes/BoxesLargeOnPallet.dae 10 | 11 | 12 | 13 | 14 | 15 | 16 | model://BoxesLargeOnPallet/meshes/BoxesLargeOnPallet.dae 17 | 18 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /quadcopter_gazebo/models/D60/D60/Carpet_Diamond_Olive.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IvLabs/grid_motion_planning/5868ba527146f06ccadce3e5bfc491a72100fb45/quadcopter_gazebo/models/D60/D60/Carpet_Diamond_Olive.jpg -------------------------------------------------------------------------------- /quadcopter_gazebo/models/D60/D60/Carpet_Loop_Pattern.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IvLabs/grid_motion_planning/5868ba527146f06ccadce3e5bfc491a72100fb45/quadcopter_gazebo/models/D60/D60/Carpet_Loop_Pattern.jpg -------------------------------------------------------------------------------- /quadcopter_gazebo/models/D60/D60/Carpet_Pattern_Leaf_Squares_Tan.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IvLabs/grid_motion_planning/5868ba527146f06ccadce3e5bfc491a72100fb45/quadcopter_gazebo/models/D60/D60/Carpet_Pattern_Leaf_Squares_Tan.jpg -------------------------------------------------------------------------------- /quadcopter_gazebo/models/big_box/materials/textures/Kraft_Tile.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IvLabs/grid_motion_planning/5868ba527146f06ccadce3e5bfc491a72100fb45/quadcopter_gazebo/models/big_box/materials/textures/Kraft_Tile.jpg -------------------------------------------------------------------------------- /quadcopter_gazebo/models/big_box/materials/textures/barcode.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IvLabs/grid_motion_planning/5868ba527146f06ccadce3e5bfc491a72100fb45/quadcopter_gazebo/models/big_box/materials/textures/barcode.png -------------------------------------------------------------------------------- /quadcopter_gazebo/models/big_box/materials/textures/front.pdn: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IvLabs/grid_motion_planning/5868ba527146f06ccadce3e5bfc491a72100fb45/quadcopter_gazebo/models/big_box/materials/textures/front.pdn -------------------------------------------------------------------------------- /quadcopter_gazebo/models/big_box/materials/textures/front.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IvLabs/grid_motion_planning/5868ba527146f06ccadce3e5bfc491a72100fb45/quadcopter_gazebo/models/big_box/materials/textures/front.png -------------------------------------------------------------------------------- /quadcopter_gazebo/models/big_box/materials/textures/side1.pdn: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IvLabs/grid_motion_planning/5868ba527146f06ccadce3e5bfc491a72100fb45/quadcopter_gazebo/models/big_box/materials/textures/side1.pdn -------------------------------------------------------------------------------- /quadcopter_gazebo/models/big_box/materials/textures/side1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IvLabs/grid_motion_planning/5868ba527146f06ccadce3e5bfc491a72100fb45/quadcopter_gazebo/models/big_box/materials/textures/side1.png -------------------------------------------------------------------------------- /quadcopter_gazebo/models/big_box/materials/textures/side2.pdn: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IvLabs/grid_motion_planning/5868ba527146f06ccadce3e5bfc491a72100fb45/quadcopter_gazebo/models/big_box/materials/textures/side2.pdn -------------------------------------------------------------------------------- /quadcopter_gazebo/models/big_box/materials/textures/side2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IvLabs/grid_motion_planning/5868ba527146f06ccadce3e5bfc491a72100fb45/quadcopter_gazebo/models/big_box/materials/textures/side2.png -------------------------------------------------------------------------------- /quadcopter_gazebo/models/big_box/model.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Big box 5 | 1.0 6 | model.sdf 7 | 8 | 9 | Aurelien Roy 10 | aurroy@hotmail.com 11 | 12 | 13 | 14 | Item for warehouse environment. 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /quadcopter_gazebo/models/big_box/model.sdf: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 0 0 0.75 0 0 0 5 | false 6 | 7 | 8 | 40.0 9 | 10 | 1 11 | 0 12 | 0 13 | 1 14 | 0 15 | 1 16 | 17 | 18 | 19 | 20 | 21 | 22 | 1.20 0.80 1.50 23 | 24 | 25 | 26 | 27 | 28 | 0.1 29 | 0.001 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | model://big_box/meshes/big_box.dae 38 | 39 | 40 | 41 | 42 | 43 | -------------------------------------------------------------------------------- /quadcopter_gazebo/models/depth_camera/depth_camera.sdf: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 0 0 0.035 0 0 0 6 | 7 | 8 | 0.01 0.025 0.025 0 0 0 9 | 0.01 10 | 11 | 4.15e-6 12 | 0 13 | 0 14 | 2.407e-6 15 | 0 16 | 2.407e-6 17 | 18 | 19 | 20 | 0 0 0 0 0 0 21 | 22 | 23 | model://realsense_camera/meshes/realsense.dae 24 | 25 | 26 | 27 | 30 28 | 0 0 0 0 0 0 29 | 30 | 1.02974 31 | 32 | R8G8B8 33 | 640 34 | 480 35 | 36 | 37 | 0.5 38 | 18 39 | 40 | 41 | 42 | camera 43 | true 44 | 20 45 | 0.2 46 | 20 47 | rgb/image_raw 48 | rgb/camera_info 49 | depth/image_raw 50 | depth/camera_info 51 | depth/points 52 | camera_optical_link 53 | 0.0 54 | 0.0 55 | 0.0 56 | 0.0 57 | 0.0 58 | 59 | 60 | 61 | -------------------------------------------------------------------------------- /quadcopter_gazebo/models/depth_camera/depth_camera.sdf.jinja: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 0 0 0.035 0 0 0 6 | 7 | 8 | 0.01 0.025 0.025 0 0 0 9 | 0.01 10 | 11 | 4.15e-6 12 | 0 13 | 0 14 | 2.407e-6 15 | 0 16 | 2.407e-6 17 | 18 | 19 | 20 | 0 0 0 0 0 0 21 | 22 | 23 | model://realsense_camera/meshes/realsense.dae 24 | 25 | 26 | 27 | 28 | {%- if ros_version == '2' -%} 29 | 0 30 | 30 31 | 32 | 1.02974 33 | 34 | R8G8B8 35 | 640 36 | 480 37 | 38 | 39 | 0.5 40 | 18 41 | 42 | 43 | 0.0 44 | 0.0 45 | 0.0 46 | 0.0 47 | 0.0 48 |
0.5 0.5
49 |
50 |
51 | 52 | 53 | camera 54 | camera_link 55 | 0.07 56 | 0.1 57 | 12 58 | 59 | {%- else -%} 60 | 30 61 | 62 | 1.02974 63 | 64 | R8G8B8 65 | 640 66 | 480 67 | 68 | 69 | 0.5 70 | 18 71 | 72 | 73 | 74 | camera 75 | true 76 | 20 77 | 0.2 78 | 20 79 | rgb/image_raw 80 | rgb/camera_info 81 | depth/image_raw 82 | depth/camera_info 83 | depth/points 84 | camera_link 85 | 0.0 86 | 0.0 87 | 0.0 88 | 0.0 89 | 0.0 90 | 91 | {%- endif -%} 92 |
93 | 94 |
95 |
96 | -------------------------------------------------------------------------------- /quadcopter_gazebo/models/depth_camera/depth_camera.sdf.last_generated: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 0 0 0.035 0 0 0 6 | 7 | 8 | 0.01 0.025 0.025 0 0 0 9 | 0.01 10 | 11 | 4.15e-6 12 | 0 13 | 0 14 | 2.407e-6 15 | 0 16 | 2.407e-6 17 | 18 | 19 | 20 | 0 0 0 0 0 0 21 | 22 | 23 | model://realsense_camera/meshes/realsense.dae 24 | 25 | 26 | 27 | 30 28 | 29 | 1.02974 30 | 31 | R8G8B8 32 | 640 33 | 480 34 | 35 | 36 | 0.5 37 | 18 38 | 39 | 40 | 41 | camera 42 | true 43 | 20 44 | 0.2 45 | 20 46 | rgb/image_raw 47 | rgb/camera_info 48 | depth/image_raw 49 | depth/camera_info 50 | depth/points 51 | camera_link 52 | 0.0 53 | 0.0 54 | 0.0 55 | 0.0 56 | 0.0 57 | 58 | 59 | 60 | -------------------------------------------------------------------------------- /quadcopter_gazebo/models/depth_camera/meshes/hokuyo_convex.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IvLabs/grid_motion_planning/5868ba527146f06ccadce3e5bfc491a72100fb45/quadcopter_gazebo/models/depth_camera/meshes/hokuyo_convex.stl -------------------------------------------------------------------------------- /quadcopter_gazebo/models/depth_camera/model.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | Hokuyo 4 | 1.0 5 | depth_camera.sdf 6 | 7 | 8 | John Hsu 9 | hsu@osrfoundation.org 10 | 11 | 12 | 13 | Depth Camera 14 | 15 | 16 | -------------------------------------------------------------------------------- /quadcopter_gazebo/models/fla_hotel_3doors/fla_hotel_3doors.skb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IvLabs/grid_motion_planning/5868ba527146f06ccadce3e5bfc491a72100fb45/quadcopter_gazebo/models/fla_hotel_3doors/fla_hotel_3doors.skb -------------------------------------------------------------------------------- /quadcopter_gazebo/models/fla_hotel_3doors/fla_hotel_3doors.skp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IvLabs/grid_motion_planning/5868ba527146f06ccadce3e5bfc491a72100fb45/quadcopter_gazebo/models/fla_hotel_3doors/fla_hotel_3doors.skp -------------------------------------------------------------------------------- /quadcopter_gazebo/models/fla_hotel_3doors/fla_hotel_3doors/Carrera_Marble.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IvLabs/grid_motion_planning/5868ba527146f06ccadce3e5bfc491a72100fb45/quadcopter_gazebo/models/fla_hotel_3doors/fla_hotel_3doors/Carrera_Marble.jpg -------------------------------------------------------------------------------- /quadcopter_gazebo/models/fla_hotel_3doors/fla_hotel_3doors/Granite_Dark_Gray.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IvLabs/grid_motion_planning/5868ba527146f06ccadce3e5bfc491a72100fb45/quadcopter_gazebo/models/fla_hotel_3doors/fla_hotel_3doors/Granite_Dark_Gray.jpg -------------------------------------------------------------------------------- /quadcopter_gazebo/models/fla_hotel_3doors/fla_hotel_3doors/Stone_Vein_Gray.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IvLabs/grid_motion_planning/5868ba527146f06ccadce3e5bfc491a72100fb45/quadcopter_gazebo/models/fla_hotel_3doors/fla_hotel_3doors/Stone_Vein_Gray.jpg -------------------------------------------------------------------------------- /quadcopter_gazebo/models/fla_hotel_3doors/fla_hotel_3doors/Stone_Vein_Gray_0.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IvLabs/grid_motion_planning/5868ba527146f06ccadce3e5bfc491a72100fb45/quadcopter_gazebo/models/fla_hotel_3doors/fla_hotel_3doors/Stone_Vein_Gray_0.jpg -------------------------------------------------------------------------------- /quadcopter_gazebo/models/fla_hotel_3doors/fla_hotel_3doors/Wood_OSB.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IvLabs/grid_motion_planning/5868ba527146f06ccadce3e5bfc491a72100fb45/quadcopter_gazebo/models/fla_hotel_3doors/fla_hotel_3doors/Wood_OSB.jpg -------------------------------------------------------------------------------- /quadcopter_gazebo/models/fla_office/fla_office/Beadboard.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IvLabs/grid_motion_planning/5868ba527146f06ccadce3e5bfc491a72100fb45/quadcopter_gazebo/models/fla_office/fla_office/Beadboard.jpg -------------------------------------------------------------------------------- /quadcopter_gazebo/models/fla_office/fla_office/Brick_Colored_Blue.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IvLabs/grid_motion_planning/5868ba527146f06ccadce3e5bfc491a72100fb45/quadcopter_gazebo/models/fla_office/fla_office/Brick_Colored_Blue.jpg -------------------------------------------------------------------------------- /quadcopter_gazebo/models/fla_office/fla_office/Brick_Colored_Blue_3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IvLabs/grid_motion_planning/5868ba527146f06ccadce3e5bfc491a72100fb45/quadcopter_gazebo/models/fla_office/fla_office/Brick_Colored_Blue_3.jpg -------------------------------------------------------------------------------- /quadcopter_gazebo/models/fla_office/fla_office/Carrera_Marble.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IvLabs/grid_motion_planning/5868ba527146f06ccadce3e5bfc491a72100fb45/quadcopter_gazebo/models/fla_office/fla_office/Carrera_Marble.jpg -------------------------------------------------------------------------------- /quadcopter_gazebo/models/fla_office/fla_office/Cladding_Siding_Tan.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IvLabs/grid_motion_planning/5868ba527146f06ccadce3e5bfc491a72100fb45/quadcopter_gazebo/models/fla_office/fla_office/Cladding_Siding_Tan.jpg -------------------------------------------------------------------------------- /quadcopter_gazebo/models/fla_office/fla_office/Leather_Blue.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IvLabs/grid_motion_planning/5868ba527146f06ccadce3e5bfc491a72100fb45/quadcopter_gazebo/models/fla_office/fla_office/Leather_Blue.jpg -------------------------------------------------------------------------------- /quadcopter_gazebo/models/fla_office/fla_office/Marble_Carrara_Floor_Tile.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IvLabs/grid_motion_planning/5868ba527146f06ccadce3e5bfc491a72100fb45/quadcopter_gazebo/models/fla_office/fla_office/Marble_Carrara_Floor_Tile.jpg -------------------------------------------------------------------------------- /quadcopter_gazebo/models/fla_office/fla_office/Modern_Siding.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IvLabs/grid_motion_planning/5868ba527146f06ccadce3e5bfc491a72100fb45/quadcopter_gazebo/models/fla_office/fla_office/Modern_Siding.jpg -------------------------------------------------------------------------------- /quadcopter_gazebo/models/fla_office/fla_office/Modern_Siding_0.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IvLabs/grid_motion_planning/5868ba527146f06ccadce3e5bfc491a72100fb45/quadcopter_gazebo/models/fla_office/fla_office/Modern_Siding_0.jpg -------------------------------------------------------------------------------- /quadcopter_gazebo/models/fla_office/fla_office/Modern_Siding_1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IvLabs/grid_motion_planning/5868ba527146f06ccadce3e5bfc491a72100fb45/quadcopter_gazebo/models/fla_office/fla_office/Modern_Siding_1.jpg -------------------------------------------------------------------------------- /quadcopter_gazebo/models/fla_office/fla_office/Mosaic_Hexagonal_Tile.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IvLabs/grid_motion_planning/5868ba527146f06ccadce3e5bfc491a72100fb45/quadcopter_gazebo/models/fla_office/fla_office/Mosaic_Hexagonal_Tile.jpg -------------------------------------------------------------------------------- /quadcopter_gazebo/models/fla_office/fla_office/Rough_Square_Concrete_Block.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IvLabs/grid_motion_planning/5868ba527146f06ccadce3e5bfc491a72100fb45/quadcopter_gazebo/models/fla_office/fla_office/Rough_Square_Concrete_Block.jpg -------------------------------------------------------------------------------- /quadcopter_gazebo/models/fla_office/fla_office/Rough_Square_Concrete_Block_2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IvLabs/grid_motion_planning/5868ba527146f06ccadce3e5bfc491a72100fb45/quadcopter_gazebo/models/fla_office/fla_office/Rough_Square_Concrete_Block_2.jpg -------------------------------------------------------------------------------- /quadcopter_gazebo/models/fla_office/fla_office/Rough_Square_Concrete_Block_3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IvLabs/grid_motion_planning/5868ba527146f06ccadce3e5bfc491a72100fb45/quadcopter_gazebo/models/fla_office/fla_office/Rough_Square_Concrete_Block_3.jpg -------------------------------------------------------------------------------- /quadcopter_gazebo/models/fla_office/fla_office/Tile_Ceramic_Multi.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IvLabs/grid_motion_planning/5868ba527146f06ccadce3e5bfc491a72100fb45/quadcopter_gazebo/models/fla_office/fla_office/Tile_Ceramic_Multi.jpg -------------------------------------------------------------------------------- /quadcopter_gazebo/models/fla_office/fla_office/Tile_Navy.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IvLabs/grid_motion_planning/5868ba527146f06ccadce3e5bfc491a72100fb45/quadcopter_gazebo/models/fla_office/fla_office/Tile_Navy.jpg -------------------------------------------------------------------------------- /quadcopter_gazebo/models/fla_office/fla_office/Tile_Navy_0.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IvLabs/grid_motion_planning/5868ba527146f06ccadce3e5bfc491a72100fb45/quadcopter_gazebo/models/fla_office/fla_office/Tile_Navy_0.jpg -------------------------------------------------------------------------------- /quadcopter_gazebo/models/fla_office/fla_office/White_Square_Tile.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IvLabs/grid_motion_planning/5868ba527146f06ccadce3e5bfc491a72100fb45/quadcopter_gazebo/models/fla_office/fla_office/White_Square_Tile.jpg -------------------------------------------------------------------------------- /quadcopter_gazebo/models/fla_office/fla_office/White_Subway_Tile.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IvLabs/grid_motion_planning/5868ba527146f06ccadce3e5bfc491a72100fb45/quadcopter_gazebo/models/fla_office/fla_office/White_Subway_Tile.jpg -------------------------------------------------------------------------------- /quadcopter_gazebo/models/fla_office/fla_office/White_Subway_Tile_1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IvLabs/grid_motion_planning/5868ba527146f06ccadce3e5bfc491a72100fb45/quadcopter_gazebo/models/fla_office/fla_office/White_Subway_Tile_1.jpg -------------------------------------------------------------------------------- /quadcopter_gazebo/models/fla_office/fla_office/White_Subway_Tile_2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IvLabs/grid_motion_planning/5868ba527146f06ccadce3e5bfc491a72100fb45/quadcopter_gazebo/models/fla_office/fla_office/White_Subway_Tile_2.jpg -------------------------------------------------------------------------------- /quadcopter_gazebo/models/fla_office/fla_office/Wood_Cherry_Original.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IvLabs/grid_motion_planning/5868ba527146f06ccadce3e5bfc491a72100fb45/quadcopter_gazebo/models/fla_office/fla_office/Wood_Cherry_Original.jpg -------------------------------------------------------------------------------- /quadcopter_gazebo/models/fla_office/fla_office/__Carpet_Pattern_Squares_Multi_1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IvLabs/grid_motion_planning/5868ba527146f06ccadce3e5bfc491a72100fb45/quadcopter_gazebo/models/fla_office/fla_office/__Carpet_Pattern_Squares_Multi_1.jpg -------------------------------------------------------------------------------- /quadcopter_gazebo/models/fla_office/fla_office/__Metal_Corrogated_Shiny_4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IvLabs/grid_motion_planning/5868ba527146f06ccadce3e5bfc491a72100fb45/quadcopter_gazebo/models/fla_office/fla_office/__Metal_Corrogated_Shiny_4.jpg -------------------------------------------------------------------------------- /quadcopter_gazebo/models/fla_office/fla_office/grey_gloss.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IvLabs/grid_motion_planning/5868ba527146f06ccadce3e5bfc491a72100fb45/quadcopter_gazebo/models/fla_office/fla_office/grey_gloss.jpg -------------------------------------------------------------------------------- /quadcopter_gazebo/models/fla_office/fla_office/material_1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IvLabs/grid_motion_planning/5868ba527146f06ccadce3e5bfc491a72100fb45/quadcopter_gazebo/models/fla_office/fla_office/material_1.jpg -------------------------------------------------------------------------------- /quadcopter_gazebo/models/fla_office/fla_office/material_2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IvLabs/grid_motion_planning/5868ba527146f06ccadce3e5bfc491a72100fb45/quadcopter_gazebo/models/fla_office/fla_office/material_2.jpg -------------------------------------------------------------------------------- /quadcopter_gazebo/models/fla_office/fla_office/material_3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IvLabs/grid_motion_planning/5868ba527146f06ccadce3e5bfc491a72100fb45/quadcopter_gazebo/models/fla_office/fla_office/material_3.jpg -------------------------------------------------------------------------------- /quadcopter_gazebo/models/fla_office/fla_office/stainless_steel.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IvLabs/grid_motion_planning/5868ba527146f06ccadce3e5bfc491a72100fb45/quadcopter_gazebo/models/fla_office/fla_office/stainless_steel.jpg -------------------------------------------------------------------------------- /quadcopter_gazebo/models/fla_office/fla_office/stainless_steel2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IvLabs/grid_motion_planning/5868ba527146f06ccadce3e5bfc491a72100fb45/quadcopter_gazebo/models/fla_office/fla_office/stainless_steel2.jpg -------------------------------------------------------------------------------- /quadcopter_gazebo/models/fla_office/fla_office/stainless_steel2_0.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IvLabs/grid_motion_planning/5868ba527146f06ccadce3e5bfc491a72100fb45/quadcopter_gazebo/models/fla_office/fla_office/stainless_steel2_0.jpg -------------------------------------------------------------------------------- /quadcopter_gazebo/models/fla_office/fla_office/stainless_steel2_1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IvLabs/grid_motion_planning/5868ba527146f06ccadce3e5bfc491a72100fb45/quadcopter_gazebo/models/fla_office/fla_office/stainless_steel2_1.jpg -------------------------------------------------------------------------------- /quadcopter_gazebo/models/forest0/forest0/bark.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IvLabs/grid_motion_planning/5868ba527146f06ccadce3e5bfc491a72100fb45/quadcopter_gazebo/models/forest0/forest0/bark.jpg -------------------------------------------------------------------------------- /quadcopter_gazebo/models/forest0/forest0/bark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IvLabs/grid_motion_planning/5868ba527146f06ccadce3e5bfc491a72100fb45/quadcopter_gazebo/models/forest0/forest0/bark.png -------------------------------------------------------------------------------- /quadcopter_gazebo/models/forest0/forest0/bark_loo.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IvLabs/grid_motion_planning/5868ba527146f06ccadce3e5bfc491a72100fb45/quadcopter_gazebo/models/forest0/forest0/bark_loo.jpg -------------------------------------------------------------------------------- /quadcopter_gazebo/models/forest0/forest0/blatt.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IvLabs/grid_motion_planning/5868ba527146f06ccadce3e5bfc491a72100fb45/quadcopter_gazebo/models/forest0/forest0/blatt.jpg -------------------------------------------------------------------------------- /quadcopter_gazebo/models/forest0/forest0/blatt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IvLabs/grid_motion_planning/5868ba527146f06ccadce3e5bfc491a72100fb45/quadcopter_gazebo/models/forest0/forest0/blatt.png -------------------------------------------------------------------------------- /quadcopter_gazebo/models/forest0/forest0/blatt1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IvLabs/grid_motion_planning/5868ba527146f06ccadce3e5bfc491a72100fb45/quadcopter_gazebo/models/forest0/forest0/blatt1.jpg -------------------------------------------------------------------------------- /quadcopter_gazebo/models/forest0/forest0/blatt1_a.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IvLabs/grid_motion_planning/5868ba527146f06ccadce3e5bfc491a72100fb45/quadcopter_gazebo/models/forest0/forest0/blatt1_a.jpg -------------------------------------------------------------------------------- /quadcopter_gazebo/models/forest0/forest0/nadeln4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IvLabs/grid_motion_planning/5868ba527146f06ccadce3e5bfc491a72100fb45/quadcopter_gazebo/models/forest0/forest0/nadeln4.jpg -------------------------------------------------------------------------------- /quadcopter_gazebo/models/forest0/forest0/nadeln4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IvLabs/grid_motion_planning/5868ba527146f06ccadce3e5bfc491a72100fb45/quadcopter_gazebo/models/forest0/forest0/nadeln4.png -------------------------------------------------------------------------------- /quadcopter_gazebo/models/forest0/forest0/nadeln4a.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IvLabs/grid_motion_planning/5868ba527146f06ccadce3e5bfc491a72100fb45/quadcopter_gazebo/models/forest0/forest0/nadeln4a.jpg -------------------------------------------------------------------------------- /quadcopter_gazebo/models/forest0/forest0/nadeln4a.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IvLabs/grid_motion_planning/5868ba527146f06ccadce3e5bfc491a72100fb45/quadcopter_gazebo/models/forest0/forest0/nadeln4a.png -------------------------------------------------------------------------------- /quadcopter_gazebo/models/forest0/forest0/stamm2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IvLabs/grid_motion_planning/5868ba527146f06ccadce3e5bfc491a72100fb45/quadcopter_gazebo/models/forest0/forest0/stamm2.jpg -------------------------------------------------------------------------------- /quadcopter_gazebo/models/forest0/forest0/stamm2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IvLabs/grid_motion_planning/5868ba527146f06ccadce3e5bfc491a72100fb45/quadcopter_gazebo/models/forest0/forest0/stamm2.png -------------------------------------------------------------------------------- /quadcopter_gazebo/models/forest0/forest0/stamm21.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IvLabs/grid_motion_planning/5868ba527146f06ccadce3e5bfc491a72100fb45/quadcopter_gazebo/models/forest0/forest0/stamm21.jpg -------------------------------------------------------------------------------- /quadcopter_gazebo/models/forest0/forest0/stamm21.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IvLabs/grid_motion_planning/5868ba527146f06ccadce3e5bfc491a72100fb45/quadcopter_gazebo/models/forest0/forest0/stamm21.png -------------------------------------------------------------------------------- /quadcopter_gazebo/models/forest0/forest0/stamm22.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IvLabs/grid_motion_planning/5868ba527146f06ccadce3e5bfc491a72100fb45/quadcopter_gazebo/models/forest0/forest0/stamm22.jpg -------------------------------------------------------------------------------- /quadcopter_gazebo/models/ground_plane_residential/model-1_2.sdf: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | true 5 | 6 | 7 | 8 | 9 | 0 0 1 10 | 100 100 11 | 12 | 13 | 14 | 15 | 16 | 100 17 | 50 18 | 19 | 20 | 21 | 22 | 23 | false 24 | 25 | 26 | 0 0 1 27 | 100 100 28 | 29 | 30 | 31 | 35 | 36 | 37 | 38 | 39 | 40 | -------------------------------------------------------------------------------- /quadcopter_gazebo/models/ground_plane_residential/model-1_3.sdf: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | true 5 | 6 | 7 | 8 | 9 | 0 0 1 10 | 100 100 11 | 12 | 13 | 14 | 15 | 16 | 100 17 | 50 18 | 19 | 20 | 21 | 22 | 23 | false 24 | 25 | 26 | 0 0 1 27 | 100 100 28 | 29 | 30 | 31 | 35 | 36 | 37 | 38 | 39 | 40 | -------------------------------------------------------------------------------- /quadcopter_gazebo/models/ground_plane_residential/model-1_4.sdf: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | true 5 | 6 | 7 | 8 | 9 | 0 0 1 10 | 100 100 11 | 12 | 13 | 14 | 15 | 16 | 100 17 | 50 18 | 19 | 20 | 21 | 22 | 23 | false 24 | 25 | 26 | 0 0 1 27 | 100 100 28 | 29 | 30 | 31 | 35 | 36 | 37 | 38 | 39 | 40 | -------------------------------------------------------------------------------- /quadcopter_gazebo/models/ground_plane_residential/model.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Ground Plane 5 | 1.0 6 | model-1_2.sdf 7 | model-1_3.sdf 8 | model-1_4.sdf 9 | model.sdf 10 | 11 | 12 | Nate Koenig 13 | nate@osrfoundation.org 14 | 15 | 16 | 17 | A simple ground plane. 18 | 19 | 20 | -------------------------------------------------------------------------------- /quadcopter_gazebo/models/ground_plane_residential/model.sdf: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | true 5 | 6 | 7 | 8 | 9 | 0 0 1 10 | 100 100 11 | 12 | 13 | 14 | 15 | 16 | 100 17 | 50 18 | 19 | 20 | 21 | 22 | 23 | false 24 | 25 | 26 | 0 0 1 27 | 100 100 28 | 29 | 30 | 31 | 35 | 36 | 37 | 38 | 39 | 40 | -------------------------------------------------------------------------------- /quadcopter_gazebo/models/iris/iris.sdf: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 0 0 0 0 0 0 6 | 7 | 0 0 0 0 0 0 8 | 1.5 9 | 10 | 0.029125 11 | 0 12 | 0 13 | 0.029125 14 | 0 15 | 0.055225 16 | 17 | 18 | 19 | 0 0 0 0 0 0 20 | 21 | 22 | 0.47 0.47 0.11 23 | 24 | 25 | 26 | 27 | 28 | 0.001 29 | 0 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 0 0 0 0 0 0 39 | 40 | 41 | 1 1 1 42 | model://iris/meshes/iris.stl 43 | 44 | 45 | 46 | 50 | 51 | 52 | 1 53 | 54 | 55 | 56 | 0 0 0 0 0 0 57 | 58 | 0 0 0 0 0 0 59 | 0.015 60 | 61 | 1e-05 62 | 0 63 | 0 64 | 1e-05 65 | 0 66 | 1e-05 67 | 68 | 69 | 70 | 71 | /imu_link 72 | base_link 73 | 74 | 1 0 0 75 | 76 | 0 77 | 0 78 | 0 79 | 0 80 | 81 | 82 | 0 83 | 0 84 | 85 | 1 86 | 87 | 88 | 89 | 0.13 -0.22 0.023 0 0 0 90 | 91 | 0 0 0 0 0 0 92 | 0.005 93 | 94 | 9.75e-07 95 | 0 96 | 0 97 | 0.000273104 98 | 0 99 | 0.000274004 100 | 101 | 102 | 103 | 0 0 0 0 0 0 104 | 105 | 106 | 0.005 107 | 0.128 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 0 0 0 0 0 0 121 | 122 | 123 | 1 1 1 124 | model://iris/meshes/iris_prop_ccw.dae 125 | 126 | 127 | 128 | 132 | 133 | 134 | 1 135 | 136 | 137 | 138 | rotor_0 139 | base_link 140 | 141 | 0 0 1 142 | 143 | -1e+16 144 | 1e+16 145 | 146 | 147 | 0 148 | 0 149 | 150 | 1 151 | 152 | 153 | 154 | -0.13 0.2 0.023 0 0 0 155 | 156 | 0 0 0 0 0 0 157 | 0.005 158 | 159 | 9.75e-07 160 | 0 161 | 0 162 | 0.000273104 163 | 0 164 | 0.000274004 165 | 166 | 167 | 168 | 0 0 0 0 0 0 169 | 170 | 171 | 0.005 172 | 0.128 173 | 174 | 175 | 176 | 177 | 178 | 179 | 180 | 181 | 182 | 183 | 184 | 185 | 0 0 0 0 0 0 186 | 187 | 188 | 1 1 1 189 | model://iris/meshes/iris_prop_ccw.dae 190 | 191 | 192 | 193 | 197 | 198 | 199 | 1 200 | 201 | 202 | 203 | rotor_1 204 | base_link 205 | 206 | 0 0 1 207 | 208 | -1e+16 209 | 1e+16 210 | 211 | 212 | 0 213 | 0 214 | 215 | 1 216 | 217 | 218 | 219 | 0.13 0.22 0.023 0 0 0 220 | 221 | 0 0 0 0 0 0 222 | 0.005 223 | 224 | 9.75e-07 225 | 0 226 | 0 227 | 0.000273104 228 | 0 229 | 0.000274004 230 | 231 | 232 | 233 | 0 0 0 0 0 0 234 | 235 | 236 | 0.005 237 | 0.128 238 | 239 | 240 | 241 | 242 | 243 | 244 | 245 | 246 | 247 | 248 | 249 | 250 | 0 0 0 0 0 0 251 | 252 | 253 | 1 1 1 254 | model://iris/meshes/iris_prop_cw.dae 255 | 256 | 257 | 258 | 262 | 263 | 264 | 1 265 | 266 | 267 | 268 | rotor_2 269 | base_link 270 | 271 | 0 0 1 272 | 273 | -1e+16 274 | 1e+16 275 | 276 | 277 | 0 278 | 0 279 | 280 | 1 281 | 282 | 283 | 284 | -0.13 -0.2 0.023 0 0 0 285 | 286 | 0 0 0 0 0 0 287 | 0.005 288 | 289 | 9.75e-07 290 | 0 291 | 0 292 | 0.000273104 293 | 0 294 | 0.000274004 295 | 296 | 297 | 298 | 0 0 0 0 0 0 299 | 300 | 301 | 0.005 302 | 0.128 303 | 304 | 305 | 306 | 307 | 308 | 309 | 310 | 311 | 312 | 313 | 314 | 315 | 0 0 0 0 0 0 316 | 317 | 318 | 1 1 1 319 | model://iris/meshes/iris_prop_cw.dae 320 | 321 | 322 | 323 | 327 | 328 | 329 | 1 330 | 331 | 332 | 333 | rotor_3 334 | base_link 335 | 336 | 0 0 1 337 | 338 | -1e+16 339 | 1e+16 340 | 341 | 342 | 0 343 | 0 344 | 345 | 1 346 | 347 | 348 | 349 | 350 | base_link 351 | 10 352 | 353 | 354 | 355 | rotor_0_joint 356 | rotor_0 357 | ccw 358 | 0.0125 359 | 0.025 360 | 1100 361 | 5.84e-06 362 | 0.06 363 | /gazebo/command/motor_speed 364 | 0 365 | 0.000175 366 | 1e-06 367 | /motor_speed/0 368 | 10 369 | 370 | 371 | 372 | rotor_1_joint 373 | rotor_1 374 | ccw 375 | 0.0125 376 | 0.025 377 | 1100 378 | 5.84e-06 379 | 0.06 380 | /gazebo/command/motor_speed 381 | 1 382 | 0.000175 383 | 1e-06 384 | /motor_speed/1 385 | 10 386 | 387 | 388 | 389 | rotor_2_joint 390 | rotor_2 391 | cw 392 | 0.0125 393 | 0.025 394 | 1100 395 | 5.84e-06 396 | 0.06 397 | /gazebo/command/motor_speed 398 | 2 399 | 0.000175 400 | 1e-06 401 | /motor_speed/2 402 | 10 403 | 404 | 405 | 406 | rotor_3_joint 407 | rotor_3 408 | cw 409 | 0.0125 410 | 0.025 411 | 1100 412 | 5.84e-06 413 | 0.06 414 | /gazebo/command/motor_speed 415 | 3 416 | 0.000175 417 | 1e-06 418 | /motor_speed/3 419 | 10 420 | 421 | 422 | model://gps 423 | 0.1 0 0 0 0 0 424 | gps0 425 | 426 | 427 | gps0::link 428 | base_link 429 | 430 | 431 | 432 | 433 | 434 | 435 | 100 436 | 0.0004 437 | 6.4e-06 438 | 600 439 | /mag 440 | 441 | 442 | 443 | 50 444 | /baro 445 | 0 446 | 447 | 448 | 449 | /imu 450 | /mag 451 | /baro 452 | INADDR_ANY 453 | 4560 454 | 14560 455 | 0 456 | /dev/ttyACM0 457 | 921600 458 | INADDR_ANY 459 | 14550 460 | INADDR_ANY 461 | 14540 462 | 0 463 | 0 464 | 0 465 | 1 466 | 1 467 | 1 468 | /gazebo/command/motor_speed 469 | 470 | 471 | 0 472 | 0 473 | 1000 474 | 0 475 | 100 476 | velocity 477 | 478 | 479 | 1 480 | 0 481 | 1000 482 | 0 483 | 100 484 | velocity 485 | 486 | 487 | 2 488 | 0 489 | 1000 490 | 0 491 | 100 492 | velocity 493 | 494 | 495 | 3 496 | 0 497 | 1000 498 | 0 499 | 100 500 | velocity 501 | 502 | 503 | 4 504 | 1 505 | 324.6 506 | 0 507 | 0 508 | velocity 509 | 510 |

0.1

511 | 0 512 | 0 513 | 0.0 514 | 0.0 515 | 2 516 | -2 517 |
518 | zephyr_delta_wing::propeller_joint 519 |
520 | 521 | 5 522 | 0 523 | 0.524 524 | 0 525 | 0 526 | position 527 | zephyr_delta_wing::flap_left_joint 528 | 529 |

10.0

530 | 0 531 | 0 532 | 0 533 | 0 534 | 20 535 | -20 536 |
537 |
538 | 539 | 6 540 | 0 541 | 0.524 542 | 0 543 | 0 544 | position 545 | zephyr_delta_wing::flap_right_joint 546 | 547 |

10.0

548 | 0 549 | 0 550 | 0 551 | 0 552 | 20 553 | -20 554 |
555 |
556 | 557 | 7 558 | 0 559 | 0.524 560 | 0 561 | 0 562 | position 563 | 564 |
565 |
566 | 0 567 | 568 | 569 | /imu_link 570 | /imu 571 | 0.00018665 572 | 3.8785e-05 573 | 1000.0 574 | 0.0087 575 | 0.00186 576 | 0.006 577 | 300.0 578 | 0.196 579 | 580 |
581 |
-------------------------------------------------------------------------------- /quadcopter_gazebo/models/iris/iris.sdf.jinja: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 0 0 0 0 0 0 6 | 7 | 0 0 0 0 0 0 8 | 1.5 9 | 10 | 0.029125 11 | 0 12 | 0 13 | 0.029125 14 | 0 15 | 0.055225 16 | 17 | 18 | 19 | 0 0 0 0 0 0 20 | 21 | 22 | 0.47 0.47 0.11 23 | 24 | 25 | 26 | 27 | 28 | 0.001 29 | 0 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 0 0 0 0 0 0 39 | 40 | 41 | 1 1 1 42 | model://iris/meshes/iris.stl 43 | 44 | 45 | 46 | 50 | 51 | 52 | 1 53 | 54 | 55 | 56 | 0 0 0 0 0 0 57 | 58 | 0 0 0 0 0 0 59 | 0.015 60 | 61 | 1e-05 62 | 0 63 | 0 64 | 1e-05 65 | 0 66 | 1e-05 67 | 68 | 69 | 70 | 71 | /imu_link 72 | base_link 73 | 74 | 1 0 0 75 | 76 | 0 77 | 0 78 | 0 79 | 0 80 | 81 | 82 | 0 83 | 0 84 | 85 | 1 86 | 87 | 88 | 89 | 0.13 -0.22 0.023 0 0 0 90 | 91 | 0 0 0 0 0 0 92 | 0.005 93 | 94 | 9.75e-07 95 | 0 96 | 0 97 | 0.000273104 98 | 0 99 | 0.000274004 100 | 101 | 102 | 103 | 0 0 0 0 0 0 104 | 105 | 106 | 0.005 107 | 0.128 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 0 0 0 0 0 0 121 | 122 | 123 | 1 1 1 124 | model://iris/meshes/iris_prop_ccw.dae 125 | 126 | 127 | 128 | 132 | 133 | 134 | 1 135 | 136 | 137 | 138 | rotor_0 139 | base_link 140 | 141 | 0 0 1 142 | 143 | -1e+16 144 | 1e+16 145 | 146 | 147 | 0 148 | 0 149 | 150 | 1 151 | 152 | 153 | 154 | -0.13 0.2 0.023 0 0 0 155 | 156 | 0 0 0 0 0 0 157 | 0.005 158 | 159 | 9.75e-07 160 | 0 161 | 0 162 | 0.000273104 163 | 0 164 | 0.000274004 165 | 166 | 167 | 168 | 0 0 0 0 0 0 169 | 170 | 171 | 0.005 172 | 0.128 173 | 174 | 175 | 176 | 177 | 178 | 179 | 180 | 181 | 182 | 183 | 184 | 185 | 0 0 0 0 0 0 186 | 187 | 188 | 1 1 1 189 | model://iris/meshes/iris_prop_ccw.dae 190 | 191 | 192 | 193 | 197 | 198 | 199 | 1 200 | 201 | 202 | 203 | rotor_1 204 | base_link 205 | 206 | 0 0 1 207 | 208 | -1e+16 209 | 1e+16 210 | 211 | 212 | 0 213 | 0 214 | 215 | 1 216 | 217 | 218 | 219 | 0.13 0.22 0.023 0 0 0 220 | 221 | 0 0 0 0 0 0 222 | 0.005 223 | 224 | 9.75e-07 225 | 0 226 | 0 227 | 0.000273104 228 | 0 229 | 0.000274004 230 | 231 | 232 | 233 | 0 0 0 0 0 0 234 | 235 | 236 | 0.005 237 | 0.128 238 | 239 | 240 | 241 | 242 | 243 | 244 | 245 | 246 | 247 | 248 | 249 | 250 | 0 0 0 0 0 0 251 | 252 | 253 | 1 1 1 254 | model://iris/meshes/iris_prop_cw.dae 255 | 256 | 257 | 258 | 262 | 263 | 264 | 1 265 | 266 | 267 | 268 | rotor_2 269 | base_link 270 | 271 | 0 0 1 272 | 273 | -1e+16 274 | 1e+16 275 | 276 | 277 | 0 278 | 0 279 | 280 | 1 281 | 282 | 283 | 284 | -0.13 -0.2 0.023 0 0 0 285 | 286 | 0 0 0 0 0 0 287 | 0.005 288 | 289 | 9.75e-07 290 | 0 291 | 0 292 | 0.000273104 293 | 0 294 | 0.000274004 295 | 296 | 297 | 298 | 0 0 0 0 0 0 299 | 300 | 301 | 0.005 302 | 0.128 303 | 304 | 305 | 306 | 307 | 308 | 309 | 310 | 311 | 312 | 313 | 314 | 315 | 0 0 0 0 0 0 316 | 317 | 318 | 1 1 1 319 | model://iris/meshes/iris_prop_cw.dae 320 | 321 | 322 | 323 | 327 | 328 | 329 | 1 330 | 331 | 332 | 333 | rotor_3 334 | base_link 335 | 336 | 0 0 1 337 | 338 | -1e+16 339 | 1e+16 340 | 341 | 342 | 0 343 | 0 344 | 345 | 1 346 | 347 | 348 | 349 | 350 | base_link 351 | 10 352 | 353 | 354 | 355 | rotor_0_joint 356 | rotor_0 357 | ccw 358 | 0.0125 359 | 0.025 360 | 1100 361 | 5.84e-06 362 | 0.06 363 | /gazebo/command/motor_speed 364 | 0 365 | 0.000175 366 | 1e-06 367 | /motor_speed/0 368 | 10 369 | 370 | 371 | 372 | rotor_1_joint 373 | rotor_1 374 | ccw 375 | 0.0125 376 | 0.025 377 | 1100 378 | 5.84e-06 379 | 0.06 380 | /gazebo/command/motor_speed 381 | 1 382 | 0.000175 383 | 1e-06 384 | /motor_speed/1 385 | 10 386 | 387 | 388 | 389 | rotor_2_joint 390 | rotor_2 391 | cw 392 | 0.0125 393 | 0.025 394 | 1100 395 | 5.84e-06 396 | 0.06 397 | /gazebo/command/motor_speed 398 | 2 399 | 0.000175 400 | 1e-06 401 | /motor_speed/2 402 | 10 403 | 404 | 405 | 406 | rotor_3_joint 407 | rotor_3 408 | cw 409 | 0.0125 410 | 0.025 411 | 1100 412 | 5.84e-06 413 | 0.06 414 | /gazebo/command/motor_speed 415 | 3 416 | 0.000175 417 | 1e-06 418 | /motor_speed/3 419 | 10 420 | 421 | 422 | model://gps 423 | 0.1 0 0 0 0 0 424 | gps0 425 | 426 | 427 | gps0::link 428 | base_link 429 | 430 | 431 | 432 | 433 | 434 | 435 | 100 436 | 0.0004 437 | 6.4e-06 438 | 600 439 | /mag 440 | 441 | 442 | 443 | 50 444 | /baro 445 | 0 446 | 447 | 448 | 449 | /imu 450 | /mag 451 | /baro 452 | INADDR_ANY 453 | {{ mavlink_tcp_port }} 454 | {{ mavlink_udp_port }} 455 | {{ serial_enabled }} 456 | {{ serial_device }} 457 | {{ serial_baudrate }} 458 | INADDR_ANY 459 | 14550 460 | INADDR_ANY 461 | 14540 462 | {{ hil_mode }} 463 | 0 464 | 0 465 | 1 466 | 1 467 | 1 468 | /gazebo/command/motor_speed 469 | 470 | 471 | 0 472 | 0 473 | 1000 474 | 0 475 | 100 476 | velocity 477 | 478 | 479 | 1 480 | 0 481 | 1000 482 | 0 483 | 100 484 | velocity 485 | 486 | 487 | 2 488 | 0 489 | 1000 490 | 0 491 | 100 492 | velocity 493 | 494 | 495 | 3 496 | 0 497 | 1000 498 | 0 499 | 100 500 | velocity 501 | 502 | 503 | 4 504 | 1 505 | 324.6 506 | 0 507 | 0 508 | velocity 509 | 510 |

0.1

511 | 0 512 | 0 513 | 0.0 514 | 0.0 515 | 2 516 | -2 517 |
518 | zephyr_delta_wing::propeller_joint 519 |
520 | 521 | 5 522 | 0 523 | 0.524 524 | 0 525 | 0 526 | position 527 | zephyr_delta_wing::flap_left_joint 528 | 529 |

10.0

530 | 0 531 | 0 532 | 0 533 | 0 534 | 20 535 | -20 536 |
537 |
538 | 539 | 6 540 | 0 541 | 0.524 542 | 0 543 | 0 544 | position 545 | zephyr_delta_wing::flap_right_joint 546 | 547 |

10.0

548 | 0 549 | 0 550 | 0 551 | 0 552 | 20 553 | -20 554 |
555 |
556 | 557 | 7 558 | 0 559 | 0.524 560 | 0 561 | 0 562 | position 563 | 564 |
565 |
566 | 0 567 | 568 | 569 | /imu_link 570 | /imu 571 | 0.00018665 572 | 3.8785e-05 573 | 1000.0 574 | 0.0087 575 | 0.00186 576 | 0.006 577 | 300.0 578 | 0.196 579 | 580 |
581 |
582 | -------------------------------------------------------------------------------- /quadcopter_gazebo/models/iris/iris.sdf.last_generated: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 0 0 0 0 0 0 6 | 7 | 0 0 0 0 0 0 8 | 1.5 9 | 10 | 0.029125 11 | 0 12 | 0 13 | 0.029125 14 | 0 15 | 0.055225 16 | 17 | 18 | 19 | 0 0 0 0 0 0 20 | 21 | 22 | 0.47 0.47 0.11 23 | 24 | 25 | 26 | 27 | 28 | 0.001 29 | 0 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 0 0 0 0 0 0 39 | 40 | 41 | 1 1 1 42 | model://iris/meshes/iris.stl 43 | 44 | 45 | 46 | 50 | 51 | 52 | 1 53 | 54 | 55 | 56 | 0 0 0 0 0 0 57 | 58 | 0 0 0 0 0 0 59 | 0.015 60 | 61 | 1e-05 62 | 0 63 | 0 64 | 1e-05 65 | 0 66 | 1e-05 67 | 68 | 69 | 70 | 71 | /imu_link 72 | base_link 73 | 74 | 1 0 0 75 | 76 | 0 77 | 0 78 | 0 79 | 0 80 | 81 | 82 | 0 83 | 0 84 | 85 | 1 86 | 87 | 88 | 89 | 0.13 -0.22 0.023 0 0 0 90 | 91 | 0 0 0 0 0 0 92 | 0.005 93 | 94 | 9.75e-07 95 | 0 96 | 0 97 | 0.000273104 98 | 0 99 | 0.000274004 100 | 101 | 102 | 103 | 0 0 0 0 0 0 104 | 105 | 106 | 0.005 107 | 0.128 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 0 0 0 0 0 0 121 | 122 | 123 | 1 1 1 124 | model://iris/meshes/iris_prop_ccw.dae 125 | 126 | 127 | 128 | 132 | 133 | 134 | 1 135 | 136 | 137 | 138 | rotor_0 139 | base_link 140 | 141 | 0 0 1 142 | 143 | -1e+16 144 | 1e+16 145 | 146 | 147 | 0 148 | 0 149 | 150 | 1 151 | 152 | 153 | 154 | -0.13 0.2 0.023 0 0 0 155 | 156 | 0 0 0 0 0 0 157 | 0.005 158 | 159 | 9.75e-07 160 | 0 161 | 0 162 | 0.000273104 163 | 0 164 | 0.000274004 165 | 166 | 167 | 168 | 0 0 0 0 0 0 169 | 170 | 171 | 0.005 172 | 0.128 173 | 174 | 175 | 176 | 177 | 178 | 179 | 180 | 181 | 182 | 183 | 184 | 185 | 0 0 0 0 0 0 186 | 187 | 188 | 1 1 1 189 | model://iris/meshes/iris_prop_ccw.dae 190 | 191 | 192 | 193 | 197 | 198 | 199 | 1 200 | 201 | 202 | 203 | rotor_1 204 | base_link 205 | 206 | 0 0 1 207 | 208 | -1e+16 209 | 1e+16 210 | 211 | 212 | 0 213 | 0 214 | 215 | 1 216 | 217 | 218 | 219 | 0.13 0.22 0.023 0 0 0 220 | 221 | 0 0 0 0 0 0 222 | 0.005 223 | 224 | 9.75e-07 225 | 0 226 | 0 227 | 0.000273104 228 | 0 229 | 0.000274004 230 | 231 | 232 | 233 | 0 0 0 0 0 0 234 | 235 | 236 | 0.005 237 | 0.128 238 | 239 | 240 | 241 | 242 | 243 | 244 | 245 | 246 | 247 | 248 | 249 | 250 | 0 0 0 0 0 0 251 | 252 | 253 | 1 1 1 254 | model://iris/meshes/iris_prop_cw.dae 255 | 256 | 257 | 258 | 262 | 263 | 264 | 1 265 | 266 | 267 | 268 | rotor_2 269 | base_link 270 | 271 | 0 0 1 272 | 273 | -1e+16 274 | 1e+16 275 | 276 | 277 | 0 278 | 0 279 | 280 | 1 281 | 282 | 283 | 284 | -0.13 -0.2 0.023 0 0 0 285 | 286 | 0 0 0 0 0 0 287 | 0.005 288 | 289 | 9.75e-07 290 | 0 291 | 0 292 | 0.000273104 293 | 0 294 | 0.000274004 295 | 296 | 297 | 298 | 0 0 0 0 0 0 299 | 300 | 301 | 0.005 302 | 0.128 303 | 304 | 305 | 306 | 307 | 308 | 309 | 310 | 311 | 312 | 313 | 314 | 315 | 0 0 0 0 0 0 316 | 317 | 318 | 1 1 1 319 | model://iris/meshes/iris_prop_cw.dae 320 | 321 | 322 | 323 | 327 | 328 | 329 | 1 330 | 331 | 332 | 333 | rotor_3 334 | base_link 335 | 336 | 0 0 1 337 | 338 | -1e+16 339 | 1e+16 340 | 341 | 342 | 0 343 | 0 344 | 345 | 1 346 | 347 | 348 | 349 | 350 | base_link 351 | 10 352 | 353 | 354 | 355 | rotor_0_joint 356 | rotor_0 357 | ccw 358 | 0.0125 359 | 0.025 360 | 1100 361 | 5.84e-06 362 | 0.06 363 | /gazebo/command/motor_speed 364 | 0 365 | 0.000175 366 | 1e-06 367 | /motor_speed/0 368 | 10 369 | 370 | 371 | 372 | rotor_1_joint 373 | rotor_1 374 | ccw 375 | 0.0125 376 | 0.025 377 | 1100 378 | 5.84e-06 379 | 0.06 380 | /gazebo/command/motor_speed 381 | 1 382 | 0.000175 383 | 1e-06 384 | /motor_speed/1 385 | 10 386 | 387 | 388 | 389 | rotor_2_joint 390 | rotor_2 391 | cw 392 | 0.0125 393 | 0.025 394 | 1100 395 | 5.84e-06 396 | 0.06 397 | /gazebo/command/motor_speed 398 | 2 399 | 0.000175 400 | 1e-06 401 | /motor_speed/2 402 | 10 403 | 404 | 405 | 406 | rotor_3_joint 407 | rotor_3 408 | cw 409 | 0.0125 410 | 0.025 411 | 1100 412 | 5.84e-06 413 | 0.06 414 | /gazebo/command/motor_speed 415 | 3 416 | 0.000175 417 | 1e-06 418 | /motor_speed/3 419 | 10 420 | 421 | 422 | model://gps 423 | 0.1 0 0 0 0 0 424 | gps0 425 | 426 | 427 | gps0::link 428 | base_link 429 | 430 | 431 | 432 | 433 | 434 | 435 | 100 436 | 0.0004 437 | 6.4e-06 438 | 600 439 | /mag 440 | 441 | 442 | 443 | 50 444 | /baro 445 | 0 446 | 447 | 448 | 449 | /imu 450 | /mag 451 | /baro 452 | INADDR_ANY 453 | 4560 454 | 14560 455 | 0 456 | /dev/ttyACM0 457 | 921600 458 | INADDR_ANY 459 | 14550 460 | INADDR_ANY 461 | 14540 462 | 0 463 | 0 464 | 0 465 | 1 466 | 1 467 | 1 468 | /gazebo/command/motor_speed 469 | 470 | 471 | 0 472 | 0 473 | 1000 474 | 0 475 | 100 476 | velocity 477 | 478 | 479 | 1 480 | 0 481 | 1000 482 | 0 483 | 100 484 | velocity 485 | 486 | 487 | 2 488 | 0 489 | 1000 490 | 0 491 | 100 492 | velocity 493 | 494 | 495 | 3 496 | 0 497 | 1000 498 | 0 499 | 100 500 | velocity 501 | 502 | 503 | 4 504 | 1 505 | 324.6 506 | 0 507 | 0 508 | velocity 509 | 510 |

0.1

511 | 0 512 | 0 513 | 0.0 514 | 0.0 515 | 2 516 | -2 517 |
518 | zephyr_delta_wing::propeller_joint 519 |
520 | 521 | 5 522 | 0 523 | 0.524 524 | 0 525 | 0 526 | position 527 | zephyr_delta_wing::flap_left_joint 528 | 529 |

10.0

530 | 0 531 | 0 532 | 0 533 | 0 534 | 20 535 | -20 536 |
537 |
538 | 539 | 6 540 | 0 541 | 0.524 542 | 0 543 | 0 544 | position 545 | zephyr_delta_wing::flap_right_joint 546 | 547 |

10.0

548 | 0 549 | 0 550 | 0 551 | 0 552 | 20 553 | -20 554 |
555 |
556 | 557 | 7 558 | 0 559 | 0.524 560 | 0 561 | 0 562 | position 563 | 564 |
565 |
566 | 0 567 | 568 | 569 | /imu_link 570 | /imu 571 | 0.00018665 572 | 3.8785e-05 573 | 1000.0 574 | 0.0087 575 | 0.00186 576 | 0.006 577 | 300.0 578 | 0.196 579 | 580 |
581 |
-------------------------------------------------------------------------------- /quadcopter_gazebo/models/iris/meshes/iris.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IvLabs/grid_motion_planning/5868ba527146f06ccadce3e5bfc491a72100fb45/quadcopter_gazebo/models/iris/meshes/iris.stl -------------------------------------------------------------------------------- /quadcopter_gazebo/models/iris/model.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 3DR Iris 4 | 1.0 5 | iris.sdf 6 | 7 | 8 | Lorenz Meier and Thomas Gubler 9 | lorenz@px4.io 10 | 11 | 12 | 13 | This is a model of the 3DR Iris Quadrotor. The original model has been created by 14 | Thomas Gubler and is maintained by Lorenz Meier. 15 | 16 | 17 | -------------------------------------------------------------------------------- /quadcopter_gazebo/models/iris_depth_camera/iris_depth_camera.sdf: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | model://iris 6 | 7 | 8 | 9 | model://depth_camera 10 | 0.1 0 0 0 0 0 11 | 12 | 13 | 14 | 0 0 0 0 0 0 15 | 0.01 16 | 17 | 4.15e-6 18 | 0 19 | 0 20 | 2.407e-6 21 | 0 22 | 2.407e-6 23 | 24 | 25 | 26 | 27 | 28 | 29 | depth_camera::link 30 | iris::base_link 31 | 32 | 0 0 1 33 | 34 | 0 35 | 0 36 | 37 | 38 | 39 | 40 | camera_optical_link 41 | depth_camera::link 42 | 0 0 0 -1.5708 0 -1.5708 43 | 44 | 0 0 1 45 | 46 | 0 47 | 0 48 | 49 | 50 | 51 | 52 | 53 | 0 0 0.09 0 0 0 54 | 55 | 56 | 0.19 57 | 58 | 4.15e-6 59 | 0 60 | 0 61 | 2.407e-6 62 | 0 63 | 2.407e-6 64 | 65 | 66 | 67 | 68 | 69 | 70 | 0.02 0.05 0.05 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 360 80 | 1 81 | -1.57 82 | 1.57 83 | 84 | 85 | 86 | 0.2 87 | 6 88 | 0.05 89 | 90 | 91 | 92 | 93 | 94 | laser/scan 95 | lidar_link 96 | 97 | 1 98 | 5.5 99 | true 100 | 101 | 102 | 103 | 104 | 105 | lidar_link 106 | iris::base_link 107 | 108 | 109 | 0 0 1 110 | 111 | 0 112 | 0 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | -------------------------------------------------------------------------------- /quadcopter_gazebo/models/iris_depth_camera/model.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 3DR Iris with depth camera 4 | 1.0 5 | iris_depth_camera.sdf 6 | 7 | 8 | Lorenz Meier and Thomas Gubler 9 | lorenz@px4.io 10 | 11 | 12 | 13 | This is a model of the 3DR Iris Quadrotor with a single forward facing depth camera. 14 | The original model has been created by Thomas Gubler and is maintained by Lorenz Meier. 15 | 16 | 17 | -------------------------------------------------------------------------------- /quadcopter_gazebo/models/occupancy_grid/model.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | Occupancy Grid 4 | 1.0 5 | occupancy_grid.sdf 6 | 7 | 8 | Fadri Furrer 9 | ffurrer@gmail.com 10 | 11 | 12 | 13 | A simple world with some obstacles used for the EuRoC octomap challenge. 14 | 15 | 16 | -------------------------------------------------------------------------------- /quadcopter_gazebo/models/occupancy_grid/occupancy_grid.sdf: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 22 22 0.2 9 | 10 | 11 | 0 0 0.1 0 0 0 12 | 13 | 14 | 0 0 0.1 0 0 0 15 | 16 | 17 | 22 22 0.2 18 | 19 | 20 | 21 | 25 | 26 | 27 | 28 | 0 29 | 0 30 | 31 | 0 0 3.5 0 0 0 32 | 33 | 34 | 35 | 36 | 37 | 22 22 0.2 38 | 39 | 40 | 0 0 0.1 0 0 0 41 | 42 | 43 | 0 0 0.1 0 0 0 44 | 45 | 46 | 22 22 0.2 47 | 48 | 49 | 50 | 54 | 55 | 56 | 57 | 0 58 | 0 59 | 60 | 0 0 -0.2 0 0 0 61 | 62 | 63 | 64 | 65 | 66 | 20 1 3.5 67 | 68 | 69 | 0 0 1.75 0 0 0 70 | 71 | 72 | 0 0 1.75 0 0 0 73 | 74 | 75 | 20 1 3.5 76 | 77 | 78 | 79 | 83 | 84 | 85 | 86 | 0 87 | 0 88 | 89 | -10.5 0 0 0 0 -1.5708 90 | 91 | 92 | 93 | 94 | 95 | 22 1 3.5 96 | 97 | 98 | 0 0 1.75 0 0 0 99 | 100 | 101 | 0 0 1.75 0 0 0 102 | 103 | 104 | 22 1 3.5 105 | 106 | 107 | 108 | 112 | 113 | 114 | 115 | 0 116 | 0 117 | 118 | 0 -10.5 0 0 0 0 119 | 120 | 121 | 122 | 123 | 124 | 20 1 3.5 125 | 126 | 127 | 0 0 1.75 0 0 0 128 | 129 | 130 | 0 0 1.75 0 0 0 131 | 132 | 133 | 20 1 3.5 134 | 135 | 136 | 137 | 141 | 142 | 143 | 144 | 0 145 | 0 146 | 147 | 10.5 0 0 0 0 1.5708 148 | 149 | 150 | 151 | 152 | 153 | 22 1 3.5 154 | 155 | 156 | 0 0 1.75 0 0 0 157 | 158 | 159 | 0 0 1.75 0 0 0 160 | 161 | 162 | 22 1 3.5 163 | 164 | 165 | 166 | 170 | 171 | 172 | 173 | 0 174 | 0 175 | 176 | 0 10.5 0 0 0 0 177 | 178 | 179 | 180 | 181 | 182 | 0.2 20 2 183 | 184 | 185 | 0 0 1 0 0 0 186 | 187 | 188 | 0 0 1 0 0 0 189 | 190 | 191 | 0.2 20 2 192 | 193 | 194 | 195 | 199 | 200 | 201 | 202 | 0 203 | 0 204 | 205 | 2 0 0 0 0 0 206 | 207 | 208 | 209 | 210 | 211 | 0.2 3 3.5 212 | 213 | 214 | 0 0 1.75 0 0 0 215 | 216 | 217 | 0 0 1.75 0 0 0 218 | 219 | 220 | 0.2 3 3.5 221 | 222 | 223 | 224 | 228 | 229 | 230 | 231 | 0 232 | 0 233 | 234 | -2 1 0 0 0 1 235 | 236 | 237 | 238 | 239 | 240 | 0.2 4 3.5 241 | 242 | 243 | 0 0 1.75 0 0 0 244 | 245 | 246 | 0 0 1.75 0 0 0 247 | 248 | 249 | 0.2 4 3.5 250 | 251 | 252 | 253 | 257 | 258 | 259 | 260 | 0 261 | 0 262 | 263 | -4 -3 0 0 0 0 264 | 265 | 266 | 267 | 268 | 269 | 0.2 6 3.5 270 | 271 | 272 | 0 0 1.75 0 0 0 273 | 274 | 275 | 0 0 1.75 0 0 0 276 | 277 | 278 | 0.2 6 3.5 279 | 280 | 281 | 282 | 286 | 287 | 288 | 289 | 0 290 | 0 291 | 292 | -3 3 0 0 0 1.57 293 | 294 | 295 | 296 | 297 | 298 | 0.2 4 3.5 299 | 300 | 301 | 0 0 1.75 0 0 0 302 | 303 | 304 | 0 0 1.75 0 0 0 305 | 306 | 307 | 0.2 4 3.5 308 | 309 | 310 | 311 | 315 | 316 | 317 | 318 | 0 319 | 0 320 | 321 | -1 -2 0 0 0 0 322 | 323 | 1 324 | 325 | 326 | -------------------------------------------------------------------------------- /quadcopter_gazebo/models/ros_interface/model.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | ROS Interface 5 | 1.0 6 | 7 | model.sdf 8 | 9 | 10 | Geoffrey Hunter 11 | gbmhunter@gmail.com 12 | 13 | 14 | 15 | A model that purely exists to load the ROS interface plugin in Gazebo. 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /quadcopter_gazebo/models/ros_interface/model.sdf: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | true 5 | 6 | firefly 7 | 8 | 9 | -------------------------------------------------------------------------------- /quadcopter_gazebo/models/rplidar/model.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | rplidar 5 | 1.0 6 | model.sdf 7 | 8 | 9 | James Goppert 10 | jgoppert@dronecrew.com 11 | 12 | 13 | 14 | rplidar: http://www.robotshop.com/en/rplidar-360-laser-scanner.html 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /quadcopter_gazebo/models/rplidar/model.sdf: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 0 0 0 0 0 0 8 | 0.19 9 | 10 | 4.15e-6 11 | 0 12 | 0 13 | 2.407e-6 14 | 0 15 | 2.407e-6 16 | 17 | 18 | 19 | 20 | 21 | 22 | 0.02 0.05 0.05 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 360 32 | 1 33 | -3.14 34 | 3.14 35 | 36 | 37 | 38 | 0.2 39 | 6 40 | 0.05 41 | 42 | 43 | gaussian 44 | 0.0 45 | 0.01 46 | 47 | 48 | 49 | 50 | laser/scan 51 | rplidar_link 52 | 53 | 1 54 | 5.5 55 | true 56 | 57 | 58 | 59 | 60 | 61 | 62 | -------------------------------------------------------------------------------- /quadcopter_gazebo/package.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | quadcopter 4 | 0.0.0 5 | The fly_bot package 6 | 7 | 8 | 9 | 10 | jarvis 11 | 12 | 13 | 14 | 15 | 16 | TODO 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | catkin 52 | rospy 53 | std_msgs 54 | rospy 55 | std_msgs 56 | rospy 57 | std_msgs 58 | controller_manager 59 | robot_state_publisher 60 | gazebo_msgs 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | -------------------------------------------------------------------------------- /quadcopter_gazebo/src/px4_offboard.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | # ROS python API 3 | import rospy 4 | 5 | # 3D point & Stamped Pose msgs 6 | from geometry_msgs.msg import Point, PoseStamped 7 | # import all mavros messages and services 8 | from mavros_msgs.msg import * 9 | from mavros_msgs.srv import * 10 | 11 | # Flight modes class 12 | # Flight modes are activated using ROS services 13 | class flightModes: 14 | def __init__(self): 15 | pass 16 | 17 | 18 | 19 | def setArm(self): 20 | rospy.wait_for_service('mavros/cmd/arming') 21 | try: 22 | armService = rospy.ServiceProxy('mavros/cmd/arming', mavros_msgs.srv.CommandBool) 23 | armService(True) 24 | except rospy.ServiceException as e: 25 | print("Service arming call failed") 26 | 27 | def setDisarm(self): 28 | rospy.wait_for_service('mavros/cmd/arming') 29 | try: 30 | armService = rospy.ServiceProxy('mavros/cmd/arming', mavros_msgs.srv.CommandBool) 31 | armService(False) 32 | except rospy.ServiceException as e: 33 | print("Service disarming call failed") 34 | 35 | 36 | 37 | def setOffboardMode(self): 38 | rospy.wait_for_service('mavros/set_mode') 39 | try: 40 | flightModeService = rospy.ServiceProxy('mavros/set_mode', mavros_msgs.srv.SetMode) 41 | flightModeService(custom_mode='OFFBOARD') 42 | except rospy.ServiceException as e: 43 | print("service set_mode call failed. Offboard Mode could not be set.") 44 | 45 | 46 | 47 | 48 | 49 | class Controller: 50 | # initialization method 51 | def __init__(self): 52 | # Drone state 53 | self.state = State() 54 | # Instantiate a setpoints message 55 | self.sp = PositionTarget() 56 | # set the flag to use position setpoints and yaw angle 57 | self.sp.type_mask = int('000111111000', 2) 58 | # LOCAL_NED 59 | self.sp.coordinate_frame = 1 60 | 61 | # We will fly at a fixed altitude for now 62 | # Altitude setpoint, [meters] 63 | self.ALT_SP = 1.0 64 | # update the setpoint message with the required altitude 65 | self.sp.position.z = self.ALT_SP 66 | # Step size for position update 67 | self.STEP_SIZE = 2.0 68 | # Fence. We will assume a square fence for now 69 | self.FENCE_LIMIT = 5.0 70 | 71 | # A Message for the current local position of the drone 72 | self.local_pos = Point(0.0, 0.0, 1.0) 73 | self.curr_yaw = 0 74 | # initial values for setpoints 75 | self.sp.position.x = 0.0 76 | self.sp.position.y = 0.0 77 | self.sp.yaw = 0.0 78 | 79 | 80 | # speed of the drone is set using MPC_XY_CRUISE parameter in MAVLink 81 | # using QGroundControl. By default it is 5 m/s. 82 | 83 | # Callbacks 84 | ## local position callback 85 | def posCb(self, msg): 86 | self.local_pos.x = msg.pose.position.x 87 | self.local_pos.y = msg.pose.position.y 88 | self.local_pos.z = msg.pose.position.z 89 | self.curr_yaw = msg.pose.orientation.z 90 | 91 | ## Drone State callback 92 | def stateCb(self, msg): 93 | self.state = msg 94 | 95 | 96 | 97 | 98 | -------------------------------------------------------------------------------- /quadcopter_gazebo/src/teleop.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | from px4_offboard import flightModes, Controller 3 | import rospy 4 | from geometry_msgs.msg import Twist 5 | # 3D point & Stamped Pose msgs 6 | from geometry_msgs.msg import Point, PoseStamped 7 | # import all mavros messages and services 8 | from mavros_msgs.msg import * 9 | from mavros_msgs.srv import * 10 | 11 | import numpy as np 12 | import sys, select, os 13 | if os.name == 'nt': 14 | import msvcrt 15 | else: 16 | import tty, termios 17 | 18 | 19 | def getKey(): 20 | if os.name == 'nt': 21 | if sys.version_info[0] >= 3: 22 | return msvcrt.getch().decode() 23 | else: 24 | return msvcrt.getch() 25 | 26 | tty.setraw(sys.stdin.fileno()) 27 | rlist, _, _ = select.select([sys.stdin], [], [], 0.1) 28 | if rlist: 29 | key = sys.stdin.read(1) 30 | else: 31 | key = '' 32 | 33 | termios.tcsetattr(sys.stdin, termios.TCSADRAIN, settings) 34 | return key 35 | 36 | 37 | def main(): 38 | 39 | # initiate node 40 | rospy.init_node('px4_teleop', anonymous=True) 41 | 42 | # flight mode object 43 | modes = flightModes() 44 | 45 | # controller object 46 | control = Controller() 47 | 48 | # ROS loop rate 49 | rate = rospy.Rate(20.0) 50 | 51 | # Subscribe to drone state 52 | rospy.Subscriber('mavros/state', State, control.stateCb) 53 | 54 | # Subscribe to drone's local position 55 | rospy.Subscriber('mavros/local_position/pose', PoseStamped, control.posCb) 56 | 57 | # Setpoint publisher 58 | sp_pub = rospy.Publisher('mavros/setpoint_raw/local', PositionTarget, queue_size=1) 59 | 60 | 61 | # Make sure the drone is armed 62 | while not control.state.armed: 63 | modes.setArm() 64 | rate.sleep() 65 | 66 | # set in takeoff mode and takeoff to default altitude (3 m) 67 | # modes.setTakeoff() 68 | # rate.sleep() 69 | 70 | # We need to send few setpoint messages, then activate OFFBOARD mode, to take effect 71 | k=0 72 | while k<10: 73 | sp_pub.publish(control.sp) 74 | rate.sleep() 75 | k = k + 1 76 | 77 | # activate OFFBOARD mode 78 | modes.setOffboardMode() 79 | if os.name != 'nt': 80 | settings = termios.tcgetattr(sys.stdin) 81 | 82 | 83 | # ROS main loop 84 | while not rospy.is_shutdown(): 85 | key = getKey() 86 | if key == 'w': 87 | control.sp.position.x = control.local_pos.x + 1 88 | control.sp.position.y = control.local_pos.y 89 | control.sp.position.z = control.local_pos.z 90 | control.sp.yaw = control.curr_yaw 91 | 92 | elif key == 's': 93 | control.sp.position.x = control.local_pos.x - 1 94 | control.sp.position.y = control.local_pos.y 95 | control.sp.position.z = control.local_pos.z 96 | control.sp.yaw = control.curr_yaw 97 | 98 | elif key == 'a': 99 | control.sp.position.x = control.local_pos.x 100 | control.sp.position.y = control.local_pos.y + 1 101 | control.sp.position.z = control.local_pos.z 102 | control.sp.yaw = control.curr_yaw 103 | 104 | elif key == 'd': 105 | control.sp.position.x = control.local_pos.x 106 | control.sp.position.y = control.local_pos.y - 1 107 | control.sp.position.z = control.local_pos.z 108 | control.sp.yaw = control.curr_yaw 109 | 110 | elif key == '8': 111 | control.sp.position.x = control.local_pos.x 112 | control.sp.position.y = control.local_pos.y 113 | control.sp.position.z = control.local_pos.z + 1 114 | control.sp.yaw = control.curr_yaw 115 | 116 | elif key == '5': 117 | control.sp.position.x = control.local_pos.x 118 | control.sp.position.y = control.local_pos.y 119 | control.sp.position.z = control.local_pos.z - 1 120 | control.sp.yaw = control.curr_yaw 121 | elif key == '4': 122 | control.sp.position.x = control.local_pos.x 123 | control.sp.position.y = control.local_pos.y 124 | control.sp.position.z = control.local_pos.z 125 | control.sp.yaw = control.curr_yaw + 0.3 126 | elif key == '6': 127 | control.sp.position.x = control.local_pos.x 128 | control.sp.position.y = control.local_pos.y 129 | control.sp.position.z = control.local_pos.z 130 | control.sp.yaw = control.curr_yaw - 0.3 131 | 132 | elif key == 'enter': 133 | control.sp.position.x = control.local_pos.x 134 | control.sp.position.y = control.local_pos.y 135 | control.sp.position.z = control.local_pos.z 136 | 137 | 138 | sp_pub.publish(control.sp) 139 | rate.sleep() 140 | 141 | if __name__ == '__main__': 142 | if os.name != 'nt': 143 | settings = termios.tcgetattr(sys.stdin) 144 | try: 145 | main() 146 | except rospy.ROSInterruptException: 147 | pass 148 | 149 | 150 | 151 | -------------------------------------------------------------------------------- /quadcopter_gazebo/worlds/D60.world: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 1 6 | 7 | 8 | 9 | 10 | 0 0 1 11 | 100 100 12 | 13 | 14 | 15 | 16 | 17 | 100 18 | 50 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 10 27 | 28 | 29 | 0 30 | 0 31 | 32 | 0 33 | 0 34 | 1 35 | 36 | 37 | 38 | 1 39 | 40 | 41 | 0 0 -0.001 0 -0 0 42 | 43 | 44 | model://D60/D60.dae 45 | 46 | 47 | 48 | 49 | 0 0 -0.001 0 -0 0 50 | 51 | 52 | model://D60/D60.dae 53 | 54 | 55 | 10 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 0 68 | 0 69 | 70 | 0 71 | 0 72 | 1 73 | 74 | 75 | 76 | 77 | 20.7846 -10.4135 44.9584 0 1.2978 1.56583 78 | orbit 79 | 80 | 81 | 82 | 0.001 83 | 1 84 | 1000 85 | 0 0 -9.8 86 | 87 | 88 | 0.4 0.4 0.4 1 89 | 0.7 0.7 0.7 1 90 | 1 91 | 92 | 93 | EARTH_WGS84 94 | 0 95 | 0 96 | 0 97 | 0 98 | 99 | 100 | 101 | -------------------------------------------------------------------------------- /quadcopter_gazebo/worlds/basic.world: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | model://ground_plane 6 | 7 | 8 | model://sun 9 | 10 | 11 | 13 | 14 | 15 | 16 | EARTH_WGS84 17 | 47.3667 18 | 8.5500 19 | 500.0 20 | 0 21 | 22 | 23 | 24 | 25 | quick 26 | 1000 27 | 1.3 28 | 29 | 30 | 0 31 | 0.2 32 | 100 33 | 0.001 34 | 35 | 36 | 0.01 37 | 1 38 | 100 39 | 0 0 -9.8 40 | 41 | 42 | 43 | -------------------------------------------------------------------------------- /quadcopter_gazebo/worlds/empty.world: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | model://sun 7 | 8 | 9 | 10 | model://ground_plane 11 | 12 | 13 | model://asphalt_plane 14 | 15 | 16 | 18 | 19 | 20 | 21 | 0 0 -9.8066 22 | 23 | 24 | quick 25 | 10 26 | 1.3 27 | 0 28 | 29 | 30 | 0 31 | 0.2 32 | 100 33 | 0.001 34 | 35 | 36 | 0.002 37 | 1 38 | 500 39 | 6e-06 2.3e-05 -4.2e-05 40 | 41 | 42 | 43 | -------------------------------------------------------------------------------- /quadcopter_gazebo/worlds/outdoor.world: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -11.660200 -5.942800 6.053900 0.000000 0.443643 0.352194 8 | 9 | 10 | 11 | 0.2 0.2 0.2 1.0 12 | false 13 | 14 | 15 | 4 16 | 17 | 18 | 19 | 20 | 22 | 23 | 24 | 25 | 26 | 27 | quick 28 | 1000 29 | 1.3 30 | 31 | 32 | 0 33 | 0.2 34 | 100 35 | 0.001 36 | 37 | 38 | 0.01 39 | 1 40 | 100 41 | 0 0 -9.8 42 | 43 | 44 | 45 | false 46 | 0 0 100 0 0 0 47 | 0.8 0.8 0.8 1 48 | 0.9 0.9 0.9 1 49 | 50 | 1000 51 | 0.9 52 | 0.01 53 | 0.001 54 | 55 | 0.2 0.2 -0.9 56 | 57 | 58 | false 59 | -14 0 5 0 0 0 60 | 0.3 0.3 0.3 1 61 | 0.0 0.0 0.0 1 62 | 63 | 80 64 | 0.9 65 | 0.01 66 | 0.001 67 | 68 | 69 | 70 | model://vrc_heightmap_1 71 | 72 | 73 | model://grass_plane 74 | 75 | 76 | model://speed_limit_sign 77 | speed_sign_1 78 | true 79 | 15 -5 0 0 0 1.5707 80 | 81 | 82 | model://speed_limit_sign 83 | speed_sign_2 84 | true 85 | 70 5 0 0 0 1.5707 86 | 87 | 88 | model://speed_limit_sign 89 | speed_sign_3 90 | true 91 | 121 13 0 0 0 2.356 92 | 93 | 94 | model://speed_limit_sign 95 | speed_sign_4 96 | true 97 | 155 68 0 0 0 3.1415 98 | 99 | 100 | model://speed_limit_sign 101 | speed_sign_5 102 | true 103 | 175 95 0 0 0 1.5707 104 | 105 | 106 | model://house_1 107 | house_1_a 108 | 12 9.5 0 0 0 0 109 | 110 | 111 | model://house_1 112 | house_1_b 113 | 129.5 46 0 0 0 1.5707 114 | 115 | 116 | model://mailbox 117 | mailbox_0 118 | true 119 | 18 4 0 0 0 0 120 | 121 | 122 | model://mailbox 123 | mailbox_1 124 | true 125 | 24.5 -4.45 0 0 0 0 126 | 127 | 128 | model://gas_station 129 | gas_station 130 | 77 15 0 0 0 -1.5707963267948966 131 | 132 | 133 | model://house_2 134 | house_2_a 135 | 30 -8 0 0 0 0 136 | 137 | 138 | model://house_2 139 | house_2_b 140 | 158 91 0 0 0 0 141 | 142 | 143 | model://house_3 144 | house_3_a 145 | 44 7 0 0 0 0 146 | 147 | 148 | model://house_3 149 | house_3_b 150 | 111 26 0 0 0 .78539 151 | 152 | 153 | model://house_3 154 | house_3_c 155 | 170 106 0 0 0 0 156 | 157 | 158 | model://mailbox 159 | mailbox_2 160 | true 161 | 59 4.45 0 0 0 0 162 | 163 | 164 | model://house_3 165 | house_3_d 166 | 95 7.0 0 0 0 0 167 | 168 | 169 | model://dumpster 170 | true 171 | 143 51.5 0 0 0 0 172 | 173 | 174 | model://house_2 175 | house_2_c 176 | 135 84.8 0 0 0 0 177 | 178 | 179 | model://lamp_post 180 | lamp_post_1 181 | true 182 | 24 4 0 0 0 0 183 | 184 | 185 | model://lamp_post 186 | lamp_post_2 187 | true 188 | 54 4 0 0 0 0 189 | 190 | 191 | model://lamp_post 192 | lamp_post_3 193 | true 194 | 84 4 0 0 0 0 195 | 196 | 197 | model://lamp_post 198 | lamp_post_4 199 | true 200 | 14 -4 0 0 0 3.1415 201 | 202 | 203 | model://lamp_post 204 | lamp_post_5 205 | true 206 | 44 -4 0 0 0 3.1415 207 | 208 | 209 | model://lamp_post 210 | lamp_post_6 211 | true 212 | 74 -4 0 0 0 3.1415 213 | 214 | 215 | model://lamp_post 216 | lamp_post_7 217 | true 218 | 148 104 0 0 0 0 219 | 220 | 221 | model://lamp_post 222 | lamp_post_8 223 | true 224 | 178 104 0 0 0 0 225 | 226 | 227 | model://lamp_post 228 | lamp_post_9 229 | true 230 | 158 96 0 0 0 3.1415 231 | 232 | 233 | model://lamp_post 234 | lamp_post_10 235 | true 236 | 188 96 0 0 0 3.1415 237 | 238 | 239 | model://lamp_post 240 | lamp_post_11 241 | true 242 | 102 8 0 0 0 .785 243 | 244 | 245 | model://lamp_post 246 | lamp_post_12 247 | true 248 | 123 29 0 0 0 .785 249 | 250 | 251 | model://lamp_post 252 | lamp_post_13 253 | true 254 | 144 50 0 0 0 .785 255 | 256 | 257 | model://lamp_post 258 | lamp_post_14 259 | true 260 | 99 -4 0 0 0 3.1415 261 | 262 | 263 | model://lamp_post 264 | lamp_post_15 265 | true 266 | 120 14.5 0 0 0 -2.35 267 | 268 | 269 | model://lamp_post 270 | lamp_post_16 271 | true 272 | 141 35.5 0 0 0 -2.35 273 | 274 | 275 | 7.34 276 | 0 0 0.01 277 | 100 0 0.01 278 | 150 50 0.01 279 | 150 100 0.01 280 | 200 100 0.01 281 | 282 | 283 | 17 284 | 65 25 0.01 285 | 65 3.66 0.01 286 | 287 | 288 | true 289 | 290 | 291 | 51 0 0 0 0 0 292 | 293 | 294 | 102 7.34 0.02 295 | 296 | 297 | 298 | 299 | 300 | 0.8 301 | 0.8 302 | 303 | 304 | 305 | 306 | 307 | 125 25 0 0 0 0.78539 308 | 309 | 310 | 72 7.34 0.02 311 | 312 | 313 | 314 | 315 | 316 | 0.8 317 | 0.8 318 | 319 | 320 | 321 | 322 | 323 | 150 75 0 0 0 0 324 | 325 | 326 | 7.34 53 0.02 327 | 328 | 329 | 330 | 331 | 332 | 0.8 333 | 0.8 334 | 335 | 336 | 337 | 338 | 339 | 173.5 100 0 0 0 0 340 | 341 | 342 | 54.5 7.34 0.02 343 | 344 | 345 | 346 | 347 | 348 | 0.8 349 | 0.8 350 | 351 | 352 | 353 | 354 | 355 | 198 106 0 0 0 0 356 | 357 | 358 | 6 5 0.02 359 | 360 | 361 | 362 | 363 | 364 | 0.8 365 | 0.8 366 | 367 | 368 | 369 | 370 | 371 | 372 | 373 | 374 | -------------------------------------------------------------------------------- /quadcopter_gazebo/worlds/pillars.world: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 1 6 | 7 | 8 | 9 | 10 | 0 0 1 11 | 100 100 12 | 13 | 14 | 15 | 16 | 17 | 100 18 | 50 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 10 27 | 28 | 29 | 0 30 | 0 31 | 32 | 0 33 | 0 34 | 1 35 | 36 | 37 | 38 | 1 39 | 40 | 41 | 0 0 -0.001 0 -0 0 42 | 43 | 44 | model://pillars/pillars.dae 45 | 46 | 47 | 48 | 49 | 0 0 -0.001 0 -0 0 50 | 51 | 52 | model://pillars/pillars.dae 53 | 54 | 55 | 10 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 0 68 | 0 69 | 70 | 0 71 | 0 72 | 1 73 | 74 | 75 | 76 | 77 | 20.7846 -10.4135 44.9584 0 1.2978 1.56583 78 | orbit 79 | 80 | 81 | 82 | 0.001 83 | 1 84 | 1000 85 | 0 0 -9.8 86 | 87 | 88 | 0.4 0.4 0.4 1 89 | 0.7 0.7 0.7 1 90 | 1 91 | 92 | 93 | EARTH_WGS84 94 | 0 95 | 0 96 | 0 97 | 0 98 | 99 | 100 | 101 | -------------------------------------------------------------------------------- /quadcopter_gazebo/worlds/quad.world: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 12 9 | 10 | 11 | 12 | 13 | 14 | model://ground_plane 15 | 16 | 17 | 18 | model://sun 19 | 20 | 21 | 22 | model://construction_cone 23 | 3 0 0 0 0 0 24 | 25 | 26 | 27 | model://construction_cone 28 | -3 0 0 0 0 0 29 | 30 | 31 | 32 | 33 | -------------------------------------------------------------------------------- /quadcopter_gazebo/worlds/warehouse.world: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | model://sun 7 | 8 | 9 | 10 | model://ground_plane 11 | 12 | 13 | model://asphalt_plane 14 | 15 | 16 | 18 | 19 | 20 | 21 | 0 0 -9.8066 22 | 23 | 24 | quick 25 | 10 26 | 1.3 27 | 0 28 | 29 | 30 | 0 31 | 0.2 32 | 100 33 | 0.001 34 | 35 | 36 | 0.002 37 | 1 38 | 500 39 | 6e-06 2.3e-05 -4.2e-05 40 | 41 | 42 | 43 | 44 | shelves 1 45 | model://shelves_high2 46 | 1 3.4 0 0 0 0 47 | 48 | 49 | shelves 2 50 | model://shelves_high2 51 | -4.13394 3.4 0 0 -0 0 52 | 53 | 54 | 55 | 56 | shelves 3 57 | model://shelves_high2 58 | 1 4.7 0 0 0 0 59 | 60 | 61 | shelves 4 62 | model://shelves_high2 63 | -4.13394 4.7 0 0 -0 0 64 | 65 | 66 | 67 | 68 | shelves 5 69 | model://shelves_high2_no_collision 70 | 1 -1.5 0 0 0 0 71 | 72 | 73 | shelves 6 74 | model://shelves_high2_no_collision 75 | -4.13394 -1.5 0 0 -0 0 76 | 77 | 78 | 79 | 80 | shelves 7 81 | model://shelves_high2_no_collision 82 | 1 -2.8 0 0 0 0 83 | 84 | 85 | shelves 8 86 | model://shelves_high2_no_collision 87 | -4.13394 -2.8 0 0 -0 0 88 | 89 | 90 | 91 | 92 | shelves 9 93 | model://shelves_high2_no_collision 94 | 1 -7.8 0 0 0 0 95 | 96 | 97 | shelves 10 98 | model://shelves_high2_no_collision 99 | -4.13394 -7.8 0 0 -0 0 100 | 101 | 102 | 103 | 104 | shelves 11 105 | model://shelves_high2_no_collision 106 | 1 -9.1 0 0 0 0 107 | 108 | 109 | shelves 12 110 | model://shelves_high2_no_collision 111 | -4.13394 -9.1 0 0 -0 0 112 | 113 | 114 | 117 | 118 | 119 | 120 | pallet 1 box 121 | model://big_box3 122 | 1.48626 3.390705 0.760253 0 0.000143 -1.57317 123 | 124 | 125 | pallet 1 support 126 | model://europallet 127 | 1.48088 3.400944 0.0635 0 0 -1.56736 128 | 129 | 130 | 131 | 132 | pallet 4 box 133 | model://big_box3 134 | -2.37439 3.440964 0.776474 0 0 -1.59804 135 | 136 | 137 | pallet 4 support 138 | model://europallet 139 | -2.40127 3.415746 0.0635 0 0 -1.5558 140 | 141 | 142 | 143 | 144 | pallet 7 box 145 | model://big_box4 146 | 2.61297 3.464591 0.774725 0 0 -1.59992 147 | 148 | 149 | pallet 7 support 150 | model://europallet 151 | 2.59788 3.454115 0.0635 0 0 -1.56921 152 | 153 | 154 | 155 | 156 | pallet 10 box 157 | model://big_box3 158 | -3.45548 3.349857 0.774725 0 0 -1.56894 159 | 160 | 161 | pallet 10 support 162 | model://europallet 163 | -3.41303 3.343739 0.0635 0 -0 1.56536 164 | 165 | 166 | 167 | 168 | pallet 11 box 169 | model://big_box4 170 | -4.67439 3.440964 0.776474 0 0 -1.59804 171 | 172 | 173 | pallet 11 support 174 | model://europallet 175 | -4.70127 3.415746 0.0635 0 0 -1.5558 176 | 177 | 178 | 179 | 180 | pallet 12 box 181 | model://big_box3 182 | -5.95548 3.349857 0.774725 0 0 -1.56894 183 | 184 | 185 | pallet 12 support 186 | model://europallet 187 | -5.91303 3.343739 0.0635 0 -0 1.56536 188 | 189 | 190 | 191 | 192 | pallet 18 support 193 | model://europallet 194 | 0.234986 3.337637 0.0635 0 -0 1.56536 195 | 196 | 197 | pallet 18b support 198 | model://europallet 199 | 0.134986 3.337637 0.2102 0 -0 1.2 200 | 201 | 202 | 205 | 206 | 207 | 208 | pallet 2 box 209 | model://big_box3 210 | -3.25548 3.349857 2.3397 0 0 -1.56894 211 | 212 | 213 | pallet 2 support 214 | model://europallet 215 | -3.21303 3.343739 1.6373 0 -0 1.56536 216 | 217 | 218 | 219 | 220 | 221 | pallet 5 multi boxes 222 | model://pallet_full 223 | 0.334986 3.337637 1.63184 0 0 -1.57575 224 | true 225 | 226 | 227 | 228 | 229 | pallet 17 multi boxes 230 | model://pallet_full 231 | 0.334986 3.337637 2.31 0 0 -1.57575 232 | true 233 | 234 | 235 | 236 | 237 | pallet 8 box 238 | model://big_box4 239 | 2.56918 3.321158 2.35696 0 0 -1.56652 240 | 241 | 242 | pallet 8 support 243 | model://europallet 244 | 2.64128 3.308661 1.64676 0 0 -1.55378 245 | 246 | 247 | 248 | 249 | pallet 9 box 250 | model://big_box4 251 | -2.30257 2.987644 2.35696 0 0 -1.57937 252 | 253 | 254 | pallet 9 support 255 | model://europallet 256 | -2.28744 2.915349 1.64676 0 -0 1.5541 257 | 258 | 259 | 260 | 261 | pallet 13 box 262 | model://big_box3 263 | -4.67439 3.440964 2.35696 0 0 -1.59804 264 | 265 | 266 | pallet 13 support 267 | model://europallet 268 | -4.70127 3.415746 1.64676 0 0 -1.5558 269 | 270 | 271 | 272 | 273 | pallet 14 box 274 | model://big_box4 275 | -5.95548 3.349857 2.35696 0 0 -1.56894 276 | 277 | 278 | pallet 14 support 279 | model://europallet 280 | -5.91303 3.343739 1.64676 0 -0 1.56536 281 | 282 | 283 | 284 | 285 | pallet 19 box 286 | model://big_box3 287 | -0.8 3.337637 2.3397 0 0 -1.56894 288 | 289 | 290 | pallet 19 support 291 | model://europallet 292 | -0.8 3.337637 1.6373 0 -0 1.56536 293 | 294 | 295 | 296 | 299 | 300 | 301 | 302 | pallet 6 multi boxes 303 | model://pallet_full 304 | -2.18966 3.351916 3.27046 0 0 -1.58092 305 | true 306 | 307 | 308 | 309 | 310 | pallet 15 multi boxes 311 | model://pallet_full 312 | -4.68966 3.351916 3.27046 0 0 -1.58092 313 | true 314 | 315 | 316 | 317 | 318 | pallet 16 multi boxes 319 | model://pallet_full 320 | -5.88966 3.351916 3.27046 0 0 -1.58092 321 | true 322 | 323 | 324 | 325 | 326 | 327 | pallet 20 box 328 | model://big_box4 329 | -3.25548 3.349857 3.97286 0 0 -1.56894 330 | 331 | 332 | pallet 20 support 333 | model://europallet 334 | -3.21303 3.343739 3.27046 0 -0 1.56536 335 | 336 | 337 | 338 | 339 | pallet 21 box 340 | model://big_box3 341 | 2.56918 3.321158 3.97286 0 0 -1.56652 342 | 343 | 344 | pallet 21 support 345 | model://europallet 346 | 2.64128 3.308661 3.27046 0 0 -1.55378 347 | 348 | 349 | 350 | 351 | pallet 22 box 352 | model://big_box4 353 | -0.8 3.337637 3.97286 0 0 -1.56894 354 | 355 | 356 | pallet 22 support 357 | model://europallet 358 | -0.8 3.337637 3.27046 0 -0 1.56536 359 | 360 | 361 | 362 | 365 | 366 | 367 | 368 | pallet B-0-1 box 369 | model://big_box3 370 | 1.48626 -1.5 0.760253 0 0.000143 1.57317 371 | 372 | 373 | pallet B-0-1 support 374 | model://europallet 375 | 1.48088 -1.5 0.0635 0 0 1.56736 376 | 377 | 378 | 379 | 380 | pallet B-0-2 box 381 | model://big_box4 382 | 2.9 -1.5 0.774725 0 0 1.59992 383 | 384 | 385 | pallet B-0-2 support 386 | model://europallet 387 | 2.9 -1.5 0.0635 0 0 1.56921 388 | 389 | 390 | 391 | 394 | 395 | 396 | 397 | pallet B-1-1 box 398 | model://big_box3 399 | 1.6 -1.5 2.30 0 0.000143 1.57317 400 | true 401 | 402 | 403 | pallet B-1-1-1 support 404 | model://europallet 405 | 1.6 -1.5 1.60 0 0 1.56736 406 | true 407 | 408 | 409 | 410 | 411 | pallet B-1-2 box 412 | model://big_box3 413 | 2.9 -1.5 2.30 0 0 1.59992 414 | true 415 | 416 | 417 | pallet B-1-2 support 418 | model://europallet 419 | 2.9 -1.5 1.60 0 0 1.56921 420 | true 421 | 422 | 423 | 426 | 427 | 428 | 429 | pallet B-2-1 box 430 | model://big_box4 431 | 1.6 -1.5 3.97 0 0.000143 1.57317 432 | true 433 | 434 | 435 | pallet B-1-1-1 support 436 | model://europallet 437 | 1.6 -1.5 3.27 0 0 1.56736 438 | true 439 | 440 | 441 | 442 | 443 | pallet B-2-2 box 444 | model://big_box3 445 | 2.9 -1.5 3.97 0 0 1.59992 446 | true 447 | 448 | 449 | pallet B-1-2 support 450 | model://europallet 451 | 2.9 -1.5 3.27 0 0 1.56921 452 | true 453 | 454 | 455 | 456 | 457 | first_2015_trash_can 458 | model://first_2015_trash_can 459 | 3.8239 3.403029 0 0 -0 0 460 | 461 | 462 | 463 | 464 | grey_wall 465 | model://grey_wall 466 | -8.34545 0 0 0 0 -1.57 467 | 468 | 469 | 470 | grey_wall2 471 | model://grey_wall 472 | -3.5 9 0 0 0 0 473 | 474 | 475 | 476 | 477 | 478 | -------------------------------------------------------------------------------- /quadcopter_gazebo/worlds/waypoint.world: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | model://sun 6 | 7 | 8 | model://occupancy_grid 9 | 5 0 0 0.0 0.0 0.0 10 | 11 | 12 | EARTH_WGS84 13 | 47.3667 14 | 8.5500 15 | 500.0 16 | 0 17 | 18 | 19 | 21 | 22 | 23 | 24 | 25 | 26 | quick 27 | 1000 28 | 1.3 29 | 30 | 31 | 0 32 | 0.2 33 | 100 34 | 0.001 35 | 36 | 37 | 0.01 38 | 1 39 | 100 40 | 0 0 -9.8 41 | 42 | 43 | 44 | world/octomap 45 | world/get_octomap 46 | 47 | 48 | 49 | --------------------------------------------------------------------------------