为了账号安全,请及时绑定邮箱和手机立即绑定

rosrun命令不执行python文件

rosrun命令不执行python文件

牛魔王的故事 2024-01-27 15:30:04
该rosrun命令没有执行我的 python 文件。该命令只是被跳过。我已经使用命令使 python 脚本可执行 sudo chmod +x controller.py。我无法运行任何 python 文件或 rosrun 命令。即使是Python代码也没有错误。可能的问题是什么?我是ROS的新手,所以请指导我。controller.py包含以下代码:import rospyfrom geometry_msgs.msg import Twist#from sensor_msgs.msg import LaserScanfrom nav_msgs.msg import Odometryfrom tf.transformations import euler_from_quaternionimport mathdef odom_callback(data):    global x,y,pose,ebot_theta    x  = data.pose.pose.orientation.x    y  = data.pose.pose.orientation.y    z = data.pose.pose.orientation.z    w = data.pose.pose.orientation.w    pose = [data.pose.pose.position.x, data.pose.pose.position.y, euler_from_quaternion([x,y,z,w])[2]]    ebot_theta=euler_from_quaternion([x,y,z,w])[2]#def laser_callback(msg):    #global regions    #regions = {     #   'bright':      ,      #  'fright':  ,       # 'front':   ,       # 'fleft':   ,        #'bleft':       ,    #}def Waypoints(t):    if t == 0:        h = 0.74        k = 0.488    elif t == 1:        h = 1.42        k = 1.289       elif t == 2:        h = 1.911        k = 1.54    elif t == 3:        h = 2.45        k = 1.2    elif t == 4:        h = 3.141         k = 0     elif t == 5:        h = 3.91         k = -1.289    elif t == 6:        h = 4.373        k = -1.54     elif t == 7:        h = 5.02        k = -1.125    elif t == 8:        h = 5.72        k = -0.297    elif t == 9:        h = 6.283        k = 0     else:        pass      return [h,k]  def control_loop():    rospy.init_node('ebot_controller',anonymous=True)        pub = rospy.Publisher('/cmd_vel', Twist, queue_size=10)    #rospy.Subscriber('/ebot/laser/scan', LaserScan, laser_callback)    rospy.Subscriber('/odom', Odometry, odom_callback)        rate = rospy.Rate(10)     velocity_msg = Twist()    velocity_msg.linear.x = 0    velocity_msg.angular.z = 0    pub.publish(velocity_msg)    i=0    while not rospy.is_shutdown() & i<10:                [x1,y1]=[x,y]        [x2,y2]=Waypoints(i)
查看完整描述

2 回答

?
皈依舞

TA贡献1851条经验 获得超3个赞

#!/usr/bin/env python

添加此线路伙伴;)


查看完整回答
反对 回复 2024-01-27
?
慕勒3428872

TA贡献1848条经验 获得超6个赞

你的 python 脚本实际上并没有运行任何东西。可以说它的主要功能是空的。

if __name__ == '__control_loop__':

需要是

if __name__ == '__main__':

请参阅https://docs.python.org/3/library/__main__.html

另一件错误的事情是你使用的&时候你可能意味着and

>>> False & 0<10
True
>>> False and 0<10
False

所以改变:

    while not rospy.is_shutdown() & i<10:

    while not rospy.is_shutdown() and i<10:

您还需要将 a 添加spin_once到循环中。否则,不会处理任何 ROS 通信。


查看完整回答
反对 回复 2024-01-27
  • 2 回答
  • 0 关注
  • 139 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信