ROS多点导航
1 2 | cd ~ /catkin_ws/src catkin_create_pkg myrobot rospy geometry_msgs sensor_msgs |
1 2 | cd ~ /catkin_ws/src/myrobot/src vim patrol.py |
1 2 3 4 5 6 7 8 9 10 11 12 | #!/usr/bin/env python import rospy import actionlib from move_base_msgs.msg import MoveBaseAction, MoveBaseGoal waypoints = [ # <1> [(1.522, 0.444, 0.0), (0.0, 0.0, -0.519, 0.85)], [(-2.0432, -0.439, 0.0), (0.0, 0.0, -0.559, 0.82902)] ] |
1 2 3 4 5 6 7 8 9 10 11 12 13 | def goal_pose(pose): # <2> goal_pose = MoveBaseGoal() goal_pose.target_pose.header.frame_id = 'map' goal_pose.target_pose.pose.position.x = pose[0][0] goal_pose.target_pose.pose.position.y = pose[0][1] goal_pose.target_pose.pose.position.z = pose[0][2] goal_pose.target_pose.pose.orientation.x = pose[1][0] goal_pose.target_pose.pose.orientation.y = pose[1][1] goal_pose.target_pose.pose.orientation.z = pose[1][2] goal_pose.target_pose.pose.orientation.w = pose[1][3] return goal_pose |
1 2 3 4 5 6 7 8 9 10 11 12 | if __name__ == '__main__' : rospy.init_node( 'patrol' ) client = actionlib.SimpleActionClient( 'move_base' , MoveBaseAction) # <3> client.wait_for_server() while True: for pose in waypoints: # <4> print( "goal:x=%f y=%f" %(pose[0][0],pose[0][1])) goal = goal_pose(pose) client.send_goal(goal) client.wait_for_result() |
1 | rostopic echo amcl_pose -n 1 |
1 | rosrun myrobot patrol.py |
1 | chmod 777 patrol.py |
参考:
https://www.guyuehome.com/10949
作者:kay 出处:https://www.cnblogs.com/kay2018/ 本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。 如果文中有什么错误,欢迎指出。以免更多的人被误导。 |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具