微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何达到障碍的终点

如何解决如何达到障碍的终点

这是控制器python脚本(controller.py)。如何实现某个目标(达到终点)?

这有一个基本障碍(一堵墙)。

这是一个非常初学者的入门罗斯。到目前为止,学习很棒,我犯了什么错误

#!/usr/bin/env python

import rospy
from geometry_msgs.msg import Twist
from sensor_msgs.msg import LaserScan
from nav_msgs.msg import odometry

from tf.transformations import euler_from_quaternion

import math

def Waypoints(t):
    x  = 0.2
    y  = 4
    return [x,y]

def control_loop():
    rospy.init_node('ebot_controller')

    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)

    while not rospy.is_shutdown():
        veLocity_msg = Twist()
        veLocity_msg.linear.x = x 
        veLocity_msg.angular.z = y
        pub.publish(veLocity_msg)
        print("Controller message pushed at {}".format(rospy.get_time()))
        rospy.spin()
        rate.sleep()

def odom_callback(data):
    global pose
    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]]

def laser_callback(msg):
    global regions
    regions = {
        'bright':min(min(msg.ranges[300:420],10),'fright':min(min(msg.ranges[144:287]),'front':min(min(msg.ranges[288:431]),'fleft':min(min(msg.ranges[432:575]),'bleft':min(min(msg.ranges[300:420],}

if __name__ == '__main__':
    try:
        control_loop()
    except rospy.ROSInterruptException:
        pass

如何实现某个目标(达到终点)?

谢谢。

解决方法

因为如果您只想让机器人移动到目标位置,则可以使用movebase。 Movebase为动作服务器提供了名称move_base/goal,您可以通过向目标服务器发送目标,计划全局路径并通过考虑实时传感器值在本地执行路径。请参阅此面以寻求帮助:http://wiki.ros.org/navigation/Tutorials/SendingSimpleGoals

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。