Gazebo室外仿真之地形植物建模

csdn不怎么用了,欢迎到我的博客进行交流探讨:https://daoker.cc
本文最新版来自我的博客文章:Gazebo室外仿真之地形植物建模
https://daoker.cc/daokerto41.html

地形

法一:terrain_generator

首先查阅资料:

  1. GAZEBO构建室外环境地图之创建高度图

  2. GAZEBO构建室外环境地图之加载山地地形

由于我的项目需求是需要甘蔗地的地形模型,对于从卫星地图中获取高程图的办法明显不能达到要求,所以这里我选择采用World Creator 建模,然后导出成高程图:在这里插入图片描述
然后使用opencv调整大小,这里转换了多张不同大小的图像:

#include <opencv2/highgui.hpp>
#include <opencv2/opencv.hpp>
using namespace cv;
using namespace std;
int main(int argc, char **argv)
{
    // read image
    Mat hmap = imread("heightmap.png", IMREAD_GRAYSCALE);
    //Mat hmap = imread("mtsthelens_1025.tif", IMREAD_ANYDEPTH);
    if (hmap.empty()) //如果没有读到图片,则为true
    {
        std::cout << "图片读取错误" << std::endl;
    }
    Mat rmap;
    //把图片改成2^n-1大小的8位图片
    for (int i = 7; i <= 12; i++)
    {
        int map_size = pow(2, i) + 1;
        string addr = "hetmap_png2png" + to_string(map_size) + "_l.png";
        resize(hmap, rmap, Size(map_size, map_size));
        imwrite(addr, rmap);
    }
    /*
    编译:
    g++ test.cpp -o test `pkg-config --cflags --libs opencv4`
    return 0;
}

然后采用资料2中的脚本https://github.com/Sarath18/terrain_generator,生成了.world文件,然后使用gazeo打开,得
在这里插入图片描述
查看文件,也找不到材质文件在哪,所以之后另寻他法。

法二:gdal

Gazebo 11分类教程——构建仿真世界(三)

然而,在最后一步出错,并不能复现上面的文章里的效果

GAZEBO_RESOURCE_PATH="$GAZEBO_RESOURCE_PATH:/tmp" gazebo /tmp/volcano.world

也找不到原因:
更多参考文献:
在Gazebo中使用DEM構建起伏地形環境
gazebo仿真记事(二):gazebo里加载自己的DEM
Digital Elevation Models
gdal将16位的tif转为8位tif
gdalwarp

法三:blender(成功)

参考视频How to create terrain for Gazebo simulation with Blender 2.9了解到使用blender也可以建模,视频中的项目地址:Gazebo Terrain Tutorial,按照视频指导,成功建立地形模型并导入gazebo。
上面的视频在油管上,我已经搬运到了国内:使用blender创建仿真模型并导入Gazebo
一些细节设置的资料:
Blender怎么快速建模一片绿树叶?Blender快速建模一片绿树叶教程
blender2.9怎么快速建模一颗树苗? blender树的建模技巧
最终效果图:
在这里插入图片描述

  • 10
    点赞
  • 51
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值