狼筝 2019-03-31 15:27 采纳率: 100%
浏览 474
已采纳

修改了程序都draw a square 但是运行不出来?

下面是我修改的代码,预计让它前进然后转一个五边形,然而……

# -*- coding: UTF-8 -*- 
#!/usr/bin/env python


#前进1m,画边长( 0.2 )m的五边形

import rospy
from geometry_msgs.msg import Twist
from math import radians 

class ROUTE():
    def __init__(self):
        # 节点初始化
        rospy.init_node('route')

        # ctrl + c停止    
        rospy.on_shutdown(self.shutdown)

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

    #更新频率 5 HZ
        r = rospy.Rate(5);

    # 两个不同的Twist()函数。一个向前直走,一个转角度

        # 向前走 0.2 m/s
        move_cmd = Twist()
        move_cmd.linear.x = 0.2


        #转54度
        turn_cmd = Twist()
        turn_cmd.linear.x = 0
        turn_cmd.angular.z = radians(18); #直线不动,只转圈


    count = 0
    #到达指定起点
    rospy.loginfo("前进ing")
    for x in range(0,20):
        self.cmd_vel.publosh(move_cmd)
        r.sleep()
    #第一条边,须先转54度
    rospy.loginfo("进入正轨ing")
    for x in range(0,15):
        self.cmd_vel.publosh(turn_cmd)
        r.sleep()
        while not rospy.is_shutdown():
        # 向前0.2m
        rospy.loginfo("正在走ing")
            for x in range(0,5):
                self.cmd_vel.publish(move_cmd)
                r.sleep()
        #准备拍照,转234度正对物体(13*18)
        rospy.loginfo("准备拍照ing")
        for x in range(0,65):
          self.cmd_vel.publish(turn_cmd)
          r.sleep()
        # 转54度(3*18)继续前进
        rospy.loginfo("继续前进ing")
            for x in range(0,15):
                self.cmd_vel.publish(turn_cmd)
                r.sleep()            
        count = count + 1
        if(count == 5): 
                count = 0
        if(count == 0): 
                rospy.loginfo("好像走完了,嘻嘻")

    def shutdown(self):
        # stop turtlebot
        rospy.loginfo("结束了,嘤嘤嘤")
        self.cmd_vel.publish(Twist())
        rospy.sleep(1)

if __name__ == '__main__':
    try:
        ROUTE()
    except:
        rospy.loginfo("停了啊。")



**hazel@hazel-Lenovo-Legion-Y7000:~/helloworld/turtlebot$ python route.py
[INFO] [1554016863.412115]: 前进ing
[INFO] [1554016863.412651]: 停了啊。
[INFO] [1554016863.413453]: 结束了,嘤嘤嘤**
出来的就是这个,为什么中间的部分没有运行?
  • 写回答

1条回答 默认 最新

  • threenewbee 2019-03-31 15:59
    关注

    检查下缩进

    count = 0
    #到达指定起点
    rospy.loginfo("前进ing")
    从这里开始,代码缩进错了,导致Init没有执行过来

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥100 Jenkins自动化部署—悬赏100元
  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘
  • ¥15 perl MISA分析p3_in脚本出错
  • ¥15 k8s部署jupyterlab,jupyterlab保存不了文件
  • ¥15 ubuntu虚拟机打包apk错误
  • ¥199 rust编程架构设计的方案 有偿
  • ¥15 回答4f系统的像差计算
  • ¥15 java如何提取出pdf里的文字?