首页
相关链接
黑白の网盘
关注我的Bilibili
Search
1
HUAWEI MatebookE 2019深度体验测评
1,083 阅读
2
SolidWorks 2020下载&安装&教程
1,065 阅读
3
小米AX3600扩容刷机教程
841 阅读
4
Solidworks 卸载教程
839 阅读
5
SolidWorks 2022下载&安装
736 阅读
软件
教程
评论
私人
知识
测评
登录
Search
标签搜索
Solidworks
罗技
耳机
G933S
无线
7.1声道
DTS7.1
wordpress
反向代理
PHP
https
联想
ThinkBook
Intel
Iris Xe
锐炬
geek uninstaller
HUAWEI
MateBook
ARM
WhiteのBlackkk
累计撰写
16
篇文章
累计收到
2
条评论
首页
栏目
软件
教程
评论
私人
知识
测评
页面
推荐
黑白の网盘
关注我的Bilibili
搜索到
8
篇与
的结果
2026-07-07
2026智能侦察省赛指南
今年的要求较前两年有明显不同,前两年只是简单的仿真,而今年则是直接仿真国赛部分内容在阅读指南之前,希望大家明确几个点第一,在开始之前一定要先去读一读赛事方的规则,而且要仔细读,不然很有可能做出来的东西并不符合赛事方的要求第二,省赛部分的难度其实尚可,本质是对AI工具的灵活运用,所以这次讲的思路,实际上也只是如何利用好AI的思路第三,阅读指南时,如有不解或困惑,一定要及时提问第四,参考文件还存在诸多不完美之处,仅供参考,目前已知的缺陷是避障功能欠缺,导致导航成功率不是100%,但也还好,在七八成左右第五,文件到手记得自己编译下,如果你忘了,那你告诉我你学了个啥{dotted startColor="#ff6c6c" endColor="#1989fa"/}下面开始分析本次省赛的核心要求,用简单明了的话说,就是完成一个仿真任务,一辆小车在一张特定的地图中,先完成建图,后完成自动定点导航,以及在特定区域对人物的准确识别,这是大体的需求,接下来掰开了讲详细需求首先,需要有一张地图,赛方的规则里给出了这张地图的模型及尺寸,但是是以图片的形式,需要我们自己去转化为可用的三维模型,并在gazebo里加载,这里有一个注意点,想要在导航的时候对人物进行识别,就需要提前在地图里放好人物的贴图(后面会讲怎么放);剩下的就是需要一辆仿真小车,赛方明确表示使用开源小车只得基础分,说的很明白,用开源小车的分数就是没有别人高,只不过当下时间紧任务重,怎么选择看你们自己。这个小车需要实现几个目标,一是需要能动起来,完成跑图的任务,同时不能乱跑,需要定位手段实现路径规划和避障,雷达就是必不可少的定位装置,当然还有一个不可或缺的定位装置就是机器人的地盘——轮式里程计,通过机器人走了多少路粗略估计机器人的位移变化。最后就是实现人物的识别功能,思路很简单,拍下仿真场景的照片(当然是由小车在仿真环境中自己拍摄),在跑完导航后对得到的照片进行识别,这就需要在小车上放虚拟摄像头。最后就是整合这些要求所需要的文件——gazebo仿真的world文件、小车的urdf及xacro文件(包含了小车的建模和功能实现)、建图的launch文件、定点导航的launch文件和用于自动导航和拍照识别的script脚本{dotted startColor="#ff6c6c" endColor="#1989fa"/}下面开始具体操作,操作中所用到的文件内容都可以在群里找到第一步,完成地图的建模并导入gazebo首先在建模软件中(SW,Inventor等)完成对地图的三维建模,注意赛方给出的地图图片中,墙体是存在厚度的,随后将地图模型另存为STL文件注意保存出来的文件为xxx.STL,请将大写的STL改为小写的stl再导入Ubuntu虚拟机中,否则gazbeo无法识别gazbo本身并不直接识别stl文件,事实上sdf文件才是gazebo的模型文件,我们可以通过固定的代码和文件框架,实现把stl变为sdf模型的功能在导入之前先讲一下gazeb模型库的文件结构一个总的文件夹gazebo_model,代表了这个模型库的库名,这个名字并不是十分重要,可以任意命名,下面的几个分文件夹,每一个文件夹对应了一种模型,地图就是其中一个模型我们打开map文件夹,看到里面有三个文件,一个是我们导出的stl文件,一个是model.config,是对模型文件信息的一些描述,比如作者、邮箱、描述等,不算是一个重要的文件,重要的文件是后面的sdf文件,受限于篇幅和水平,没有办法详细讲解sdf文件的细节,大家如果使用的是自己的stl,需要替换下图两个地方的路径如何查看自己的stl在什么地方,这里可以使用终端查看,在stl所在的目录下右键,点击Open in Terminal,如图,会在当前目录下打开终端终端中的蓝字部分就是当前文件夹所在的路径,比如图中的就是~/Desktop/gazebo_model/map,这里最前面的~符号,我们并不能在文件中直接这么写,实际上,~对应的路径是/home/你的用户名,这个用户名是创建系统时输入的用户名,也可以在桌面上看到比如这里就是/home/wb,再把后面的地址拼接起来,最后你需要在sdf文件里替换的路径就变成了/home/wb/Desktop/gazebo_model/map/xxx.stl(注意stl不论是文件还是sdf里都要改成小写),注意有两处路径需要改{dotted startColor="#ff6c6c" endColor="#1989fa"/}顺便讲一下贴图是怎么在gazebo里实现的,实际上是生成了一个厚度很小的立方体,把图片写成material文件形式,给这个立方体的六个面都贴上material,就实现了贴图功能,比如砖块就是正方体贴上砖块材质的贴图而来,有兴趣的同学可以研究一下贴图的文件结构,这里就不赘述了得到了所有需要使用的模型文件之后,我们需要导入gazebo,并保存为world我们打开gazebo,点击左上角的Insert,随后点击Add Path,添加我们自己的模型库的路径注意导入时选择的是文件夹,我们直接选择整个库文件夹即可点击gazebo_model,然后点击右上角的Open顺利的话会在左边一栏里看到导入的模型随后点击其中的map,鼠标拖动到右边的仿真世界中,顺利的话会出现地图的模型文件鼠标移动可以带动模型文件动,按住ctrl移动鼠标可以使地图吸附网格,这对后面可能需要的平移旋转操作同样适用,随后再次点击鼠标左键即可放下地图放贴图的过程和放地图的过程别无二致很多人会存在地图是竖着放置或是贴图是倒过来的情况,可以使用gazebo自带的操作工具,平移和旋转之后,得到正常的模型完成之后我们点击右上角的File,在展开的选项中我们选择Save World As,以文件形式保存,可以放在自己工具包的worlds目录下面,命名随意,但注意保存成xxx.world,这个.world的扩展名需要自己手动加{dotted startColor="#ff6c6c" endColor="#1989fa"/}第二步 完成仿真机器人的建模和功能实现本次比赛的一大难关已经度过,接下来是更难的一关,自建机器人,如果是使用开源模型则可以跳过这一段,当然有些开源机器人不含摄像头,要自己想办法加一下描述机器人的模型也有三种格式urdf,xacro和sdf,没错又是sdf,不过这次用不到,讲前两个urdf是通用的机器人描述格式,而xacro可以理解为是urdf的增强版本,对机器人的一些变量做了宏定义,方便我们后期更改尺寸之类的一些参数首先来生成urdf,在赛方给出的实验指导中,直接把问AI的话术都给你写好了直接用AI生成urdf即可,可以在rviz中加载自己的机器人模型检查是否正常,对应我发的包的launch文件夹内的display.launch,记得把里面urdf的路径改成自己的,urdf和xacro我习惯放在工具包下一个urdf的文件夹,方便调用和管理,urdf只是负责大体建模,如果需要修改的尺寸,请直接让AI重新生成urdf,不要在urdf文件中修改尺寸,urdf的特性是牵一发而动全身,另一种思路就是用AI将urdf写成xacro后再通过xacro修改尺寸,会简单一点,但要学会自己看参数同时,我们需要实现的各种功能,也可以通过再xacro中注入gazebo仿真插件实现,这些都可以靠AI完成,当然查阅gazebo或者ros官方的wiki也可以,前提是你有时间和代码基础xacro中有很大一部分是形状、尺寸的定义,以及各个物体之间如何组合在一起的关系,涉及到xyz的坐标和RPY的旋转,还涉及到关节绕哪个轴旋转,所以说自己的模型哪里有问题都可以通过改上面那些参数修改,可以自己尝试修改,并查看变化,这部分确实可以让AI帮你修改,但是AI不一定会判断对轴,比如你要旋转90°,但是AI不一定会按着正确的旋转轴旋转,这时候需要自己有判断能力我的xacro文件在urdf文件夹下的1.xacro,有兴趣可以研究下,本着赛方的不抄袭不雷同原则,还请各位把尺寸什么的改一下,思路可以打开,比如圆盘车身改成矩形车身等{dotted startColor="#ff6c6c" endColor="#1989fa"/}第三步,完成建图先说建图的大概原理,通过建图算法,融合小车的里程计和雷达,在移动小车的过程中扫描地图,最后保存地图这里我们用比较传统的slam_gmapping算法,当然建图的算法不止一种,我这种谈不上出色,但是足够稳定,类似的算法有hector_slam,纯激光建图,但是在空旷的地方建图效果并不理性,感兴趣的同学可以试试别的建图算法建图还有比较重要的是编写launch文件,都给你们写好了有几个关键的地方,一个是world的路径,这里的(find test)代表查找test工具包的根目录,后面的内容相信大家看得懂,就是这个目录下有worlds文件夹,而world文件就在这个文件夹下面机器人的xacro文件路径同理,在spwan robot这里,可以修改xyz的值,改变机器人在gazebo中生成的位置在gmapping中,如果是你们自己建的urdf和xacro,很有可能你们的base_frame不是chassis,而是其他的比如base_link或是base_footprint,详细不清楚可以问AI文件编辑好后就可以启动launch文件了,如何启动launch文件有在去年的指南中提到,属于是基础问题,roslaunch test(工具包名) mapping.launch(launch文件名)在launch文件中我集成了键盘控制,如果想要移动小车,需要保持终端在前台,也就是鼠标点一下终端,可以往上翻一翻看到按键指南,这里面的"i"是前进、","是后退,J和L分别是左转和右转,q和z可以改变最大速度,K可以原地停下建图时,看着gazebo的仿真页面,同时保持终端在前台,尽量不要让小车太快,也不要让小车撞墙,以免降低建图效果,建图完成后,确认rviz中的地图效果还不错的情况下,打开新的终端,输入保存地图的命令rosrun map_server map_saver -f ~/map/my_map-f后面的参数是地图保存的路径,~代表什么前面讲过了,我习惯存在工具包下的maps文件夹内方便调用和管理一定要看到终端保存成功的信息再关掉所有程序{dotted startColor="#ff6c6c" endColor="#1989fa"/}第四步,完成定点导航和识别翻过了前三座大山,接下来就都没那么难了,关于机器人的定点导航,怎么定点,也是有讲究的,两点之间不应距离太远,除非两点之间地形很单一,比如出发的那一条直路,可以定一个点其次就是定点不应太过靠近障碍物,否则会导致小车无法到达的问题,导致导航失败关于如何定点,这里引用机器人工匠阿杰的视频,里面介绍了一个非常高效的定点工具 点击跳转 在完成所有标点后,会得到一个waypoint.xml文件,里面记录了所有点的位置信息 我会把这个文件挪动到工具包下waypoints文件夹内,方便调用和管理 这之后就是导航了,我们可以用一个python文件实现读取xml,并自动发点导航,得益于ros的话题发布和订阅机制,机器人只有到位之后,python文件才会发布下一个航点同时我在脚本里写了,到指定点位后进行拍照的操作,存在工具包内的images文件夹内最后再跑完所有航点的情况下,会运行识别程序,需要用到训练好的模型,也就是.pt文件,我把它和py文件放在了一起,都在scripts文件夹下,但是在detect_cpu文件夹里,模型,图片的路径大家都要替换成自己的绝对路径detect_cpu.py运行需要一定的环境,直接运行会报错,大家做到这一步之后可以来问我导航的launch文件我放在了launch文件夹下的nav.launch里,记得自己改相关路径,涉及到AMCL导航算法,讲起来过于复杂,有兴趣了解的可以移步机器人工匠阿杰的视频最后的运行流程:打开两个终端,一个运行roslaunch 包名 nav.launch,另一个运行rosrun包名 nav.py,rosrun可以运行包内的python文件
2026年07月07日
47 阅读
0 评论
2 点赞
2025-06-27
2025智能侦察省赛仿真部分指南
这一期接上一期安装ros的教程,请安装完ros的同学来看这一章博客首先我们来分析一下省赛仿真部分需要我们做什么这里要纠正一下前面省赛指南文档里的一些问题,里面的分析是针对实机的,与我们仿真部分并没有太大的关系,大家可以先不看那个指南我们可以看到仿真部分的要求,我来一一解剖首先,使用gazebo仿真出任意场地,gazebo是安装ros时一并被安装的一个仿真软件,可以用于仿真场地的制作,我们需要按照省赛给的要求来制作场地,仔细阅读需求,可以知道,我们需要制作的一共有6个区域,我方区域,ABCD四个战场,还有一个等待区域然后,我们要使用机器人进行建图,注意,这里的建图和上面的制作场地不是一回事,用机器人建图的目的是为了后面的机器人定点导航,而定点导航使用的地图就是这一步建出来的地图,我们需要用到的建图算法叫做slam_gmapping,后面会提到建完图之后,我们就要对机器人进行定点导航,那什么是定点导航呢,就是通过程序给机器人发送地图中的目标点,可以是坐标形式,机器人根据路径规划算法,自行计算出最合理路径,并且按照规划出的路径运动,直到到达目标点,我们要做的就是把这些所谓的定点坐标找出来下一步就是构建服务端和客户端,要求在客户端输入点位,比如ABCD四个点位,输入A,服务端能接收到这个A并且能给机器人发送A所对应的点位,并执行相应逻辑,即让机器人能自动从等待区域前往A战场,等待3-5s后,默认带上伤员前往我方区域,停留3-5s,默认放下伤员,最后返回等待区域当然对于机器人的模型,没有作限制,可以自己找开源模型以上任务看起来很多,实际上,我们可以找到开源的示教项目,对其进行一些修改,便能完成我们的省赛仿真要求先放上该开源项目的地址,国内的用户可能会打不开,没有关系,我会把需要的文件发给大家 点击前往wpr_simulation 我们可以看到,这个项目里包含了开源机器人模型、关于建图和导航的实例,我们可以修改这些现成的实例来满足省赛仿真的需求在开始之前,我们最后再梳理一次,我们有什么以及我们没有什么我们有了开源机器人模型,有了建图和导航的半成品我们没有任意符合要求的场景,需要自己使用gazebo建造我们没有服务端与客户端,涉及到一点python知识,实在不会可以使用AI辅助接下来我们开始仿真的教程,以及正式开始接触ros相关应用首先,再开始之前,我们需要了解一些最基础的知识1.有关ros的工作目录顾名思义,跟ros有关的项目文件都放在ros工作目录里但是ros的工作目录有严格的格式限制图中,最顶层的是catkin_workspace,这是一个文件夹,也是工作目录的根文件夹,可以由自己命名,它的下一层有三个文件夹,我们只需要知道src即可,另外的devel和build为编译生成的文件夹,在src的下面,放着许多的packages,也就是工具包,而这些package里面还有更加细分的文件夹,如launch文件夹,我们想要启动一个综合的ros应用,就要用到launch文件夹里的launch文件,还有后面我们会用到的world文件夹,里面放着我们需要在gazebo仿真环境里加载的world场景文件而我们需要掌握的是,知道什么东西该放在哪里,以及知道怎么创建一个最基本的工作空间,拿省赛仿真举例子,我们需要新建一个工作空间,我们打开ros虚拟机,默认在桌面上右键,选择New Folder新建文件夹,作为我们的工作根目录,例如我起名为robot_ws,如图所示随后我们打开该文件夹,在这个文件夹下面新建一个src文件夹,用于存放将来需要用到的工具包,我们同样右键,选择New Folder,命名为src,这个名字是严格规定的,不可以修改这样一个最基本的工作空间结构,我们就创建好了接下来,我们需要拉取我们所需要的开源项目文件,这一部分的文件,我同样会给你们根据开源项目页面的提示,我们首先要进入src目录,随后右键,选择open in Terminal,在终端中打开,终端中的目录就会显示为当前目录随后在终端中执行官网给的clone指令,本质是通过网络下载文件,注意,一定要在src目录下执行下面的命令,如果你直接有我发给你的文件夹,请放在src文件夹下,我在群里发了压缩包,wpr_sim.zip,请大家解压出来,放在和图中一样的位置 git clone https://github.com/6-robot/wpr_simulation.git git clone https://github.com/6-robot/wpr1.git git clone https://github.com/6-robot/waterplus_map_tools.git git clone https://github.com/6-robot/xfyun_waterplus.git 执行效果如下,我们会发现在src目录下多了四个包,也就是四个文件夹,在使用这些包之前,我们需要对其配环境,并配置工作空间,而这个开源项目给了我们一键配环境的脚本,在Ubuntu里,.sh结尾的文件被称之为脚本文件,可以通过终端来执行,具体到实际操作,我们打开终端学习几个常用的终端命令如果我们要进入一个目录,也就是打开一个文件夹,我们需要使用cd命令cd+空格+文件夹名如cd wpr_simulation,同时我们可以使用键盘上的tab键来自动补全路径比如我们输入cd wpr,此时按下tab键,如果该目录下有wpr_simulation文件夹,系统就会自动把wpr补全成wpr_simulation,注意,一定要输入到你输入的部分在这个目录下只有一个符合这个前缀的文件夹才可以按下tabls命令可以让我们直观的看到该目录下有哪些文件和文件夹对于.sh文件,我们只需要在终端中以sh开头,以sh结尾,比如我们要用到的sh install_for_noetic.sh由于我们安装的时Ubuntu20.04LTS,使用的ROS版本是ROS Noetic,所以我们就要运行给Noetic配环境的脚本,也就是上面的sh命令随后我们按下回车,等待环境自动配好即可会提示输入密码,我们输入并回车即可随后我们需要编译该工作空间,我们需要返回到该工作目录的根目录,也就是robot_ws这个目录,那么如何在终端里返回上一级路径呢,我们需要用到cd ..命令,也就是cd+空格+两个点可以看到,当前我们以及处于robot_ws这个根目录下我们就可以执行编译命令了注意:可能会出现编译的时候出现缺文件的问题,根据反馈建议大家在编译之前先运行sudo apt-get install -y ros-noetic-sound-play,补全一下可能缺失的文件再编译我们在终端输入catkin_make,然后回车,系统就会自己开始编译项目,我们需要耐心等待一会儿等待进度走到100%,没有提示任何红色报错字样,也就意味着我们的编译是成功的最后我们还需要配置工作空间,也就是让这个系统知道你的工作空间里都有些什么,我们在终端执行source devel/setup.bash命令即可,执行成功不会有任何的反馈,注意:每新打开一个终端,都要在工作空间根目录执行一次source devel/setup.bash至此,我们对开源项目的初始化就完成了,现在我们就可以正式调用这个开源项目了我们可以按照官方文档先运行一个简单的实例来看看我们在终端输入roslaunch wpr_simulation wpr1_simple.launch,注意,由于我们配置了工作空间,所以我们可以在任何目录下执行该命令,但是配置工作空间仅单次有效,如果我们重新启动了系统,我们需要重新配置工作空间执行后会弹出gazebo的仿真界面,里面加载了一个空的场景、一个机器人模型和一个柜子的模型在我们执行的命令里,我们可以发现,我们最终启动的是一个launch文件,这个文件里写明了ros需要调用哪些东西,拿这个简单的实例来说,这个launch文件可以调用gazebo,同时可以指定gazebo加载的world和在gazebo里生成的东西如何关闭该实例呢,我们只需要找到正在运行的对应终端,在里面按下Ctrl+C键,稍等片刻等gazebo被关闭之后即可下面我们要开始在gazebo中创建一个六区域的world,用于之后的建图工作,首先我们打开gazbo,打开桌面左下角的show applications按钮,点击all,随后找到gazebo11,单击打开,注意:请勿同时启动多个gazebo或多个ros实例打开之后我们会看到一个空的世界,而我们需要自己创建世界,所以我们找到左上角的Edit,随后选择Building Editor,进入世界编辑整个应用就会被分为三个部分,左边一块是材质部分,中间偏上的白色网格是2D图层,而中间偏下的部分就是我们的三维世界,我们在二维图层上编辑,会实时反应到三维世界上去根据要求,我们只需要划出六个区域即可,可自由发挥,没有美观性需求我们选择左边Create Walls中的Wall,单机选中,我们的光标就会变成一个十字,此时我们就可以在二位网格中绘制墙体了在二维网格中我们可以通过鼠标滚轮来调整比例尺,如图所示我们调整至一个合适的比例尺(2.5m左右)之后,就可以开始画图了,画图的方式类似于AutoCAD,也十分简单画完的效果如图所示,大家不必按照我这个画,只要明确能看出有六个区域即可,画完后可以拖动下方的三维世界查看建好之后的样子那么我们如何保存这个世界呢,我们选择左上角的File,随后点击Exit Building Editor随后会提示你一旦退出就无法再编辑,我们点击Save and Exit,会弹出一个Save Model的页面,这里保存的并不是我们需要的world文件,而是Model文件,我们不需要这个文件,但是我们还是保存这个Model文件我们修改一下Model Name,起自己喜欢的名字即可,然后修改一下保存的位置Location,我们点击右边的Browse,随后选择Desktop,选择choose即可最后点Save即可之后,在桌面上会出现一个名为123的文件夹,而gazebo也会回退到纯三维世界的界面,这个时候我们就可以保存这个world了,但是在保存之前,我们还需要做一步操作,我们选择拖动命令,然后拖动我们制作的场景,使得这个世界的坐标轴和这个场景的等待区域重合,这样,我们在之后启动导航的时候,机器人就默认在等待位置待命,随后我们点击左上角的File,选择Save World As,将世界另存为随后我们依然双击选择Desktop,在最上方的Name框中,我们起一个名字,格式为xxx.world,后面的.world必不可少,这是ros可以识别的后缀,例如我这里命名为123.world,最后点击save即可保存之后我们就可以关闭gazebo了,我们点击左上角的File,选择Quit退出gazebo,不出意外,在桌面上会出现一个123.world的文件至此呢,我们的场景就准备好了下面开始建图,建图就是让机器人在这个仿真的场景里走一圈,通过激光雷达等传感器对地图进行扫描得到一张地图的过程,前面我们提到,建图用到的算法是slam-gmapping,我们前往这个开源项目的launch文件夹,位于robot_ws/src/wpr_simulaiton/launch,在这个文件夹里,我们能找到有关gmapping的launch文件,这就是官方给的建图launch文件,启动它,我们就可以开始建图,但是在启动之前,我们需要进入这个文件看一看,我们需要修改些什么东西,我们直接双击打开它就可以首先我们可以看到这一行,这一行的作用就是加载world文件,$(find wpr_simulation)表示ros会寻找一个wpr_simulation的工具包,在我们配置了工作空间后,ros便能找到这个工具包,否则会提示找不到,如果找到了这个包,它会顺着后面的路径找到world文件我们可以看到,它的路径在wpr_simulation/worlds文件夹下,在这个文件夹里我们可以看到许多world文件,那如何启动我们自己做好的world文件呢,我们只需要把桌面上的123.world复制到这个worlds文件夹里随后我们需要修改launch文件里调用的world,改成我们自己的world文件我们继续往下看可以看到Spawn the objects into Gazebo,它会在gazebo里生成一些物品,如里面提到的bed,sofa,tea table等,而其实我们并不需要这些物品,因此我们可以把这些生成物品的代码删除了,一直可以删除到33行,即的上面,如图高亮部分的代码我们都不需要,直接删除即可我们继续往下看,下面是关于生成机器人的代码可以看到,这行代码调用了一个机器人model,即一个机器人模型,决定了这个机器人长什么样子,后面还有一个X坐标和一个Y坐标,决定了这个机器人在gazebo中的初始坐标,我们可以按自己需要修改初始坐标,这里我把它们都改成0后面的代码部分,暂时不需要我们看,然后我们一定要按下Ctrl+S或者点击右上角的save保存这个文件,直到正上方文件名左边的星号消失,代表保存成功随后我们可以关闭这个窗口,打开终端,快捷键为Ctrl+Alt+T,或者也可以手动打开Terminal,在终端里执行roslaunch wpr_simulation wpr1_gmapping.launch,这一行指令由三个部分组成,roslaunch,这是ros启动launch文件的标准命令,后面要跟上两个参数,一个是工具包名,也就是wpr_simulation,另一个就是launch文件名,要包含.launch后缀,也就是我们刚才修改好的wpr1_gmapping.launch然后我们回车,不出意外,我们的场景会在gazebo里被打开,里面会出现一个机器人,同时一个叫做rviz的程序会被打开,打开时还附带了一个警告意思就是ROS1已经在2025年5月31日起停止被支持,我们不必理会,选择ok即可我们来到gazebo,发现里面确实有个机器人,理论上机器人会在等待区域随后我们找到左边一个没有图标的程序,也就是rviz,我们的建图和导航都由rviz进行生成,保存和读取我们在右边框里看到的灰色部分和黑色部分,就是生成的地图,之所以现在地图不完整,只是因为机器人无法一次性扫描到整个地图,所以我们需要让机器人动起来,至少扫描完整张地图一遍,注意:在gazebo里的机器人移动和rviz里是实时同步的那,如何让机器人动起来呢,我们需要打开终端,在终端执行sudo apt-get install ros-noetic-teleop-twist-keyboard,安装一个有关机器人移动的包,安装完成之后我们可以启动这个包,在终端输入rosrun teleop_twist_keyboard teleop_twist_keyboard.py执行后可以看到这样的界面,其中I是前进,k是急停,J是原地左转,L是原地右转,<是后退注意:我们在操控机器人的时候一定要保持这个终端在最前端,也就是要用鼠标点一下这个终端我们可以同时把gazebo打开,查看机器人的运动情况可以看到,我已经成功把机器人移动到了另一个位置,这时我们打开rviz,可以发现,rviz里建成的地图较前面有了扩展,所以接下来我们只需要操控机器人在整个地图里跑一圈,确保地图的所有墙都被扫描到,那我们的建图就算是完成了,注意:建图时尽量保持gazebo、rviz和终端三个框都能看到,这样能直观地看到建图的效果,依然要注意操控机器人时终端必须在最前端建好之后,大概的效果如图所示之后,我们需要把我们建的图保存下来,这里需要用到ros的mapserver包,我们打开一个新的终端,在终端里执行rosrun map_server map_saver -f ~/Desktop/map,回车,我们就会在桌面上得到map.pgm和map.yaml,这是保存地图的两个形式,一个是图片格式,另一个是ros能读懂的格式随后我们就可以开始对机器人进行定点导航了,我们找到wpr_simulation/launch文件夹中的wpr1_navigation.launch文件,这个就是示例定点导航launch文件,同样,我们需要对它进行一些修改,依然把world改成自己的world,把生成物品的代码全都删掉,修改机器人的初始坐标最重要的是加载自己的地图,我们可以看到,地图的路径在wpr_simulation/maps文件夹下的yaml文件,这不正和我们刚才保存的yaml文件是同一个格式吗,所以我们把桌面上的map.yaml文件复制到maps文件夹下,并在launch文件里把文件名改成自己的map.yaml随后我们保存文件,然后就可以打开终端,运行roslaunch wpr_simulation wpr1_navigation.launch运行后,ros启动了gazebo和rviz,我们可以在rviz里看到我们之前建的地图我们可以使用2D Nav Goal来实现对小车的手动发点导航我们点击上面的2D Nav Goal,之后在地图的任意位置按住鼠标左键,随后拖动鼠标,箭头会朝向你鼠标的位置,这就是机器人最终的朝向,随后松手,你会发现,机器人奇迹般自己动了起来,朝着你给定的目的地前进至此,导航部分就完成了,但是我们还需要进行定点导航,这一部分和接下来的服务端与客户端编写有很强的关联性下面我们就来编写服务端和客户端,还是要先了解一点基础知识在编写服务端之前,我们先需要定义服务,我们需要在工作目录src文件夹下新建一个我们自己的包,可以命名为server,我们需要用ros专用的新建工具包的命令,注意:不可以直接新建文件夹,这是一个工具包,但是工具包下的目录可以直接创建打开终端,进入src目录,输入catkin_create_pkg server rospy std_msgs geometry_msgs message_generation我们进入server文件夹,需要在里面自定义一个服务文件,是一个.srv结尾的文件,如何创建呢,我们在这个路径下打开终端,输入nano GoToPoint.srv,前面的nano是文本编辑器的命令,后面的GoToPoint是文件名.srv是文件扩展名,.srv也是严格规定的,不可以修改,随后我们在nano文件里粘贴如下内容string target_pointbool successstring message随后我们要保存文件按下Ctrl+X,随后按两下回车即可随后我们要编写服务端和客户端文件,基于python,是.py文件,所以我们需要在srv文件夹同级目录下创建scripts文件夹,放入我提供的server.py和client.py,在群里server_client.zip同样按照图中放置然后我们要打开server.py,关键需要修改的地方就是点位的坐标那怎么知道我们需要的坐标是多少呢,我们运行之前的navigation,并打开rviz在左边一栏下滑找到RobotModel,展开里面的Links,再展开base_link,里面有一个Position,我们需要的就是这个坐标,被两个分号分隔开的分别表示XYZ三个坐标,我们只需要前两个X和Y,第三个Z永远为0接下来我们只需要手动导航机器人到指定的点位,并记下点位对应的坐标,在server.py里修改即可修改完成后,我们就可以启动服务端和客户端了,在启动之前,我们需要返回工作根目录,对其进行一次编译,编译完成后,我们需要依次启动导航,也就是wrp1_navigation.launch文件,然后我们需要打开新终端,在配置完工作空间后,我们先启动服务端rosrun server server_node.py随后继续打开一个新的终端,配置工作空间,随后运行客户端rosrun server client_node.py之后我们就可以在客户端终端里输入我们想要去的点
2025年06月27日
290 阅读
0 评论
8 点赞
2024-07-19
Solidworks 卸载教程
如果您之前安装了solidworks 2020版本,请先卸载2020版本,下面是solidworks 2020卸载教程,如果您是第一次安装,请跳过这部分为了卸载的比较干净,使用geek uninstaller进行卸载,请先下载相应软件,下面给出下载链接{cloud title="点击下载Geek Uninstaller" type="default" url="https://cdnalist.mtyxt.com:12345/d/aliyun/2022/geek.7z?sign=wMewTjOv4M3LUo7ca_ECjLXjdu-Z-q2p-T1pk234Kb0=:0" password=""/}下载完成之后打开geek uninstaller,如果windows弹出安全提醒,请选择“是”该软件会列出所有已经安装的软件,我们找到SOLIDWORKS 2020 S05,右键选择卸载(请不要双击!!)稍等片刻之后会弹出卸载界面,展开高级选项,选择更改把所有勾都勾上,然后选择返回到摘要最后选择移除项目即可选择“是”即可等待5-10分钟卸载完成后最好重启一次,本人没试过不重启会发生什么,出问题请自行负责重启结束后,找到C:\Program Files\SolidWorks_Flexnet_Server找到server_remove.bat,右键选择以管理员身份运行提示服务已成功停止即可关闭,随后请删除SolidWorks_Flexnet_Server文件夹(请使用Shift+Delete进行永久删除)到此卸载基本完毕
2024年07月19日
839 阅读
1 评论
1 点赞
2024-02-27
AutoCAD 2021 安装&破解教程
本教程分为下载&安装&破解三个部分首先放上下载链接{cloud title="点击下载AutoCAD本体" type="default" url="https://cdnalist.mtyxt.com:12345/d/aliyun/Autodesk%20AutoCAD%202021/AutoCAD_2021_Simplified_Chinese_Win_64bit_dlm.sfx.exe?sign=x8TL8YGemhSRAgqA8-fcX8lXFBb79uToW8BsD4iJIWQ=:0" password=""/}{cloud title="点击下载破解替换文件" type="default" url="https://cdnalist.mtyxt.com:12345/d/aliyun/AutoCAD%202021/Autodesk%20AutoCAD%202021/%E6%BF%80%E6%B4%BB%E8%A1%A5%E4%B8%81/acad.exe?sign=K-eedrcgDJOVcn8O1Fc8RqBj2MhD2Q1d2eVrWFbtaIM=:0" password=""/}两个文件都要下载{lamp/}下载完成后,打开较大的那个安装包等待一会儿出现解压路径(可自行修改,不是程序安装路径,安装完毕可以删除)随后点击“确定”,等待程序解压解压完成后,会自动弹出安装窗口,选择在此计算机上安装许可协议选择“我接受”,点击下一步可以修改安装路径,随后点击安装随后等待AutoCAD 2021安装安装完成后,不要点击立即启动,点击X关闭安装程序随后找到一开始下载的abcd.exe,找到安装目录,把abcd.exe拖进安装目录,并选择覆盖完成之后即可正常使用AutoCAD2021首次打开AutoCAD,可选择第一项全部关联
2024年02月27日
270 阅读
0 评论
1 点赞
2023-11-02
AutoDesk Inventor Professional 2021下载&安装&破解
AutoDesk Inventor Pro 2021下载&安装&破解
2023年11月02日
541 阅读
0 评论
2 点赞
1
2