title: TypeError: 'numpy.float64' object is not callable?
body: <p>I can't figure out why I'm getting this error.  Any help would be appreciated.</p>
  <p>This code is for basic autonomous navigation of a small all terrain vehicle.  For some reason it's getting caught in the heading and bearing calculation functions.  I've tried putting either one first in the run function, and it does the same thing.</p>
  <p>I'm fairly inexperienced with python, so it's likely something simple that I am overlooking.</p>
  <pre><code>#!/usr/bin/env python
  
  import rospy
  from geometry_msgs.msg import Twist
  from geometry_msgs.msg import Vector3Stamped
  from geometry_msgs.msg import Vector3
  from math import radians
  from sensor_msgs.msg import NavSatFix
  import time
  import numpy
  
  lat = 0.0
  lon = 0.0
  x = 0.0
  y = 0.0
  z = 0.0
  head = 0.0
  bear = 0.0
  
  
  ###########################################################
  destLat = 30.210406
  #                                   Destination
  destLon = -92.022914
  ############################################################
  
  
  class sub():
  
      def __init__(self):
          rospy.init_node('Test1', anonymous=False)
          rospy.Subscriber(&quot;/imu_um6/mag&quot;, Vector3Stamped, self.call_1)
          rospy.Subscriber(&quot;/gps/fix&quot;, NavSatFix, self.call_2)
  
      def call_1(self, mag):
          global x
          global y
          global z
          x = mag.vector.x
          y= mag.vector.y
          z= mag.vector.z
      
      def call_2(self, gps):
          global lat
          global lon
  
          lat = gps.latitude
          lon = gps.longitude
  
  def head(lat, lon):
      global head
      # Define heading here
      head = numpy.rad2deg(numpy.arctan2(z, y)) + 90
      print(head)
  
  
  def bear(y,z):
      global bear
      # Define bearing Here
      dLon = destLon - lon
      vert = numpy.sin(dLon) * numpy.cos(destLat)
      horiz = numpy.cos(lat)*numpy.sin(destLat) - numpy.sin(lat)*numpy.cos(destLat)*numpy.cos(dLon)
      bear = (numpy.rad2deg(numpy.arctan2(vert, horiz)) + 360) % 360
      print(bear)
  
  
  def nav(head, bear, destLat, destLon):
      # Do Navigation Here
      pub = rospy.Publisher('/husky_velocity_controller/cmd_vel', Twist, queue_size=10)
      move_cmd = Twist()
      turn_cmd = Twist()
  
      move_cmd.linear.x = 2
      turn_cmd.angular.z = radians(45)
  
      turn_angle = head - bear
  #   Prettify the angle 
      if (turn_angle &gt; 180):
          turn_angle -= 360
      elif (turn_angle &lt; -180):
          turn_angle += 360
      else:
          turn_angle = turn_angle
  
      if (abs(lat-destLat)&lt;.0005 and abs(lon-destLon)&lt;.0005):
          pub.publish(Twist())
          r.sleep()
      else:
          if (abs(turn_angle) &lt; 8):
              pub.publish(move_cmd)
              rospy.spin()
          else:
              pub.publish(turn_cmd)
              r = rospy.Rate(5);
              r.sleep()
      
  
  
  def shutdown(self):
      rospy.loginfo(&quot;Stop Husky&quot;)
      cmd_vel.publish(Twist())
      rospy.sleep(1)
  
  
  def run():
      sub()
      bear(y,z)
      head(lat,lon)
      nav(head, bear, destLat, destLon)
      print('here')
  
  
  
  if __name__ == '__main__':
      try:
          while not rospy.is_shutdown():
              run()
      except rospy.ROSInterruptException:
          rospy.loginfo(&quot;stopped&quot;)
          pass
  </code></pre>
  <p>Here's the whole output:</p>
  <pre><code>163.11651134
  90.0
  here
  Traceback (most recent call last):
    File &quot;classTest.py&quot;, line 117, in &lt;module&gt;
      run()
    File &quot;classTest.py&quot;, line 107, in run
      bear(y,z)
  TypeError: 'numpy.float64' object is not callable
  </code></pre>