0%

简易刷铁机的制作

原料:

任意方框: 泥土、玻璃、石头均可以

收集装置

首先搭建下面的装置,一格深的装置,两个小箱子组成的大箱子----箱子*2 方块*15

收集1

接下来放置9个漏斗,漏斗连接到箱子上,方法是shift+右键点击对应方块,即可将漏斗连接到方块上、将红色线圈内的漏斗连接到箱子,其余漏斗依次连接

检验是否安装成果: 向漏斗里面丢东西,最后可以在箱子里面找到

漏斗安装

铁傀儡处死装置

在收集装置基础上向上搭建20格,并形成通道,部分区域可简化,以节省方块,当然也可以想底下挖,将收集装置位于-20处以节省方块,需要方块16*20=320,告示牌*9

玻璃通道

在距收集装置2格处放置告示牌,悬浮告示牌放置需要将光标指向告示牌右侧 shift+右键单机(下面的截图均高了一格)

告示牌放置方法

告示牌安置结果

在告示牌安置上一个放置岩浆,上图红框范围

岩浆放置结果

铁傀儡生成

搭建铁傀儡生成后的移动平台,利用水流将铁傀儡推到处死装置里

搭建9*9的方格,并在方格外侧添加围栏,挡住水的流动

铁傀儡流动平台

先在中心添加栅栏门,挡住水流向下的移动,在四个角的方块上放置水源,将铁傀儡向中心推动

