前言:代码实现在gazebo7仿真环境中turtlebot机器人的自由移动并避开障碍物。
1.创建新的工作空间:
创建工作空间文件树:
$ mkdir -p ~/wanderbot_ws/src
$ cd ~/wanderbot_ws/src
$ catkin_init_workspace
创建一个“wanderbot”程序包:
$ cd ~/wanderbot_ws/src
$ catkin_create-pkg wanderbot rospy geometry_msgs sensor_msgs
依赖包:rospy(python编译)、geometry_msgs(用于传递机器人速度等数据)、sensor_msgs(用于传递机器人传感器数据)。
2.代码实现:
代码1:实现turtlebot移动和停止:
#!/usr/bin/env python
import rospy
from geometry_msgs.msg import Twist
#声明‘cmd_vel’的话题,消息类型为Twist,“queue_size=1”:rospy只缓冲一个消息
cmd_vel_pub = rospy.Publisher('cmd_vel', Twist, queue_size=1)
#节点初始化
rospy.init_node('red_light_green_light')
#创建一个Twist消息,初始值为零
red_light_twist = Twist() #停止消息流
green_light_twist = Twist() #移动消息流
#指定消息中linear沿着x方向速度
green_light_twist.li