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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

linux生成地图,ROS中利用V-rep进行地图构建仿真

發(fā)布時(shí)間:2023/12/4 55 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux生成地图,ROS中利用V-rep进行地图构建仿真 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

V-rep中顯示激光掃描點(diǎn)

在VREP自帶的場景中找到practicalPathPlanningDemo.ttt文件,刪除場景中多余的物體只保留靜態(tài)的地圖。然后在Model browser→components→sensors中找到SICK TiM310 Fast激光雷達(dá),拖入場景中:

打開腳本參數(shù)修改器,可以修改雷達(dá)掃描范圍(默認(rèn)為270°),是否顯示雷達(dá)掃描線(true),以及最大探測距離(默認(rèn)為4m)這三個(gè)參數(shù)。地圖大小為5m×5m,我們將雷達(dá)最大探測距離改為2m

將激光雷達(dá)放到地圖中任意位置,點(diǎn)擊仿真按鈕可以看到掃描光線(如果電腦比較卡可以將showLaserSegments這個(gè)參數(shù)設(shè)為false,就不會(huì)顯示掃描線)如下圖所示:

SICK_TiM310激光雷達(dá)在V-rep中是由兩個(gè)視角為135°的視覺傳感器模擬的,這兩個(gè)視覺傳感器可以探測深度信息:

雙擊視覺傳感器圖標(biāo),修改Filter中Coordinate Extraction的參數(shù)與傳感器X/Y方向分辨率一致。X方向默認(rèn)值為135,即會(huì)返回135個(gè)數(shù)據(jù)點(diǎn),這里要改為256。

我們可以在V-rep中繪制出激光掃描圖:在場景中添加一個(gè)Graph,將其設(shè)為顯示處理(Explicit handling),然后添加用戶自定義數(shù)據(jù)x和y:

然后點(diǎn)擊Edit XY graphs按鈕,在彈出的對話框中添加一個(gè)新的曲線。X-value選擇我們之前自定義的數(shù)據(jù)x,Y-value選擇自定義的數(shù)據(jù)y,并去掉Link points選項(xiàng):

將SICK_TiM310_fast的lua腳本代碼修改如下:

if (sim_call_type==sim_childscriptcall_initialization) thenvisionSensor1Handle=simGetObjectHandle("SICK_TiM310_sensor1")

visionSensor2Handle=simGetObjectHandle("SICK_TiM310_sensor2")

joint1Handle=simGetObjectHandle("SICK_TiM310_joint1")

joint2Handle=simGetObjectHandle("SICK_TiM310_joint2")

sensorRefHandle=simGetObjectHandle("SICK_TiM310_ref")

graphHandle= simGetObjectHandle("Graph")

maxScanDistance=simGetScriptSimulationParameter(sim_handle_self,'maxScanDistance')if maxScanDistance>1000 then maxScanDistance=1000 end

if maxScanDistance<0.1 then maxScanDistance=0.1 endsimSetObjectFloatParameter(visionSensor1Handle,sim_visionfloatparam_far_clipping,maxScanDistance)

simSetObjectFloatParameter(visionSensor2Handle,sim_visionfloatparam_far_clipping,maxScanDistance)

maxScanDistance_=maxScanDistance*0.9999scanningAngle=simGetScriptSimulationParameter(sim_handle_self,'scanAngle')if scanningAngle>270 then scanningAngle=270 end

if scanningAngle<2 then scanningAngle=2 endscanningAngle=scanningAngle*math.pi/180simSetObjectFloatParameter(visionSensor1Handle,sim_visionfloatparam_perspective_angle,scanningAngle/2)

simSetObjectFloatParameter(visionSensor2Handle,sim_visionfloatparam_perspective_angle,scanningAngle/2)

simSetJointPosition(joint1Handle,-scanningAngle/4)

simSetJointPosition(joint2Handle,scanningAngle/4)

red={1,0,0}

lines=simAddDrawingObject(sim_drawing_lines,1,0,-1,1000,nil,nil,nil,red)if (simGetInt32Parameter(sim_intparam_program_version)<30004) thensimDisplayDialog("ERROR","This version of the SICK sensor is only supported from V-REP V3.0.4 and upwards.&&nMake sure to update your V-REP.",sim_dlgstyle_ok,false,nil,{0.8,0,0,0,0,0},{0.5,0,0,1,1,1})end

end

if (sim_call_type==sim_childscriptcall_cleanup) thensimRemoveDrawingObject(lines)

simResetGraph(graphHandle)end

if (sim_call_type==sim_childscriptcall_sensing) thenmeasuredData={}if notFirstHere then

--We skip the very first reading

simAddDrawingObjectItem(lines,nil)

showLines=simGetScriptSimulationParameter(sim_handle_self,'showLaserSegments')

r,t1,u1=simReadVisionSensor(visionSensor1Handle)

r,t2,u2=simReadVisionSensor(visionSensor2Handle)

m1=simGetObjectMatrix(visionSensor1Handle,-1)

m01=simGetInvertedMatrix(simGetObjectMatrix(sensorRefHandle,-1))

m01=simMultiplyMatrices(m01,m1)

m2=simGetObjectMatrix(visionSensor2Handle,-1)

m02=simGetInvertedMatrix(simGetObjectMatrix(sensorRefHandle,-1))

m02=simMultiplyMatrices(m02,m2)if u1 thenp={0,0,0}

p=simMultiplyVector(m1,p)

t={p[1],p[2],p[3],0,0,0}for j=0,u1[2]-1,1 do

for i=0,u1[1]-1,1 dow=2+4*(j*u1[1]+i)

v1=u1[w+1]

v2=u1[w+2]

v3=u1[w+3]

