日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Gazebo機器人仿真學習探索筆記(五)環境模型

發(fā)布時間:2023/12/20 编程问答 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Gazebo機器人仿真學習探索筆記(五)環境模型 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

環(huán)境模型構建可以通過向其中添加模型實現(xiàn),待之後補充,比較有趣的是建築物模型,

可以編輯多層樓層和房間,加入樓梯,窗戶和牆壁等,具體可以參考附錄,等有空再補充。

起伏地形環(huán)境構建可以參考之前內容:在Gazebo中使用DEM構建起伏地形環(huán)境



附錄:官方文檔

Building a world

This tutorial describes the process of creating a world with both static and dynamic objects.

Terminology

  • World: The term used to describe a collection of robots and objects (such as buildings, tables, and lights), and global parameters including the sky, ambient light, and physics properties.
  • Static: Entities marked as static (those having the <static>true</static> element in SDF), are objects which only have collision geometry. All objects which are not meant to move should be marked as static, which is a performance enhancement.
  • Dynamic: Entities marked as dynamic (either missing the <static> element or setting falsein SDF), are objects which have both inertia and a collision geometry.

Setup

  • Make sure Gazebo is installed.

  • Create a working directory for this tutorial:

    $ mkdir ~/build_world_tutorial; cd ~/build_world_tutorial
  • Start up gazebo, and you should see a world with just a ground plane.

    $ gazebo
  • Adding Objects

    Gazebo provides two mechanisms for adding objects to Gazebo.

  • The first is a set of simple shapes, located above the render window.
  • The second is via the model database, which is accessible by selecting the Insert tab in the upper left corner.
  • Adding Simple Shapes

    Boxes, spheres, and cylinders may be added to the world by clicking on the appropriate icon above the render window. Each shape is of unit size:

    • Box: 1x1x1 meter
    • Sphere: 1 meter diameter
    • Cylinder: 1 meter diameter, 1 meter length

    Select the box icon, and then move your mouse onto the render window. You will see a box that moves with your mouse. Left click when you are happy with the position of the box.

    Repeat the same procedure for the sphere and cylinder. You should end with a world similar to this:

    Adding Model from the Model Database

    Gazebo's model database is a repository of all types of models including robots, tables, and building.

  • Select the Insert tab in the upper left hand corner to access the model database.

    The list of models are divided into sections according to there current location. Each section is labeled with a path or URI. Selecting an object located on a remote server will cause the model to be downloaded and stored in ~/.gazebo/models.

  • Try adding various models to the world. Be patient when downloading models, as some may be large.

  • You should end up with something similar to the following, depending on the models you decided to add:

  • Position Models

    The pose of each model may be altered through the translate and rotate tools:

    Translation

    The translate tools allows you to move the object along the x, y, and z axes. Select this tool now and click on the object you want to move. A three axes visual marker will appear over the object, which allows you to move the object in x, y, and z directions.

    You can also just click on the object itself and drag it to move on the x-y plane. You may control which axis the object moves along by pressing and holding the x, y, or z key while dragging the object.

    Try moving the objects around now into a different configuration.

    Rotation

    The rotate tool allows you to orient a model around the x, y, and z axes. Select this tool now and click on the object you want to move. Three ring-shaped visual marker will appear over the object, which allows you to rotate the object around the x, y, and z axes.

    Try rotating the objects into a different configuration.

    Scale

    The scale tool allows you to resize a model in the x, y, and z directions. Currently the scale tool only works with simple shapes, i.e. box, cylinder and sphere. Select this tool now and click on a simple shape. A three axes visual marker will appear over the object, which allows you to scale the x, y, and z dimensions of the object.

    Try scaling the simple shapes into different sizes.

    Delete Models

    Model may also be deleted by selecting them and the hitting the Delete key, or by right-clicking on a model and selecting Delete.

    Try deleting a few models.

    Saving a World.

    Once you are happy with a world it can be save through the File menu.

    Select the File menu now, and choose Save As.

    A pop-up will appear asking you to enter a new filename. Enter my_world.sdf and click okay.

    Loading a World

    A saved world may be loaded on the command line:

    gazebo my_world.sdf

    The filename must be in the current working directory, or you must specify the complete path.

    Next

    Next: Modifying a world tutorial


    Modifying a world

    This tutorial describes how to modify global properties including scene and physics properties.

    Start gazebo:

    $ gazebo

    Scene Properties

    In the World tab, select the scene item. A list of scene properties will be displayed in the list box below. Click the triangle to expand the properties.

    These properties allow you to change the ambient light. Note: The background color will not change if the Sky is enabled.

    Physics Properties

    In the World tab, select the physics item. A list of physics properties will be displayed in the list box below.

    • The enable physics check-box can be used to disable physics while allowing plugins and sensors to continue running.
    • The real time update rate parameter specifies in Hz the number of physics updates that will be attempted per second. If this number is set to zero, it will run as fast as it can. Note that the product of real time update rate and max step size represents the target real time factor, or ratio of simulation time to real-time.
    • The max step size specifies the time duration in seconds of each physics update step.

    In the gravity block:

    • The x, y and z parameters set the global gravity vector components in m/s^2.

    In the solver block:

    • The iterations parameter specifies the number of iterations to use for iterative LCP solvers (used by ODE and bullet).
    • The SOR parameter stands for successive over-relaxation, which can be used to try to speed the convergence of the iterative method.

    The constraints block contains several parameters related to solving constraints:

    • The CFM and ERP parameters stands for Constraint Force Mixing and Error Reduction Parameter and are used by ODE and bullet. The CFM and ERP parameters can be related to linear stiffness and damping coefficients. The max velocity and surface layer parameters are used to resolve contacts with a split impulse method. Any contacts with that penetrate deeper than a depth specified by surface layer and have a normal velocity less than max velocity will not bounce.

    See the sdf physics documentation for a description of these parameters.

    Next

    Next: How to use DEMs in Gazebo


    Digital Elevation Models

    Overview

    A Digital Elevation Model (DEM) is a 3D representation of a terrain's surface that does not include any objects like buildings or vegetation. DEMs are frequently created by using a combination of sensors, such as LIDAR, radar, or cameras. The terrain elevations for ground positions are sampled at regularly-spaced horizontal intervals. Wikipedia is a good resource for getting more details about DEMs.

    The term DEM is just a generic denomination, not a specific format. In fact, the DEMs can be represented as a grid of elevations (raster) or as a vector-based triangular irregular network (TIN). Currently, Gazebo only supports raster data in the supported formats available in GDAL.

    The main motivation to support DEMs in Gazebo is to be able to simulate a realistic terrain. Rescue or agriculture applications might be interested in testing their robot behaviors using a simulated terrain that matches the real world.

    Bring DEM support to Gazebo

    In order to work with DEM files you should install GDAL libraries.

    $ sudo apt-get install gdal-bin libgdal-dev libgdal1h python-gdal

    DEM file and the definition into SDF format

    There are several organizations that provide elevation data. As an example,let's download a DEM file of Mount St. Helensbeforeorafterits eruption back in the '80s. These files are in public domain and aredistributed by USGS.

    Unzip the file and rename it mtsthelens.dem as follows:

    cd ~/Downloads wget https://bitbucket.org/osrf/gazebo_tutorials/raw/default/dem/files/mtsthelens_before.zip unzip ~/Downloads/mtsthelens_before.zip -d /tmp mv /tmp/30.1.1.1282760.dem /tmp/mtsthelens.dem

    Usually, DEM files have big resolutions and Gazebo cannot handle it, so it's a good idea to adjust the resolution of your DEM. The next command will scale the terrain to 129x129 and will copy into the Gazebo media/dem/ directory.

    $ mkdir -p /tmp/media/dem/ $ gdalwarp -ts 129 129 /tmp/mtsthelens.dem /tmp/media/dem/mtsthelens_129.dem

    A DEM file in Gazebo is loaded in the same way that you load a heightmap image. Gazebo automatically detects if the file is a plain image or a DEM file. Create the file volcano.world and copy the next content. Save the file anywhere you want, for example, in /tmp.

    <?xml version="1.0" ?> <sdf version="1.4"><world name="default"><!-- A global light source --><include><uri>model://sun</uri></include><model name="heightmap"><static>true</static><link name="link"><collision name="collision"><geometry><heightmap><uri>file://media/dem/mtsthelens_129.dem</uri><size>150 150 50</size><pos>0 0 0</pos></heightmap></geometry></collision><visual name="visual_abcedf"><geometry><heightmap><texture><diffuse>file://media/materials/textures/dirt_diffusespecular.png</diffuse><normal>file://media/materials/textures/flat_normal.png</normal><size>1</size></texture><texture><diffuse>file://media/materials/textures/grass_diffusespecular.png</diffuse><normal>file://media/materials/textures/flat_normal.png</normal><size>1</size></texture><texture><diffuse>file://media/materials/textures/fungus_diffusespecular.png</diffuse><normal>file://media/materials/textures/flat_normal.png</normal><size>1</size></texture><blend><min_height>2</min_height><fade_dist>5</fade_dist></blend><blend><min_height>4</min_height><fade_dist>5</fade_dist></blend><uri>file://media/dem/mtsthelens_129.dem</uri><size>150 150 50</size><pos>0 0 0</pos></heightmap></geometry></visual></link></model></world> </sdf>

    The <heightmap><size> element in the code above tells Gazebo whether to load the DEM with the original dimensions (when <size> is not present) or to scale it (when <size> is present). In case you prefer to scale the DEM, the <size> element tells Gazebo the size in meters that the terrain will have in the simulation. If you want to maintain the correct aspect ratio, be sure to properly calculate the width, height and elevation (which is the third number in <size>). In our example, the DEM will be scaled to a square of 150 x 150 meters and a max elevation of 50 meters.

    Launch Gazebo with the world containing your DEM file and you should see the volcano. In our case, the file is in the /tmp directory.

    # Be sure of sourcing gazebo setup.sh in your own installation path $ source /usr/share/gazebo/setup.sh $ GAZEBO_RESOURCE_PATH="$GAZEBO_RESOURCE_PATH:/tmp" gazebo /tmp/volcano.world

    How do I get a DEM file of my region of interest?

    Next, we are going to describe one method for obtaining a DEM file of a specific region of interest.

    Global Land Cover Facility maintains a high-resolution digital topographic database of Earth. Go to its Search and Preview tool and you will see something similar to the image below. Every terrain patch has a unique path and row that you should know before using the tool. We'll use QGIS to discover the path/row of our region of interest.

    QGIS is a cross-platform open source geographic information system program that provides data viewing, editing, and analysis capabilities. Download QGIS following the instructions detailed on the QGIS website.

    Open up QGIS, click on the left column icon labeled WMS/WMTS layer, click on Add default servers, select Lizardtech server, and then, press the connect button. Select the MODIS value and press Add. Close the pop-up window. The next step is to add another layer with all the different patches available. Download this shapefile and decompress it in any folder. Go back to QGIS and press Add Vector Layer (left column icon). Press Browse, and select your previously uncompressed wrs2descending.shp file. Press Open in the window that opens. Now, you'll see both layers on the main window. Let's change the transparency of the wrs2descending layer to be able to see both layers at the same time. Double click on wrs2_descending layer, and then, modify its transparency value to something around 85%.

    Use the scroll and left button to navigate to your region of interest. Then click on the icon labeled Identify Features on the top bar. Click on your region of interest and all the terrain patches around the area will be highlighted. A new pop up window will show the path/row values for each highlighted patch. In the image below you can see the path and row of the DEM patch containing Las Palmas, one of the heavenly places of the Canary Islands, Spain.

    Go back to your browser with the GLCF search tool and write the path/row values in the columns labeled Start Path and Start Row. Then click in Submit Query; press Preview and Download to see your results. Choose your terrain file and press Download. Finally, select your file with extension .gz, and decompress it in your favorite folder. Global Land Cover Facility files are in GeoTiff format, one of the most common format of DEM files available.

    Preparing DEM data for use in Gazebo

    DEM data is usually created at very high resolution. Use gdalwarp to reduce the resolution of the terrain to a more manageable size before using it in Gazebo.

    $ gdalwarp -ts <width> <height> <srcDEM> <targetDEM>

    DEM data often contain "holes" or "void" areas. These sections correspond to areas where data could not be collected while the DEM was created. In the case of a data "hole", the hole will be assigned the minimum or maximum value of the data type that is used in that DEM.

    Always try to download "finished" versions of DEM data sets, where the holes have been filled. If your DEM terrain contains holes (also known as NODATA values), try to manually repair it using gdal tools, such as gdal_fillnodata.py.

    Working with multiple DEMs in Gazebo

    Although Gazebo does not directly support multiple DEMs, GDAL has a set of utilities for merging a set of DEMs into a single one. The first step is to download the set of DEMs that you want to merge. Note that the patches can even overlap with one another; GDAL will merge them seamlessly. Assuming that your current directory contains a set of Geotiff files ready to be merged, run the next command.

    $ gdal_merge.py *.tif -o dem_merged.tif

    Now, you can just use dem_merged.tif in your world file and Gazebo will load the terrain with all the patches merged. In the next screenshot you can see the result of merging four terrain patches surrounding the Canary Islands.


    Population of models

    Overview

    This tutorial demonstrates how you can create a population of models byusing the SDF <population> tag. A population consists of a collectionof identical models.

    Adding a population of models is a matter of specifying the followingparameters:

  • Model (e.g.: table, coke_can).

  • Number of objects to be part of the population.

  • Shape and dimensions of the container within which the objects will bearranged (e.g.: box, cylinder).

  • The position and orientation of the population's container.

  • Distribution of the objects within the container (e.g.: random, grid).

  • For reference, check theSDF specificationfor a complete specification of the <population> tag and its parameters.

    Creating an object population

    Quick start

  • Let's start by creating a directory for this tutorial:

    mkdir ~/tutorial_model_population cd ~/tutorial_model_population
  • Download this file:can_population.worldinto the current directory. You can use this command:

    wget http://bitbucket.org/osrf/gazebo_tutorials/raw/default/model_population/files/can_population.world

    You should get this world file:

    <?xml version="1.0" ?> <sdf version="1.5"><world name="default"><!-- A global light source --><include><uri>model://sun</uri></include><!-- A ground plane --><include><uri>model://ground_plane</uri></include><!-- Testing the automatic population of objects --><population name="can_population1"><model name="can1"><include><static>true</static><uri>model://coke_can</uri></include></model><pose>0 0 0 0 0 0</pose><box><size>2 2 0.01</size></box><model_count>10</model_count><distribution><type>random</type></distribution></population></world> </sdf>
  • Start gazebo:

    gazebo can_population.world

    You should see a population of soda cans randomly located around theworld's origin. The cans are arranged within a box container of size2 x 2 x 0.01 meters.

  • The world explained

    Let's go further and understand the different elements of the can_population.world.

    <population name="can_population1"><model name="can1"><include><static>true</static><uri>model://coke_can</uri></include></model>

    In this snippet we can see how to specify a population element by using the<population> tag. Every population should have a unique name, and this isspecified by the name attribute. Within the population tag, you can seehow to select a model by using the <model> tag. Each element of the populationwill be inserted into the simulation with a unique name that will be created byappending to the model name the suffix _clone_i, where i is the ith elementof the population. You can see the list of models spawned in the Gazebo scenehere:

    The most common type of population consists of inanimate objectssuch as trees, rocks, and buildings. We recommend you use the <population> tagfor static models, and exclude mobile entities, such as robots, which oftenrequire more precise placement and are fewer in number.

    <pose>0 0 0 0 0 0</pose><box><size>2 2 0.01</size></box>

    The above block of code specifies the region in which the objects will beplaced. In this case, all the objects are spawned within a 3D bounding box withsides 2 x 2 x 0.01 m, centered at (0, 0, 0) with orientation (0, 0, 0). As analternative to <box>, a <cylinder> region is also allowed by specifying itsradius and length. (Check out theSDF specificationfor a full description of the <cylinder> parameters.) The <pose> elementsets the reference frame of the population's region.

    <model_count>10</model_count>

    Above you can see how the number of models in the population is determined. Anypositive number is allowed, but take into consideration that the higher thenumber, the more impacted the performance may be.

    <distribution><type>random</type></distribution>

    The <distribution> element sets how the objects are placed within the region.

    Distribution types

  • random: Models placed at random. Note that the objects might collide withone another.

  • uniform: Models placed in a pseudo-2D grid pattern. We use K-Means toapproximate the solution and locate the number of specified objects inside theregion.

  • grid: Models evenly placed in a 2D grid pattern. This distribution alsorequires that you specify the number of rows, columns, and distance betweeneach element. Note that the element <model_count> is ignored in thisdistribution. The number of objects inserted into the simulation will be equalto the number of rows multiplied by the number of columns.

  • linear-x: Models evenly placed in a row along the global x-axis.

  • linear-y: Models evenly placed in a row along the global y-axis.

  • linear-z: Models evenly placed in a row along the global z-axis.

  • For a more advanced example you can check thepopulation.worldworld file deployed with Gazebo.

    And of course, you can test it by typing:

    gazebo worlds/population.world


    Building Editor

    This tutorial describes the process of creating a building using the Building Editor.

    Overview

    Open the Building Editor

  • Make sure Gazebo is installed.

  • Start up gazebo.

    $ gazebo
  • On the Edit menu, go to Building Editor, or hit Ctrl+B to open the editor.

  • Graphical user interface

    The editor is composed of the following 3 areas:

  • The Palette, where you can choose features and materials for your building.

  • The 2D View, where you can import a floor plan to trace over (optional) and insert walls, windows, doors and stairs.

  • The 3D View, where you can see a preview of your building. It is also where you can assign colors and textures to different parts of your building.

  • Import a floor plan

    You may create a scene from scratch, or use an existing image as a template to trace over. This image can be, for example, a 2D laser scan of a building.

    Click here to get an example floor plan, then proceed as follows:

  • Click on the Import button. The Import Image dialog will come up.

  • Step 1: Choose the image you previously saved on your computer and click Next.

  • Step 2: To make sure the walls you trace over the image come up in the correct scale, you must set the image's resolution in pixels per meter (px/m). If we knew the resolution, we could directly type it in the dialog and click Ok. In this example we don't know the resolution, but we know the real-world distance between two points in the image (for example, the top wall of 7.5 m), so we can use that to calculate the resolution:

    a. Click/release on one end of the wall. As you move the mouse, an orange line will appear as shown below.

    b. Click/release at the end of the wall to complete the line.

    c. Now type the distance in meters in the dialog (7.5 m in this case). The resolution will be automatically calculated for you based on the line you drew.

    d. You can then click Ok.

  • The image will appear on the 2D View properly scaled.

    Tip: Once you've added more levels, you can import a floor plan for each by repeating the same process.

  • Add features

    Add walls

    Trace all walls on the floor plan as follows. Keep in mind that we will attach windows and doors to the walls later, so here you can draw the walls over them. Don't worry too much if the walls are not perfect, we will edit them later.

  • On the Palette, click on Wall.

  • On the 2D View, click/release anywhere to start the wall. As you move the mouse, the wall's length is displayed.

  • Click again to end the current wall and start an adjacent wall.

  • Double-click to finish a wall without starting a new one.

    Tip: You can right-click or press Esc to cancel drawing the current wall segment.

    Tip: By default, walls snap to 15° and 0.25 m increments and also to the end points of existing walls. To override this, hold Shift while drawing.

  • Add windows and doors

    Note: Currently, windows and doors are simple holes in the wall.

    Let's insert windows and doors at the locations shown on the floor plan.

  • On the Palette, click on Window or Door.

  • As you move the mouse in the 2D view, the feature to be inserted moves with it, as does its counterpart in the 3D View.

    Tip: Windows and doors automatically snap to walls as you hover over them. The distances to the ends of the wall are displayed as you move.

  • Click on the desired position to place the feature.

    Tip: It might be difficult to see where the features are on your floor plan after the walls have been drawn on top of it. To make it easier, at the top of the 2D View, you can choose to view or hide the floor plan or features for the current level. You can also use hotkeys to toggle visibility, F for floor plan and G for features.

  • Add stairs

    There are no staircases on this floor plan, but we will insert one anyways.

  • On the Palette, click on Stairs.

  • As you move the mouse in the 2D view, the staircase to be inserted moves with it, as does its counterpart in the 3D View.

  • Choose a position for your staircase and click to place it.

  • Add levels

    We're pretty much done with Level 1. Let's add another level to our building so our staircase ends up somewhere.

    At the top of the 2D View, click on + to add a level. Alternatively, right-click the 2D View and choose Add a level.

    When a new level is added, a floor is automatically inserted. If there are stairs on the level below, a hole above the stairs will be cut out from the floor when the building is saved.

    Note: Currently, all floors are rectangular.

    Tip: Before adding a level, make sure you have walls on the current level to build on top of.

    Tip: Currently, all the walls from the level below are copied to the new level, with default materials. No other features are copied. You can manually delete the walls you don't want.

    Edit your building

    Note: Be careful when editing your building; the editor currently has no option to undo your actions.

    Tip: All measurements are in meters.

    Change levels

    Since we added a level, we were brought to the new level in the 2D view. You can go back to Level 1 by choosing it from the drop-down list at the top of the 2D View.

    Tip: The level currently selected in the 2D View will appear as semi-transparent in the 3D View and all levels below it will appear opaque. Levels above will be hidden - but keep in mind they are still part of your building!

    We can also edit some level configurations if we want.

    • Double-click the 2D View to open an inspector with level configuration options. Alternatively, right-click and choose Open Level Inspector.

    You may have added levels that you don't want, or perhaps made a mess in the current level and would like to start it over.

    • To delete the current level, either press the - button at the top of the 2D View, or right-click and choose Delete Level.

    Edit walls

    We drew a lot of walls earlier, but maybe they didn't turn out exactly the way we wanted.

    • In the 2D View, click on the wall to be edited.

      a. Translate the wall by dragging it to a new position.

      b. Resize or rotate the wall by dragging one of its end points.

      Tip: By default, walls snap to 15° and 0.25 m increments. To override this, hold Shift while drawing.

    • Double-click a wall in the 2D View to open an inspector with configuration options. Alternatively, right-click and choose Open Wall Inspector. Edit some fields and press Apply to preview the changes.

    • To delete a wall, either press the Delete key while it is selected, or right-click the wall in the 2D View and choose Delete.

      Tip: Editing a wall takes attached walls into account.

      Tip: Deleting a wall deletes all doors and windows attached to it.

    Edit windows and doors

    Now let's play around with windows and doors. As we did for the walls, we can manipulate windows and doors more precisely in a few different ways.

    • In the 2D View, click on the feature to be edited.

      a. Translate the feature by dragging it to a new position. Remember that windows and doors automatically snap to walls and it doesn't make much sense to have them detached from any walls, as they represent holes in a wall.

      b. Rotate the feature by dragging its rotation handle. Currently, as long as they are attached to a wall, their orientation doesn't make a difference.

      c. Resize the feature's width by dragging one of the end points.

    • Double-click a feature in the 2D View to open an inspector with configuration options. Alternatively, right-click and choose Open Window/Door Inspector.

    • To delete a feature, either press the Delete key while it is selected, or right-click it in the 2D View and choose Delete.

    Edit stairs

    Finally, let's edit the staircase we inserted earlier. Since it is not on the floor plan, we can get creative and resize it as we want.

    • In the 2D View, click on the staircase to select it.

      a. Translate the staircase by dragging it to a new position.

      b. Rotate the staircase in multiples of 90° by dragging its rotation handle.

      c. Resize the staircase by dragging one of the end nodes.

    • Double-click the staircase in the 2D View to open an inspector with configuration options. Alternatively, right-click and choose Open Stairs Inspector.

    • To delete the staircase, either press the Delete key while it is selected, or right-click and choose Delete.

    Tip: In the 2D View, staircases are visible on both the start and end levels.

    Add colors and textures

    Now that everything is properly placed and sized, you can assign colors and textures to walls, floors and staircases. Remember that windows and doors are only holes on the wall and therefore cannot have materials.

    Tip: The default color is white and the default texture is none.

    There are two ways to add colors and textures to your building:

    From Inspectors

    You can add color and texture to walls, stairs and floors from the Wall Inspector, Stairs Inspector and Level Inspector respectively. Simply open the inspector, select your materials and press Apply.

    From the Palette

    Colors and textures can be chosen from the Palette and assigned to items on your building by clicking on them in the 3D View.

  • Click on a color or texture in the Palette.

  • As you move your mouse in the 3D View, hovered features will be highlighted displaying a preview of the selected material.

  • Clicking on the highlighted feature assigns the selected material to it. You can click on as many features as you'd like.

  • When you're done with the selected material, either right-click the 3D view, or click outside any features to leave the material mode.

    New in Gazebo 5.1: To choose a custom color, click on More on the Palette. A dialog opens where you can specify custom colors.

  • Tip: Each feature can have only one color and one texture. The same material is assigned to all faces of the feature.

    Note: Currently, it is not possible to assign custom textures on the Building Editor.

    Saving your building

    Saving will create a directory, SDF and config files for your building.

    Before saving, give your building a name on the Palette.

    On the top menu, choose File, then Save As (or hit Ctrl+S). A dialog will come up where you can choose the location for your model.

    Tip: Under Advanced Options you can set some meta-data for your building.

    Exit

    Note: Once you exit the Building Editor, your building will no longer be editable.

    When you're done creating your building and you've saved it, go to File and then Exit Building Editor.

    Your building will show up in the main window. In the future, you can find the building in your Insert tab.






    總結

    以上是生活随笔為你收集整理的Gazebo機器人仿真學習探索筆記(五)環境模型的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內容還不錯,歡迎將生活随笔推薦給好友。

    成人久久久电影 | 久草视频在线资源 | 国产精品久久久久久久久久白浆 | 精品国产成人av | 日b黄色片| www.xxx.性狂虐 | 国产精品黑丝在线观看 | 男女拍拍免费视频 | 欧美精品久久久久久 | 国产精品精品久久久久久 | 日韩三级不卡 | 国产黄a三级三级 | 久久99精品一区二区三区三区 | 国产成人一级电影 | 九九热免费视频在线观看 | 天天玩天天干天天操 | 国产日产精品一区二区三区四区的观看方式 | 毛片黄色一级 | 中文字幕亚洲情99在线 | 久久精久久精 | 99热这里是精品 | 精品国产伦一区二区三区观看方式 | 亚洲成a人片在线www | 精品影院一区二区久久久 | 国产视频日韩视频欧美视频 | 一区二区三区在线观看 | 久久国内精品99久久6app | 久久久网页 | 国产精品中文 | 美女久久久久久久 | 精品久久中文 | 久久9999久久 | 麻豆国产精品视频 | 精品一二三区 | 亚洲欧洲国产视频 | 一区二区中文字幕在线 | 亚洲精品字幕在线 | 免费日韩电影 | 国产精品久久久久久吹潮天美传媒 | 国产精品白丝jk白祙 | 国产精品扒开做爽爽的视频 | 在线观看成人国产 | 国产无限资源在线观看 | 日韩电影在线观看一区二区三区 | 午夜久久影院 | 91最新网址在线观看 | 又黄又爽又湿又无遮挡的在线视频 | 夜夜操综合网 | 欧美日本一区 | 嫩小bbbb摸bbb摸bbb | 在线观看视频免费播放 | 国产视频在线观看一区 | 樱空桃av| 国产精品亚洲视频 | 91在线porny国产在线看 | 日韩中文在线电影 | 国产精品18久久久久久首页狼 | 久久与婷婷 | 免费视频国产 | adn—256中文在线观看 | 500部大龄熟乱视频使用方法 | 九九热精 | 色婷婷国产在线 | 91女神的呻吟细腰翘臀美女 | 亚洲视频综合 | 精品国产网址 | 免费看成人片 | 五月天婷婷在线播放 | 视频一区二区视频 | 国产黄色在线看 | 99久久99久久精品国产片 | 看污网站| 97电影手机 | a在线视频v视频 | 天天干天天干天天干 | 摸阴视频 | 四季av综合网站 | 99精品视频免费在线观看 | 天天激情 | 日本中文字幕在线电影 | 久久久久国产成人精品亚洲午夜 | 精品久久精品久久 | 在线 视频 一区二区 | 久久综合婷婷 | 日韩一区二区三区高清在线观看 | 国产又黄又爽无遮挡 | 国产精品免费成人 | 五月天色站 | av短片在线观看 | 99精品视频免费 | 日本黄色大片免费 | 超碰在线日韩 | 国产99久久久国产精品成人免费 | 亚洲专区 国产精品 | 色在线最新 | 亚洲五月激情 | 五月天视频网站 | 色婷婷久久久综合中文字幕 | 亚洲精品在线视频网站 | 韩日精品中文字幕 | 日本黄色免费电影网站 | 深爱激情婷婷网 | 西西人体4444www高清视频 | 欧美精品一区二区免费 | 国产精品日韩精品 | 欧美日韩精品影院 | 久久国产精品免费一区二区三区 | 91成人精品一区在线播放69 | 免费三级网 | 精品久久一区二区 | 国产精品美女www爽爽爽视频 | 99久久久国产精品免费99 | 日韩成人av在线 | 91精品伦理| 色视频网站在线观看一=区 a视频免费在线观看 | a级成人毛片| 国产高清综合 | 国产第一页在线播放 | 亚洲第一av在线 | 成人国产精品久久久久久亚洲 | 视频一区二区国产 | 亚洲,国产成人av | 九九热在线视频免费观看 | 97精品国产97久久久久久免费 | 中文字幕av在线电影 | 又黄又爽又色无遮挡免费 | 国产精彩视频一区二区 | 麻豆国产网站 | 一区二区三区四区五区在线 | 欧美日韩精品国产 | 91精品久久香蕉国产线看观看 | 欧美日韩高清一区二区 | 婷婷综合五月天 | 久久免费国产视频 | 伊人va | 国产精品欧美精品 | 人人爽人人爱 | 国产精品国产三级国产aⅴ9色 | 九九涩涩av台湾日本热热 | 蜜臀av夜夜澡人人爽人人 | 免费日韩 | 在线精品观看国产 | 久久成人国产精品一区二区 | 在线播放亚洲激情 | 91片黄在线观看动漫 | 久久夜色精品国产欧美乱极品 | 999久久久久 | 日韩成人邪恶影片 | 中文在线中文资源 | 国产精品毛片久久久久久久久久99999999 | 三级av网| 五月综合 | 天天操综合网 | 国产精品一区二区三区四区在线观看 | 日韩超碰在线 | 亚洲va天堂va欧美ⅴa在线 | 九九视频免费观看视频精品 | 色婷婷丁香 | 高清视频一区二区三区 | 亚洲高清在线 | 久久爱992xxoo | 日日操天天操夜夜操 | 日日摸日日添夜夜爽97 | 麻豆一区二区 | 久久综合色影院 | 婷婷丁香导航 | 久久免费视频一区 | 菠萝菠萝在线精品视频 | 播五月综合 | av中文字幕av | 成人蜜桃视频 | 婷婷国产一区二区三区 | 亚洲成年片 | 久福利| 国产精品美女999 | 在线日韩三级 | 欧洲一区二区三区精品 | 成人久久18免费网站图片 | av导航福利 | 国产一级大片免费看 | 国产91精品在线观看 | 精品免费一区二区三区 | 久久视频免费观看 | 精品欧美一区二区在线观看 | 成+人+色综合 | 91精品人成在线观看 | 国产精品午夜在线 | 亚洲三级网站 | 免费观看av | 97久久久免费福利网址 | 日韩欧美一区二区三区视频 | 91丨九色丨蝌蚪丨对白 | 99精彩视频在线观看免费 | 免费一级日韩欧美性大片 | 91麻豆精品一区二区三区 | 色视频在线观看 | 欧美另类高清 | 国产精品白丝av | 蜜臀av在线一区二区三区 | 黄网站色成年免费观看 | 亚洲黄色一级大片 | 日韩欧美不卡 | 日韩精品视频免费专区在线播放 | 91精品在线观看视频 | 日韩高清在线一区 | 91在线精品秘密一区二区 | 婷婷色影院| 97在线观看| av在线com| 国产精品国内免费一区二区三区 | av黄色免费看| 99午夜| 久久婷亚洲五月一区天天躁 | 欧美一级片在线观看视频 | 色婷婷www | 中文字幕亚洲精品日韩 | 欧美特一级| 精品中文字幕在线观看 | 正在播放国产一区二区 | 中文字幕专区高清在线观看 | 中文在线中文资源 | 色狠狠综合天天综合综合 | 成年人免费看 | 韩日三级在线 | 天天天色 | 日韩精品一卡 | 欧美久久99| www.在线观看视频 | 91精品国产一区二区在线观看 | 韩国一区二区三区视频 | 一区二区欧美激情 | 国产成人精品一区二区三区在线 | 一区二区三区电影在线播 | 99爱视频在线观看 | 最新久久久 | 欧美a性| 韩国av在线播放 | 成人欧美一区二区三区在线观看 | 亚洲视频在线视频 | 日日夜夜天天综合 | 久久久精华网 | 成人黄色av免费在线观看 | 91黄色在线看| 欧产日产国产69 | 99久久久久成人国产免费 | 91经典在线| 成年人免费在线播放 | 国产一二三四在线观看视频 | 99精品在线直播 | 一区二区三区精品久久久 | 日韩午夜三级 | 免费在线观看黄网站 | 亚洲精品小区久久久久久 | 午夜精品999 | 日韩精品一区二区三区高清免费 | 久久99精品国产麻豆婷婷 | 国产美腿白丝袜足在线av | 91九色国产| 国产视频 久久久 | 国产精品18毛片一区二区 | 久久国产精品99国产精 | 九九有精品 | 久久免费播放视频 | 最新色视频 | 久久人91精品久久久久久不卡 | 福利电影久久 | 99精品黄色片免费大全 | 97成人在线观看视频 | 亚洲高清网站 | 久久天天躁| 国产丝袜制服在线 | 91视频在线观看下载 | 免费观看成年人视频 | 人人爽人人爽人人片av | 91色网址| 亚洲一级国产 | 美女视频久久 | 久久99精品久久久久久 | 青青草在久久免费久久免费 | 亚洲成成品网站 | 久草视频一区 | 99久久er热在这里只有精品15 | 久久国际影院 | 在线免费观看视频一区二区三区 | 韩国av免费观看 | 午夜久久精品 | 激情视频免费在线 | 精品视频999 | 97日日碰人人模人人澡分享吧 | 天天天干天天射天天天操 | 国产亚洲人成网站在线观看 | 激情综合五月网 | 国产色婷婷| 欧美在线观看小视频 | 午夜精品一区二区三区免费视频 | 99在线精品视频 | 久久综合五月天婷婷伊人 | 777久久久| 国产一区二区在线观看视频 | 久久黄色小说 | 99热只有精品在线观看 | 欧美人交a欧美精品 | 中文字幕在线观看你懂的 | 国产精品久久网 | 女人18片 | 国产成人精品午夜在线播放 | 91成人免费在线视频 | 天天综合网在线观看 | 色婷婷婷 | 狠狠操狠狠干天天操 | 亚洲成人免费在线 | 美女网站黄在线观看 | 免费a v观看 | 人人草人 | 在线免费高清视频 | 久久精品www人人爽人人 | www.色综合.com| 国产资源网站 | 久久毛片网 | 91av小视频 | 国产黄色精品网站 | 国产三级在线播放 | 最新国产福利 | 亚洲久草在线视频 | 久操伊人 | 婷婷在线视频观看 | 日本久久高清视频 | 精品久久久久久亚洲综合网站 | 精品视频亚洲 | 日韩精品一区二区久久 | 最新影院 | 亚洲精品影视在线观看 | 中文字幕亚洲精品日韩 | 亚洲精品免费观看视频 | 久艹视频在线免费观看 | 成人国产一区 | 亚洲综合一区二区精品导航 | 久久久男人的天堂 | 天天天天天干 | 久久99亚洲精品久久 | 成人免费毛片aaaaaa片 | 亚洲精品免费观看 | 国产精品一区在线观看你懂的 | 日韩视频在线观看视频 | 亚洲成人动漫在线观看 | 狠狠综合久久av | bbb搡bbb爽爽爽 | av性在线| 国产最新在线视频 | av在线免费在线 | 国产精品免费大片视频 | 中文字幕亚洲高清 | 欧美另类69 | 久久三级视频 | 国产精品一区二区视频 | 黄色福利| 欧美一级电影片 | 国产精品一区二区三区久久 | 午夜的福利 | 亚洲一区二区精品 | 中国一级片在线 | 一级片观看| 九九免费视频 | 免费看wwwwwwwwwww的视频 久久久久久99精品 91中文字幕视频 | 国产高清视频免费在线观看 | japanese黑人亚洲人4k | 日本高清xxxx | 美女视频黄免费的 | 国产在线999 | 黄污视频大全 | 亚洲区另类春色综合小说 | 免费看一级一片 | 久草线 | 国产69久久 | 国产一区二区三区高清播放 | 中文不卡视频在线 | 久久精品久久99 | 久久久久久久av | 色偷偷88888欧美精品久久久 | 国产九九精品 | 亚洲天天看 | 国产精品日韩久久久久 | 亚洲日本一区二区在线 | 亚洲精选国产 | 伊人网站 | 久久97视频| 六月丁香激情综合色啪小说 | 91av色| 日韩av免费一区 | 日本美女xx | 久久99精品久久久久久清纯直播 | 久久视精品 | 天天se天天cao天天干 | 久草在线资源网 | 国产视频一二三 | 97成人在线视频 | 青青河边草观看完整版高清 | 中国美女一级看片 | 日韩中出在线 | 中文不卡视频在线 | 日韩欧美精品在线视频 | 精品一区二区在线免费观看 | 久久精品高清 | 国产一级片不卡 | 久久综合狠狠 | 免费亚洲视频 | 免费h视频 | 91成人短视频在线观看 | 免费的国产精品 | 免费视频久久久久久久 | 午夜精品久久久久久久久久久久 | 欧美久久电影 | 国产色综合天天综合网 | 免费看黄视频 | 麻豆视频在线观看免费 | 国产女v资源在线观看 | 西西www4444大胆在线 | 在线观看视频一区二区三区 | 福利一区在线视频 | 国产精品 久久 | 日韩在线视频看看 | 亚洲国产精品资源 | 国产一级不卡毛片 | 中文在线 | 成人免费观看完整版电影 | 人人澡超碰碰97碰碰碰软件 | 婷婷在线不卡 | 久久黄色影视 | 欧美性一级观看 | 国产精品久久一区二区三区, | 美女福利视频一区二区 | 国产手机视频精品 | 日本精品中文字幕 | 天天天天色射综合 | 亚洲综合视频在线播放 | 国产无区一区二区三麻豆 | 91桃色在线播放 | 久久99精品国产麻豆婷婷 | 中文字幕中文 | 久久久久久久久久久高潮一区二区 | 国产经典三级 | 国产精品久久久久影院日本 | 国产h在线观看 | 国产美女免费视频 | 欧美日韩不卡在线 | 96香蕉视频 | 国产精品免费人成网站 | 最近中文字幕完整视频高清1 | 亚洲 欧美变态 另类 综合 | 91精品小视频 | 久久综合射 | a在线视频v视频 | 亚洲在线网址 | 美女免费黄视频网站 | 在线电影 你懂得 | 久久久国产视频 | 免费a视频在线观看 | 丁香网五月天 | 精品国内| 欧美视频日韩视频 | 探花视频免费观看高清视频 | 久久看片网站 | 天天插天天狠 | 九九九九免费视频 | 伊人影院av | 天天撸夜夜操 | 国产在线视频在线观看 | 亚洲人成精品久久久久 | 精品国产aⅴ麻豆 | 高清免费av在线 | 97在线视频网站 | 久久99国产一区二区三区 | av黄免费看| 欧美精品久久久久久久久久 | 日韩激情网| 日本黄色免费大片 | 国产精品资源 | 99免费国产 | 欧美日韩在线播放一区 | 亚洲三级黄色 | 日韩在线国产精品 | 91麻豆精品国产91久久久无需广告 | 免费视频资源 | 日韩一区二区三区不卡 | 色狠狠综合 | 日韩久久视频 | 一区二区免费不卡在线 | 久草精品在线播放 | 成人性生交大片免费看中文网站 | 粉嫩高清一区二区三区 | 成人在线观看影院 | 91超碰免费在线 | 激情图片qvod | 午夜在线观看影院 | 伊人天天操 | 国产正在播放 | 国产精品国产亚洲精品看不卡 | 午夜精品999| 狠狠色丁香婷婷综合 | 天天天插| 17婷婷久久www | 亚洲日本国产精品 | 天天插天天狠 | 国产成人精品亚洲a | 日韩欧美在线中文字幕 | 日日干精品 | 日本久久片 | 精品一区91 | av综合av | 久久久国产毛片 | 精品久久国产 | 在线精品亚洲一区二区 | 91麻豆国产福利在线观看 | 天天操夜夜操国产精品 | 国产精品久久99综合免费观看尤物 | 在线成人一区二区 | 日韩中文在线视频 | 久久久久亚洲精品成人网小说 | 青青草国产免费 | 麻豆一区在线观看 | 日本激情动作片免费看 | 国产精品一区二区白浆 | 日韩欧美一区视频 | 国产一区二区三区在线免费观看 | 欧美日韩不卡在线视频 | 五月天婷亚洲天综合网鲁鲁鲁 | 人人视频网站 | 欧美日韩中文在线观看 | www.com.黄 | 亚洲欧美视频网站 | 久久精品视频18 | 中文一区二区三区在线观看 | 91香蕉视频污在线 | 中文区中文字幕免费看 | 开心婷婷色 | av在线播放中文字幕 | 97视频人人澡人人爽 | 在线观看黄网站 | 黄色毛片视频免费观看中文 | 日韩一级理论片 | 91久久国产露脸精品国产闺蜜 | 午夜在线免费观看视频 | 天天干天天上 | 国产精品一区专区欧美日韩 | 亚洲国产精品成人女人久久 | 中日韩在线| 久久久五月婷婷 | 久久99免费观看 | 天天操天天射天天操 | 国产精品小视频网站 | 五月婷婷电影网 | 精品国产自在精品国产精野外直播 | 日韩一级成人av | 九色精品 | 免费在线观看成人 | 丁香高清视频在线看看 | 国产精品欧美激情在线观看 | 日本三级久久久 | 在线观看视频国产一区 | 欧美激情xxxx性bbbb | 亚洲三级性片 | 国产精品毛片一区二区在线看 | 午夜精品福利影院 | 91视频电影 | 久久精品久久精品 | 日韩av线观看 | 婷婷综合网 | 懂色av一区二区三区蜜臀 | 日韩免费视频在线观看 | 久久精品这里都是精品 | 天天av资源 | 九九视频网 | 久久国产欧美日韩精品 | 激情在线网址 | 在线成人小视频 | 中文字幕在线观看完整版电影 | 日韩亚洲在线观看 | 亚洲精品无 | 91精品国自产在线 | 亚洲日韩精品欧美一区二区 | 成人久久久精品国产乱码一区二区 | 欧美精品乱码久久久久 | 日韩电影在线观看一区二区三区 | 日韩a欧美 | 国产视频1区2区3区 久久夜视频 | 亚洲国内精品视频 | 国产精品一区二区三区在线 | 国产一区自拍视频 | 免费视频色 | 精品网站999www | 99精品在线免费观看 | 9在线观看免费高清完整版 玖玖爱免费视频 | 日本不卡视频 | 日韩一区精品 | 91豆花在线 | 亚洲精品视频一 | 久久久免费国产 | 国产精品久久久久久久久久不蜜月 | 精品国产乱子伦一区二区 | 色婷婷久久久 | 国产免费三级在线观看 | 有码一区二区三区 | 婷婷亚洲综合五月天小说 | 久久久久亚洲天堂 | 国产99免费 | 91一区二区三区在线观看 | 中文字幕av一区二区三区四区 | 亚洲另类久久 | 视频二区在线视频 | 狠狠激情中文字幕 | 狠狠狠狠狠狠狠 | 久久久久久网站 | 欧美 日韩 性 | 不卡的av在线 | 久香蕉 | 激情六月婷婷久久 | 亚洲精品97 | 日韩免费看视频 | 又污又黄网站 | 青青河边草免费观看完整版高清 | 中文字幕在线播放一区二区 | 久久久久久久久久久久99 | 久久久国产一区二区三区 | 亚洲永久在线 | 在线va视频 | 91爱爱中文字幕 | 人人精久 | 一级一片免费看 | 国产一区二区三区黄 | 精品一区二区av | 涩涩网站在线播放 | 欧美巨大荫蒂茸毛毛人妖 | 国产黄色大片免费看 | 色婷婷狠狠五月综合天色拍 | 99精品在线看 | 国产午夜一区二区 | 亚州国产精品 | 国内精品国产三级国产aⅴ久 | 蜜臀aⅴ精品一区二区三区 久久视屏网 | 欧美国产视频在线 | 99 精品 在线 | 五月婷婷操 | 色婷婷综合久久久久 | 亚洲少妇xxxx | 五月开心网 | 久久视屏网 | 免费视频三区 | 欧美在线视频a | 狠狠的日日 | 色综合天天综合在线视频 | 欧美 日韩 性 | 蜜臀久久99精品久久久无需会员 | 天天色天天搞 | 久久久鲁 | 亚洲丁香日韩 | 91综合视频在线观看 | 国产精品免费久久久久久 | 亚洲精品在线观看av | 亚洲欧美国产精品18p | 日韩精品视频免费看 | 国产精品免费久久 | 国产小视频你懂的 | 久久久久久草 | 中文字幕亚洲在线观看 | 六月丁香激情网 | 97精品超碰一区二区三区 | 人人插人人舔 | 在线激情小视频 | 性色va| 久久在线视频精品 | 精品视频在线播放 | 亚洲国产无 | 17婷婷久久www| 精品国产三级 | 欧美日韩三级在线观看 | 国产美女精品在线 | 国产在线高清视频 | 免费在线观看日韩视频 | 黄色成年片 | 在线99热| 狠狠综合久久av | 亚洲黄色成人 | 国产精品情侣视频 | 欧美极度另类性三渗透 | 免费a视频 | 成人超碰97 | 欧美日韩aa | 欧美在线视频一区二区三区 | 日本在线观看中文字幕无线观看 | 欧美国产精品一区二区 | 国产精品一区二区精品视频免费看 | 日韩欧美91 | 日韩欧美大片免费观看 | 亚洲三级国产 | 狠狠色丁香久久婷婷综 | 欧美一区二区伦理片 | 久久久久久久电影 | 国产欧美精品一区aⅴ影院 99视频国产精品免费观看 | 日韩精品久久久久 | 久久精品这里热有精品 | 免费日韩精品 | 婷婷国产一区二区三区 | 中文字幕精品一区二区三区电影 | 国产精品视频大全 | 狠狠躁日日躁狂躁夜夜躁 | 免费久久精品视频 | 深夜国产福利 | 91在线影视 | 色午夜 | 久久久精品免费观看 | 美女视频黄在线观看 | 在线一级片 | 97激情影院 | 99视频这里有精品 | 怡春院av | 在线小视频你懂的 | 午夜精品999 | 又黄又爽又无遮挡免费的网站 | 亚洲精品一区二区精华 | 最近日本韩国中文字幕 | 久久久免费观看 | av大片网站 | 日韩中文免费视频 | 国内成人精品视频 | 日韩免费在线观看网站 | 国产在线精品一区二区 | 一区二区三区四区久久 | 亚洲精品99久久久久中文字幕 | 欧美日韩亚洲国产一区 | 精品在线观看视频 | 久久久久在线观看 | 国产成人不卡 | 免费精品人在线二线三线 | 欧美一级性生活 | 久久亚洲福利视频 | 午夜精品久久久久久久99热影院 | 亚洲欧美乱综合图片区小说区 | 亚洲特级毛片 | 久久久久久久久久福利 | 欧美日韩在线免费观看 | 五月婷婷操 | 69久久久 | 国产色一区 | 日韩欧美一区二区在线播放 | 香蕉视频在线播放 | 成人亚洲网| 麻豆传媒视频在线播放 | 国产精品av免费 | 正在播放国产91 | 国产视频2区 | 综合铜03| 欧美超碰在线 | 日韩精品视频在线观看网址 | 91成熟丰满女人少妇 | 久久一区二区免费视频 | 亚洲国产精品va在线看 | 狠狠狠狠狠狠天天爱 | 久久综合精品一区 | 蜜桃av观看| 国产99久久久国产精品免费二区 | 亚洲精品一区二区精华 | 免费在线观看污 | 亚洲精品高清视频在线观看 | 激情小说久久 | 91精品视频在线免费观看 | 中文字幕在线国产精品 | 国产在线小视频 | 深夜免费福利视频 | 国产日韩欧美在线观看视频 | 久久久久亚洲精品 | 成人综合免费 | 国产大陆亚洲精品国产 | 久久伊人五月天 | 国产九九热视频 | 成年人在线观看 | 性色视频在线 | 中文超碰字幕 | 日韩精品免费在线 | 亚洲精品456在线播放第一页 | 久久黄色精品视频 | 欧美日本不卡视频 | 久久99视频免费观看 | 欧美综合色在线图区 | 可以免费观看的av片 | 欧美日韩国产精品久久 | 国产精品观看视频 | 色姑娘综合天天 | 91av久久| 视频一区二区免费 | 国产精品高清免费在线观看 | 国产精品成人av在线 | 天天插天天射 | 美女性爽视频国产免费app | 精品久久久免费视频 | 亚洲乱码一区 | 成人啪啪18免费游戏链接 | 国产精品久久久久久一区二区三区 | 色婷婷久久一区二区 | 亚洲三级视频 | 天天激情站 | 国产97在线视频 | 天天玩天天操天天射 | 亚洲精选久久 | 国产精品久久久久久久久久久久午 | 国产精品1024 | 亚洲精品国产综合99久久夜夜嗨 | 蜜桃视频色| 欧美aa一级 | 欧美日韩亚洲第一 | 911国产精品| 色婷婷骚婷婷 | 午夜精品视频福利 | 日韩一三区 | 五月天综合在线 | 日韩区欧美久久久无人区 | 国产一区二区三精品久久久无广告 | 中文字幕在线观看完整 | 天天爱天天爽 | 黄网站a| 91视频在线看| 成人免费观看完整版电影 | 日韩欧美中文 | 国产精品中文久久久久久久 | 丁香久久五月 | 亚洲女同videos | 亚洲aⅴ乱码精品成人区 | 婷婷伊人综合亚洲综合网 | 久久超碰97 | 久久国语露脸国产精品电影 | 亚洲欧美婷婷六月色综合 | 成人91免费视频 | 六月丁香在线视频 | 韩国av三级| 精品国产免费一区二区三区五区 | 色视频在线看 | 国产高清无线码2021 | 亚洲91精品在线观看 | 日韩一区正在播放 | 六月色| 久久久久久久精 | 九九在线国产视频 | 日韩理论片中文字幕 | 久久婷综合 | 国内久久久久 | 黄色在线观看网站 | 久草在线国产 | 国产在线色视频 | 成人在线观看免费视频 | 97免费公开视频 | 玖玖精品在线 | 亚洲综合在线视频 | 久久久久久美女 | 99久久精品国产毛片 | 91丨porny丨九色 | 又爽又黄又无遮挡网站动态图 | 久久影院精品 | 免费精品人在线二线三线 | 午夜视频在线观看一区二区三区 | 国产精品免费一区二区三区在线观看 | 久久免费视频播放 | 精品国产大片 | 99人成在线观看视频 | 韩日成人av | 欧美aa在线 | 一区二区三区在线不卡 | 91九色视频在线观看 | 日日摸日日爽 | 国产精品久久久久久久久久尿 | 一区二区精 | 激情丁香久久 | 国产99一区| 成人免费视频网 | 国产精品18久久久久vr手机版特色 | 久草精品视频 | 午夜视频在线观看欧美 | 国产中文字幕亚洲 | 日韩一级电影在线观看 | 免费av在线 | 久久久久久久网站 | 日韩av美女 | 视频国产一区二区三区 | 天天干天天上 | av在线电影网站 | 91精品国自产在线偷拍蜜桃 | 久久久久久久久综合 | 久久午夜鲁丝片 | 99在线免费视频 | 国产高清视频在线播放一区 | 少妇bbb| av资源在线看 | 日韩免费中文字幕 | 黄色三级免费片 | 日韩午夜剧场 | 国产69久久精品成人看 | 99国产在线视频 | 国产一区播放 | 免费人做人爱www的视 | 亚洲午夜精品电影 | 亚洲高清色综合 | 成人av av在线 | 九九交易行官网 | 免费在线a | 国产在线色视频 | 五月婷婷激情六月 | 天天射网站 | 国产高清久久 | 天天操夜夜拍 | 日韩精品久久久久久久电影99爱 | 久草久热| 曰本三级在线 | 精品久久久久久久久久久久 | 在线免费观看视频 | 国语麻豆 | 成人免费亚洲 | 97av视频在线观看 | 日韩在线中文字幕 | 久久天天躁狠狠躁夜夜不卡公司 | 最新av网址在线观看 | www.夜色321.com| 亚洲精品美女 | 99久久精品无码一区二区毛片 | 91九色九色| 日日夜夜噜噜噜 | 欧美-第1页-屁屁影院 | 久久好看免费视频 | 在线视频免费观看 | 97成人精品视频在线观看 | 最近中文字幕mv免费高清在线 | 免费在线播放av电影 | 精品欧美一区二区三区久久久 | 在线99视频 | 97香蕉超级碰碰久久免费软件 | 四虎www. | 国产不卡一二三区 | 久久综合久久综合久久综合 | 91在线看片| 日日夜夜天天久久 | 国产精品久久久久久久午夜片 | 成人毛片一区二区三区 | 国产无遮挡猛进猛出免费软件 | 国产精品日韩久久久久 | 久久亚洲精品电影 | av色网站 | 成年人在线免费看视频 | 日韩精品一区二区免费 | 国产91精品高清一区二区三区 | 久久兔费看a级 | 国产香蕉视频在线观看 | 一区二区三区免费看 | 五月婷婷深开心 | 久久99国产精品免费 | 亚洲2019精品 | 五月激情五月激情 | 国产精品videossex国产高清 | 亚洲欧美日韩国产一区二区三区 | 日韩三区在线观看 | 97国产在线| 亚洲女同ⅹxx女同tv | 日韩在线短视频 | 久久九九免费 | 99热这里是精品 | 一区二区三区高清在线观看 | 韩日精品在线 | 亚洲一区二区三区miaa149 | 色狠狠综合天天综合综合 | 五月婷婷操 | 一级成人免费视频 | 在线网址你懂得 | 久久久久久久久久久影视 | 免费国产在线观看 | 国产精品com | 中文字幕在线网 | 最新av免费在线 | 在线看成人| 99久久精品电影 | 五月婷婷丁香在线观看 | 91免费观看国产 | 国产精品爽爽久久久久久蜜臀 | avwww在线| 91香蕉国产在线观看软件 | 中文字幕一区二区三区精华液 | 丁香婷婷色月天 | 久久精品国产免费观看 | 免费日韩 精品中文字幕视频在线 | 国产精品18久久久久白浆 | 国产免费视频一区二区裸体 | 国产精品久久久久久久久久久久久久 | 在线观看黄色的网站 | 国产四虎影院 | 国产91电影在线观看 | 黄色免费视频在线观看 | 天天干天天插 | 91在线精品秘密一区二区 | 探花视频免费观看高清视频 | 人人看人人| 8x8x在线观看视频 | www.久久久 | 久久国产精品小视频 |