Skip to content

Commit c310380

Browse files
authored
Add files via upload
1 parent 56ac199 commit c310380

File tree

1 file changed

+22
-14
lines changed

1 file changed

+22
-14
lines changed

gotoXY_NEW.py

+22-14
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,8 @@ def __init__(self):
1717
self.rate = rospy.Rate(5)
1818

1919
orientation = 0
20-
21-
yaw = 0
20+
global yaw
21+
yaw = 0.0
2222

2323
def convertQtoEuler():
2424
quaternion = (pose.orientation.x, pose.orientation.y, pose.orientation.z, pose.orientation.w)
@@ -30,40 +30,48 @@ def convertQtoEuler():
3030
#Callback function implementing the pose value received
3131
def callback(self, data):
3232
self.pose = data
33-
self.pose.pose.position.x = round(self.pose.pose.position.x, 4)
34-
self.pose.pose.position.y = round(self.pose.pose.position.y, 4)
33+
self.pose.pose.pose.position.x = round(self.pose.pose.pose.position.x, 4)
34+
self.pose.pose.pose.position.y = round(self.pose.pose.pose.position.y, 4)
3535

3636
def get_distance(self, goal_x, goal_y):
37-
distance = sqrt(pow((goal_x - self.pose.x), 2) + pow((goal_y - self.pose.y), 2))
37+
distance = sqrt(pow((goal_x - self.pose.pose.pose.positionx), 2) + pow((goal_y - self.pose.pose.pose.position.y), 2))
3838
return distance
3939

4040
def move2goal(self):
41-
#goal_pose = Pose()
4241
goal_pose = Odometry()
43-
goal_pose.pose.position.x = input("Set your x goal: ")
44-
goal_pose.pose.position.y = input("Set your y goal: ")
45-
#goal_pose.theta = input("Set your final orientation: ")
42+
print(goal_pose)
43+
goal_pose.pose.pose.position.x = input("Set your x goal: ")
44+
goal_pose.pose.pose.position.y = input("Set your y goal: ")
4645
angle = input("Set your final orientation: ")
47-
#orientation = goal_pose.theta
4846
distance_tolerance = input("Set your tolerance: ")
4947
vel_msg = Twist()
5048

51-
while sqrt(pow((goal_pose.pose.position.x - self.pose.pose.position.x), 2) + pow((goal_pose.pose.position.y - self.pose.pose.position.y), 2)) >= distance_tolerance:
49+
while sqrt(pow((goal_pose.pose.pose.position.x - self.pose.pose.pose.position.x), 2) + pow((goal_pose.pose.pose.position.y - self.pose.pose.pose.position.y), 2)) >= distance_tolerance:
5250

5351
#Porportional Controller
52+
5453
#linear velocity in the x-axis:
55-
vel_msg.linear.x = 1.5 * sqrt(pow((goal_pose.pose.position.x - self.pose.pose.position.x), 2) + pow((goal_pose.pose.position.y - self.pose.pose.position.y), 2))
54+
v_x = 1.5 * sqrt(pow((goal_pose.pose.pose.position.x - self.pose.pose.pose.position.x), 2) + pow((goal_pose.pose.pose.position.y - self.pose.pose.pose.position.y), 2))
55+
if(v_x > 0.5):
56+
v_x = 0.5
57+
vel_msg.linear.x = v_x
5658
vel_msg.linear.y = 0
5759
vel_msg.linear.z = 0
5860

5961
#angular velocity in the z-axis:
6062
vel_msg.angular.x = 0
6163
vel_msg.angular.y = 0
62-
vel_msg.angular.z = 4 * (atan2(goal_pose.pose.position.y - self.pose.pose.position.y, goal_pose.pose.position.x - self.pose.pose.position.x) - yaw)
63-
64+
v_z = 4 * (atan2(goal_pose.pose.pose.position.y - self.pose.pose.pose.position.y, goal_pose.pose.pose.position.x - self.pose.pose.pose.position.x) - yaw)
65+
if(v_z < -4.25):
66+
v_z = -4.25
67+
if(v_z > 4.25):
68+
v_z = 4.25
69+
vel_msg.angular.z = v_z
70+
6471
#Publishing our vel_msg
6572
self.velocity_publisher.publish(vel_msg)
6673
self.rate.sleep()
74+
6775
#Stopping our robot after the movement is over
6876
vel_msg.linear.x = 0
6977
vel_msg.angular.z = orientation - yaw

0 commit comments

Comments
 (0)