python前进代码_Turbot与python教程-实现前进

Turbot与python教程-实现前进

说明:

介绍如何实现通过python控制turbot前进

代码:

实现代码:

# A very basic TurtleBot script that moves TurtleBot forward indefinitely. Press CTRL + C to stop. To run:

# On TurtleBot:

# roslaunch turtlebot_bringup minimal.launch

# On work station:

# python goForward.py

import rospy

from geometry_msgs.msg import Twist

class GoForward():

def __init__(self):

# initiliaze

rospy.init_node('GoForward', anonymous=False)

# tell user how to stop TurtleBot

rospy.loginfo("To stop TurtleBot CTRL + C")

# What function to call when you ctrl + c

rospy.on_shutdown(self.shutdown)

# Create a publisher which can "talk" to TurtleBot and tell it to move

# Tip: You may need to change cmd_vel_mux/input/navi to /cmd_vel if you're not using TurtleBot2

self.cmd_vel = rospy.Publisher('cmd_vel_mux/input/navi', Twist, queue_size=10)

#TurtleBot will stop if we don't keep telling it to move. How often should we tell it to move? 10 HZ

r = rospy.Rate(10);

# Twist is a datatype for velocity

move_cmd = Twist()

# let's go forward at 0.2 m/s

move_cmd.linear.x = 0.2

# let's turn at 0 radians/s

move_cmd.angular.z = 0

# as long as you haven't ctrl + c keeping doing...

while not rospy.is_shutdown():

# publish the velocity

self.cmd_vel.publish(move_cmd)

# wait for 0.1 seconds (10 HZ) and publish again

r.sleep()

def shutdown(self):

# stop turtlebot

rospy.loginfo("Stop TurtleBot")

# a default Twist has linear.x of 0 and angular.z of 0. So it'll stop TurtleBot

self.cmd_vel.publish(Twist())

# sleep just makes sure TurtleBot receives the stop command prior to shutting down the script

rospy.sleep(1)

if __name__ == '__main__':

try:

GoForward()

except:

rospy.loginfo("GoForward node terminated.")

move_cmd.linear.x = 0.2 实现每秒0.2m/s速度前进

演示:

主机,新终端,启动底盘

$ roslaunch turbot_bringup minimal.launch

从机,新终端,启动脚本

$ rosrun turbot_code goForward.py

以0.2m/s速度前进

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值