![水流装置](水流装置.p

僵尸放置轨道

在水流上方四格处,放置一个横着的9格,并搭建为如图所示,其中最上方为半砖

僵尸行动轨道

在僵尸过道两侧建立有3*3*2空间的空间的村民房

村民房

放入床并封顶,注意床要顶格放,否则僵尸吓不到村民,如果夜晚村民睡觉了,说明距离太远了,以及注意床的方向,床的方向不对,村民不会睡觉

村民床

在最底下可以放置灵魂篝火,以加快效率

灵魂篝火

注意:

铁傀儡生成规则

本篇介绍我的世界的各种特性

**铁傀儡刷新机制:**村民被吓+区域内5个以上村民,僵尸吓村民表现为晚上上床后立马起床

一、ContextCapture先降低图像分辨率做空三再恢复继续做

首先下采样图像分辨率,一般为30%

下降分辨率

提交空三

image-20250804100937058

二、已有图像初始位姿,计算准确位姿

针对于:手持激光扫描仪由于时间同步或标定或者其他问题导致的图像位姿不准,但已有较好的初值,需要计算更为准确的位姿

将初始位姿转为blockexchange 的xml格式

这个格式是COntextCapture、Photoscan等软件的通用格式

image-20250804142715704

contextCapture导入xml结果

在已有位姿上提交空三

contextCapture提交空三

最后导出block,在metashape中生成稀疏点云即可

指定ip走指定的网卡

本文实验适用于,vpn走wifi的网卡,其余走网线,这样vpn不会影响其余端口的实用

查询本地网卡与网关

1
route print

网卡与网关信息

其中:10.104.255.254是网线的网关、192.168.1.1是wifi的网关

添加条件:指定的ip走指定的网关

1
route add 219.139.228.228 mask 255.255.255.255 192.168.1.1 metric 10 if 6

其中219.139.228.228是指定的ip 192.168.1.1是这个ip走的网关,其中6是指wifi对于的接口

wifi接口信息

即可实现219.139.228.228走wifi,其余走网线

常见命令

拉取容器

1
sudo docker pull image_name

创建镜像

1
docker run -i -d --gpus all --shm-size=24g -v F:/ubuntu/docker_data/fast-livo2:/data --name fast-livo2 cuda_11_8
  • -d: 容器在后台运行,并返回容器的id
  • –gpus all: 该镜像可以访问到的gpu设置为全部
  • –shm-size=24g: 设置容器的共享内存,默认为64MB,对于深度学习等应用来说,不够
  • -v local_path:image_path : 将容器路径映射到本地路径,用于存放代码和数据等等
  • –name: 容器名称
  • cuda_11_8: 镜像名称

进入已有容器的命令行进行操作

1
2
docker ps -a
docker exec -it <容器id或名称> /bin/bash

删除容器和镜像

1

加载本地镜像

常见问题

vscode连接远程docker权限问题

Failed to connect. Is Docker runing?

1
sudo chmod 777 /var/run/docker.sock

vscode连接远程本地docker版本冲突

Failed to connect to the remote extension host server (Error: Connection error: Client refused: version mismatch)

1
2
pkill -f vscode-server || true
rm -rf ~/.vscode-server ~/.vscode-server-insiders

pyinstaller常用参数

  • -F: 打包为一整个exe

  • -D: 打包为一个文件夹

  • -w: 运行时不显示命令行窗口(仅对windows有效)

  • -i: 图标路径

基础命令

本文代码:https://github.com/ouwenwu/UAV2GroundMapper.git

一、数据准备

无人机数据

无人机数据图片

手持扫码仪数据

手持扫描仪数据

二、无人机数据处理

Photoscan无人机处理流程

Align Photos->Build Point Cloud

无人机数据处理结果

导出camera.xml和点云备用,需要设置导出格式为blockexchange同时不需要导出tiepoints

photoscan导出camera

导出参数设置

点云导出参数设置

手持激光扫描仪处理流程

RayStudio打开工程文件—Basic Data解算图片和点云数据

Raystudio解算数据

点云赋色

点云赋色

slam处理结果

RayStudio导出图片使用Photoscan空三

将RayStudio的文件导出图像初始位置

1
python main.py getImageXYZ --colmap_dir J:/jyg/chibi/zhihuilou/outdoor/shading/Colmap/sparse/0/images.txt --output_path J:/jyg/chibi/zhihuilou/outdoor/shading/Colmap/image_xyz.txt

图片路径位于:./image_undistorted/camera_front

Photoscan添加图片后,在Reference(参考页)添加图像位置作为参考,并选择之前输出的图像位置

phtotscan导入参考

可以适量的删除影像(只保留研究区域)以及稀疏影像,当前影像采集频率高于需求,适当减少加快效率,删除后align photos(对齐图片)->Build Point Cloud

手持密集点云

导出camera.xml和点云备用,需要设置导出格式为blockexchange同时不需要导出tiepoints

手持与无人机融合

手持到无人机坐标系统转换

cloudcampare计算变换矩阵

包含粗配准和精配准两个步骤:其中粗配准为手动调整点云使得两个点云具有初步配齐,再使用icp进行精配准.

记录下每一步点云的变换矩阵

旋转平移方法

粗配准结果

裁剪两个点云至相同范围,并做精配准

精配准

记录下每一步的变换矩阵如下:

变换矩阵

将手持坐标系按照变换关系旋转

将无人机的photoscan的xml格式转为colmap格式

1
python main.py from_photoscan_xml_2_colmap_txt --xml_path J:/jyg/test/camera_shouchi.xml --output_path J:/jyg/test/colmap

根据colmap结果计算图像位置

1
python main.py getImageXYZ --colmap_dir J:/jyg/test/colmap --output_path J:/jyg/test/image_xyz.txt

图像位姿

旋转图像位置到无人机的坐标系下:

1
python main.py rotate_image_xyz --image_xyz J:/jyg/test/image_xyz.txt --output_path J:/jyg/test/image_xyz_out.txt --matrix_path J:/jyg/test/matrix.txt

根据旋转后的图像位置去纠正colmap文件到指定坐标系

1
colmap model_aligner --input_path J:/jyg/test/colmap --output_path J:/jyg/test/colmap_rotate --ref_images_path J:/jyg/test/image_xyz_out.txt --alignment_type enu --ref_is_gps 0  --robust_alignment_max_error 3

将旋转后的bin文件转为txt格式

colmap->import model->export model as text

将旋转后的colmap的txt文件,写为photoscan的xml文件

1
python main.py write_colmap_txt_2_photoscan_xml --colmap_txt_path J:/jyg/test/colmap_rotate --output_xml_path J:/jyg/test/camera_shouchi_rotate.xml --image_path J:/jyg/test/20250726162036/image_undistorted/camera_front

融合无人机和手持影像

合并无人机的xml和手持影像的xml

1
python main.py merge_photoscan_xml --xml_lists J:/jyg/test/camera_wrj.xml J:/jyg/test/camera_shouchi_rotate.xml --output_xml_path J:/jyg/test/merged_camera.xml

将xml文件导出为colmap的txt格式

1
2
python main.py from_photoscan_xml_2_colmap_txt --xml_path J:/jyg/test/merged_camera.xml --output_path J:/jyg/test/colmap_m
erge

  1. Equations: conclude with comma or dot depending on what follows.

    公式后要根据后续的内容添加逗号或句号

一、创建文档

1.创建到_post默认的文件夹中

1
hexo new name

2.创建到_post下的指定子文件夹中

1
hexo new post "title" --path=latex/name.md

二、部署到github

1
hexo clean && hexo generate && hexo deploy

当你不想在新文件夹里再跑一次 BibTeX,只想把已经“编译好”的参考文献带过去(适用于保持回复信中的参考文献顺序和文章中的一致),你至少要拷以下几个文件:

  1. .bbl 这是 BibTeX 运行后生成的含所有条目的正文文件,LaTeX 在第二轮编译时会直接把它当作 .tex 插入。
  2. .bst 这是你用来格式化参考文献的样式文件,如果目标工程里还没有,就要一并拷过去。
  3. .bib 如果目标工程以后还要对条目做增删改,或者要重新跑 BibTeX,就也把原始的 .bib 带上。
  4. .aux 只有当你要完全复刻交叉引用编号或者要保证引用顺序完全一致时才需要,一般不必。