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

歡迎訪問(wèn) 生活随笔!

生活随笔

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

基于栅格地图的粒子群算法_基于GMapping的栅格地图的构建

發(fā)布時(shí)間:2025/3/20 55 豆豆
生活随笔 收集整理的這篇文章主要介紹了 基于栅格地图的粒子群算法_基于GMapping的栅格地图的构建 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

上篇文章講解了如何在ROS中發(fā)布柵格地圖,以及如何向柵格地圖賦值.

這篇文章來(lái)講講如何將激光雷達(dá)的數(shù)據(jù)構(gòu)建成柵格地圖.

雷達(dá)的數(shù)據(jù)點(diǎn)所在位置表示為占用,從雷達(dá)開(kāi)始到這點(diǎn)之間的區(qū)域表示為空閑.

1 GMapping簡(jiǎn)介

GMapping是ROS中navigation導(dǎo)航包集中推薦的二維建圖算法包,由于其實(shí)現(xiàn)時(shí)間早,所以各種書中的demo使用的SLAM基本都是GMapping,同時(shí)GMapping網(wǎng)上的教程也是最多的.

GMapping是基于粒子濾波算法實(shí)現(xiàn)的SLAM,通過(guò)里程計(jì)數(shù)據(jù)獲取粒子群的先驗(yàn)位姿,再通過(guò)雷達(dá)數(shù)據(jù)與地圖的匹配程度對(duì)所有粒子進(jìn)行打分,通過(guò)分?jǐn)?shù)高的粒子群來(lái)近似機(jī)器人的真實(shí)位姿.

GMapping的具體實(shí)現(xiàn)是在open_gmapping包里,后來(lái)又在ROS中做了個(gè)封裝包slam_gmapping.gmapping在ROS中的wiki地址為?http://wiki.ros.org/gmapping

2 代碼

open_gmapping的代碼比較復(fù)雜,比較亂. csdn博主 白茶-清歡 對(duì) open_gmapping 與 slam_gmapping 兩個(gè)包進(jìn)行了重寫,整理了代碼使得代碼結(jié)構(gòu)更加清晰,同時(shí)添加了注釋,還增加了激光雷達(dá)數(shù)據(jù)的畸變校正功能.

本篇文章的代碼實(shí)現(xiàn)是參考于 csdn博主 白茶-清歡 注釋簡(jiǎn)化之后的GMapping.其地址為 csdn 白茶-清歡:?https://blog.csdn.net/zhao_ke_xue/article/details/109712355

2.1 獲取代碼

代碼已經(jīng)提交在github上了,如果不知道github的地址的朋友, 請(qǐng)?jiān)谖业墓娞?hào):?從零開(kāi)始搭激光SLAM?中回復(fù)?開(kāi)源地址?獲得。

推薦使用 git clone 的方式進(jìn)行下載, 因?yàn)榇a是正處于更新?tīng)顟B(tài)的, git clone 下載的代碼可以使用 git pull 很方便地進(jìn)行更新.

本篇文章對(duì)應(yīng)的代碼為 Creating-2D-laser-slam-from-scratch/lesson4/src/gmapping/ 與 Creating-2D-laser-slam-from-scratch/lesson4/include/gmapping/

2.2 回調(diào)函數(shù)

這個(gè)函數(shù)先進(jìn)行角度值的cos與sin的計(jì)算,然后調(diào)用PublishMap()計(jì)算地圖并發(fā)布出去.

// 回調(diào)函數(shù) 進(jìn)行數(shù)據(jù)處理void GMapping::ScanCallback(const sensor_msgs::LaserScan::ConstPtr &scan_msg){ static ros::Time last_map_update(0, 0); //存儲(chǔ)上一次地圖更新的時(shí)間 if (!got_first_scan_) //如果是第一次接收scan { // 將雷達(dá)各個(gè)角度的sin與cos值保存下來(lái),以節(jié)約計(jì)算量 CreateCache(scan_msg); got_first_scan_ = true; //改變第一幀的標(biāo)志位 } start_time_ = std::chrono::steady_clock::now(); // 計(jì)算當(dāng)前雷達(dá)數(shù)據(jù)對(duì)應(yīng)的柵格地圖并發(fā)布出去 PublishMap(scan_msg); end_time_ = std::chrono::steady_clock::now(); time_used_ = std::chrono::duration_cast<:chrono::duration>>(end_time_ - start_time_); std::cout << "\n轉(zhuǎn)換一次地圖用時(shí): " << time_used_.count() << " 秒。" << std::endl;}

2.3 PublishMap()

這里的ScanMatcherMap為GMapping中存儲(chǔ)地圖的數(shù)據(jù)類型,先聲明了一個(gè)ScanMatcherMap的對(duì)象gmapping_map_,然后通過(guò)ComputeMap()為gmapping_map_賦值,然后再將gmapping_map_中存儲(chǔ)的值賦值到ros的柵格地圖的數(shù)據(jù)類型中.

gmapping認(rèn)為ros的柵格地圖數(shù)據(jù)只需要有3個(gè)值

  • -1 代表柵格狀態(tài)未知

  • 0 代表柵格是空閑的,代表可通過(guò)區(qū)域

  • 100 代表柵格是占用的,代表障礙物,不可通過(guò)

#define GMAPPING_UNKNOWN (-1)#define GMAPPING_FREE (0)#define GMAPPING_OCC (100)// 計(jì)算當(dāng)前雷達(dá)數(shù)據(jù)對(duì)應(yīng)的柵格地圖并發(fā)布出去void GMapping::PublishMap(const sensor_msgs::LaserScan::ConstPtr &scan_msg){ // 地圖的中點(diǎn) Point center; center.x = (xmin_ + xmax_) / 2.0; center.y = (ymin_ + ymax_) / 2.0; // ScanMatcherMap為GMapping中存儲(chǔ)地圖的數(shù)據(jù)類型 ScanMatcherMap gmapping_map_(center, xmin_, ymin_, xmax_, ymax_, resolution_); // 使用當(dāng)前雷達(dá)數(shù)據(jù)更新GMapping地圖中柵格的值 ComputeMap(gmapping_map_, scan_msg); // 將gmapping_map_中的存儲(chǔ)的柵格值 賦值到 ros的map中 for (int x = 0; x < gmapping_map_.getMapSizeX(); x++) { for (int y = 0; y < gmapping_map_.getMapSizeY(); y++) { IntPoint p(x, y); // 獲取這點(diǎn)柵格的值,只有大于occ_thresh_時(shí)才認(rèn)為是占用 double occ = gmapping_map_.cell(p); // 未知 if (occ < 0) map_.data[MAP_IDX(map_.info.width, x, y)] = GMAPPING_UNKNOWN; // 占用 else if (occ > occ_thresh_) // 默認(rèn)0.25 map_.data[MAP_IDX(map_.info.width, x, y)] = GMAPPING_OCC; // 空閑 else map_.data[MAP_IDX(map_.info.width, x, y)] = GMAPPING_FREE; } } // 添加當(dāng)前的時(shí)間戳 map_.header.stamp = ros::Time::now(); map_.header.frame_id = scan_msg->header.frame_id; // 發(fā)布map和map_metadata map_publisher_.publish(map_); map_publisher_metadata_.publish(map_.info);}

