week44 turtlebot3+kinect-rplidar
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了week44 turtlebot3+kinect-rplidar相关的知识,希望对你有一定的参考价值。
参考技术A 千层山 万重浪 比不过县城一碗汤 多加辣 不要糖 没事儿别看老板娘血过眉 眼飙泪 不吃完夜宵不许醉 别追别追别追我叫你别追 今夜我陪你化成灰
使用的模型为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 * 删除目录下所有文件和文件夹
以上是关于week44 turtlebot3+kinect-rplidar的主要内容,如果未能解决你的问题,请参考以下文章
“ros2 launch turtlebot3_gazebo turtlebot3_world.launch.py”导致找不到包
机器人编程趣味实践14-机器人三维仿真(Gazebo+TurtleBot3)