cmd vel只发送一次
时间: 2023-10-24 13:06:58 浏览: 159
如果你的 `cmd_vel` 只发送一次,可能是因为你没有在代码中设置一个循环,来不断地发送 `cmd_vel` 指令。你可以在你的代码中添加一个 while 循环,来使 `cmd_vel` 指令能够连续地发送。下面是一个示例代码片段:
```
import rospy
from geometry_msgs.msg import Twist
rospy.init_node('cmd_vel_publisher')
pub = rospy.Publisher('/cmd_vel', Twist, queue_size=10)
while not rospy.is_shutdown():
vel_cmd = Twist()
vel_cmd.linear.x = 0.1 # set the linear velocity
vel_cmd.angular.z = 0.5 # set the angular velocity
pub.publish(vel_cmd) # publish the velocity command
rospy.sleep(0.1) # wait for a short time
```
这个代码片段会在初始化节点之后,不断地发送 `cmd_vel` 指令,直到节点被关闭。在这个循环中,我们定义了一个 `Twist` 消息,并将其赋给线速度和角速度的值,然后通过 `pub.publish` 方法来发布这个指令。为了避免过快地发送指令,我们在每次循环中加入了一个 `rospy.sleep` 方法,等待一小段时间。
阅读全文