2.4 ComputeMap()

這部分代碼分為2個(gè)部分,第一部分為計(jì)算出地圖的儲(chǔ)存空間,并且計(jì)算出從雷達(dá)到激光點(diǎn)這條線在gmapping柵格地圖中的坐標(biāo),以及雷達(dá)點(diǎn)的坐標(biāo).第二部分為將計(jì)算好的直線與點(diǎn)在gmapping地圖中進(jìn)行柵格值的更新.

// 使用當(dāng)前雷達(dá)數(shù)據(jù)更新GMapping地圖中柵格的值void GMapping::ComputeMap(ScanMatcherMap &map, const sensor_msgs::LaserScan::ConstPtr &scan_msg){ line_lists_.clear(); hit_lists_.clear(); // lp為地圖坐標(biāo)系下的激光雷達(dá)坐標(biāo)系的位姿 OrientedPoint lp(0, 0, 0.0); // 將位姿lp轉(zhuǎn)換成地圖坐標(biāo)系下的位置 IntPoint p0 = map.world2map(lp); // 第一部分 // 地圖的有效區(qū)域(地圖坐標(biāo)系) HierarchicalArray2D::PointSet activeArea; // 通過(guò)激光雷達(dá)的數(shù)據(jù),找出地圖的有效區(qū)域 for (unsigned int i = 0; i < scan_msg->ranges.size(); i++) { // 排除錯(cuò)誤的激光點(diǎn) double d = scan_msg->ranges[i]; if (d > max_range_ || d == 0.0 || !std::isfinite(d)) continue; if (d > max_use_range_) d = max_use_range_; // p1為激光雷達(dá)的數(shù)據(jù)點(diǎn)在地圖坐標(biāo)系下的坐標(biāo) Point phit = lp; phit.x += d * a_cos_[i]; phit.y += d * a_sin_[i]; IntPoint p1 = map.world2map(phit); // 使用bresenham算法來(lái)計(jì)算 從激光位置到激光點(diǎn) 要經(jīng)過(guò)的柵格的坐標(biāo) GridLineTraversalLine line; GridLineTraversal::gridLine(p0, p1, &line); // 將line保存起來(lái)以備后用 line_lists_.push_back(line); // 計(jì)算活動(dòng)區(qū)域的大小 for (int i = 0; i < line.num_points - 1; i++) { activeArea.insert(map.storage().patchIndexes(line.points[i])); } // 如果d // 同時(shí)如果d==max_use_range_那么說(shuō)明這個(gè)值只用來(lái)進(jìn)行標(biāo)記空閑區(qū)域 不用來(lái)進(jìn)行標(biāo)記障礙物 if (d < max_use_range_) { IntPoint cp = map.storage().patchIndexes(p1); activeArea.insert(cp); hit_lists_.push_back(phit); } } // 為activeArea分配內(nèi)存 map.storage().setActiveArea(activeArea, true); map.storage().allocActiveArea(); // 第二部分 // 在map上更新空閑點(diǎn) for (auto line : line_lists_) { // 更新空閑位置 for (int k = 0; k < line.num_points - 1; k++) { // 未擊中,就不記錄擊中的位置了,所以傳入?yún)?shù)Point(0,0) map.cell(line.points[k]).update(false, Point(0, 0)); } } // 在map上添加hit點(diǎn) for (auto hit : hit_lists_) { IntPoint p1 = map.world2map(hit); map.cell(p1).update(true, hit); }}

代碼中的注釋已經(jīng)說(shuō)明的很清楚了,這里簡(jiǎn)要說(shuō)明一下.

第一部分

首先生成了一個(gè)activeArea變量,用于記錄需要區(qū)域的范圍.

之后遍歷雷達(dá)數(shù)據(jù)點(diǎn),使用bresemham畫線算法生成從激光位置到激光點(diǎn)的連線在柵格地圖中的坐標(biāo),并將這些點(diǎn)放入activeArea用于計(jì)算區(qū)域,同時(shí)保存下來(lái)以備后用.

再判斷雷達(dá)數(shù)據(jù)點(diǎn)也就是 phit .判斷這個(gè)點(diǎn)與預(yù)先設(shè)定的參數(shù) max_use_range_(雷達(dá)數(shù)據(jù)最大使用距離),如果phit的距離小于max_use_range_則認(rèn)為是好的數(shù)據(jù)點(diǎn),放入hit_lists_中以備后用.

最后,設(shè)置區(qū)域的大小以及分配內(nèi)存.

第二部分

第二部分做了兩個(gè)工作,一個(gè)是更新空閑點(diǎn),代表可通過(guò)區(qū)域,另一個(gè)是更新hit點(diǎn),也就是激光雷達(dá)數(shù)據(jù)點(diǎn)在地圖中的位置,代表著障礙物.

這部分之前是進(jìn)行了2次for循環(huán),做了很多無(wú)用的計(jì)算,我進(jìn)行優(yōu)化了一下,現(xiàn)在只需要進(jìn)行一次for循環(huán).

2.5 bresemham畫線算法

以下函數(shù)位于Creating-2D-laser-slam-from-scratch/lesson4/include/lesson4/gmapping/grid/gridlinetraversal.h文件中.

2.5.1 gridLine()

上述代碼調(diào)用了gridLine()函數(shù),這個(gè)函數(shù)調(diào)用了gridLineCore()進(jìn)行直線坐標(biāo)點(diǎn)的計(jì)算,

然后判斷了計(jì)算出的直線坐標(biāo)點(diǎn)的起始點(diǎn)是否正確,如果不正確,就把直線的所有點(diǎn)順序反轉(zhuǎn)一下,

void GridLineTraversal::gridLine(IntPoint start, IntPoint end, GridLineTraversalLine *line){ int i, j; int half; IntPoint v; gridLineCore(start, end, line); if (start.x != line->points[0].x || start.y != line->points[0].y) { half = line->num_points / 2; for (i = 0, j = line->num_points - 1; i < half; i++, j--) { v = line->points[i]; line->points[i] = line->points[j]; line->points[j] = v; } }}

2.5.2 gridLineCore()

這個(gè)函數(shù)就是實(shí)際bresemham畫線算法的實(shí)現(xiàn),代碼挺長(zhǎng),但是挺簡(jiǎn)單的,只是區(qū)分了很多情況:斜率是否大于1,以及增長(zhǎng)的順序的方向判斷等等,具體的意思已經(jīng)在代碼注釋的很清楚了.

如果您想弄清楚理論過(guò)程,理解的更透徹一些,可以參看這篇文章?https://www.jianshu.com/p/d63bf63a0e28

網(wǎng)上的教程也很多,我這就不再講了.

