自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(121)
  • 资源 (4)
  • 收藏
  • 关注

原创 ROS SMACH个人学习记录

本文仅为个人学习记录,结论正确性待考究。欢迎大家讨论。

2022-12-01 16:30:27 561 1

翻译 ROS学习笔记(九)使用rosed在ROS里面编辑文件

本文介绍了如何使用rosed让文件编辑变得更容易rosed是rosbash工具包中的一部分。他让我们能够根据文件名直接编辑该文件,而不是需要找到文件的全部路径名。用法举例该例子示例了如何编辑roscpp包里面的logger.msg文件。(如果该命令运行无效,请检查是否安装了vim编辑器)用法:举例:得到输出:三、编辑器rosed默认的编辑器是vim,我们可以修改为更加适合初学者的编辑器nano。修改方法不再赘述,请参考...

2022-06-28 15:56:36 566

翻译 ROS学习笔记(四)学会构建你的package

当ros包的系统依赖都安装到位之后,我们可以构建我们的包,首先需要把你的配置文件添加到环境里面1.1 使用catkin_makecatkin_make是集合了多个编译指令的命令,方便我们在ros里面进行编译。从上一篇文章中,我们已经有了一个catkin workspace,其中包含一个beginner_tutorials包。现在我们去到该工作空间下面看下是否如此。得到输出:可以看到有一个beginner_tutorials文件夹,这是我们之前创建package生成的。现在我们可以尝试构建这个包得到

2022-06-18 14:46:32 302

原创 《机器人动力学与控制》第七章—路径规划与避障 7.4 使用随机运动来逃离局部最小势能位置

文章目录7.4.0 前言7.4.1 RPP 算法参考引用7.4.0 前言正如前面提到过的,人工势场法的一个缺点就是在势场里面可能会存在一个局部最小势能位置导致机器人陷在那里出不来。局部极小值问题在优化领域很早就出现了,为此人们发展出了一些概率方法来应对这个问题。同样地,在机器人领域也有随机化方法来处理局部极小值的问题。7.4.1 RPP 算法第一个要介绍的方法是RPP,全称Randomized Potential Planner。该方法思路很简单,就是正常使用梯度下降法,然后在陷入局部极小点位置的时

2020-12-08 10:56:31 845

原创 《现代控制系统》第四章——反馈控制系统特性 4.4 反馈控制系统里面的干扰信号

干扰信号会导致系统产生不准确的输出,干扰信号的来源有很多。反馈控制系统的另一个优势就是可以部分消除干扰信号带来的影响。

2020-12-03 17:33:45 1776

原创 Matlab 仿真——直流电机速度控制(5)通过频域分析进行控制器设计

Matlab 仿真——直流电机速度控制(5)通过频域分析进行控制器设计1. 受控对象与设计要求受控对象%motor parameterJ = 0.01;b = 0.1;K = 0.01;R = 1;L = 0.5;%motor tf functions = tf('s');P_motor = K/((J*s+b)*(L*s+R)+K^2)设计需求(阶跃响应):稳定时间<2s超调<5%稳态误差<1%2. 画出原始波特图基于频域分析的控制器设计主要思想是

2020-12-03 13:52:27 2951

原创 Matlab 仿真——单自由度倒立摆(4)根轨迹法控制器设计

本文用根轨迹法给倒立摆系统设计控制器

2020-12-03 10:40:52 2644 1

原创 《现代控制系统》第五章——反馈控制系统性能 5.8 高阶线性系统的简化

文章目录《现代控制系统》第五章——反馈控制系统性能5.8 线性系统的简化方法一 删除极点法方法二 频域近似法方法二举例其他方法参考文献《现代控制系统》第五章——反馈控制系统性能5.8 线性系统的简化用近似的低阶系统来学习高阶系统是非常有用的。通过满足一些系统性能,一个四阶的系统便可以近似等效为一个二阶系统。有几种不同的方法可以减少系统的阶数方法一 删除极点法我们可以通过删除转换方程里面不重要的极点的方式来减少阶数,什么样的极点才是不重要极点呢?在S平面里,极点离虚轴越远对系统的影响越小。举个例子,

2020-12-02 17:21:34 1532

