
血过眉 眼飙泪 不吃完夜宵不许醉 别追别追别追我叫你别追 今夜我陪你化成灰
使用的模型为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 * 删除目录下所有文件和文件夹
分享一下我的做法:(1)Jenkins的Cpptest插件;
(2)服务器上安装C++Test;
(3)使用C++Test的GUI生成.cpf文件;
(4)通过jenkins的触发功能里添加shell或者windows的bat进行调用(当然也可使用构建工具等)。
不必在每个场景中都实例一个Kinect_Prefab。在Unity3D中,找到project面板中的Kinect_Prefab直接拖拽到Hierarchy面板就可以了。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)