void GridLineTraversal::gridLineCore(IntPoint start, IntPoint end, GridLineTraversalLine *line){ int dx, dy; // 橫縱坐標(biāo)間距 int incr1, incr2; // 增量 int d; // int x, y, xend, yend; // 直線增長(zhǎng)的首末端點(diǎn)坐標(biāo) int xdirflag, ydirflag; // 橫縱坐標(biāo)增長(zhǎng)方向 int cnt = 0; // 直線過(guò)點(diǎn)的點(diǎn)的序號(hào) dx = abs(end.x - start.x); dy = abs(end.y - start.y); // 斜率絕對(duì)值小于等于1的情況,優(yōu)先增加x if (dy <= dx) { d = 2 * dy - dx; // 初始點(diǎn)P_m0值 incr1 = 2 * dy; // 情況(1) incr2 = 2 * (dy - dx); // 情況(2) // 將增長(zhǎng)起點(diǎn)設(shè)置為橫坐標(biāo)小的點(diǎn)處,將 x的增長(zhǎng)方向 設(shè)置為 向右側(cè)增長(zhǎng) if (start.x > end.x) { // 起點(diǎn)橫坐標(biāo)比終點(diǎn)橫坐標(biāo)大,ydirflag = -1(負(fù)號(hào)可以理解為增長(zhǎng)方向與直線始終點(diǎn)方向相反) x = end.x; y = end.y; ydirflag = (-1); xend = start.x; // 設(shè)置增長(zhǎng)終點(diǎn)橫坐標(biāo) } else { x = start.x; y = start.y; ydirflag = 1; xend = end.x; } //加入起點(diǎn)坐標(biāo) line->points.push_back(IntPoint(x, y)); cnt++; // 向 右上 方向增長(zhǎng) if (((end.y - start.y) * ydirflag) > 0) { while (x < xend) { x++; if (d < 0) { d += incr1; } else { y++; d += incr2; // 縱坐標(biāo)向正方向增長(zhǎng) } line->points.push_back(IntPoint(x, y)); cnt++; } } // 向 右下 方向增長(zhǎng) else { // ... 省略 } } // 斜率絕對(duì)值大于1的情況,優(yōu)先增加y else {????????//?...?省略 } line->num_points = cnt;}

2.6 GMapping中的地圖數(shù)據(jù)類型

我將GMapping中的地圖數(shù)據(jù)類放在了
Creating-2D-laser-slam-from-scratch/lesson4/include/lesson4/gmapping/grid 文件夾下,以及依賴的點(diǎn)的類文件放在了
Creating-2D-laser-slam-from-scratch/lesson4/include/lesson4/gmapping/utils 文件夾下.

2.6.1 地圖類

GMapping的地圖相關(guān)的文件有3個(gè),array.h,harray2d.h,map.h.

具體的代碼實(shí)現(xiàn)我就不在這里說(shuō)明了,代碼挺多的,我也沒(méi)太看懂(哈哈)。

感興趣的同學(xué)可以仔細(xì)閱讀一下,這里的代碼都有注釋的,再次感謝白茶清歡小哥的工作.

GMapping的代碼比較老了,這塊的實(shí)現(xiàn)可以使用c++ 11的stl進(jìn)行更好的實(shí)現(xiàn),這也是我不對(duì)這個(gè)代碼細(xì)講的原因,因?yàn)橹髸?huì)有更好的實(shí)現(xiàn).

2.6.2 地圖占用值更新的實(shí)現(xiàn)

map.h中有個(gè)叫做PointAccumulator的結(jié)構(gòu)體,定義了柵格地圖的更新方式以及存儲(chǔ)值是如何計(jì)算的.其代碼如下

//PointAccumulator表示地圖中一個(gè)cell(柵格)包括的內(nèi)容/*acc:柵格累計(jì)被擊中位置n:柵格被擊中次數(shù)visits:柵格被訪問(wèn)的次數(shù)*///PointAccumulator的一個(gè)對(duì)象,就是一個(gè)柵格,gmapping中其他類模板的cell就是這個(gè)struct PointAccumulator{ //float類型的point typedef point<float> FloatPoint; //構(gòu)造函數(shù) PointAccumulator() : acc(0, 0), n(0), visits(0) {} PointAccumulator(int i) : acc(0, 0), n(0), visits(0) { assert(i == -1); } //計(jì)算柵格被擊中坐標(biāo)累計(jì)值的平均值 inline Point mean() const { return 1. / n * Point(acc.x, acc.y); } //返回該柵格被占用的概率,范圍是 -1(沒(méi)有訪問(wèn)過(guò)) 、[0,1] inline operator double() const { return visits ? (double)n * 1 / (double)visits : -1; } //更新該柵格成員變量 inline void update(bool value, const Point &p = Point(0, 0)); //該柵格被擊中的位置累計(jì),最后取累計(jì)值的均值 FloatPoint acc; //n表示該柵格被擊中的次數(shù),visits表示該柵格被訪問(wèn)的次數(shù) int n, visits;};//更新該柵格成員變量,value表示該柵格是否被擊中,擊中n++,未擊中僅visits++;void PointAccumulator::update(bool value, const Point &p){ if (value) { acc.x += static_cast<float>(p.x); acc.y += static_cast<float>(p.y); n++; visits += 1; } else visits++;}

可以看到,每個(gè)格子都有2個(gè)值,一個(gè)是visits,一個(gè)是n.

更新占用: 在更新被擊中的柵格時(shí), 也就是激光點(diǎn)所在的柵格, n與visits都會(huì)加1,

更新空閑: 在更新未被擊中的柵格時(shí),也就是從激光到激光點(diǎn)之間的柵格,只有visits加1,

通過(guò)重載了(),獲取獲取每個(gè)格子的占用值,也可以說(shuō)成是被占用的概率.占用值的計(jì)算公式為 n/visists,如果是沒(méi)被更新過(guò)就返回-1.

由于visits大于等于n,所以占用值的范圍是 [0,1]的,只有當(dāng)這個(gè)值在大于0.25(默認(rèn)參數(shù))時(shí),在賦值到ros地圖的時(shí)候才賦值為100,才認(rèn)為是真正的占用了.

舉個(gè)例子說(shuō)明一下柵格地圖的占用值更新的方式.

例如:當(dāng)雷達(dá)掃到人腿時(shí),會(huì)對(duì)擊中點(diǎn)的柵格更新一次占用,這時(shí)在ROS地圖下這個(gè)點(diǎn)將被表示為障礙物.

如果人腿離開(kāi)了這個(gè)位置,在之后的過(guò)程中,有4次在這個(gè)柵格更新了空閑,就會(huì)將ROS地圖中這個(gè)柵格的狀態(tài)更新到空閑,也就是沒(méi)有障礙物.

原因:

第一次更新地圖時(shí),這個(gè)格子的占用值為 1/1 = 1 > 0.25 ,就會(huì)將ROS地圖中這個(gè)格子設(shè)置為100,表示障礙物.

如果之后4次更新地圖,這個(gè)柵格都被更新空閑了,則這個(gè)格子的占用值將變?yōu)?1/5 = 0.2 <0.25了,所以就會(huì)將ROS地圖中對(duì)應(yīng)的柵格設(shè)置為0,變成可通過(guò)區(qū)域了.

3 運(yùn)行

3.1 launch文件

本篇文章對(duì)應(yīng)的數(shù)據(jù)包, 請(qǐng)?jiān)谖业墓娞?hào)中回復(fù)?lesson1?獲得,并將launch中的bag_filename更改成您實(shí)際的目錄名。

