Trying to apply wrench, getting 'not callable' error
Hi all, trying to apply wrench to a body and I am getting an error that something is not callable. I will attach the code below along with the error
rospy.wait_for_service("gazebo/spawn_sdf_model")
spawn = rospy.ServiceProxy("gazebo/spawn_sdf_model",SpawnModel)
projectile_path = os.getcwd() + "/maps/projectile.sdf"
projectile_name = "projectile"+str(13-self.ammo)
pose = Pose()
posePos = Point()
posePos.x = self.position[0]
posePos.y = self.position[1]
posePos.z = self.position[2]
poseAng = Quaternion()
poseAng.x = 0; poseAng.y = 0; poseAng.z = 0; poseAng.w = 1
pose.position = posePos
pose.orientation = poseAng
pose.position.z += 0.25
f = open(projectile_path)
sdf = f.read()
spawn(projectile_name, sdf, "", pose,"")
rospy.wait_for_service("gazebo/apply_body_wrench")
force = rospy.ServiceProxy("gazebo/apply_body_wrench",ApplyBodyWrench)
wrench = Wrench()
force = 1.0
wrench.force.x = force*np.cos(self.zangle*np.pi/180)
wrench.force.y = force*np.sin(self.zangle*np.pi/180)
self.ammo=self.ammo-1
force(projectile_name,"", None, wrench,rospy.get_rostime(),rospy.Duration(0.2))
The projectile spawning is working and I have another section that deletes the projectile which is working, too. The error is as follows:
[ERROR] [1588581280.031841, 3322.056000]: bad callback: <bound method Shooter._update_target of <__main__.Shooter instance at 0x7f46f721ee10>>
Traceback (most recent call last):
File "/opt/ros/melodic/lib/python2.7/dist-packages/rospy/topics.py", line 750, in _invoke_callback
cb(msg)
File "scripts/projectile.py", line 54, in _update_target
self.shoot()
File "scripts/projectile.py", line 91, in shoot
force(projectile_name,"", None, wrench,rospy.get_rostime(),rospy.Duration(0.2))
TypeError: 'float' object is not callable
Any help would be appreciated!I can supply more information if needed
Asked by bungalus on 2020-05-04 03:42:14 UTC
Comments
You are overwritting the service client
Asked by nlamprian on 2020-05-04 04:20:48 UTC