ROS+python控制小乌龟走方形的实现

本文介绍了使用ROS和Python控制小乌龟行走正方形的方法,通过改进的控制策略提高了行走的精度。虽然原始代码可能受到硬件和线程的影响,导致形状不规则,但采用模仿ROS框架的Python代码能够更好地控制乌龟行动,使得绘制的方形更加整齐。通过调整`rospy.Timer`的时间间隔,可以进一步优化拐角的判断,达到更好的行走效果。
摘要由CSDN通过智能技术生成

常见的简陋的控制乌龟行走方形的方式很简单,例如:

代码有些地方是测试用的,可以不要。

#! /usr/bin/env python

from pickle import TRUE
import rospy
from turtlesim.msg import Pose
from geometry_msgs.msg import Twist
from rospy.timer import Timer


PI=3.141592653
turn=True
twist=Twist()
def subCallback(pose):

    rospy.loginfo("come into subCallback!%f",pose.x)
    

def timeCallback(event):

    pub=rospy.Publisher("turtle1/cmd_vel",Twist,queue_size=1)
    global turn
    if turn:
        twist.linear.x=1
        twist.angular.z=0.0
        turn=False
    else:
        twist.linear.x = 0
        twist.angular.z = 1*PI/2
        turn=TRUE
    pub.publish(twist)

if __name__=="__main__":


    rospy.init_node("go_square")

    sub = rospy.Subscriber("turtle1/pose", Pose, subCallback, queue_size=10)

    rospy.Timer(rospy.Duration(1),timeCallback, oneshot=False)


    rospy.spin()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值