<launch> <arg name="bag_filename" default="/home/lx/bagfiles/lesson1.bag"/> <param name="use_sim_time" value="true" /> <node name="lesson4_gmapping_node" pkg="lesson4" type="lesson4_gmapping_node" output="screen" /> <node name="rviz" pkg="rviz" type="rviz" required="true" args="-d $(find lesson4)/config/gmapping.rviz" /> <node name="playbag" pkg="rosbag" type="play" args="--clock $(arg bag_filename)" />launch>

3.2 編譯與運(yùn)行

下載代碼后,請(qǐng)放入您自己的工作空間中,通過(guò) catkin_make 進(jìn)行編譯.

由于是新增的包,所以需要通過(guò) rospack profile 命令讓ros找到這個(gè)新的包.

之后, 使用source命令,添加ros與工作空間的地址到當(dāng)前終端下,再通過(guò)如下命令運(yùn)行本篇文章對(duì)應(yīng)的程序

roslaunch?lesson4?make_gmapping_map.launch

3.3 運(yùn)行結(jié)果

啟動(dòng)之后,會(huì)在rviz中顯示出如下畫面.

地圖是不斷地根據(jù)雷達(dá)數(shù)據(jù)進(jìn)行更新的,每次生成的地圖只是這一幀雷達(dá)數(shù)據(jù)轉(zhuǎn)換后的結(jié)果,不會(huì)累加之前的雷達(dá)數(shù)據(jù).
同時(shí)會(huì)在終端中打印出如下消息.

轉(zhuǎn)換一次地圖用時(shí):?0.403898?秒。轉(zhuǎn)換一次地圖用時(shí):?0.394922?秒。轉(zhuǎn)換一次地圖用時(shí):?0.40791?秒。

3.4 結(jié)果分析

通過(guò)終端打印出來(lái)的信息可以得知,每次計(jì)算gmapping地圖,再將gmapping地圖的值賦值到ros的地圖中,再發(fā)布出來(lái).這一系列操作大概需要花費(fèi)0.4秒,這是一個(gè)很長(zhǎng)的時(shí)間了.

可以通過(guò)如下命令來(lái)看下map這個(gè)topic的頻率

$ rostopic hz /laser_scan /map topic rate min_delta max_delta std_dev window===============================================================/laser_scan 9.987 0.09058 0.1108 0.003163 50 /map??????????2.613???0.1914??????0.4549??????0.06057????50????

可以看到,雷達(dá)數(shù)據(jù)是10hz的,map數(shù)據(jù)大概是2.5hz.

我們只用了一個(gè)線程,也就是雷達(dá)回調(diào)函數(shù)的這個(gè)線程.處理一次回調(diào)函數(shù)需要用時(shí)0.4秒,而雷達(dá)數(shù)據(jù)的間隔是0.1秒.

也就是說(shuō),當(dāng)我們正在計(jì)算地圖的時(shí)候,會(huì)又有4幀雷達(dá)數(shù)據(jù)到達(dá),當(dāng)回調(diào)函數(shù)的緩沖區(qū)設(shè)置為1時(shí),那這4幀雷達(dá)數(shù)據(jù)將只保留最后一個(gè),其他3幀數(shù)據(jù)將丟失掉.

這還只是80m * 80m范圍的地圖,構(gòu)建更大范圍地圖的時(shí)間將更久.所以,很多SLAM都將地圖的生成單獨(dú)開(kāi)一個(gè)線程,以保證不耽誤對(duì)實(shí)時(shí)性要求較高的前端里程計(jì)部分.

4 總結(jié)與Next

通過(guò)使用GMapping中的地圖數(shù)據(jù)格式,以及GMapping中的地圖計(jì)算方式,我們實(shí)現(xiàn)了將激光雷達(dá)數(shù)據(jù)構(gòu)建成柵格地圖的功能,雖然現(xiàn)在的建圖是單次的.

希望你通過(guò)這篇文章以及代碼,知道了如何將激光雷達(dá)數(shù)據(jù)寫成柵格地圖,知道了柵格地圖更新一次的耗時(shí)問(wèn)題.

下一篇文章還是進(jìn)行單次柵格地圖的構(gòu)建,只不過(guò)下次將使用Hector中構(gòu)建地圖的方式,為我們以后做scan-to-map做個(gè)基礎(chǔ).



其他原創(chuàng)文章可以戳:
柵格地圖的構(gòu)建基于PL-ICP的激光雷達(dá)里程計(jì)從零開(kāi)始搭二維激光SLAM --- 基于PL-ICP的幀間匹配

文章將在?CSDN: 李太白lx?與?知乎:李想?進(jìn)行同步更新,可以更方便的看代碼,歡迎大家關(guān)注。

同時(shí),也希望您將這個(gè)公眾號(hào)推薦給您身邊做激光SLAM的人們,可以在公眾號(hào)中添加我的微信,進(jìn)激光SLAM交流群,大家一起交流SLAM技術(shù)。

如果您對(duì)我寫的文章有什么建議,或者想要看哪方面功能如何實(shí)現(xiàn)的,請(qǐng)直接在公眾號(hào)中回復(fù),我可以收到,并將認(rèn)真考慮您的建議。

【您的在看與轉(zhuǎn)發(fā),是對(duì)我莫大鼓勵(lì)】

總結(jié)

以上是生活随笔為你收集整理的基于栅格地图的粒子群算法_基于GMapping的栅格地图的构建的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

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

