
血过眉 眼飙泪 不吃完夜宵不许醉 别追别追别追我叫你别追 今夜我陪你化成灰
使用的模型为waffle_pi,目的是在turtlebot3上使用深度相机kinect而不是激光雷达来进行空间信息的获取,从而实现相应算法如rtabmap。
①构建kinect描述文件kinect_gazebo.xacro
位于turtlebot3_description/urdf文件夹下
②添加kinect外观文件,kinect.jpg Kinect.tga Kinect.dae
位于turtlebot3_description/meshes/urdf文件夹下
③将kinect放到底盘上,改写turtlebot3_waffle_pi.urdf.xacro文件
根据kinect_gazebo.xacro的定义,调用kinect要定义prefix即命名前缀,设置为kinect,还要定义kinect在三个轴上的初始位置,即文件中的kinect_offset_x、kinect_offset_y、kinect_offset_z
④缩放,若无kinect_gazebo.xacro文件中的scale,即尺度缩放,kinect和整个turtlebot差不多大,所以选取0.4作为缩放尺度
⑤查看,运行turtlebot3_gazebo中的turtlebot3_world.launch
可以看到,此时已出现kinect,且位置正确。
①修改turtlebot3_waffle_pi.gazebo.xacro文件,将原有的激光雷达模块注释掉,如图
②修改turtlebot3_waffle_pi.urdf.xacro文件,将原有的激光雷达模块注释掉,如图
可以看到,激光雷达已经移除
①安装rtabmap
②编写rtabmap启动文件,即rtabmap_demo.launch
里面添加robot_state_publisher节点来发布xacro中定义好的机器人的相对关节信息
③启动turtlebot3的仿真环境
④启动键盘控制节点
⑤启动rtabmap建图
⑥通过键盘控制机器人运动,实时三维建图
创建TransformListener对象监听坐标系变换,这里需要sleep 2s用于tf缓冲。
可以通过以下API获取tf变换,保存在TransformListener对象中,通过lookupTransform获取:
发现rviz能识别自定义的base_link,world以及kinect_frmae_optical(urdf里面定义的),但是不能获取frame与frame之间的变换关系(TF显示不出frame的信息),我在想应该少了一个joint_states发布器,于是在launch中包含下面的节点:
无法加载插件,很明显是缺少库,参考以下网址发现在之前网页里有依赖库的安装 https://emanual.robotis.com/docs/en/platform/turtlebot3/simulation/#ros-1-simulation
rm -rf * 这个命令的意思是:删除当前目录下的所有文件.
一般情况下用不到这个命令,而且这个命令很危险,如果一旦执行,会删除当前目录下所有的文件,而且不能够恢复.因此,应避免使用。
rm 命令 可以删除一个目录中的一个或多个文件或目录,也可以将某个目录及其下属的所有文件及其子目录均删除掉。对于链接文件,只是删除整个链接文件,而原有文件保持不变。
rm -rf [文件名] 删除该文件或文件夹
rm -rf * 删除目录下所有文件和文件夹
在gazebo中,我们不仅可以对机器人建模,还可以对场景建模(即机器人所在环境),这一节就给大家介绍如何在gazebo中创建一栋房子,作为机器人的活动空间。
启动gazebo,依次点击 Edit ->Building Editor , 或者使用快捷键 Ctrl+B 打开编辑器。界面如下:
该编辑器由以下3个区域组成:
您可以从零开始创建建筑场景,也可以使用现有图像作为模板进行追溯。该图像可以是例如建筑物的2D激光扫描。
这里给出示例平面图:
然后按以下步骤 *** 作:
1、点击调色板下方的 Import 按钮。然后将会d出 Import Image 对话框。
2、选择平面图所在路径,然后单击 Next 。
3、为确保在图像上绘制的墙以正确的比例显示,必须以像素/米( px/m )设置图像的分辨率。如果知道分辨率,则可以直接在对话框中输入分辨率,然后单击 Ok 。在此示例中,我们不知道分辨率,但是我们知道图像中两点之间的真实距离(例如7.5 m的顶壁),因此我们可以使用它来计算分辨率:
我们接下来会根据平面图绘制所有的墙壁。值得注意的是,稍后我们会将门窗附加到墙壁上,因此现阶段可以直接忽略门窗位置。如果你觉得墙壁不完美,不用担心,稍后我们将对其进行更加细致的编辑。
注意:目前,门窗是墙上的简单孔。
让我们在平面图上所示的位置插入门窗。
尽管在这个平面图上没有显示楼梯,但是我们还是要插入一个楼梯。
我们已经完成了第1层的工作。接下来我们要在建筑物中添加另一个层,使得我们的楼梯能够连接到某个地方。
由于添加一层,因此在2D视图中我们看到的同样是新一层的平面图。您可以通过从2D视图顶部的下拉列表中选择层2返回到层1。
如果有需要,我们还可以编辑一些相关层的配置。
您可能添加了不需要的级别,或者在当前层中弄乱了,并希望重新绘制,可以
我们之前画了很多墙,但是也许它们并没有完全按照我们想要的方式绘制。我们有以下方式可以进行修改:
1、在2D视图中,单击要编辑的墙。
2、在2D视图中双击墙以打开带有配置选项的检查器。或者,右键单击并选择 Open Wall Inspector 。编辑你想要修改的内容,然后按 Apply 预览更改。
3、选中你想要删除的墙体,按下键盘上的 Delete 键,或在2D视图中右键单击墙体,选择 Delete 。
现在让我们一起编辑门窗。正如我们编辑墙体那样,也可以通过以下几种不同的方式更精确地控制门窗属性。
1、在2D视图中,单击要编辑的特征。
2、双击2D视图中的特征以打开带有配置选项的检查器。或者,右键单击并选择 Open Window/Door Inspector
3、选中想要删除的特征,按下键盘的 Delete 键,或在2D视图中右键单击并选择 Delete 。
编辑楼梯同样如此,这里就不细说了
现在,一切都已正确放置并确定大小,您可以为墙壁,地板和楼梯分配颜色和纹理。请记住,门窗只是墙上的孔,因此不能有任何材料。
有两种方法可以为建筑物添加颜色和纹理:
a、单击调色板中的颜色或纹理。
b、在3D视图中移动鼠标时,悬停的功能将突出显示,显示所选材质的预览。
c、单击突出显示的功能会为其分配选定的材料。您可以根据需要单击任意数量的功能。
d、完成所选材质的 *** 作后,右键单击3D视图,或在任何要素外部单击以退出材质模式。
凉亭5.1的新增功能:要选择自定义颜色,请在More调色板上单击。将打开一个对话框,您可以在其中指定自定义颜色。
保存之前,在选用板上给您的建筑物起个名字。
在顶部菜单上,选择 File ,然后 Save As (或按 Ctrl+S )。将出现一个对话框,您可以在其中选择模型保存的位置。
注意:一旦退出场景编辑器后,场景就不能够再次编辑了。
完成创建建筑物并保存之后,请转到 File ,然后单击 Exit Building Editor ,您的建筑物将显示在主窗口中。您可以在 Insert 标签中找到该场景。
, , ,
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)