最近小坷心血来潮开始尝试护肤,做了些功课,写篇笔记记录下自己的一些理解。
回顾过去与护肤有关的故事在刚高考结束上大一的时候,我脸上的痘痘还是挺严重的。那个时候对皮肤没有正确的理解,错误地认为长痘是因为皮肤油脂分泌过多,只需要勤洗脸就不长痘了。这种观点错的离谱,直接导致了在大二的时候皮肤屏障受损,脸上大面积泛红的情况。当时我甚至认为,不就是去油吗?那洗面奶能去油,洗发水也可以。于是我甚至习惯性地在洗头的时候顺便用洗发水洗脸。这种做法省事,但极其错误。在皮肤屏障受损之后,脸部的大面积泛红和痘痘更严重了。这时候我开始意识到不对,为什么洗脸反而越洗皮肤越差?于是我开始检索关于护肤的相关知识,了解了关于皮肤水油平衡和皮肤屏障的概念。
什么是水油平衡?水:皮肤角质层含水量(10%-20%为健康状态),由天然保湿因子(NMF)和细胞间脂质锁住水分。油:皮脂腺分泌的油脂(含甘油三酯、角鲨烯等),形成天然皮脂膜保护皮肤。平衡状态:水分充足且油脂分泌适度,皮肤触感柔润不黏腻。所以明白了吗?好的皮肤状态不是疯狂去油,完全没有油,而是有适当的油。其实这点很好理解:为什么小孩子即使不洗脸皮肤也依旧很好?因为水油 ...
写在开头目前来看,中文互联网上还没有一篇完整的教程讲述如何在ros2中,将自己的solidworks模型在rviz中显示,以及在gazebo中通过ros2_contol控制。本篇帖子是作者自己尝试出来的一条路,尽可能覆盖一些可能会踩的坑。
将soliworks转成urdf文件这部分网上有很多的教程,就不多赘述了。唯一要注意的点就是,一定一定要自己设置每一个link的坐标原点和坐标轴,不要偷懒!不要相信插件自己生成的坐标轴,很多都是错的。
生成完毕后,你会得到一个文件夹,作者的文件夹名为jaw.SLDASM。打开这个网站进行预览:URDF Viewer Example,将文件夹整个拖动到网站页面即可,确认没问题后,再切换linux系统进行下一步操作。
在rviz中进行可视化建立工作空间,作者这里工作空间的名字是face_ws。接着建立src,在src中创建功能包,作者这里功能包的名字是face_description。
1ros2 pkg create face_description --build-type ament_cmake --license Apache-2.0
接着,你需 ...
什么是YAML我一向不喜欢故弄玄虚的定义,什么“数据序列化格式”,听着就头疼。我对yaml的理解就是一种配置语言,即一种用来编写配置文件的格式。类似于xml和json。
在ROS2 Control框架中,YAML文件作为核心配置工具,贯穿了控制器管理、硬件接口定义、参数传递和仿真集成等多个关键环节。
基本语法以 k: v 的形式来表示键值对的关系,冒号后面必须有一个空格#表示注释对大小写敏感通过缩进来表示层级关系,缩排中空格的数目不重要,只要相同阶层的元素左侧对齐就可以了缩进只能使用空格,不能使用 tab 缩进键字符串可以不用双引号
格式对象和键值对通过 k: v 的方式表示对象或者键值对,冒号后必须要加一个空格
123Name: keSex: maleSchool: NPU
通过缩进来表示对象的多个属性
1234People: Name: ke Sex: male School: NPU
也可以写成
1people: {name: ke, sex: male,School: NPU}
较为复杂的对象格式,可以使用问号加一个空格代表一个复杂的 key, ...
写在开头拓竹打印机是现在最火最好用的3D打印机,小坷在打印机器人零部件的时候遇到了一些故障,记录下来下次遇到作参考。
solidworks生成可打印的stl文件:直接将文件“另存为”,格式选择stl文件即可。
正片所选打印机与切片软件中选择的打印机配置文件不兼容:切片的时候左上角要选择打印机为对应的型号,比如x1c
炒面缺陷:大概率是耗材丝选错了,检查是否使用的是PLA
z轴回零失败:大概率再试一次就好了
雷达镜头脏污:用纸擦拭喷口周围一块区域(其实不管也问题不大)
部分曲面在打印时出现问题:多半是没有缝合曲面并生成实体
一些技巧打印多个同样的零件可以复制粘贴一次性打印
在打印机里,将两个槽位的耗材丝设置成同一种颜色就可自动续料(即使它们本身是两个颜色也可以,用来为了防止一个槽位的耗材打完了还不够的情况)。
此篇博客持续更新中
自言自语这篇博客记载了一些小坷自己摸索的ros2的小细节,很基础但对初学者可能有用,毕竟教程一般不教这个。
正文同一个终端内,source一次就够了,后续只需要colcon build。当然,新建终端之后要重新source
终端里点击“上”就可以得到上一次输入的指令,在第一次指令输入错误需要再输一次又不想一个字一个字敲时很方便
Linux终端中的矩形光标很烦人,非常不直观。我的技巧:矩形的左端的边就是Windows里的光标的位置,这样就很好判断了
终端里的复制粘贴是ctrl+shift+c/v
Ctrl+/快速注释
Alt+上下键可以控制单行代码上下移动
cat和xacro作为命令,后面拼接路径时记得加空格
光标放在某一行,无需选中任何,快速Ctrl c+Ctrl v可以实现一整行的复制粘贴
名字里带有default的变量,表示默认的意思。一般来说,如果不指定,那么就按default来执行。如果指定了,那么按照制定了的来执行
rviz里,红色是x轴,绿色是y轴,蓝色是z轴
xacro或urdf出现报错:Check that :Your XML is well-for ...
问题描述版本为ubuntu22.04,ros2 humble
通过sudo apt install gazebo和sudo apt install ros-humble-gazebo-*安装gazebo后,无法在终端中通过gazebo命令或者ros2 launch gazebo_ros gazebo.launch.py命令启动gazebo,只会卡在加载的那个方框进不去。(直接点击gazebo图标,是可以顺利打开的)。
网上都说,要先下载模型到~/.gazebo/models里,之后再重启就好了,我也照办了,但还是卡在那里。
通过gazebo –verbose打印启动时详细日志时出现以下问题:[Err] [http://RTShaderSystem.cc:480] Unable to find shader lib. Shader generating will fail. Your GAZEBO_RESOURCE_PATH is probably improperly set. Have you sourced /share/gazebo ...
常用复制粘贴无需多言
12colcon buildsource install/setup.bash
这个也无需多言
12345def main(): rclpy.init() node=StaticTFBroadcaster() rclpy.spin(node) rclpy.shutdown()
这个更加无需多言
12import rclpyfrom rclpy.node import Node
创建功能包
1ros2 pkg create 包名 --build-type ament_python --dependencies 依赖名 --license Apache-2.0
日常打印
1self.get_logger().info()
launch
123456789101112131415161718192021import launchimport launch_rosdef generate_launch_description(): action_node_turtlesim_node=launch_ ...
人工智能
未读写在开头“人生苦短,我用python”,作为最流行最好用的编程语言,非常好学,一学就会。
最基础输出函数print输出字符串
1print('helloworld')
输出数字
1print('520')
输出含有运算符的表达式(此时不要加单引号)
12print('1+2')#输出1+2print(1+2)#输出3
将数据输出到文件中,注意点:使用file=fp,且不带单引号
123fp=open('D:/text.txt','a+')#a+:如果文件不存在就创建,如果文件存在就追加(意味着该程序每运行一次,文件里的helloworld就会多一个)print('helloworld',file=fp)fp.close()
不换行输出(输出内容在一行中)
12print('hello''world''python')print('hello','world ...
食用方法solidworks建模是非常简单的,可以说有手就行,所以也没有什么做笔记的必要。坷的做法是对着B站教程边看边画,同时记录一些易犯错的的操作细节。
正片草图未定义一般是没有和原点建立联系
转换实体引用其实是将图形投影到正在绘制的草图上,投影之后再拉伸凸台即可
标注圆弧或者圆的半径或者直径只需要点击圆弧即可,不需要点击圆心
做对称时,一般是点、构造线、点,这样后续才能完全定义。若采用线、构造线、线,则后续在点上做其他的线是没有完全定义的
凸台拉伸有时候找不到成形到下一面是因为方向不对,要先在方向里点击反向,然后就能找到了
找不到图形,用英文输入法按f键
ctrl+鼠标中键移动画布,鼠标中键移动视角
螺旋线的按钮不在草图中,而是在特征栏中
旋转凸台基体的命令会自动识别草图中的构造线作为旋转中心(若不设置构造线,也可以在手动选择旋转轴)
倒圆角的时候点击一个面,可以直接让整个面的四边倒角
使用圆周阵列需要先选择或者建立基准轴
如果要镜像一个实体,则要在“要镜像的实体”里选择,而不是“要镜像的特征里选择”
装配体中旋转单个零件是按鼠标右键
第一个零件必须通过确定键来添加进装配体,以保证 ...
这篇记录了小坷尝试将带有闭链结构的机器人导入Gazebo仿真踩坑的过程。这个过程还没有结束,持续更新中。
进入正题通过查阅更多的资料与教程,了解到要将solidworks导入ros中仿真,通常是按照以下几步:
通过urdf插件,将sw文件转换成urdf
将urdf在Rviz中可视化(更新:其实rviz只是一个可视化工具,和gazebo不存在先后关系,只能说当时初学者啥也不懂,现在回头来看当时的心路历程颇有感慨)
将urdf导入Gazebo进行仿真
使用插件从solidworks导出urdf文件并导入ros中,已经非常成熟且有很多教程了。然而ros2和ros有较大的差别,urdf的使用也有不少的差异。最重要的是urdf插件导出的urdf模型并不能直接在ros2中使用。 国内的教程非常少,且每个实践下来都有各自的问题,我将多个教程和帖子连起来看,互相补充,得到一套方法。
将整个机器人导入有点复杂,我决定先用一个最简单的舵机模型,把整个过程实现一遍,先打通流程,然后再机器人模型导入,这样万无一失,如果在这个过程中踩坑了,由于是简单的舵机模型,处理起来要方便很多
(事后来看,这个决定极其错 ...