v4=u1[w+4]if (v4

p=simMultiplyVector(m01,p)table.insert(measuredData,p[1])table.insert(measuredData,p[2])table.insert(measuredData,p[3])end

if showLines thenp={v1,v2,v3}

p=simMultiplyVector(m1,p)

t[4]=p[1]

t[5]=p[2]

t[6]=p[3]

simAddDrawingObjectItem(lines,t)end

end

end

end

if u2 thenp={0,0,0}

p=simMultiplyVector(m2,p)

t={p[1],p[2],p[3],0,0,0}for j=0,u2[2]-1,1 do

for i=0,u2[1]-1,1 dow=2+4*(j*u2[1]+i)

v1=u2[w+1]

v2=u2[w+2]

v3=u2[w+3]

v4=u2[w+4]if (v4

p=simMultiplyVector(m02,p)table.insert(measuredData,p[1])table.insert(measuredData,p[2])table.insert(measuredData,p[3])end

if showLines thenp={v1,v2,v3}

p=simMultiplyVector(m2,p)

t[4]=p[1]

t[5]=p[2]

t[6]=p[3]

simAddDrawingObjectItem(lines,t)end

end

end

end

endnotFirstHere=true

--stringData = simPackFloatTable(measuredData) -- Packs a table of floating-point numbers into a string

--simSetStringSignal("UserData", stringData)

simResetGraph(graphHandle)for i=1,#measuredData/3,1 dosimSetGraphUserData(graphHandle,'x',measuredData[3*(i-1)+1])

simSetGraphUserData(graphHandle,'y',measuredData[3*(i-1)+2])

simHandleGraph(graphHandle,0)end

end

點(diǎn)擊仿真按鈕,可以在X/Y graph窗口中看到激光掃描結(jié)果如下:

V-rep中的視覺傳感器可以探測到障礙物的坐標(biāo)以及與其距離,上面的X-Y圖就是直接采用坐標(biāo)點(diǎn)畫出的。然而一般激光雷達(dá)只能探測障礙物距離,不能直接獲取其坐標(biāo),我們可以將距離畫成與角度對應(yīng)的極坐標(biāo)圖。將距離數(shù)據(jù)保存為CSV文件,用Mathematica讀入并畫出極坐標(biāo)圖:

ranges = Flatten[Import["C:\\Users\\Administrator\\Desktop\\distance.csv"]];

ListPolarPlot[ranges, DataRange -> {-135 Degree, 135 Degree}]

發(fā)布LaserScan消息

下面的代碼將激光雷達(dá)掃描數(shù)據(jù)按照LaserScan的消息格式發(fā)布出去:

if (sim_call_type==sim_childscriptcall_initialization) thenvisionSensor1Handle=simGetObjectHandle("SICK_TiM310_sensor1")

visionSensor2Handle=simGetObjectHandle("SICK_TiM310_sensor2")

joint1Handle=simGetObjectHandle("SICK_TiM310_joint1")

joint2Handle=simGetObjectHandle("SICK_TiM310_joint2")

sensorRefHandle=simGetObjectHandle("SICK_TiM310_ref")

maxScanDistance=simGetScriptSimulationParameter(sim_handle_self,'maxScanDistance')if maxScanDistance>1000 then maxScanDistance=1000 end

if maxScanDistance<0.1 then maxScanDistance=0.1 endsimSetObjectFloatParameter(visionSensor1Handle,sim_visionfloatparam_far_clipping,maxScanDistance)

simSetObjectFloatParameter(visionSensor2Handle,sim_visionfloatparam_far_clipping,maxScanDistance)

maxScanDistance_=maxScanDistance*0.9999scanningAngle=simGetScriptSimulationParameter(sim_handle_self,'scanAngle')if scanningAngle>270 then scanningAngle=270 end

if scanningAngle<2 then scanningAngle=2 endscanningAngle=scanningAngle*math.pi/180simSetObjectFloatParameter(visionSensor1Handle,sim_visionfloatparam_perspective_angle,scanningAngle/2)

simSetObjectFloatParameter(visionSensor2Handle,sim_visionfloatparam_perspective_angle,scanningAngle/2)

simSetJointPosition(joint1Handle,-scanningAngle/4)

simSetJointPosition(joint2Handle,scanningAngle/4)

red={1,0,0}

lines=simAddDrawingObject(sim_drawing_lines,1,0,-1,1000,nil,nil,nil,red)if (simGetInt32Parameter(sim_intparam_program_version)<30004) thensimDisplayDialog("ERROR","This version of the SICK sensor is only supported from V-REP V3.0.4 and upwards.&&nMake sure to update your V-REP.",sim_dlgstyle_ok,false,nil,{0.8,0,0,0,0,0},{0.5,0,0,1,1,1})end

--Enable an LaserScan publisher:

pub = simExtRosInterface_advertise('/scan', 'sensor_msgs/LaserScan')--After calling this function, this publisher will treat uint8 arrays as string. Using strings should be in general much faster that using int arrays in Lua.

simExtRosInterface_publisherTreatUInt8ArrayAsString(pub) --treat uint8 arrays as strings (much faster, tables/arrays are kind of slow in Lua)

angle_min= -135 * (math.pi/180); --angle correspond to FIRST beam in scan ( in rad)

angle_max= 135 * (math.pi/180) --angle correspond to LAST beam in scan ( in rad)

angle_increment = 270*(math.pi/180)/512 --Angular resolution i.e angle between 2 beams

--sensor scans every 50ms with 512 beams. Each beam is measured in (50 ms/ 512 )

time_increment = (1 / 20) / 512range_min= 0.05range_max= maxScanDistance --scan can measure upto this range

end

if (sim_call_type==sim_childscriptcall_cleanup) thensimRemoveDrawingObject(lines)

simExtRosInterface_shutdownPublisher(pub)end

if (sim_call_type==sim_childscriptcall_sensing) thenmeasuredData={}

distanceData={}if notFirstHere then

--We skip the very first reading

simAddDrawingObjectItem(lines,nil)

showLines=simGetScriptSimulationParameter(sim_handle_self,'showLaserSegments')

r,t1,u1=simReadVisionSensor(visionSensor1Handle)

r,t2,u2=simReadVisionSensor(visionSensor2Handle)

m1=simGetObjectMatrix(visionSensor1Handle,-1)

m01=simGetInvertedMatrix(simGetObjectMatrix(sensorRefHandle,-1))

m01=simMultiplyMatrices(m01,m1)

m2=simGetObjectMatrix(visionSensor2Handle,-1)

m02=simGetInvertedMatrix(simGetObjectMatrix(sensorRefHandle,-1))

m02=simMultiplyMatrices(m02,m2)if u1 thenp={0,0,0}

p=simMultiplyVector(m1,p)

t={p[1],p[2],p[3],0,0,0}for j=0,u1[2]-1,1 do

for i=0,u1[1]-1,1 dow=2+4*(j*u1[1]+i)

v1=u1[w+1]

v2=u1[w+2]

v3=u1[w+3]

v4=u1[w+4]table.insert(distanceData,v4)if (v4

p=simMultiplyVector(m01,p)table.insert(measuredData,p[1])table.insert(measuredData,p[2])table.insert(measuredData,p[3])end

if showLines thenp={v1,v2,v3}

p=simMultiplyVector(m1,p)

t[4]=p[1]

t[5]=p[2]

t[6]=p[3]

simAddDrawingObjectItem(lines,t)end

end

end

end

if u2 thenp={0,0,0}

p=simMultiplyVector(m2,p)

t={p[1],p[2],p[3],0,0,0}for j=0,u2[2]-1,1 do

for i=0,u2[1]-1,1 dow=2+4*(j*u2[1]+i)

v1=u2[w+1]

v2=u2[w+2]

v3=u2[w+3]

v4=u2[w+4]table.insert(distanceData,v4)if (v4

p=simMultiplyVector(m02,p)table.insert(measuredData,p[1])table.insert(measuredData,p[2])table.insert(measuredData,p[3])end

if showLines thenp={v1,v2,v3}

p=simMultiplyVector(m2,p)

t[4]=p[1]

t[5]=p[2]

t[6]=p[3]

simAddDrawingObjectItem(lines,t)end

end

end

end

endnotFirstHere=true

--populate the LaserScan message

scan={}

scan['header']={seq=0,stamp=simExtRosInterface_getTime(), frame_id="SICK_TiM310_ref"}

scan['angle_min']=angle_min

scan['angle_max']=angle_max

scan['angle_increment']=angle_increment

scan['time_increment']=time_increment

scan['scan_time']=simExtRosInterface_getTime() --Return the current ROS time i.e. the time returned by ros::Time::now()

scan['range_min']=range_min

scan['range_max']=range_max

scan['ranges'] =distanceData

scan['intensities']={}

simExtRosInterface_publish(pub, scan)end

注意代碼中發(fā)布的距離是相對于視覺傳感器坐標(biāo)系的,因?yàn)槟P椭幸曈X傳感器坐標(biāo)系與激光雷達(dá)坐標(biāo)系(SICK_TiM310_ref)在X、Y方向的位置是一致的,而Z坐標(biāo)只存在一點(diǎn)高度差異,并不會(huì)影響X-Y平面內(nèi)障礙物相對于SICK_TiM310_ref參考坐標(biāo)系的位置坐標(biāo)。如果這兩個(gè)坐標(biāo)系在X、Y方向存在偏差,就需要將采集到的數(shù)據(jù)點(diǎn)轉(zhuǎn)換到SICK_TiM310_ref坐標(biāo)系中。

另外代碼中變量v4為激光雷達(dá)探測到的距物體的距離,如果在最大掃描范圍內(nèi)沒有探測到物體,則會(huì)返回最大值。由于這個(gè)距離與掃描角度是一一對應(yīng)的,因此要注意table.insert函數(shù)的使用,不能放在下一句的if語句之中,否則在超過最大掃描范圍的地方不會(huì)向列表內(nèi)插入距離數(shù)據(jù),這樣會(huì)造成距離與角度不匹配,可能導(dǎo)致激光圖像出現(xiàn)歪斜。

點(diǎn)擊仿真按鈕,程序運(yùn)行沒問題后在rviz中可以添加LaserScan進(jìn)行查看:

輸入rostopic hz /scan可以查看消息發(fā)布的頻率:

這里有一個(gè)小問題,從上圖可以看出激光雷達(dá)信息發(fā)布的頻率約為43Hz,但是V-rep仿真的時(shí)間步���為50ms,消息發(fā)布的頻率應(yīng)該為20Hz。這是因?yàn)閂-rep中默認(rèn)情況下仿真并不是以實(shí)際時(shí)間在運(yùn)行,在工具欄上點(diǎn)擊real-time mode按鈕,開始實(shí)時(shí)模式:

現(xiàn)在再查看消息發(fā)布的頻率,可以看到頻率和我們設(shè)定的一樣了:

另外,通過rostopic echo /scan命令可以查看消息的具體內(nèi)容(方便我們檢查出可能存在的錯(cuò)誤:我在虛擬機(jī)下運(yùn)行得到的數(shù)據(jù)很奇怪,但是換到實(shí)體系統(tǒng)上就沒有問題):

發(fā)布nav_msgs/Odometry里程計(jì)信息及tf變換

在V-rep中進(jìn)行地圖構(gòu)建仿真時(shí)可以用鍵盤控制機(jī)器人的位置(這里直接簡化為控制激光雷達(dá)),那么機(jī)器人相對于初始時(shí)刻odom坐標(biāo)系的位置和姿態(tài)等信息可以通過航跡推算(使用里程計(jì)或慣性傳感器根據(jù)機(jī)器人運(yùn)動(dòng)學(xué)模型計(jì)算)獲得。然后需要將其按照nav_msgs/Odometry消息的格式包裝好,發(fā)布到/odom話題上;并且還要發(fā)布機(jī)器人坐標(biāo)系base_link相對于odom坐標(biāo)系的tf變換。The nav_msgs/Odometry?message stores an estimate of the position and velocity of a robot in free space.The "tf" software library is responsible for managing the relationships between coordinate frames relevant to the robot in a transform tree. Therefore, any odometry source must publish information about the coordinate frame that it manages.

V-rep腳本中發(fā)布tf變換主要用下面這兩個(gè)函數(shù),區(qū)別在于simExtRosInterface_sendTransform調(diào)用一次只能發(fā)送一對變換,而simExtRosInterface_sendTransforms則可以一次發(fā)送多對變換,函數(shù)參數(shù)是變換的列表:

根據(jù)V-rep中物體的句柄和名稱發(fā)布坐標(biāo)系變換的代碼如下:

functiongetTransformStamped(objHandle, name, relTo, relToName)--This function retrieves the stamped transform for a specific object

t = simExtRosInterface_getTime()

p= simGetObjectPosition(objHandle, relTo)

o= simGetObjectQuaternion(objHandle, relTo)return{

header= {stamp=t, frame_id=relToName},

child_frame_id= name,

transform= {

translation={x=p[1],y=p[2],z=p[3]},

rotation={x=o[1],y=o[2],z=o[3],w=o[4]}

}

}end----------------------------------------------------------------------------------------------------------------------

simExtRosInterface_sendTransforms({getTransformStamped(sensorRefHandle,'SICK_TiM310_ref',baseLinkHandle,'base_link'),

getTransformStamped(baseLinkHandle,'base_link',odomHandle,'odom')})--simExtRosInterface_sendTransform(getTransformStamped(sensorRefHandle,'SICK_TiM310_ref',baseLinkHandle,'base_link')

--simExtRosInterface_sendTransform(getTransformStamped(baseLinkHandle,'base_link',odomHandle,'odom'))

我們在V-rep的腳本程序中向ros系統(tǒng)發(fā)布了坐標(biāo)系之間的變換,有時(shí)可能會(huì)出現(xiàn)許多錯(cuò)誤。為了方便排查錯(cuò)誤,ros提供了一系列tf調(diào)試工具。下面兩種命令都可以以圖形化的方式查看坐標(biāo)系之間的tf關(guān)系:

$ rosrun tf view_frames

$rosrun rqt_tf_tree rqt_tf_tree

打開生成的pdf文件或在彈出的rqt窗口中,可以很清楚的看出里程計(jì)坐標(biāo)系odom,機(jī)器人坐標(biāo)系base_link,以及激光雷達(dá)坐標(biāo)系SICK_TiM310_ref之間的關(guān)系:

tf_echo命令可以用于查看兩個(gè)坐標(biāo)系之間具體的變換關(guān)系(注意輸出的是target_frame相對于reference_frame的關(guān)系):

$ rosrun tf tf_echo reference_frame target_frame

如下圖所示,會(huì)輸出激光傳感器坐標(biāo)系SICK_TiM310_ref相對于機(jī)器人坐標(biāo)系base_link的變換(V-rep模型中這兩個(gè)坐標(biāo)系是重合的):

在/odom話題上發(fā)布nav_msgs/Odometry消息的代碼如下(注意這里直接調(diào)用函數(shù)獲取到相對于odom的位置和姿態(tài),省去了航跡推算的過程。如果在真實(shí)的小車上進(jìn)行測試,就需要根據(jù)里程計(jì)數(shù)據(jù)來推算小車的位置和姿態(tài)等信息,然后再發(fā)送出去):

odomPub = simExtRosInterface_advertise('/odom', 'nav_msgs/Odometry')local pos =simGetObjectPosition(baseLinkHandle, odomHandle)local ori =simGetObjectQuaternion(baseLinkHandle, odomHandle)

odom={}

odom.header= {seq=0,stamp=simExtRosInterface_getTime(), frame_id="odom"}

odom.child_frame_id= 'base_link'odom.pose= { pose={position={x=pos[1],y=pos[2],z=pos[3]}, orientation={x=ori[1],y=ori[2],z=ori[3],w=ori[4]} } }

simExtRosInterface_publish(odomPub, odom)

使用gmapping構(gòu)建地圖

gmaping包是用來生成地圖的,它需要從ROS系統(tǒng)監(jiān)聽多個(gè)Topic,并輸出map。The slam_gmapping node takes in?sensor_msgs/LaserScan?messages and builds a map (nav_msgs/OccupancyGrid)

Subscribed Topics:

Transforms necessary to relate frames for laser, base, and odometry

Laser scans to create the map from

Required tf Transforms:

?→?base_link:usually a fixed value, broadcast periodically by a?robot_state_publisher, or a?tf?static_transform_publisher.

base_link?→?odom:usually provided by the odometry system (e.g., the driver for the mobile base)

Provided tf Transforms:

map?→?odom:the current estimate of the robot's pose within the map frame

使用記錄下的tf以及l(fā)aser scan data構(gòu)建地圖的步驟如下:

1. 鍵盤或手柄控制機(jī)器人在空間中運(yùn)動(dòng)時(shí),使用rosbag記錄激光及tf數(shù)據(jù)包,記錄完成后按Ctrl+C鍵結(jié)束。

$ rosbag record -O my_scan_data /scan /tf

2. 設(shè)置參數(shù),確保在任何節(jié)點(diǎn)使用前use_sim_time參數(shù)為true。我們重播一個(gè)記錄歷史文件時(shí),里面記錄的是歷史時(shí)間,所以我們需要告訴ROS從現(xiàn)在起開始啟用模擬時(shí)間。This basically tells nodes on startup to use simulated time (ticked here by rosbag) instead of wall-clock time (as in a live system). It avoids confusing time-dependent components like?tf, which otherwise would wonder why messages are arriving with timestamps far in the past.?關(guān)于時(shí)鐘問題可以參考

Normally, the ROS?client libraries?will use your computer's system clock as a time source, also known as the "wall-clock" or "wall-time" (like the clock on the wall of your lab). When you are running a simulation or playing back logged data, however, it is often desirable to instead have the system use a simulated clock so that you can have accelerated, slowed, or stepped control over your system's perceived time. For example, if you are playing back sensor data into your system, you may wish to have your time correspond to the timestamps of the sensor data.

$ rosparam set use_sim_time true

下圖是use_sim_time參數(shù)為false時(shí)的情況:

設(shè)置use_sim_time為true,rosbag回放開始后ROS Time與Bag Time一致:

3.?運(yùn)行slam_gmapping節(jié)點(diǎn),它將在scan主題上監(jiān)聽激光掃描數(shù)據(jù)并創(chuàng)建地圖(可以在命令行中設(shè)置建圖參數(shù):比如地圖分辨率、粒子數(shù)目、迭代次數(shù)、地圖更新間隔等參數(shù))

$ rosrun gmapping slam_gmapping scan:=scan _xmin:=-2.5 _xmax:=2.5 _ymin:=-2.5 _ymax:=2.5 ...

比較重要的幾個(gè)參數(shù)有:

particles (int, default: 30) gmapping算法中的粒子數(shù),因?yàn)間mapping使用的是粒子濾波算法,粒子在不斷地迭代更新,所以選取一個(gè)合適的粒子數(shù)可以讓算法在保證比較準(zhǔn)確的同時(shí)有較高的速度。

minimumScore (float, default: 0.0) 最小匹配得分,這個(gè)參數(shù)很重要,它決定了對激光的一個(gè)置信度,越高說明對激光匹配算法的要求越高,激光的匹配也越容易失敗而轉(zhuǎn)去使用里程計(jì)數(shù)據(jù),而設(shè)的太低又會(huì)使地圖中出現(xiàn)大量噪聲,所以需要權(quán)衡調(diào)整。在V-rep仿真中里程計(jì)數(shù)據(jù)是直接通過函數(shù)獲取的,沒有誤差,因此可以將這個(gè)值調(diào)高一點(diǎn),讓地圖的匹配更多依賴?yán)锍逃?jì)數(shù)據(jù)。