原创 《现代控制系统》第五章——反馈控制系统性能 5.6 反馈控制系统的稳态误差

尽管反馈控制使控制系统变得更加复杂,但是它能极大的减少稳态误差,这也是使用反馈控制的一个主要原因。

2020-12-02 10:56:38 1997

原创 Matlab 仿真——单自由度倒立摆(3)PID控制器设计

文章目录0. 受控对象与设计要求0.1 受控对象0.2 设计要求1. 控制系统结构2. PID控制器设计3. 小车的位置怎么样了?4. 几个问题5. 参考0. 受控对象与设计要求这里列出上一篇文章的结果0.1 受控对象Ppend(s)=Φ(s)U(s)=mlqss3+b(I+ml2)qs2−(M+m)mglqs−bmglq[radN]P_{pend}(s) = \frac{\Phi(s)}{U(s)}=\frac{\frac{ml}{q}s}{s^3+\frac{b(I+ml^2)}{q}s^2-\

2020-11-26 22:31:05 6265 2

原创 Matlab 仿真——单自由度倒立摆(2)系统分析

文章目录0. 受控对象与设计要求0.1 受控对象0.2 设计要求1. 开环冲激响应2. 开环阶跃响应3. 引用0. 受控对象与设计要求这里列出上一篇文章的结果0.1 受控对象Ppend(s)=Φ(s)U(s)=mlqss3+b(I+ml2)qs2−(M+m)mglqs−bmglq[radN]P_{pend}(s) = \frac{\Phi(s)}{U(s)}=\frac{\frac{ml}{q}s}{s^3+\frac{b(I+ml^2)}{q}s^2-\frac{(M+m)mgl}{q}s-\fr

2020-11-26 20:27:22 2617

原创 Matlab 仿真——单自由度倒立摆(1)系统建模

文章目录1. 问题设置与设计要求2. 力分析与系统方程2.1 转换方程2.2 状态空间3. Matlab表达3.1 转换方程3.2 状态空间1. 问题设置与设计要求该例的系统包含一个装有一个倒立摆的小车。我们的控制目标是通过给小车作用一个力,使顶部的倒立摆不落下来。下图标示出了各个变量的含义。对于这个例子,我们有以下参数:(M) 小车质量 0.5 kg(m) 倒立摆质量 0.2 kg(

2020-11-26 18:25:33 9780 4

原创 Matlab 仿真——直流电机速度控制(4)通过根轨迹法进行控制器设计

Matlab 仿真——直流电机速度控制(4)通过根轨迹法进行控制器设计1. 背景受控对象%motor parameterJ = 0.01;b = 0.1;K = 0.01;R = 1;L = 0.5;%motor tf functions = tf('s');P_motor = K/((J*s+b)*(L*s+R)+K^2)设计需求(阶跃响应):稳定时间<2s超调<5%稳态误差<1%2.画出根轨迹根轨迹设计的主要思想是根据根轨迹图预测闭环响应,该图描

2020-11-25 10:55:22 3705 1

原创 Matlab 仿真——直流电机速度控制(3)PID控制器设计

Matlab 仿真——直流电机速度控制(3)PID控制器设计上一节我们知道了我们的开环响应并不能满足设计需求,这一节我们通过一个PID控制器使我们的系统满足设计需求。这里把设计需求和系统转换方程粘贴在这里:设计需求(阶跃响应):稳定时间<2s超调<5%稳态误差<1%转换方程:s(Js+b)Θ(s)=KI(s) s(Js + b)\Theta(s) = KI(s) s(Js+b)Θ(s)=KI(s)(Ls+R)I(s)=V(s)−KsΘ(s) (Ls + R)I(s)

2020-11-24 15:18:18 16998 2

原创 Matlab 仿真——直流电机速度控制(2)系统分析

Matlab 仿真——直流电机速度控制(2)系统分析上一节我们成功在matlab建立好了电机系统模型,这一节我们来分析这个系统开环响应让我们看看该系统的开环响应如何,是否满足我们对电机的要求。matlab自带了线性系统分析工具。Matlab运行以下代码%motor parameterJ = 0.01;b = 0.1;K = 0.01;R = 1;L = 0.5;%motor tf functions = tf('s');P_motor = K/((J*s+b)*(L*s+R)+K^

2020-11-24 14:10:59 7275

原创 Matlab 仿真——直流电机速度控制(1)直流电机建模

Matlab 仿真——直流电机速度控制(1)直流电机建模(搬运自:https://ctms.engin.umich.edu/CTMS/index.php?example=MotorSpeed&section=SystemModeling)该系列我们学习如何对直流电机进行速度控制物理模型一个直流电机模型如下所示:为了简化讨论,假设转子和转轴都是刚体,转子受到的磁场恒定,转子受到的摩擦为粘性摩擦,即受到的摩擦力与速度成正比。假设该电机的物理参数为:(J) 转子的转动惯量

2020-11-24 13:35:38 21925 2

原创 Matlab - Solidworks 机器人建模(6)——使用rigidBodyTree构建机器人模型

前言本文适用对象:没有机器人的Solidworks模型自己又懒得画的童鞋没有机器人URDF模型的童鞋如果你在Matlab帮助里面搜索rigidBody,你大概率会看到matlab自带的例程 链接在这里 教你怎么用rigidBody建立机器人模型,里面有一小节告诉我们怎么用自己推导的DH参数表来建立操作臂模型。它这里用的例程是PUMA560 机械臂然后建出来的坐标系模型长这样就怎么说呢,很TM不直观。。。一是因为重叠的坐标系显示不出来,二是我们很难把这个坐标系跟我们的机器人模型对应。图像

2020-11-11 10:19:10 5015 7

原创 《应用非线性控制》第二章——相平面分析 2.4 线性系统的相平面分析

本节我们研究线性系统的相平面分析,这不光方便我们直观地看出系统地动态特性,也方便了我们下一节研究非线性系统的相平面分析。这是因为一个非线性系统在平衡点附近的动态特性与线性系统相似。一个二阶线性系统的一般形式为:...

2020-11-07 12:44:27 2535 1

原创 《应用非线性控制》第二章——相平面分析 2.3 通过相图求时间

此时你或许已经发现了,相图里面并没有时间信息。而一个运动的时间信息往往是我们需要关注的。就比如说,工程师会希望知道系统从初始位置点运动到目标位置点时所花费的时间,这一节提供了两种求时间的方法方法一我们把相轨迹切成一个个小段,并假设在小片段内为匀加速运动。那么短时间下,x的改变满足(这里的x求导是平均时间)上式假设了在一个短时间范围内,速度不变,可以通过x的变化量除以平均速度得到该片段消耗的时间。因此如果要求相轨迹一点到另一点所消耗的时间,我们可以把该相轨迹片段分割成小片段一个个求时间,然后总时

2020-11-06 18:05:34 788

原创 《应用非线性控制》第二章——相平面分析 2.2 怎么绘制相图

如今的相图都是用电脑来生成,但是学习如何生撸相图依然很重要。对于线性或者非线性系统,有多种构造相图的方法,例如分析法,等斜线法,delta法,Lienard’s 法以及Pell’s 法。本节我们介绍分析法和等斜线法,之所以选这两种方法是因为它们相对比较简单。分析法主要通过研究描述系统的差分方程的解析解来构造相图,该方法适用于一些特殊的非线性系统,例如分段线性系统,它们的相图可以通过组合相关线性系统的相图来合成。而等斜线法主要适用于一些不能得到解析解的系统,这些系统也是实际情况里面最常见的。分析法分析法

2020-11-06 16:02:40 5460 1

原创 《应用非线性控制》第二章——相平面分析 2.1 相平面分析的概念

前言相平面分析法是一个用来研究二阶系统的图示法,是由Henri Poincare在20~21世纪交替之际发明。基本概念很简单,就是在一个二阶动态系统的状态空间里生成一个对应于不同初始状态下的运动轨迹(一个被称之为相平面的二维平面),然后根据这个二维图像来考察轨迹的特征。通过这种方法,系统的稳定性以及其他运动特征可以通过图像直观地获得。本章我们的目标是通过这个相平面分析法逐渐熟悉非线性系统。相平面分析法有一些有用的特征,首先,因为它是一种图示法,因此我们能够直观的观察到不同初值下系统的变化,不需要算出解析

2020-11-05 14:21:30 4064

原创 用Matlab画出相图进行相平面分析

一个二阶非线性方程可以转化成状态空间表达,对于如下这类特定的表达:matlab提供了直接的方程方便我们计算,本文研究如何用Matlab对这类表达的二阶非线性方程进行相平面分析。首先把非线性方程转化成我们想要的表达方式:考虑如下线性二阶常微分方程:得到:代码clear;%定义我们的非线性方程f = @(t,X) [X(2); -X(1)]%不同初值条件下进行求解并画图for x0=1:1:10 %计算t从0,递增至10,x1初值为x0,x2初值为0 情况下上述非线性方程的解

2020-11-05 10:01:43 12646 2

原创 《应用非线性控制》第一章(完)——介绍 1.3 本书的结构

教材结构因为非线性控制系统有着更加丰富且复杂的行为,因此它们的分析也相应得变得困难。从数学层面来说,困难来自于两个方面:1. 首先非线性方程不像线性方程,它们没有解析解,因此我们不能直接通过非线性方程的解去理解它们的行为。2.另外,在线性控制领域中强有力的分析工具例如拉普拉斯变换和傅里叶变换都不能在非线性控制领域使用(耶✌,反正我不熟)以上带来的直接结果就是我们没有系统的工具去预测非线性系统的行为,也没有系统的方法去设计非线性控制系统。相反,我们有强有力的分析工具和分析方法,但是只针对特定类别的非线性控

2020-11-03 11:14:58 478

原创 《应用非线性控制》第一章——介绍 1.2 非线性控制系统有哪些特征

前言物理系统都具有天生的非线性,所以在某种程度上来说所有的系统都是非线性的。非线性系统可以用非线性差分方程表示。如果一些非线性系统在小范围内顺滑,通过一些假设,并且限定工作范围,它是可以被等效为线性系统并且用线性差分方程来描述的非线性线性系统一个非线性系统特征举例一些常见的非线性系统特征...

2020-10-30 16:21:58 3482

原创 《应用非线性控制》第一章——介绍 1.1 为什么学习非线性控制系统

前言:非线性控制研究的是如何分析和设计非线性控制系统——包含至少一个非线性器件的控制系统。对于分析,是指有一个设计好的非线性系统,我们去分析它的行为特征;对于设计,我们被给定一个非线性系统以及闭环系统的性能参数,任务是设计一个控制器能够满足那些性能参数。实际应用中分析与设计是密不可分的,这是因为一个非线性系统的设计往往是一个包含分析和设计的迭代过程。本章介绍了后面章节将要讨论的特定分析设计方法的背景。1.1节解释了学习非线性系统的动机,1.2节阐述了非线性系统独特且丰富的行为特征,最后1.3节介绍了本书

2020-10-29 10:51:35 1467

原创 《现代控制系统》第四章——反馈控制系统特性 4.3 控制系统对参数变化的敏感程度

对于一个转换方程G(s),无论其代表了什么系统,其参数总会随着环境或多或少的变化。在开环系统里面,所有的这些参数变化都会直接导致一个变化和不准确的系统输出。但如果是一个闭环系统,它能通过感知和利用输出的变化来纠正输出。控制系统对参数变化的敏感程度是一个很重要的考量因素,闭环反馈控制系统可以减少系统对参数变化的敏感程度。这节我们只讨论参数变化对系统的影响,因此可以令Td(s)和N(s)为0, 那么根据上一节式4.2可以得到我们可以通过一个假设来获得反馈减少系统参数敏感度的一个直观感觉,如果在任意感兴趣的

2020-10-28 16:23:59 2068

原创 《现代控制系统》第四章——反馈控制系统特性 4.2 误差信号分析

下图的闭环控制系统有三个输入:给定的输入R(s),干扰Td(s) 以及测量噪声 N(s), 一个输出:Y(s)。我们定义误差信号:这里我们为了简化讨论,我们先考虑单位反馈系统,即H(s)=1。后面我们会考虑非单位反馈量对系统的影响。通过对上述框图进行公式化简,不难得到(推不出来的话自己去反思)因此,加上式4.1,就有定义Loop gain L(s)为因此4.3变成如果我们定义:那么用F(s)可以定义敏感度方程:以及:然后把S(s) 和C(s)带入E(s)得到:观察发

2020-10-28 13:40:27 1699

原创 《现代控制系统》第四章——反馈控制系统特性 4.1 介绍

前言本章我们探讨在研究反馈控制系统性能中误差信号所扮演的角色,关注点集中于如何减少系统对于模型不确定性的敏感程度,

2020-10-28 11:34:26 1475

原创 用python从文件路径获取文件名

问题描述:我有这样的一串文件地址,有的是左下划线,有的是右下划线,有的是双下划线:C:\Users\User\Desktop\Software\a.txtC:/Users/User/Desktop/Software/a.txtC:\Users\User\Desktop\Software\a.txt如何提取出文件名:a.txt代码:import ntpatha=r"C:\Users\User\Desktop\Software\a.txt" print(ntpath.basename(a))

2020-10-19 15:16:29 3223 1

原创 Python批量给PDF加图片签名

源代码:https://github.com/julis-wolala/PDFaddSign问题描述:批量给PDF添加签名(水印,图片),然后用同样的名字保存原理:先用word新建大小一样的空白文档,把签名图片放进你想要的位置,另存为sign.PDF利用PyPDF2里面的PDF合成方法,把原PDF与你的sign.PDF合成保存,以达到添加签名的效果。#功能描述:将PDF文件夹里的所有pdf添加签名图片import osimport PyPDF2SignPDF = PyPDF2.PdfF

2020-10-06 17:58:27 3109 1

原创 Sandcastle Help File Builder —— [Missing <summary> documentation for “N:“]

英文好的看这里解决办法:在SHFB Gui中,去到Project Properties——Summaries——Namespace Summaries——None在弹出的窗口中等待你的namespace出现4. 勾选左边命名空间5. 等待右边出现你的命名空间后选中6. 在下面的summary编辑窗口编辑你的summary7. 最后点击close8. 然后再次编译生成文档里面成功生成namespace的summary!...

2020-09-02 15:01:22 398

原创 Sandcastle Help File Builder BE0037报错

原因一:你没安装HTML Help Workshop解决方法: 去这里下载安装安装了之后还有报错原因: SHFB并不是在找HTML Help Workshop这个程序,而是搜索HTML Help Workshop文件夹,也就是说如果你安装的时候没有创建HTML Help Workshop文件夹直接安装,软件也会默认为找不到HTML Help Workshop,解决方法也很简单,新建一个HTML Help Workshop文件夹重新安装HTML Help Workshop...

2020-09-02 13:42:03 302

原创 Sandcastle Help File Builder ‘The tools version “15.0“ is unrecognized’报错

英文好的可以看问题的英文帖子,在这里最下面讲到了这是VS2019与SHFB的适配问题。作者在2020/08/28的提交中修复了问题,但是还没有更新对应的安装包。解决办法是去这里下载最新的源代码下载下来解压之后在SHFB-master—— SHFB ——deploy 文件夹下面有程序的启动文件,双击用这个就好了。...

2020-09-02 13:25:04 769 1

原创 Sandcastle Help File Builder BE0032报错

这是软件找不到与 .net 版本相对应的reflection data XML files所致原因一:环境变量SHFBROOT位置指向错误,未指向软件所在目录。官方答案在这里解决办法:查看你的环境变量,看看SHFBROOT环境变量是不是指向的SHFB的跟位置,没有的话就添加环境变量,错误的话就改回去。右击我的电脑-高级系统设置-高级-环境变量,我这里改完如下所示。然后记得reboot电脑原因二:如果问题还没能解决(我就是这种情况),可能是软件的bug,去到你的软件目录下,DATA/ .NE

2020-09-02 13:18:51 164

原创 打包C#软件两种典型出错的解决方法,以及如何快速定位你的问题出在哪里

本文受众:像我一样的编程菜鸟如何打包一个C#的方法网上有很多,不再赘述,看本文之前请确保知道怎么使用set up project插件,不懂得看这里。废话:编程的快感来自于很多方面,对于像我一样的菜鸟来说,跑通程序,并且能实现功能的时候是很爽的。这时候我们就希望把程序打包出来给其他人安装让他们一起爽,但是这个过程往往并不顺利。简单程序打包成安装包会十分顺利,但是程序一复杂问题就来了。本文旨在介绍我打包程序中遇到的典型问题以及我的解决方法。延续大家的快感我遇到的问题:debug模式下程序没问题,但是打包成

2020-08-14 11:39:37 1287

原创 WPF与3D 模型(二)实现鼠标的视角控制

用第三种方法成功导入了我们的模型,但似乎除了显示这一个方向上的固定视角,其他啥也做不了。那我们在方法三的基础上,做一些改动,使我们的视角可以随著鼠标点击滑动进行一个转动,就如solidworks里面那样。步骤:安装两个tool box修改xaml代码在后台代码添加鼠标控制对象1.安装两个tool box点击 项目——管理Nuget程序包搜索Helix,安装前两个包2. 修改XAML码然后回到我们的xaml码,在前面添加Helix引用xmlns:local="clr-namesp

2020-05-13 14:28:40 2624 6

原创 WPF与3D 模型(一)把Solidworks里的模型导入进WPF程序

简单研究了一下WPF导入3D模型的方法,了解到大概有以下这几种:用Helix tool box在程序码里面导入STL或者OBJ模型不用tool box直接用把模型转成xaml格式粘贴进WPF xaml码里(题外话:Helix tool box是一个.Net 3D模型算法库,主创人员似乎相当懒,相关文档至今都没写几页。咱只能自己摸索怎么用)方法一的好处可以直接用Helix toolbox里面包装好的功能,不好的地方是界面不能实时显示模型,对于导入多个模型并且定制各个模型的外观似乎有点麻烦。方法二

2020-05-12 22:25:10 6469 3

原创 标准DH建模与改进DH建模(三)—— 怎么用改进DH法

能力强的大佬可以直接看原文《A new geometric notation for open and close-loop robots》另外,只想学习怎么使用改进DH法可以直接看第四节0.前言本论文讲解一种新的,用来给串联,并联,树状机器人建模的方法(我们只介绍开环结构,如果你对其他结构感兴趣请看原文)。DH建模法对于串联机械臂来说十分实用,但是对于并联结构甚至是树形结构的机器人并不适...

2020-04-29 22:10:16 6275 5

原创 标准DH建模与改进DH建模(四,完)——标准DH建模与改进DH建模实例对比

本文我们分别用SDH法和MDH来给同一个机器人模型建模,感受一下两种建模方法在串联机械臂里面的应用。所用平台:Matlab本文重点是建系以及提取DH参数表的过程想要运行程序只需要把所有代码复制粘贴进matlab运行即可1. 机器人结构我这边选的机器人模型有点特殊,需要自行增加坐标系。这是因为这里的Tool frame不能用DH法2.尝试用标准DH建模2.1 首先建系我们按照标准D...

2020-04-29 21:51:11 5961 6

原创 标准DH建模与改进DH建模(一)——标准DH建模方法整理与总结

仅供个人学习记录DH法一般用一次就丢,然后后面再需要用的时候就会忘,所以本文整理了DH建模法,方便需要使用的时候进行参考DH法可分成以下几步:辨认出关节和连杆确定Z轴确定每个坐标系的原点确定XY轴确定Tool frame写出DH参数表写出转换方程其中对于第二步情况也要分为两种旋转关节平动关节其中对于第四步情况分为三种:Zi与Zi-1不共面Zi与Zi-1平行...

2020-04-29 12:34:41 11043 2

a-new-geometric-notation-for-open-and-closedloop-robots.pdf

a new geometric notation for open and closed-loop robots

2020-04-28

three_joint_robot.rar

简化3自由度机器人模型,用来学习如何将solidworks图纸转到matlab进行仿真。

2019-12-11

design of accurate and repeatable kinematics couplings.pdf

本文研究了一个用于在六个自由度调节kinematics coupling结构的装置,挺有意思的设计。

2019-09-25

Robot dynamics and control.pdf

机 器 人动 力学与 控 制 运动 学,动力 学,运 动规划,机 器 人计算 机视觉机 器 人计算 机视觉机 器 人计算 机视觉机 器 人计算 机视觉

2019-08-29

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除