国产高清日韩欧美 | 热久久精品在线 | 国产又黄又硬又爽 | 中文字幕中文字幕在线中文字幕三区 | 国产一区二区三区在线免费观看 | 午夜手机电影 | 五月天国产 | 在线免费视 | 色中色综合 | 色综合天天爱 | 看片黄网站 | 中文字幕免费 | 久久久久久看片 | 在线免费黄色片 | 国产精品毛片久久久久久 | www日韩欧美| 欧美性直播| 一区二区视频欧美 | 黄色亚洲片 | 亚洲午夜久久久影院 | 国产在线欧美在线 | 日本黄色免费看 | 亚洲乱码在线 | 久久天天拍 | 91av在线免费视频 | 91视频 - 88av| 在线看一级片 | www婷婷| 人人草在线观看 | 国产视频综合在线 | 色综合天天做天天爱 | 亚洲精品成人免费 | 日韩精品在线视频免费观看 | 一级一级一片免费 | 4438全国亚洲精品在线观看视频 | 欧美日韩精品免费观看视频 | 欧美精品九九99久久 | 午夜av电影| 成人av免费网站 | 国产精品免费一区二区三区在线观看 | 91福利免费 | 日本特黄特色aaa大片免费 | 欧美性天天 | 少妇bbb | www最近高清中文国语在线观看 | 国产高清在线观看 | 欧美日韩中 | 天天射天天射天天 | 成人免费在线视频 | 国产精品免费高清 | 三级性生活视频 | 久久伊99综合婷婷久久伊 | 亚洲欧洲av在线 | 中文字幕高清在线播放 | 久久精品国产亚洲a | 亚洲国产精选 | 天天操天天干天天爽 | 久久精品一二三区白丝高潮 | 日韩a在线看 | 欧美视频不卡 | 久久国内精品 | 久久免费国产电影 | 日韩免费在线 | 免费精品人在线二线三线 | 日日夜夜天天干 | 国产精品18久久久久久久久久久久 | 婷婷丁香激情网 | 亚洲成av人片一区二区梦乃 | 欧美精品久 | 国产高清在线看 | 欧美片一区二区三区 | 国产久草在线观看 | 成人a免费看 | 亚洲好视频| 探花视频在线观看+在线播放 | www婷婷| 国产第一页在线播放 | 黄色av电影网 | 看污网站| 国产小视频在线看 | 国产免费黄视频在线观看 | 国产一区二区综合 | 日韩久久午夜一级啪啪 | 日本精品一区二区三区在线播放视频 | 成人免费色 | 欧美亚洲国产精品久久高清浪潮 | 欧美天天综合 | 欧美一二三四在线 | 一区二区三区韩国免费中文网站 | 一区在线观看视频 | 国内免费的中文字幕 | 激情五月综合 | 91理论片午午伦夜理片久久 | 国产香蕉视频 | 久草综合在线观看 | 成人av地址 | 久久综合狠狠综合 | 国产视频日韩视频欧美视频 | 久久久久国产精品一区二区 | 亚洲精品h| 日韩免费在线一区 | 久久久久国产精品一区二区 | 亚洲天天在线日亚洲洲精 | 午夜精品久久久久久久99水蜜桃 | 日韩中文字幕免费在线观看 | 日本黄网站 | 久久综合中文色婷婷 | 中文字幕第一页在线 | 欧美激情综合色综合啪啪五月 | 三级黄色片子 | 日本黄色免费观看 | 麻豆果冻剧传媒在线播放 | 中文一区二区三区在线观看 | 国产 视频 久久 | 五月天婷婷在线播放 | 日韩电影中文字幕 | 在线观看 亚洲 | 亚洲最大免费成人网 | 国产成人精品一区在线 | 国产精品欧美久久久久三级 | 在线看av网址 | 91香蕉视频在线下载 | 日韩av高清在线观看 | 九九免费在线观看 | 中文av在线免费观看 | 国产美女视频 | 久久久久久久久久久久亚洲 | 国产91精品久久久久 | 开心激情综合网 | 免费网站黄色 | 成人香蕉视频 | 中文字幕超清在线免费 | 成人毛片一区 | 在线观看免费版高清版 | 日韩网站在线看片你懂的 | 操操操日日日干干干 | 婷婷国产v亚洲v欧美久久 | 国产1区2区3区精品美女 | 你操综合| 最近中文字幕国语免费av | 国产专区视频 | 四虎影视8848dvd | 国产一区二区在线免费播放 | 国产高清精品在线 | www.亚洲精品 | 午夜12点| 成人久久久久久久久久 | 亚洲精品97 | 一级成人免费 | 午夜视频在线观看一区二区三区 | 五月激情六月丁香 | 国产三级在线播放 | 国产一区二区影院 | 久久99国产精品久久99 | 中文字幕资源站 | 亚洲影院色 | 国内视频一区二区 | 成人在线观看网址 | 久久九九影视网 | 中文字幕乱视频 | 久久在线影院 | 456免费视频 | 99性视频| 六月激情丁香 | 成人黄色电影在线播放 | 中文字幕免费观看全部电影 | 精品在线一区二区 | 国产综合精品久久 | 日韩欧美99 | 国产精品3 | 欧美 日韩 国产 中文字幕 | 久久久麻豆精品一区二区 | 国产精品2020 | 久草在线这里只有精品 | 亚洲性少妇性猛交wwww乱大交 | 蜜桃视频精品 | 在线观看日韩国产 | 国产精品免费一区二区三区 | 日韩在线一级 | 九草视频在线观看 | 波多野结衣久久精品 | 五月婷婷黄色 | 国产色视频网站2 | 片黄色毛片黄色毛片 | 又黄又爽又无遮挡免费的网站 | 欧美精品一区二区三区四区在线 | 综合久久2023 | 天天射网 | 国产色视频网站2 | 91成人亚洲 | 91精品国产自产在线观看永久 | 91麻豆精品国产自产在线 | 日韩中文在线电影 | 日韩黄色大片在线观看 | 久久香蕉一区 | 91精品导航 | 亚洲经典视频 | 久久精品导航 | 久操久 | 中国一级片在线播放 | 亚洲激情 | 九九免费在线视频 | 色综合久久久久综合 | 欧美精品中文 | 久久99婷婷 | 人人插人人搞 | 伊人五月天.com | 亚洲精品视频免费在线观看 | 国产精品中文字幕av | 精品毛片在线 | 激情五月五月婷婷 | 午夜久久久久久久久 | 99久久精品免费看国产一区二区三区 | 国产精品video爽爽爽爽 | 精品国产一区二区三区四 | 人人爽人人看 | 国产视频一二三 | 国产资源站 | 国产精品久久亚洲 | 亚洲在线成人精品 | 久久久久久久网 | 亚洲一级片免费观看 | 爱爱av网站 | 久久理论电影 | 在线观看香蕉视频 | 国产又粗又猛又色又黄视频 | 国产精品视频大全 | 亚洲精品一区二区久 | 国产精品区在线观看 | 亚洲aⅴ一区二区三区 | 天天激情天天干 | 激情网站免费观看 | 国产精品久久久久久久久久ktv | 狠狠做深爱婷婷综合一区 | 日韩在线高清 | 欧美日韩国产成人 | 手机在线看永久av片免费 | 丁香 婷婷 激情 | 粉嫩av一区二区三区免费 | 色中色资源站 | 亚洲日本一区二区在线 | 久久精品艹 | 欧美亚洲国产一卡 | 激情综合婷婷 | 91九色网站 | 91大神精品视频在线观看 | 国产成人精品日本亚洲999 | 免费在线电影网址大全 | 亚洲综合在线视频 | 亚洲精品视频久久 | 国产尤物在线视频 | 亚洲欧美日韩一区二区三区在线观看 | 国产午夜三级 | 国产69精品久久久久99 | 亚洲丝袜中文 | 日本久久影视 | 天天色.com | 国产午夜精品一区二区三区四区 | 欧美日韩在线观看一区 | 成人午夜在线观看 | 97天堂网 | 超碰在线最新网址 | 黄色大片免费网站 | 欧美精品久 | 999久久久免费视频 午夜国产在线观看 | 国产精品久久久久久久久久久久午夜 | 天天插天天干 | 久精品视频 | av高清一区| 国产精品一区二区在线观看免费 | 日韩高清在线看 | 99久久这里有精品 | 日日夜夜亚洲 | 中文理论片 | 亚洲日本精品视频 | 91在线中文| 亚洲精品成人免费 | 午夜天天操 | 日批视频在线 | 欧洲精品一区二区 | 91精品久 | 久久综合亚洲鲁鲁五月久久 | 久久精品婷婷 | 国产一卡二卡四卡国 | 成人禁用看黄a在线 | 久草在线资源网 | 免费影视大全推荐 | 精品视频在线视频 | 在线视频日韩欧美 | 亚洲国产日本 | 久久99亚洲精品久久久久 | 日本精品久久久久影院 | 国产一区二区在线播放 | 国产色久 | 婷婷黄色片 | 日韩1级片 | 精品一区二三区 | 欧美国产精品久久久久久免费 | 国产又粗又猛又黄又爽视频 | 久久精品一区二区三区国产主播 | 免费网站黄| 超碰在线人人97 | 免费日韩 精品中文字幕视频在线 | 久久国产精品一二三区 | 天堂网一区二区三区 | 96国产在线 | 国产97免费| 久久天天草 | 国产成人精品一区在线 | 在线草 | 久久日本视频 | 激情av综合| 99热这里只有精品在线观看 | 久久久久久久久久久高潮一区二区 | 99久久精品国产一区 | 国产精品大全 | 亚洲成a人片77777kkkk1在线观看 | 99re久久资源最新地址 | 国际精品久久久 | 九九综合久久 | 亚洲aⅴ一区二区三区 | 亚洲一级电影在线观看 | 激情小说 五月 | 涩涩在线 | 欧美老少交 | 欧美日韩一级在线 | 美女视频黄是免费的 | a√国产免费a | 国产精品电影在线 | 亚洲精品乱码久久久久久按摩 | 日韩激情视频在线 | 91麻豆视频网站 | 久久久久久激情 | 欧美日韩二区在线 | 少妇搡bbb | 91麻豆精品国产91久久久无需广告 | 欧美激情h| 丁香影院在线 | 91资源在线视频 | 久草久草在线观看 | 亚洲精品乱码久久久久久写真 | 国产精品一级在线 | a极黄色片 | 中文永久免费观看 | 国产精品久久久久久久久久三级 | 97精品国产97久久久久久免费 | 激情视频在线观看网址 | 亚洲国产成人精品在线观看 | 97超级碰碰碰碰久久久久 | 五月综合激情 | 免费h漫在线观看 | 国产亚洲va综合人人澡精品 | 久久夜色精品国产欧美乱 | 在线观看香蕉视频 | 西西www4444大胆在线 | 精品在线你懂的 | 久久国产精品精品国产色婷婷 | 51精品国自产在线 | 日韩xxxbbb | 亚洲九九 | 国产视频亚洲精品 | 国产精品va在线观看入 | 五月婷婷欧美视频 | 国产美女精品人人做人人爽 | 国产精品一区二区久久精品爱涩 | 国产亚洲视频在线 | 天天躁日日躁狠狠躁av中文 | 日韩免费一区 | 欧美最猛性xxxx | 在线观看视频国产 | 98超碰人人| 成人av中文字幕在线观看 | 在线免费看黄网站 | 亚洲日本一区二区在线 | 黄色看片 | 久久精品99国产精品日本 | 人人草在线观看 | 91在线观看黄 | 国产123区在线观看 国产精品麻豆91 | 玖玖色在线观看 | 国产真实在线 | 亚洲另类人人澡 | 911精品美国片911久久久 | 国产资源网 | 中文字幕乱在线伦视频中文字幕乱码在线 | 天天天色综合 | 高清一区二区三区 | 在线观看黄网 | 天天爽夜夜爽人人爽一区二区 | 日韩欧美视频一区 | 欧美孕交vivoestv另类 | 不卡的av在线 | 超级碰碰碰视频 | 人人网av | 国产在线一卡 | 亚洲精品网页 | 亚洲另类在线视频 | 国产69熟 | 中文字幕二区在线观看 | 能在线观看的日韩av | 99久久久久久久久 | 91在线观 | 久久6精品| 91精品国产麻豆国产自产影视 | 一 级 黄 色 片免费看的 | 免费在线观看一区二区三区 | 亚洲精品婷婷 | 婷婷久操| 亚洲首页| 综合影视 | 国产精品电影一区二区 | 国产一区二区不卡在线 | 亚洲精品黄 | 九九热只有这里有精品 | 91久久精品一区二区三区 | 午夜影视剧场 | 91亚洲国产成人 | 国产精品ssss在线亚洲 | 国产色在线 | 欧美日韩有码 | 最新国产一区二区三区 | a黄色片 | 欧美久久久久久久久久久久久 | 成年人免费看的视频 | 日韩免费电影在线观看 | 黄色大全在线观看 | 人人添人人澡人人澡人人人爽 | 欧美精品久 | 91在线国内视频 | 91在线观看高清 | 中文免费 | 国产成人无码AⅤ片在线观 日韩av不卡在线 | 综合网伊人 | 欧美一级性生活视频 | 国产护士av| 久久精品久久99 | 国产精品久久久电影 | 国产精品6999成人免费视频 | 精品国产免费看 | 精品国产欧美一区二区 | 久久6精品 | 伊人看片 | 中文字幕一区二区三区四区久久 | 超碰在线观看av.com | 欧美日韩有码 | 精品女同一区二区三区在线观看 | 久久久麻豆视频 | 国产精品久久婷婷六月丁香 | 欧美激情在线看 | 欧美日韩不卡在线观看 | 91麻豆文化传媒在线观看 | 去干成人网 | 日韩日韩日韩日韩 | 18国产精品白浆在线观看免费 | 精品二区久久 | www.黄色片网站 | 日韩一区二区免费视频 | 国产精品九九九九九九 | 天天操天天吃 | 91网站免费观看 | 国产精品一区二区三区久久久 | 亚洲免费av网站 | 亚洲一区二区三区在线看 | 国产91丝袜在线播放动漫 | 波多野结衣一区二区三区中文字幕 | 国产精品毛片久久蜜 | 欧洲黄色片 | 夜夜夜夜猛噜噜噜噜噜初音未来 | 国产在线观看a | 国产黄色大片免费看 | 国产精品免费观看网站 | 日韩精品不卡在线 | 亚洲一区二区三区四区精品 | 日韩中文在线视频 | 免费中文字幕在线观看 | 国产精品久久视频 | 三级黄色网络 | 免费在线精品视频 | 午夜少妇一区二区三区 | 在线看国产日韩 | 久久免费在线观看视频 | 国产精品99久久久久久小说 | 欧美大片在线看免费观看 | 97国产精品 | 精品国产伦一区二区三区观看方式 | 97视频精品 | 一本大道久久精品懂色aⅴ 五月婷社区 | 日韩在线观看a | 韩国一区二区三区在线观看 | 日韩中文在线电影 | 久草视频免费在线观看 | 99视频在线观看免费 | 97视频在线观看播放 | 国产精品久久久久久999 | 国产免费观看高清完整版 | 成年人免费在线观看 | 久久婷五月 | 亚洲三级在线免费观看 | 成人久久综合 | 9ⅰ精品久久久久久久久中文字幕 | 日韩久久久久久久久久久久 | 狠狠干2018 | 国产日韩欧美综合在线 | 视频一区二区在线 | 国产精品久久久久久久久久直播 | 免费观看一区 | 国产精品免费视频网站 | 51久久夜色精品国产麻豆 | 国产精品理论片在线观看 | 一区二区精品国产 | 深爱开心激情网 | 在线直播av| 天天玩夜夜操 | 欧美日韩国产精品一区二区亚洲 | 国产第一页福利影院 | 成人精品一区二区三区中文字幕 | 国产一区二区在线视频观看 | 色网站黄| 精品美女久久久久 | 人人爽人人乐 | 国产a级免费 | avav99| 欧美精品中文字幕亚洲专区 | 中文字幕在线观看视频一区二区三区 | 久久亚洲福利 | 亚洲综合婷婷 | 免费黄色在线网址 | 国产无区一区二区三麻豆 | 国产理论一区二区三区 | 97精品超碰一区二区三区 | 免费观看视频的网站 | 中文字幕无吗 | 亚洲免费精品视频 | 欧美性大战 | 日韩欧美精品免费 | 狠狠天天 | 日韩中文字幕在线观看 | 婷婷深爱五月 | wwwwww黄| 久久伦理电影网 | 国产精品第二页 | 国产精品刺激对白麻豆99 | 国产区网址 | 国产精品资源在线观看 | 久久99爱视频 | 99精品国产99久久久久久福利 | 国产成人亚洲在线观看 | 在线观看午夜av | 不卡精品| 欧美精品在线观看 | 在线免费三级 | 欧美精品v国产精品v日韩精品 | 久久激情五月丁香伊人 | 一区二区三区高清 | 在线观看视频在线观看 | 日韩欧美一区二区三区视频 | 国产精品久久久久久久久久久杏吧 | 日本性xxx | 精品国产欧美 | 国产 成人 久久 | 久久色中文字幕 | 国产美女免费视频 | 国产伦精品一区二区三区照片91 | 天天弄天天操 | 日本中文字幕在线免费观看 | 色在线视频 | 97在线资源 | 精品国产1区 | 天天骚夜夜操 | 在线欧美a | 免费国产ww | 99精品欧美一区二区 | 国产一在线精品一区在线观看 | 日韩精品一区二区三区免费观看 | 成+人+色综合 | 成人小视频免费在线观看 | 97国产在线观看 | 国产精品久久久久久久久久三级 | 综合网天天色 | 456免费视频| 亚洲国产片 | 四虎影视久久久 | 天天干 夜夜操 | 国产h片在线观看 | 人人玩人人添人人澡超碰 | 久热av | 免费在线观看日韩欧美 | 美女精品在线 | 午夜黄网| 国产xxxx性hd极品 | 香蕉久久国产 | 奇米导航 | 99视频在线精品国自产拍免费观看 | 四虎成人精品永久免费av | 婷婷色网 | 黄色a大片| 久久久久久毛片 | 丝袜美腿亚洲 | 丰满少妇在线观看网站 | 最近免费中文字幕 | 中文在线免费一区三区 | 日韩av区 | 久久草 | 精品国产电影一区二区 | 久久激情片 | 国产成人精品亚洲 | 日韩午夜网站 | 日日精品 | 在线亚洲精品 | 果冻av在线 | 69av视频在线观看 | 国产a视频免费观看 | 在线免费观看的av网站 | 91视频免费| 亚洲精品麻豆视频 | 久久久久亚洲国产精品 | 欧美成人xxxxxxxx | 国产99久久久国产 | 婷婷久久婷婷 | 国产精品色 | 免费午夜视频在线观看 | 成人免费在线播放视频 | 久草资源在线 | 欧美日韩免费看 | 亚洲一区二区观看 | 国产黄色av网站 | 精品视频免费观看 | 少妇bbbb搡bbbb桶 | 99精品在线视频播放 | 婷婷综合av | 97超碰人人爱 | 在线视频 日韩 | av不卡在线看 | 麻豆av一区二区三区在线观看 | 日韩av有码在线 | 狠狠色丁香婷婷综合久久片 | 999免费视频| 亚洲一区日韩精品 | 999成人网| 日韩av在线一区二区 | 色先锋av资源中文字幕 | 日韩综合一区二区三区 | 亚洲精品视频免费在线观看 | 999亚洲国产996395 | 日韩高清二区 | 中文字幕一二 | 国产糖心vlog在线观看 | 人人超碰免费 | 成人黄色电影在线播放 | 精品96久久久久久中文字幕无 | 日韩乱色精品一区二区 | 九九免费精品 | 日日夜夜免费精品视频 | 国内成人精品2018免费看 | 欧美 激情在线 | www.香蕉视频在线观看 | 欧美精品一区二区性色 | 亚洲免费在线观看视频 | 看av免费 | 成人sm另类专区 | 六月丁香婷婷网 | 国产99久久久精品视频 | 国产成人av网址 | 久久久鲁 | 99精品久久只有精品 | 美女视频久久久 | 操操操人人| 国产精品免费久久久久 | 伊人资源站 | 五月天婷婷综合 | 精品国产免费人成在线观看 | 天躁狠狠躁 | 国产色视频网站 | 日韩精品三区四区 | 99精品国产福利在线观看免费 | 2020天天干夜夜爽 | 在线精品在线 | 中文字幕在线播放视频 | 亚洲成人家庭影院 | 五月天中文在线 | 香蕉视频免费在线播放 | 在线观看日韩精品视频 | 麻豆91精品91久久久 | 男女免费av | 香蕉手机在线 | 波多野结衣视频在线 | 人人爽爽人人 | 国产精品婷婷午夜在线观看 | 六月色丁香 | 中文字幕电影在线 | 欧美性春潮 | www国产亚洲 | 欧美大片在线观看一区 | 91在线看网站 | 九九热久久免费视频 | 手机av看片 | av中文国产 | 成人在线免费观看网站 | 在线免费观看黄色av | 欧洲亚洲国产视频 | 婷婷色五 | 国产成人福利在线 | 正在播放亚洲精品 | 亚洲动漫在线观看 | 国产第一页精品 | www.黄色片网站 | 亚洲精品午夜久久久久久久 | 天天射天天操天天干 | 天天干天天操av | 97超视频在线观看 | 日本在线观看一区 | 亚洲精品在线看 | 亚州精品天堂中文字幕 | 中文字幕 91 | 91亚洲精| 97在线视频观看 | 91正在播放 | 欧美与欧洲交xxxx免费观看 | 国产精品青青 | 欧美一区二区三区特黄 | 免费日韩 精品中文字幕视频在线 | 久久免费的精品国产v∧ | 99精品国产兔费观看久久99 | 91av亚洲 | 欧美高清视频不卡网 | 日韩久久久久久久久 | 亚洲狠狠婷婷综合久久久 | aaa日本高清在线播放免费观看 | 91视频88av| 69夜色精品国产69乱 | 亚洲国产精品va在线看黑人动漫 | 草久久影院 | 97福利社 | 国产精品美女久久久久久 | 国产精品视频在线观看 | 天天草综合 | 国产视频一二三 | 国产日韩在线观看一区 | 国产不卡在线播放 | 在线 国产 亚洲 欧美 | 不卡国产在线 | 日韩高清免费在线观看 | 国产精品12 | 日本黄色大片儿 | 精品国产91亚洲一区二区三区www | 欧美成人黄色片 | 中文成人字幕 | 日韩精品久久久久久 | 992tv人人草 黄色国产区 | 成人宗合网 | 久久久国际精品 | 免费观看91视频 | 国产精品久久久久久五月尺 | 国产日韩精品一区二区三区 | 99色免费视频 | a成人v| 日韩av高清在线观看 | 亚洲国产精品va在线 | 亚洲六月丁香色婷婷综合久久 | 美女福利视频网 | 少妇bbb | 国产一区二区视频在线播放 | 亚洲高清视频一区二区三区 | 久久久精品欧美一区二区免费 | 成人a免费看 | 亚洲国产成人久久 | 国产视频美女 | 午夜婷婷综合 | 亚洲国产美女精品久久久久∴ | 国产精品 国产精品 | 日韩成人高清在线 | 久久激情日本aⅴ | 日韩专区一区二区 | av电影免费在线 | 999精品网| 911精品美国片911久久久 | 天天干夜夜干 | 91精品在线免费观看视频 | 毛片1000部免费看 | 久久久影视 | 日韩美女久久 | 最新高清无码专区 | 日本爽妇网 | 91资源在线免费观看 | 六月丁香在线观看 | 五月天婷婷在线播放 | 国产高清在线免费观看 | 成人在线视频观看 | 天堂网中文在线 | 国产最顶级的黄色片在线免费观看 | 天天插天天干天天操 | 中文字幕在线视频一区 | 国产日韩精品在线观看 | 香蕉影院在线 | 免费观看的黄色 | 亚洲另类视频 | 久久久综合 | 久久天天躁狠狠躁亚洲综合公司 | www.久久色 | 亚洲成人av免费 | 久久精品网站视频 | 精品一区二区三区香蕉蜜桃 | 亚洲国产精品va在线 | 免费亚洲视频在线观看 | 九九热精品视频在线播放 | 亚洲专区免费观看 | 日本韩国精品在线 | 国产清纯在线 | 天天激情站 | 久久a级片 | 超级碰碰碰碰 | 日韩三级视频 | 中文字幕丝袜一区二区 | 在线观看国产日韩欧美 | 色婷婷骚婷婷 | 亚洲国产精品成人精品 | 96精品视频 | 91九色蝌蚪视频在线 | 欧美成天堂网地址 | 国产精品美女久久久久久久久久久 | 国产私拍在线 | 日本精品久久久一区二区三区 | 久久tv| 欧美一级免费 | 天天色天天草天天射 | 欧美日韩免费一区 | 成人免费观看网址 | 久久午夜网 | 高潮毛片无遮挡高清免费 | 久久久男人的天堂 | 91精品国产自产老师啪 | 国产一级特黄毛片在线毛片 | 日韩专区 在线 | 国产精品成人自产拍在线观看 | 久久精品96 | 日韩激情第一页 | 911精品美国片911久久久 | 国产一级a毛片视频爆浆 | 最新av网址在线 | 97人人模人人爽人人喊网 | 欧美日韩xxx| 久久免费视频7 | 91tv国产成人福利 | 亚洲精品午夜aaa久久久 | 日韩免费播放 | 日韩精品一区二区三区第95 | 国产精品免费视频观看 | 91插插影库 | 一级a性色生活片久久毛片波多野 | 亚洲资源视频 | 日韩在线视频网站 | 亚洲va韩国va欧美va精四季 | 成人免费视频a | 婷婷丁香六月 | 国产精品18久久久久vr手机版特色 | 国产国产人免费人成免费视频 | 国产1区2区3区在线 亚洲自拍偷拍色图 | 91大神精品视频 | 国产在线免费观看 | 精品国产人成亚洲区 | 中文字幕av专区 | 国产精品久久一卡二卡 | 在线电影日韩 | 激情五月在线视频 | 激情婷婷六月 | 亚洲成aⅴ人在线观看 | 日日摸日日 | 午夜av免费观看 | 狠狠色香婷婷久久亚洲精品 | 国产成人av一区二区三区在线观看 | 在线观看完整版免费 | 九九久久久久久久久激情 | 国产精美视频 | 欧美少妇的秘密 | 在线a视频 | 欧美精品一级视频 | 天天干,狠狠干 | 亚洲精品五月天 | 激情五月婷婷丁香 | 国产色视频一区二区三区qq号 | 国产精品成人一区二区三区吃奶 | 亚洲乱码在线 | 天天在线操 | 九九视频免费观看视频精品 | 97在线观看视频 | 激情五月网站 | 婷婷久久一区二区三区 | 99精品视频在线观看 | 在线观看免费视频你懂的 | 碰超人人 | 国产午夜精品一区二区三区四区 | 亚洲最大激情中文字幕 | 狠狠操狠狠干天天操 | 人人看人人爱 | 日韩av手机在线观看 | 欧美日韩国产在线 | 色中文字幕在线观看 | 草久久久久久 | 亚洲精品国产区 | 成人av日韩 | 国产99久久九九精品免费 | 亚洲精品高清一区二区三区四区 | 在线看毛片网站 | 国产午夜免费视频 | 成人午夜电影在线 | 久久手机在线视频 | 国产精品一区二区吃奶在线观看 | 人人看黄色 | 丁香av | 婷婷社区五月天 | 亚洲欧美在线观看视频 | 久久久久久久久久久电影 | www夜夜操 | 91精品国产99久久久久久久 | 黄色亚洲片| 黄色成人小视频 | 成人av网址大全 | 永久免费看av | 亚州精品天堂中文字幕 | 久久婷婷一区二区三区 | 国产精品免费久久久久 | 中文字幕亚洲综合久久五月天色无吗'' | 在线天堂中文在线资源网 | 99精品一区二区三区 | 国产精品久一 | 麻豆影视网站 | 国产高h视频 | 中文资源在线观看 | 欧美色一色 | 怡红院成人在线 | 91香蕉久久 | 亚洲国产资源 | 国产精品美女在线 | 六月色婷婷 | 欧美精品日韩 | 天天干,天天操,天天射 | 蜜桃视频日韩 | 99热手机在线 | 一区二区三区四区五区在线 | 在线免费观看视频 | 99视频精品视频高清免费 | 国产日产欧美在线观看 | 久久免费国产电影 | 亚洲成人资源在线 | www.天天操| 在线99热 | 亚洲精品国产精品99久久 | 日日操网站 | 国产 日韩 中文字幕 | 国产午夜一区二区 | 粉嫩高清一区二区三区 | 久久人人爽人人人人片 | 亚洲精品在线视频网站 | 日韩高清一区二区 | 日黄网站 | 免费日韩 精品中文字幕视频在线 | 一区在线免费观看 | 国产黄色一级大片 | 国产成人av一区二区三区在线观看 | av免费在线看网站 | 91精品久久久久 | 日韩视频免费在线观看 | 四虎成人精品在永久免费 | 91亚洲永久精品 | 91麻豆产精品久久久久久 | 黄污网站在线 | 美州a亚洲一视本频v色道 | 在线免费观看黄色 | 久久小视频 | 免费av电影网站 | 国产精品 美女 | 久久人91精品久久久久久不卡 | 成人免费观看网址 | 欧美a级在线免费观看 | 国产69精品久久久久9999apgf | 激情综合五月天 | 日韩av视屏在线观看 | 中文字幕在线视频免费播放 | 丁香五月网久久综合 | 欧美国产精品久久久久久免费 | av一区二区三区在线播放 | 亚洲电影免费 | 久久久久久毛片 | 亚洲资源网 | 国际精品久久久久 | 日韩欧美一区二区三区黑寡妇 | 国产一级精品绿帽视频 | 五月婷香蕉久色在线看 | 夜夜躁日日躁 | 国产免费又黄又爽 | 国产一区二区精品 | 欧美一级性| 国产二区av | 免费在线中文字幕 | 中文字幕91视频 | 欧美在线视频二区 | 成人av在线网 | 在线最新av|