lskip(int, default: 0)的值如果為0,則所有的激光數(shù)據(jù)幀都會(huì)用來進(jìn)行scan matching,如果lskip的值大于0則會(huì)跳過幾幀來進(jìn)行scan matching。有時(shí)激光數(shù)據(jù)的噪聲會(huì)比較大,對所有數(shù)據(jù)幀進(jìn)行匹配的效果可能會(huì)不好,這時(shí)可以加大lskip的值。

...

slam_gmapping節(jié)點(diǎn)用到的參數(shù)相當(dāng)多,有很多參數(shù)需要在實(shí)際中測試多次來確定其值。如果參數(shù)太多在命令行中輸入會(huì)不太方便,可以寫成launch文件來運(yùn)行:

4.?在新終端中啟動(dòng)bag包回放,將數(shù)據(jù)提供給slam_gmapping節(jié)點(diǎn)

$ rosbag play my_scan_data.bag

在數(shù)據(jù)回放過程中也可以打開rviz進(jìn)行查看:啟動(dòng)rviz,在左下方點(diǎn)擊add按鈕,然后選擇map,創(chuàng)建一副空地圖;接著制定rviz的topic為/map可以監(jiān)聽到地圖數(shù)據(jù)。下圖是rosbag回放過程中建圖的動(dòng)態(tài)過程:

