I Can not send waypoint to plane with PYMAVLINK

2 views
Skip to first unread message

Kaan Hacıkerimli

unread,
Jul 17, 2024, 8:32:59 AM (5 days ago) Jul 17
to MAVLink
I tried on the advice you gave, but I came across such a mistake. And the plane went into RTL mode after running the command, and I can't turn it back to auto. i gave the output below the code.import time
from pymavlink import mavutil,mavwp


def add_mission(vehicle,seq,lat,lon,alt):
wp = mavwp.MAVWPLoader()

frame= mavutil.mavlink.MAV_FRAME_GLOBAL_RELATIVE_ALT
wp.add(mavutil.mavlink.MAVLink_mission_item_int_message(vehicle.target_system, vehicle.target_component,
seq,
frame,
mavutil.mavlink.MAV_CMD_NAV_WAYPOINT,0,0,0,0,0,0,lat,lon,alt))

vehicle.waypoint_clear_all_send()
vehicle.waypoint_count_send(wp.count())
for i in range (wp.count()):
msg= vehicle.recv_match(type=["MISSION_REQUEST"], blocking= True)
vehicle.mav.send(wp.wp(msg.seq))
print("Sending waypoints {0}".format(msg.seq))




def set_mode(master, mode):
master.set_mode(mode)
ack = master.recv_match(type='COMMAND_ACK', blocking=True)
if ack and ack.command == mavutil.mavlink.MAV_CMD_DO_SET_MODE and ack.result == mavutil.mavlink.MAV_RESULT_ACCEPTED:
print(f"The vehicle has entered {mode} mode.")
else:
print(f"{mode} fail!")

# Belirli modlar için özel fonksiyonlar
def set_guided_mode():
set_mode( 'GUIDED')

# Main function
def main():
connection_string = 'udpin:172.22.80.1:14550'

master= mavutil.mavlink_connection(connection_string,baudrate=57600,autoreconnect= True)
master.wait_heartbeat()

set_mode(master, 'GUIDED')
time.sleep(1.5)


target_lat = -35.3677930 # Replace with your target latitude
target_lon = 149.1663337 # Replace with your target longitude
target_alt = 10.0 # Replace with your target altitude

add_mission(master,0,target_lat,target_lon,target_alt)
print("Reposition command sent!")


if __name__ == "__main__":
main()




#########################################################################
OUTPUTThe vehicle has entered GUIDED mode.

Traceback (most recent call last):
  File "C:\Users\saref\OneDrive\Masaüstü\GiriftIHA\DENEME.py", line 56, in <module>
    main()
  File "C:\Users\saref\OneDrive\Masaüstü\GiriftIHA\DENEME.py", line 51, in main
    add_mission(master,0,target_lat,target_lon,target_alt)
  File "C:\Users\saref\OneDrive\Masaüstü\GiriftIHA\DENEME.py", line 18, in add_mission
    vehicle.mav.send(wp.wp(msg.seq))
  File "C:\Users\saref\AppData\Roaming\Python\Python38\site-packages\pymavlink\dialects\v20\ardupilotmega.py", line 20287, in send
    buf = mavmsg.pack(self, force_mavlink1=force_mavlink1)
  File "C:\Users\saref\AppData\Roaming\Python\Python38\site-packages\pymavlink\dialects\v20\ardupilotmega.py", line 11891, in pack
    return self._pack(mav, self.crc_extra, self.unpacker.pack(self.param1, self.param2, self.param3, self.param4, self.x, self.y, self.z, self.seq, self.command, self.target_system, self.target_component, self.frame, self.current, self.autocontinue, self.mission_type), force_mavlink1=force_mavlink1)
struct.error: required argument is not an integer

Reply all
Reply to author
Forward
0 new messages