@@ -330,21 +330,18 @@ def param_set(self, param, value):
330330 else :
331331 val = ParamValue (integer = value , real = 0.0 )
332332
333- rospy .wait_for_service (self .ns + '/mavros/param/set' )
334333 try :
335- set_param = rospy .ServiceProxy (self .ns + '/mavros/param/set' , ParamSet )
336- resp = set_param (param_id = param , value = val )
337- print ("setmode send ok" , resp .success )
334+ resp = self .set_param (param_id = param , value = val )
335+ rospy .loginfo ("ParamSet: %s" , resp .success )
338336 except rospy .ServiceException as e :
339- print ("Failed SetMode: " , e )
337+ rospy . logwarn ("Failed ParamSet: %s " , e )
340338
341339 def param_get (self , param ):
342340 try :
343- get_param = rospy .ServiceProxy (self .ns + 'mavros/param/get' , ParamGet )
344- resp = get_param (param_id = param )
345- print ("setmode send ok" , resp .success )
341+ resp = self .get_param (param_id = param )
342+ rospy .loginfo ("ParamGet: %s" , resp .success )
346343 except rospy .ServiceException as e :
347- print ("Failed SetMode: " , e )
344+ rospy . logwarn ("Failed ParamGet: %s " , e )
348345 return None
349346
350347 if resp .value .integer != 0 :
@@ -376,7 +373,7 @@ def request_mode(self, mode='OFFBOARD'):
376373 rospy .logwarn ('Mode change request unsuccessful' )
377374 return False
378375
379- def set_cmd_pos (self , x = 0 , y = 0 , z = 0 , az = 0 , frame = "map" ):
376+ def set_cmd_pos (self , x = 0 , y = 0 , z = 0 , az = 0 , max_vel = 12.0 , frame = "map" ):
380377 pose = Pose (position = Point (x = x , y = y , z = z ),
381378 orientation = Quaternion (* tf .transformations .quaternion_from_euler (0 , 0 , az )))
382379 pose = self .frames_tf .transform (frame , "map" , pose ).pose
@@ -404,6 +401,7 @@ def set_cmd_pos(self, x=0, y=0, z=0, az=0, frame="map"):
404401 CMD = 0 # POS
405402 self .setpoint_raw .type_mask = 3064 # xyz yaw
406403
404+ self .param_set (param = "MPC_XY_VEL_MAX" , value = float (max_vel ))
407405 self .setpoint_raw_publisher .publish (self .setpoint_raw )
408406
409407 def set_cmd_vel (self , vx = 0 , vy = 0 , vz = 0 , az = 0 , frame = "flu" ):
@@ -629,6 +627,10 @@ def __init__(self, name='drone', ns='', verbose=False):
629627 self .mode_client = rospy .ServiceProxy (ns + 'mavros/set_mode' , SetMode )
630628 rospy .wait_for_service (self .ns + 'mavros/cmd/land' )
631629 self .land_client = rospy .ServiceProxy (ns + 'mavros/cmd/land' , CommandTOL )
630+ rospy .wait_for_service (self .ns + '/mavros/param/set' )
631+ self .set_param = rospy .ServiceProxy (self .ns + '/mavros/param/set' , ParamSet )
632+ rospy .wait_for_service (self .ns + '/mavros/param/get' )
633+ self .get_param = rospy .ServiceProxy (self .ns + 'mavros/param/get' , ParamGet )
632634
633635 self .rqt_extended_state_publisher = rospy .Publisher (self .ns + 'drone_wrapper/extended_state' , ExtendedState ,
634636 queue_size = 1 )
0 commit comments