1 背景介绍
控制ROS机器人小车运动,规划设计“爱心”路径。
2 设计小车运动轨迹过程
爱心由两个半圆与下部分的两条直线组成,要使小车跑出“爱心”路线,分为四部分,先画两个半圆,再画两条直线。首先先画爱心的右上半圆,而后倒退画爱心的右上半圆,继而倒退画爱心右下部分的直线,旋转角度,最后画爱心左上半圆。运动轨迹包含的基本功能有线速度、角速度设置;里程设置;左转向、右转向;前进;后退等。小车运动轨迹顺序如下图所示:
3 相应的ROS主题发布或订阅程序
通过了解ROS的通信机制,我们认识到要控制机器人小车的运动,需要给相应的主题发送指令。通过python代码实现即是新建一个节点,而后连接到一个话题,再向话题发布特定的信息。代码示例如下:
#初始化节点以及节点的声明
rospy.init_node('draw_aixin',anonymous=False)
#声明发布者,发布者的类型为twist,缓存区队列设为10
cmd_pub = rospy.Publisher('cmd_vel',Twist,queue_size=10)
#发布消息
cmd_pub.publish(twist)
4 控制小车运动源码解释
现在让我们分解代码:
4.1 首先确保脚本作为 Python 脚本执行
#!/usr/bin/python
# coding= utf-8
4.2 导入rospy以及相应的消息类型
import rospy
import math
from nav_msgs.msg import Odometry
from geometry_msgs.msg import Twist,Point# Twist数据类型包含线速度和角速度
4.3 初始化节点
def cmd_vel_pub():
rospy.init_node('draw_aixin',anonymous=False)
cmd_pub = rospy.Publisher('cmd_vel',Twist,queue_size=10)