在ros by example2中,运行仿真时候都会使用这个task_setup.py文件,来建立基本的环境变量。
在执行rosrun rbx2_task patrol_scripts.py 的时候,加载航点信息,调用了task_setup.py 函数
下图是执行原task_setup.py的效果,加载四个航点和一个recharge点
下图是笔者在进行修改之后的效果,修改代码如下,
euler_angles = (300*pi/180, 60*pi/180, 60*pi/180, 150*pi/180, 150*pi/180, 240*pi/180, 240*pi/180, 300*pi/180)
# Then convert the angles to quaternions
for angle in euler_angles:
q_angle = quaternion_from_euler(0, 0, angle, axes='sxyz')
q = Quaternion(*q_angle)
quaternions.append(q)
# Create a list to hold the waypoint poses
self.waypoints = list()
self.waypoints.append(Pose(Point(-1/2, -math.sqrt(3)/2, 0.0), quaternions[0]))
self.waypoints.append(Pose(Point(self.square_size, 0.0, 0.0), quaternions[1]))
self.waypoints.append(Pose(Point(1.0+math.sqrt(3)/2, 1/2, 0.0), quaternions[2]))
self.waypoints.append(Pose(Point(self.square_size, self.square_size, 0.0), quaternions[3]))
self.waypoints.append(Pose(Point(1/2, math.sqrt(3)/2+1, 0.0), quaternions[4]))
self.waypoints.append(Pose(Point(0.0, self.square_size, 0.0), quaternions[5]))
self.waypoints.append(Pose(Point(-math.sqrt(3)/2, 1/2, 0.0), quaternions[6]))
self.waypoints.append(Pose(Point(0.0, 0.0, 0.0), quaternions[7]))
显示的图形和笔者想要实现的不是一个样子,但值得庆幸的是点的个数是对的,我们可以在这些文件上进行简单的修改实现自己想要的功能。
PS:在修改python文件的时候,主要注意的就是缩进的问题!!