5. 使用map_server生成地圖

$ rosrun map_server map_saver -f my_map

使用map_saver命令后會(huì)生成兩個(gè)文件。my_map.pgm是地圖的PGM格式的圖片,PGM格式是便攜式灰度圖像格式(portable graymap file format)。my_map.yaml文件描述地圖元數(shù)據(jù)。

my_map.yaml文件內(nèi)容如下:

image: my_map.pgm

resolution: 0.050000

origin: [-12.200000, -12.200000, 0.000000]

negate: 0

occupied_thresh: 0.65

free_thresh: 0.196

image:圖像文件的路徑;可以是絕對的,或相對于YAML文件的位置

resolution:地圖的分辨率,米/像素

origin:地圖中左下角像素的位置和姿態(tài)(x,y,yaw),偏航為逆時(shí)針旋轉(zhuǎn)(yaw = 0表示無旋轉(zhuǎn))

occupancy_thresh:概率大于該閾值的像素被認(rèn)為完全占用

free_thresh:概率小于該閾值的像素被認(rèn)為是完全自由的

negate:“白/黑”對應(yīng)“自由/占用”語義是否應(yīng)該被反轉(zhuǎn)

最終生成的地圖如下圖所示,圖中越亮/白的像素表示沒有障礙物(free)的概率越大,越暗/黑的像素表示被障礙物占據(jù)(occupied)的概率越大,灰色表示狀態(tài)未知。

用屏幕測量工具測量圖片上的像素間的距離,再乘以分辨率可以得到實(shí)際尺寸。例如,左下角點(diǎn)和右下角點(diǎn)的像素間距測量結(jié)果為102(可能點(diǎn)取的不精確),對應(yīng)的實(shí)際距離為5.1m,這與真實(shí)地圖大小一致。

6. 在建圖結(jié)束后不要忘記重置use_sim_time參數(shù)

$ rosparam set use_sim_time false

總結(jié)

以上是生活随笔為你收集整理的linux生成地图,ROS中利用V-rep进行地图构建仿真的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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

