之前都是使用键盘控制turtlebot的行走,于是想写段代码可以让turtlebot自己动起来,毕竟今后的工作是想让机器人在地图上可以实现自行路径规划到达指定的目的地。
启动turtlebot后在命令行敲入rostopic list我们可以看到当前所有的topic,如下图
我们在使用键盘控制turtlebot的时候用到的时候cmd_vel这一个topic,然而在上图中我们并没有发现它。经过一番查阅和对比,在官方代码 kobuki_keyop/launch/keyop.launch文件中可以看到<remap from="keyop/cmd_vel" to="mobile_base/commands/velocity">,把keyop/cmd_vel映射到了mobile_base/commands/velocity上,而这个topic是有的。所以为了实现我们用代码控制turtlebot的想法,就需要我们向该topic发一个类型为geometry_msgs/Twist类型的消息,本消息中要包含运动的线速度和角速度。
分析正确后实现起来就简单多了。

本文介绍了如何通过代码控制turtlebot进行直行与旋转。在了解到cmd_vel topic的映射到mobile_base/commands/velocity后,发送geometry_msgs/Twist消息来设定线速度和角速度。首先创建程序包,使用roscpp库,接着在turtle_move/src中编写C++程序move_turtle_goforward.cpp实现直行功能。完成编译并启动kobuki底座,运行程序后,turtlebot开始直行,按下CTRL+C停止程序。
直行与旋转&spm=1001.2101.3001.5002&articleId=53200521&d=1&t=3&u=4221d5a139d04dc99fdad07134a8faf7)
3556

被折叠的 条评论
为什么被折叠?



