初次使用Turtlebot的kobuki底盘进行键盘操控

笔者第一次接触Turtlebot的kobuki底盘,想进行键盘操作,在过程中也遇到了不少坑,在此记录一下,给大家借鉴借鉴。

第一步:通过USB连接kobuki底盘和pc机

            直接进行连接,安装相应驱动,这步很简单,就不多说。

 

第二步:ROS安装和相应功能包的安装

            直接使用apt-get安装,不多说,ROS安装有很多教程,值得注意的就是ubuntu和ros版本需要对应匹配。

 

第三步:测试ROS与kobuki底盘的连接

首先打开kobuki底盘电源,USB线连接cp机,确认绿灯亮起后输入命令。

> roscore
> roslaunch turtlebot_bringup minimal.launch

再打开另一个终端,输入

> roslaunch turtlebot_teleop keyboard_teleop.launch

如果你能一切顺利,那么恭喜你,你运气很好。但是如果你看到了这篇博客,那你可能就不是那么顺利的。

问题1:运行roslaunch turtlebot_bringup minimal.launch报错

运行roslaunch turtlebot_bringup minimal.launch报错:

no file or  directory:/opt/ros/kinetic/share/turtlebot_description/robotsroomba_hexagons_asus_xtion_pro.urdf.xacro

第一次运行这个,就报了这个错误,一开始愣是没想通问题所在。后面在/opt/ros/kinetic/share/turtlebot_bringup/launch/includes的description.launch.xml文件发现 $(find turtlebot_description)/robots/等等 一句出现问题,/robots后面的内容笔者忘记了,总之将这一句改为

'$(find turtlebot_description)/robots/kobuki_hexagons_asus_xtion_pro.urdf.xacro'

因为我用的是kobuki底盘,而kobuki_hexagons_asus_xtion_pro.urdf.xacro文件是针对kobuki底盘和asus-xtion-pro模型定义的,于是在这里强制改成了这个文件。

问题2:报错关于TURTLEBOT_BASE的问题

这个问题是因为要根据设置的环境变量初始化一些参数。在这里输入命令:

export TURTLEBOT_BASE=create

问题3:关于报错出现下图情况

初次使用Turtlebot的kobuki底盘进行键盘操控_第1张图片

这个是因为找不到设备,驱动不对问题。解决方法是:

> roscd turtlebot_bringup

进入“turtlebot_bringup”,然后

> cd launch

找到minimal.launch文件复制一份,并将其命名为“my_minimal.launch”。使用编辑将其打开

> gedit my_minimal.launch

可以看到代码的第二行就是设置TurtleBot移动底座的类型,在代码中提供了“create,roomba”两种类型。但是我的是“kobuki”,我只在这里修改运行后报错(改为)。然后我就找这个参数最后传给了谁,发现只有两个文件用到这个参数:robot.launch.xml和mobile_base.launch.xml。直接将包含有mobile_base.launch.xml的代码修改为:

具体怎么改,继续往下看:
关闭当前文件,执行命令:

> cd includes

你就会发现mobile_base.launch.xml就在这里,打开mobile_base.launch.xml:

> cat mobile_base.launch.xml

查看源码,发现在第四行,我们传进来的base参数原来别加入到了路径当中。路径指的就是当前的路径,你执行“ls”命令后就会发现有create和roomba文件夹,同时你也会看见有kobuki文件夹,进入kobuki文件夹,你会发现有“mobile_base.launch.xml”文件,将这个文件复制一份,并命名为“my_mobile_base.launch.xml”,然后将

的注释去掉。要不然你用他的驱动底座后收不到“cmd_vel”话题下的消息。然后回退到上层目录,将mobile_base.launch.xml复制一份,并且命名为:“my_mobile_base.launch.xml”。然后打开它,直接将

修改为:

然后打开底座电源,链接好线,执行(注意使用的是my_minimal.launch): 

> roscore
> roslaunch turtlebot_bringup my_minimal.launch
> roslaunch turtlebot_teleop keyboard_teleop.launch

好了,现在你应该可以根据keyboard_teleop.launch的提示控制你的kobuki底盘了。

你可能感兴趣的:(初次使用Turtlebot的kobuki底盘进行键盘操控)