天天操天天干天天操天天干 | 91成人精品在线 | 色播五月婷婷 | 日韩精品中字 | 精品久久久久久久久久久久久久久久久久 | 亚州精品天堂中文字幕 | 国产97视频在线 | 久久精品视频中文字幕 | 丁香综合激情 | 国产精品久久久久免费a∨ 欧美一级性生活片 | 在线看v片 | 亚洲视频专区在线 | 五月婷婷,六月丁香 | 国产传媒一区在线 | 成在线播放 | 国产成人精品久久久 | 97自拍超碰 | 美女黄频 | 国产精品第54页 | 黄网站色| 美女视频a美女大全免费下载蜜臀 | 999国内精品永久免费视频 | 97精品伊人| 日韩a在线观看 | 最新国产在线视频 | 欧美另类tv | 色综合在 | 欧美日韩69| 一级片视频在线 | 国产乱对白刺激视频在线观看女王 | 91丨九色丨国产在线 | 一级成人在线 | 五月天色婷婷丁香 | 午夜视频在线观看一区二区三区 | 色婷婷视频在线 | 午夜久久影院 | 麻豆视频在线看 | 亚洲欧美国产视频 | 国产中出在线观看 | 成年人免费在线观看 | 久久免费精品国产 | 午夜丰满寂寞少妇精品 | 久草在线高清视频 | 久久毛片视频 | 欧美日韩破处 | 91亚洲精品在线观看 | 夜夜操天天干 | 久久一视频 | 久久久国产精品成人免费 | 亚洲高清国产视频 | 国产在线精品区 | 国产精品欧美久久久久无广告 | 麻豆影视在线观看 | 五月综合网站 | 欧美亚洲精品在线观看 | 久久精品99国产精品 | 色播六月天 | 免费网站v| japanesefreesexvideo高潮| 精品主播网红福利资源观看 | 91尤物国产尤物福利在线播放 | 色婷婷av一区 | 日韩欧美视频在线免费观看 | 成人在线免费小视频 | 国产精品综合久久久久久 | 国产aa免费视频 | 欧美日本在线视频 | 久久草草影视免费网 | 人人插人人搞 | 99精品电影 | 国产正在播放 | 日韩电影在线观看一区 | 狂野欧美激情性xxxx | 午夜精品成人一区二区三区 | 狠狠的操| 不卡av在线| 日韩免费视频一区二区 | www黄com| 91精品办公室少妇高潮对白 | 99精品电影| 亚洲精品91天天久久人人 | 欧美国产日韩一区二区三区 | 日日干夜夜草 | 天堂av高清| 日韩中文字幕网站 | 亚洲精品国产精品国自产观看浪潮 | 在线观看免费国产小视频 | 亚洲精品午夜久久久久久久久久久 | 精品一区二三区 | 久久久久久久久免费 | 九九电影在线 | 日韩久久久久久久久久 | 天天色天天上天天操 | 在线观看mv的中文字幕网站 | 日韩专区中文字幕 | 在线观看黄av | 99免在线观看免费视频高清 | 久久久久福利视频 | 在线v片| 中文字幕成人网 | 亚洲精品玖玖玖av在线看 | 欧美日韩视频网站 | 国产91精品看黄网站在线观看动漫 | 国产精品视频在线看 | 久久亚洲私人国产精品va | 婷婷成人亚洲综合国产xv88 | 久久好看免费视频 | 亚洲欧洲国产日韩精品 | 欧美二区在线播放 | 久久艹99| 国产精品情侣视频 | 亚州国产精品久久久 | 福利视频区 | 久艹在线观看视频 | 91精品999| 日韩免费三区 | 欧美另类成人 | 精品久久久久久亚洲综合网 | 国产视频日本 | 麻豆小视频在线观看 | 日韩欧美99| 91探花视频 | 欧美精品一区二区蜜臀亚洲 | 免费v片 | 成人精品视频 | 久久尤物电影视频在线观看 | 最新午夜 | 九九九九精品九九九九 | 欧美色久| 亚洲免费成人 | 成人久久亚洲 | 国产中文自拍 | 日韩狠狠操 | 国产99久久九九精品免费 | 久久精品视频在线 | 久草视频在线播放 | 亚洲一区美女视频在线观看免费 | av三级在线播放 | 免费网址你懂的 | 97精品国产| 婷婷色狠狠 | 99中文在线 | 中文字幕成人一区 | 久久久国产一区 | 99r在线观看| 一区二区伦理电影 | 97视频资源| 欧洲一区二区三区精品 | 婷婷六月综合网 | 日本精品视频在线观看 | 天堂av色婷婷一区二区三区 | 精品国产乱码久久久久久天美 | 国产精品夜夜夜一区二区三区尤 | 天天干天天干天天色 | 欧美性另类 | 婷婷色影院 | 天天插视频 | 久久免费视频精品 | 黄色的片子 | 一本色道久久综合亚洲二区三区 | 亚洲一区欧美激情 | v片在线播放 | 91桃色在线免费观看 | 伊人久久影视 | 精品视频久久久久久 | 欧美日韩亚洲国产一区 | 丝袜少妇在线 | 香蕉视频在线观看免费 | 欧美国产三区 | 欧美巨乳波霸 | 日免费视频 | 欧美激情视频一区二区三区 | 中文字幕成人在线观看 | 欧美精品久久久久久久久免 | 国产精品av一区二区 | 国产精品国产三级国产不产一地 | 国产精品一区二区三区久久久 | 亚洲一区二区黄色 | 国产成人精品日本亚洲999 | 精品黄色视 | 亚洲国产成人精品在线 | 成人九九视频 | 手机成人在线 | 免费在线观看av网址 | 四月婷婷在线观看 | 国产精品精品久久久 | 色妞色视频一区二区三区四区 | 日韩在线视频国产 | 亚洲视频 视频在线 | 亚洲精品视频免费在线 | 在线蜜桃视频 | 国产精品欧美久久久久三级 | 中文字幕二区三区 | 麻豆视频在线免费看 | 亚洲精品国产成人 | 91在线在线观看 | 免费在线激情电影 | 国产美女精品久久久 | 五月婷婷深开心 | 婷婷丁香综合 | 日韩有码欧美 | 久久99精品国产麻豆婷婷 | 99精品视频播放 | 天无日天天操天天干 | 欧美日韩在线观看视频 | 狠狠激情中文字幕 | 国产精品国产三级国产aⅴ入口 | 午夜免费在线观看 | 国产清纯在线 | 午夜久久福利影院 | 国产视频91在线 | 手机av电影在线 | 国产做aⅴ在线视频播放 | 青青河边草手机免费 | 久久综合色综合88 | 国产精品久久久久久久久久久久久 | 五月激情五月激情 | 亚洲三级毛片 | 日韩中午字幕 | 婷婷在线播放 | 日韩精品在线视频 | 国产麻豆剧果冻传媒视频播放量 | 久久99精品国产91久久来源 | 中文字幕乱偷在线 | 黄污视频大全 | 日本黄色免费播放 | 国产黄色网 | 亚洲最大免费成人网 | 天天天干天天天操 | 欧美日韩国内在线 | 四虎在线视频 | www.夜夜| jizz欧美性9 国产一区高清在线观看 | 成人三级av | 成年人视频在线免费观看 | 国产精品中文字幕在线播放 | 国产一区影院 | 国产在线一区二区 | 在线观看视频一区二区三区 | 国产高清久久久 | h视频日本 | 国产视频中文字幕 | 色综合天天综合在线视频 | 草久在线播放 | 亚洲91中文字幕无线码三区 | 一级黄色毛片 | 四虎永久网站 | 中文字幕av有码 | 奇米影视777影音先锋 | 国产精品久久久久久久av电影 | 久草99| 国产一级一片免费播放放a 一区二区三区国产欧美 | 国产精品99久久久久久久久久久久 | 久久免费观看少妇a级毛片 久久久久成人免费 | 欧美日韩中文国产 | 久久精品亚洲精品国产欧美 | 99国产在线视频 | 精品久久久久久亚洲综合网站 | 成年人看片网站 | 国产中文字幕在线看 | 成年人视频在线免费 | 日韩影片在线观看 | 狠狠色丁香久久婷婷综合_中 | 伊色综合久久之综合久久 | 91在线免费公开视频 | 欧美韩国日本在线观看 | 国产成人精品久 | 国产这里只有精品 | 狠狠色噜噜狠狠 | 在线观看一区 | 免费av网站在线 | www99精品 | 亚洲午夜久久久综合37日本 | 蜜臀aⅴ国产精品久久久国产 | 狠狠网站| 久久精品国产精品亚洲 | 又黄又刺激又爽的视频 | 午夜精品三区 | 成人av在线电影 | 免费在线观看日韩视频 | 在线观看岛国av | 国产精品毛片完整版 | 久草在线视频精品 | 久久久久久久久久久久av | 欧美精品久久久久久久久老牛影院 | 在线黄网站 | 国产成人资源 | av激情五月 | 免费情缘| 国产小视频在线观看免费 | 国产精品乱码久久 | 国产另类xxxxhd高清 | 成人久久久久久久久久 | 久久蜜臀一区二区三区av | 亚洲精品影院在线观看 | 国产一区二区日本 | 国产xxxx | 91丨九色丨丝袜 | 国产一级精品视频 | 亚洲综合日韩在线 | 99免费| 日本乱视频 | 成人97视频一区二区 | 久免费视频 | 国产中文在线视频 | 久久久久久久99 | 99久久婷婷国产 | 亚洲精品视频在线观看免费 | 国产色资源 | 国产亚洲一级高清 | 久久大片 | 超碰精品在线 | www天天操 | 中文av一区二区 | 在线观看亚洲电影 | 婷婷激情在线观看 | 在线观看亚洲国产 | 日韩高清久久 | 国产一区av在线 | 最新影院 | 日韩免费观看av | 欧美日韩高清在线观看 | 国产又黄又爽无遮挡 | www操操| 国产精品尤物视频 | 蜜臀av一区二区 | 国产精品久久久久久久久久久久午夜 | 97超碰人人模人人人爽人人爱 | 亚洲毛片在线观看. | 国产123av| 九九热精品视频在线观看 | 91热爆视频 | 久青草视频在线观看 | 欧美亚洲精品在线观看 | 国产一区二区三区免费视频 | 久久久国产精品成人免费 | 色99色| av中文字幕不卡 | 亚洲天天摸日日摸天天欢 | 美女免费视频一区二区 | 日韩中文字幕免费在线观看 | 免费看一级黄色大全 | 亚洲自拍偷拍色图 | 精品久久1 | 99精品久久久 | 亚洲精品国产精品国自产 | 日韩视频1区 | 日本黄色免费大片 | 九九国产精品视频 | 91精品一区国产高清在线gif | 久久综合加勒比 | 日韩欧美高清不卡 | 91精品色| 五月婷婷激情六月 | 国产在线传媒 | 精品国产乱码久久久久久浪潮 | 欧美日韩视频 | 97超碰在线久草超碰在线观看 | 麻豆精品传媒视频 | 国产日韩欧美视频 | 亚洲一二三在线 | 欧美午夜性 | 亚洲伊人网在线观看 | 亚洲成av人片在线观看香蕉 | 免费中文字幕视频 | 五月天婷亚洲天综合网鲁鲁鲁 | 亚洲伊人av| 免费污片| 狠狠操在线 | 97在线观看免费高清 | 天天操天 | 精品欧美一区二区在线观看 | 91在线九色 | 国产免费成人 | 综合在线观看色 | 日韩电影在线视频 | 亚洲精品乱码久久久久久蜜桃不爽 | 久草视频在| 日本不卡久久 | 激情综合色综合久久综合 | 国产很黄很色的视频 | 日韩在线视频线视频免费网站 | 国产精品久久久久免费观看 | 国产美女精品视频 | 国产精品无 | 亚洲视频综合在线 | 97精品国产97久久久久久久久久久久 | 日韩一区正在播放 | 天天干,夜夜操 | 欧美一区日韩精品 | 日韩精品2区 | 欧美日韩高清国产 | 免费亚洲一区二区 | 91精品久久久久久久久久久久久 | 99九九99九九九视频精品 | 亚洲丝袜一区二区 | 国产精品女主播一区二区三区 | 午夜精品久久久久久久99 | www91在线观看 | 成人免费观看av | 国产剧情在线一区 | 丰满少妇在线观看资源站 | 中文字幕在线观看免费 | 日韩欧美高清视频在线观看 | 天天操综合网站 | 欧美激情视频免费看 | 免费在线观看黄 | 欧美极品少妇xbxb性爽爽视频 | 亚洲伊人婷婷 | 天天射天天射 | 五月天综合网站 | 天天操天天色综合 | 蜜桃视频成人在线观看 | 欧美日韩免费网站 | 婷婷在线色 | 天天做天天爱天天爽综合网 | 亚洲a色| 久二影院 | 91精品视频在线观看免费 | 国产精在线 | 一区二区三区在线观看免费 | 精品在线观 | 色婷婷成人 | 欧美福利视频一区 | 色婷婷a | 日韩久久精品 | 欧美日韩免费网站 | 9在线观看免费高清完整版在线观看明 | 日本xxxx.com | 激情偷乱人伦小说视频在线观看 | 蜜臀久久99精品久久久无需会员 | 国产二区免费视频 | 久久久99精品免费观看app | 中文在线亚洲 | 国产经典 欧美精品 | 亚洲国产高清视频 | 91在线小视频 | 在线观看成人网 | 最新日本中文字幕 | 黄色精品在线看 | 懂色av一区二区三区蜜臀 | 黄色不卡av | 天天操伊人| 色婷婷导航 | 西西大胆啪啪 | 久久国产精品成人免费浪潮 | 在线激情av电影 | 午夜少妇av | 99久久精品无码一区二区毛片 | 国产日韩视频在线播放 | 激情网第四色 | 久久国产电影院 | 色狠狠狠 | 最近日本mv字幕免费观看 | 色老板在线视频 | 伊人影院得得 | 久久噜噜少妇网站 | 狠狠干夜夜爽 | 亚洲乱码久久 | 国产91精品一区二区绿帽 | 国产精品va视频 | 91丨九色丨高潮 | 国产精品中文字幕在线 | 精品久久久久久久久久久久久久久久久久 | 精品国产伦一区二区三区观看方式 | 日韩精品一区二区久久 | 久久亚洲私人国产精品 | 久久色在线观看 | 天堂资源在线观看视频 | 欧美老女人xx | 亚洲精品网站 | 日韩精品一区在线观看 | 免费视频三区 | 色94色欧美 | 国产成人a亚洲精品 | 日韩电影在线看 | 国产精品对白一区二区三区 | 亚洲专区路线二 | 久久久久亚洲精品男人的天堂 | 99精品视频播放 | 91免费高清在线观看 | 国产精国产精品 | 久久久香蕉视频 | 天天干天天射天天插 | 久久国产精品区 | 亚洲精品视频大全 | 久久久久观看 | 91c网站色版视频 | 欧美成人精品在线 | 色午夜影院 | 麻豆国产精品视频 | 手机av在线免费观看 | 国产精品99久久久久久人免费 | 91超在线 | 91天天操 | 91爱爱网址| 91香蕉视频 | 国产福利小视频在线 | 福利区在线观看 | 99精品免费久久久久久久久日本 | 黄色软件网站在线观看 | 狠狠色香婷婷久久亚洲精品 | 久久艹中文字幕 | 久久久国产一区二区三区 | 久久精品9 | 国产精品18毛片一区二区 | 国产福利一区在线观看 | 国产伦理一区 | 涩涩伊人 | 久久久久综合视频 | 成人在线免费视频观看 | 国产成人精品国内自产拍免费看 | 99国产免费网址 | 日本 在线 视频 中文 有码 | 国产高清免费在线播放 | 日本不卡一区二区 | 99精品国产在热久久下载 | 欧美大片aaa| 色诱亚洲精品久久久久久 | 成人av一区二区三区 | 中文字幕电影在线 | 91福利区一区二区三区 | 久草在线播放视频 | 国产精品久久久久久久7电影 | 高潮毛片无遮挡高清免费 | 中文字幕在线资源 | 99综合电影在线视频 | 日韩欧美一区二区三区在线观看 | 国产精品一区二区 91 | 久久香蕉电影 | 日本丶国产丶欧美色综合 | 女人高潮特级毛片 | 日韩视频中文字幕 | www·22com天天操 | 精品国产免费看 | 一区二区三区日韩在线观看 | 亚洲日日夜夜 | 精品国产一二三四区 | 欧美一区二区三区在线播放 | 91爱在线| 亚洲狠狠婷婷 | 国产久草在线 | 久久精品欧美日韩精品 | 国产毛片aaa | 久久一及片 | 国产精品免费一区二区三区 | 人人揉人人揉人人揉人人揉97 | 久久精品在线免费观看 | 成人午夜片av在线看 | 国产精品成人一区二区 | 亚洲国产日韩欧美在线 | 国产精品黄色在线观看 | 97影视| 久久99精品国产99久久 | 九九九九精品九九九九 | 亚洲国产网站 | 一区二区三区中文字幕在线观看 | 日日干天天插 | 一区二区三区在线观看免费视频 | 99免费在线播放99久久免费 | 国产精品永久久久久久久www | 日韩一区视频在线 | 亚洲精品国产日韩 | 九九免费在线观看视频 | 亚洲成色777777在线观看影院 | 久久人91精品久久久久久不卡 | 日产中文字幕 | 99亚洲国产精品 | 久久久久久久电影 | 一本一本久久a久久精品综合小说 | 97国产大学生情侣白嫩酒店 | 99人成在线观看视频 | www.人人草| 精品一区中文字幕 | 美女中文字幕 | 亚洲精品一区二区三区高潮 | 色欧美成人精品a∨在线观看 | 成人免费网站在线观看 | 中文乱幕日产无线码1区 | 亚洲黄色激情小说 | 成人9ⅰ免费影视网站 | 亚州性色 | 欧美日本日韩aⅴ在线视频 插插插色综合 | 91 中文字幕 | 中文字幕在线观看视频一区 | 最新中文在线视频 | 91日韩精品 | 92精品国产成人观看免费 | 超碰人人91| 天天综合视频在线观看 | 在线免费观看视频你懂的 | 国产1区2区3区精品美女 | 欧美综合色 | 欧美性色19p| 欧美成人中文字幕 | www.大网伊人 | 在线黄色av| 激情六月婷婷久久 | 久久久免费网站 | 国产精品免费一区二区三区在线观看 | 99久久精品费精品 | 国产精品一区二区三区视频免费 | 欧美精品一区二区在线播放 | 日日综合 | 国产成人精品综合久久久久99 | 91看片麻豆 | 人人干人人模 | 国产原创在线观看 | 久久成| 午夜电影久久 | 国产视频日韩 | 美女国产精品 | 久久精品视频在线看 | 在线观看的黄色 | 麻花传媒mv免费观看 | 91麻豆精品久久久久久 | 国产在线观看国语版免费 | 日本黄色大片免费看 | 一级黄色片在线观看 | 99热精品国产一区二区在线观看 | 91在线一区二区 | 91女神的呻吟细腰翘臀美女 | 丝袜少妇在线 | 99久久久国产精品免费99 | 日韩精品久久久免费观看夜色 | 国产一区欧美日韩 | 久久精品高清 | 亚洲视频资源在线 | 97理论电影 | av免费观看高清 | 久久久国产一区二区三区四区小说 | 欧美日韩高清一区二区 | 狠狠色狠狠色综合系列 | 麻豆免费精品视频 | 国产不卡一区二区视频 | 色婷婷综合在线 | 日韩av在线免费看 | 在线视频18在线视频4k | 人人超在线公开视频 | 国产在线精品观看 | 国产男女无遮挡猛进猛出在线观看 | 视频在线观看入口黄最新永久免费国产 | 日韩欧美在线观看 | 在线视频中文字幕一区 | 粉嫩av一区二区三区四区在线观看 | 成人九九视频 | 黄色毛片一级 | 亚洲精品66 | 97成人精品视频在线播放 | 国产天天爽 | 久久激情日本aⅴ | 中文av字幕在线观看 | 久久久人 | 九九热只有这里有精品 | 人人舔人人射 | 国产免费一区二区三区最新 | 香蕉视频国产在线 | 久久成人综合 | www.色国产 | 久久中文精品视频 | 精品在线一区二区 | 天天添夜夜操 | 日韩视频免费观看高清完整版在线 | 国内精品视频久久 | 一区二区三区免费在线观看 | 久久综合国产伦精品免费 | 99热最新在线 | 欧美黄色免费 | 伊人成人激情 | 日韩69视频 | 精品久久久久久一区二区里番 | 国产精品com| 国产色就色 | 国产精品久久久久影院 | 99精品视频在线看 | 麻豆视频在线免费看 | 六月丁香在线观看 | 成人av网站在线播放 | www激情com | 婷婷综合成人 | 国产99久久| 在线免费看片 | 美女久久99 | 激情文学综合丁香 | 国产三级在线播放 | 国产精品99精品 | 国产精品男女啪啪 | 亚洲免费色 | 国产黄色免费电影 | 久久综合五月天 | www.av免费| 97热视频| 操操色| 国产精品久久久久久久午夜片 | 久久手机免费视频 | 亚洲热视频 | 在线观看香蕉视频 | 91香蕉久久 | 天天做天天爱天天爽综合网 | 国产资源网 | 国产精品h在线观看 | 国产一级视屏 | 国产福利一区二区三区视频 | 夜色在线资源 | 久久99久久99精品 | 天天爽天天爽天天爽 | 在线观看国产日韩欧美 | 午夜电影av| 国产精品久久久久久久久免费 | 久久精品成人欧美大片古装 | 欧美性色综合网 | 黄a网站 | 中文字幕网站 | 久久中文欧美 | 国产视频在线观看一区 | 99久久影视 | 精品视频在线免费 | 日本午夜免费福利视频 | 黄色视屏av| 久久久免费看视频 | 狠狠操91| 一区二区三区在线播放 | 国产亚洲视频在线观看 | 精品美女久久久久久免费 | 久久久综合九色合综国产精品 | 国产免费观看久久 | 国产高清视频在线免费观看 | 午夜av免费看| 五月天久久久 | 欧美久久九九 | 国产不卡高清 | 精品av网站 | 亚洲免费永久精品国产 | 国产精品一区免费观看 | 99久久精品国产亚洲 | 国产破处视频在线播放 | 激情欧美xxxx | 天天爽天天摸 | 久久精品小视频 | 日韩大片在线播放 | 久久综合欧美精品亚洲一区 | 久久成人综合视频 | 一区在线观看 | 99久热在线精品视频观看 | 一本一本久久a久久精品综合小说 | 国产精品久久综合 | 日韩电影一区二区在线观看 | av中文字幕第一页 | 欧美在线观看视频一区二区 | 99精彩视频在线观看免费 | 人人干人人艹 | 亚洲欧美在线观看视频 | 欧美激情精品久久 | 欧美精品亚州精品 | 日韩一区在线免费观看 | 午夜av一区 | 伊人小视频 | 免费一级片视频 | 亚州欧美精品 | 亚洲久在线| 狠狠综合| 日日夜夜亚洲 | 国产不卡视频在线播放 | 午夜体验区 | 日韩深夜在线观看 | 久久香蕉电影网 | 精品国产一区二区三区久久久久久 | 国产在线精品区 | 最近中文字幕高清字幕在线视频 | 欧美日韩中 | 99自拍视频在线观看 | 亚洲欧美日韩一区二区三区在线观看 | 亚洲综合一区二区精品导航 | 一区二区三区电影在线播 | 色 免费观看 | 亚洲国产97在线精品一区 | 成人毛片在线视频 | 国产永久网站 | 草免费视频 | 亚洲干视频在线观看 | 国产99亚洲 | 夜夜视频 | 日韩精品中文字幕在线播放 | 中文字幕传媒 | 免费av黄色 | 日韩av免费在线电影 | 欧美大片www | 91av资源在线 | 国产免费高清 | 中文字幕日本特黄aa毛片 | 成人av在线资源 | 成人小电影在线看 | 一区二精品 | 成人免费色 | 波多野结衣视频在线 | 久久亚洲福利视频 | 日韩在线在线 | 婷婷去俺也去六月色 | 国产精品久久电影观看 | 久久人91精品久久久久久不卡 | 五月婷婷开心中文字幕 | 黄色av一区二区三区 | 国产精品资源网 | 在线观看久久 | 在线观看免费一级片 | 天天搞夜夜骑 | 亚洲一级电影视频 | 久久理论电影网 | 日韩在线观看 | 激情综合五月天 | 亚洲四虎影院 | 久要激情网 | 日韩av在线资源 | 国产精品一级视频 | 久久久久久久久免费 | 国产一级精品在线观看 | av免费网站观看 | 国产高清精| 国产丝袜在线 | 久久国产精品免费观看 | av电影在线播放 | 亚洲少妇自拍 | 丁香激情综合国产 | 成人免费网视频 | 免费亚洲精品视频 | 99亚洲精品在线 | 欧美视频一区二 | 在线a视频免费观看 | 久久九九网站 | 精品国产成人 | 久久激五月天综合精品 | av免费在线免费观看 | 91精品一区二区三区久久久久久 | 久久久精品久久日韩一区综合 | 夜夜躁狠狠躁日日躁 | 国产一级片视频 | 免费a v在线| 国产亚洲va综合人人澡精品 | 亚洲乱码精品久久久久 | 日日干美女 | 麻豆果冻剧传媒在线播放 | 男女啪啪网站 | 在线免费中文字幕 | 视频成人 | 久久视奸| 午夜精品电影 | 免费福利在线观看 | 久久深夜 | 天天干天天搞天天射 | 91丨九色丨国产在线观看 | 亚洲综合欧美日韩狠狠色 | 成人av电影网址 | 日韩极品在线 | 最近中文国产在线视频 | 婷婷在线观看视频 | 免费在线观看av不卡 | 国产精品女 | 国产精品一区二区久久精品 | 99精品久久久久久久久久综合 | 久久全国免费视频 | 天天操夜夜操天天射 | 中文字幕在线免费播放 | 国产精品久久电影观看 | 中文字幕中文中文字幕 | 久久久久久久久久福利 | 91大神一区二区三区 | 国内精品久久久久久久久久久久 | 亚洲a成人v | 新版资源中文在线观看 | 一区二区三区高清在线观看 | 国产精品九九九九九九 | 最新不卡av| 色丁香久久 | 天天干夜夜爽 | 精品久久久久一区二区国产 | 欧美 日韩 国产 成人 在线 | 91麻豆操| 中文字幕在线看视频国产 | 97超碰在线久草超碰在线观看 | 久久亚洲人 | 精品一区欧美 | 久久久久久久久久久免费视频 | 久草精品在线观看 | 97免费在线观看视频 | 九九热免费在线观看 | 日韩在观看线 | 久久免费视频观看 | 91精品国产成人观看 | 在线看一级片 | 国产国语在线 | 国产精品videossex国产高清 | 成人免费视频播放 | 中文字幕精 | 中文网丁香综合网 | 亚洲黄网站 | 久久综合九色综合久99 | 国产成人精品网站 | 狠狠狠色丁香婷婷综合久久88 | 国产va饥渴难耐女保洁员在线观看 | 久久伊人精品天天 | 黄网站色成年免费观看 | 中文字幕日韩有码 | 欧美激情第十页 | 日韩视频一区二区三区 | 99精品国产免费久久 | 精品一区二区在线免费观看 | 天天操天天拍 | 色吊丝在线永久观看最新版本 | 九九九视频精品 | 亚洲精品乱码久久久久久蜜桃91 | 色资源中文字幕 | 国产在线a免费观看 | av高清一区二区三区 | 亚洲3级 | 18国产精品白浆在线观看免费 | 国产精品一区在线观看你懂的 | 精品中文字幕视频 | 午夜狠狠操 | 欧美午夜精品久久久久久浪潮 | 成人av免费在线播放 | 国产日韩欧美视频 | 成人免费视频在线观看 | 天天色天天射天天操 | 天天操天天摸天天射 | 欧美性久久久久久 | 在线视频 精品 | 91九色在线视频 | ,午夜性刺激免费看视频 | 国产一区二区免费在线观看 | 久久精品国产精品亚洲 | 婷婷播播网| 国产成人黄色在线 | 日韩中文在线电影 | 亚洲精品中文字幕在线观看 | 91大神在线观看视频 | 亚洲精品综合欧美二区变态 | 欧美一区二区三区在线观看 | 一区二区视频在线播放 | 亚洲第一区精品 | 欧美精品久久久久久久久久久 | 91免费的视频在线播放 | 91人人在线| 国产精品九九九 | 蜜桃视频成人在线观看 | 成片免费观看视频大全 | 日韩精品久久久久久久电影99爱 | 91热这里只有精品 | 国产精品成人a免费观看 | 9在线观看免费高清完整版 玖玖爱免费视频 | 人人干,人人爽 | 黄网站色成年免费观看 | 久久国产精品视频观看 | 国产精品激情在线观看 | 色av色av色av | 久久人人爽人人片av | 99色亚洲 | 国产二区视频在线观看 | 日本99热 | 91精品国产91热久久久做人人 | 日韩免费在线观看 | 国产成人av网址 | 婷久久 | 国产福利精品一区二区 | 黄色a一级片 | 国产精品久久久久久久久久直播 | 欧美激情另类文学 | 午夜视频黄 | 黄色亚洲大片免费在线观看 | 日本高清免费中文字幕 | 日韩在线观看的 | 日韩一区精品 | 欧美另类tv | 免费av观看 | 久久一区二区三区日韩 | 91亚洲夫妻| 欧美成人999| 国产精品一区二区久久久 | 91污视频在线 | 天天操天天舔天天爽 | 看全黄大色黄大片 | 黄色三级在线 | 欧美国产不卡 | 欧美激情视频在线免费观看 | 伊人永久 | 福利一区在线视频 | 欧美激情在线网站 | 五月天色网站 | 国产亚洲精品久久久久久 | 黄色三级av| 日韩欧美精品在线视频 | 久久精品电影 | 久久综合狠狠综合久久激情 | 久草观看 | 久草99| 久久福利综合 | 看黄色91| 在线播放视频一区 | 日本久久久久久久久久 |