Π’Ρ…ΠΎΠ΄ Π‘Π»ΠΎΠ³
Π‘Ρ‚Ρ€ΠΎΠΈΡ‚Π΅Π»ΡŒΡΡ‚Π²ΠΎ ΠΈ Ρ€Π΅ΠΌΠΎΠ½Ρ‚
Π Π΅ΠΏΠ΅Ρ‚ΠΈΡ‚ΠΎΡ€Ρ‹
ΠšΡ€Π°ΡΠΎΡ‚Π°
ЀрилансСры
Π Π°Π·Π½Ρ‹Π΅ спСциалисты
Π’Ρ€Π΅Π½Π΅Ρ€Ρ‹
Π£Ρ…ΠΎΠ΄ Π·Π° ΠΆΠΈΠ²ΠΎΡ‚Π½Ρ‹ΠΌΠΈ
Автоинструкторы

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° Python β€” удалённая Ρ€Π°Π±ΠΎΡ‚Π° Π² МосквС

Π”Π°Ρ‚Π°: 2025-05-14
Π”Π΅Ρ‚Π°Π»ΠΈ
Π Π΅Π³ΠΈΠΎΠ½
Москва
Π—Π°Π½ΡΡ‚ΠΎΡΡ‚ΡŒ
дистанционно
Π‘Ρ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒ
договорная
Π”Π°Ρ‚Π° ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ
2025-05-14
ОписаниС
ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ raspberry pi с использованиСм машинного зрСния. Π”ΠΎΡ€Π°Π±ΠΎΡ‚ΠΊΠ° ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π°. ПоТСлания ΠΈ особСнности: ΠžΡ‚ΠΏΡ€Π°Π²ΠΈΠ» Π² deepseek запрос Π½Π° Ρ‚Ρ€Π΅Π±ΡƒΠ΅ΠΌΡƒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, запрос ΠΈ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ ΠΏΡ€ΠΈΠΊΡ€Π΅ΠΏΠ»ΡŽ, Π² ΠΎΠ±Ρ‰Π΅ΠΌ Ρ‚Π°ΠΌ всС понятно Ρ‡Ρ‚ΠΎ я Ρ…ΠΎΡ‡Ρƒ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ, Π·Π° ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Ρ‹ΠΌ Ρ‚Π· ΠΎΠ±Ρ€Π°Ρ‰Π°ΠΉΡ‚Π΅ΡΡŒ, всС Ρ€Π°ΡΠΏΠΈΡˆΡƒ. Запросы Π² deepseek: ВрСбуСтся ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΡƒΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ Π΄Ρ€ΠΎΠ½Π° Π±Π΅Π· gps с использованиСм ΠΎΠ΄Π½ΠΎΠΏΠ»Π°Ρ‚Π½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π° ΠΈ ΠΊΠ°ΠΌΠ΅Ρ€Ρ‹ располоТСнной Π² Π΄Π½ΠΈΡ‰Π΅ Π΄Ρ€ΠΎΠ½Π°, которая стабилизируСтся строго Π²Π½ΠΈΠ· Π’ΠΎΡ‚ ΠΌΠΎΠ΄Π΅Ρ€Π½ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ динамичСски адаптируСтся ΠΊ ΠΈΠ·ΠΌΠ΅Π½ΡΡŽΡ‰Π΅ΠΉΡΡ высотС ΠΈ сохраняСт Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒ позиционирования Π±Π΅Π· GPS. ΠšΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ автоматичСский расчСт ΠΌΠ°ΡΡˆΡ‚Π°Π±Π° изобраТСния ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²ΡƒΡŽ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΡŽ Π΄Π°Π½Π½Ρ‹Ρ…. --- ### 1. Алгоритм с динамичСской высотой import cv2 import numpy as np from pymavlink import mavutil import time # ΠšΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡ INITIAL_ALTITUDE = 100 # Бтартовая высота (ΠΌ) PIX_PER_METER_AT_100M = 64 # 1ΠΌ = 64 пиксСля Π½Π° 100ΠΌ высотС RESET_INTERVAL = 30 # Бброс Ρ‚Ρ€Π΅ΠΊΠΈΠ½Π³Π° ΠΊΠ°ΠΆΠ΄Ρ‹Π΅ 30 сСк # Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡ cap = cv2.VideoCapture(0) cap.set(cv2.CAP_PROP_FRAME_WIDTH, 640) cap.set(cv2.CAP_PROP_FRAME_HEIGHT, 480) mav = mavutil.mavlink_connection('udpout:192.168.1.2:14550') # Π’Ρ€Π΅ΠΊΠ΅Ρ€ ΠΈ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Ρ‹ orb = cv2.ORB_create(scoreType=cv2.ORB_FAST_SCORE) bf = cv2.BFMatcher(cv2.NORM_HAMMING, crossCheck=True) ref_kp, ref_des = None, None current_altitude = INITIAL_ALTITUDE def get_altitude(): “““ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ высоты ΠΎΡ‚ Π±Π°Ρ€ΠΎΠΌΠ΅Ρ‚Ρ€Π° Ρ‡Π΅Ρ€Π΅Π· MAVLink“““ msg = mav.recv_match(type='GLOBAL_POSITION_INT', blocking=True, timeout=0.1) return msg.alt / 1000 if msg else current_altitude # ΠΌΠΌ → ΠΌΠ΅Ρ‚Ρ€Ρ‹ def calculate_scale(altitude): “““ДинамичСский расчСт ΠΌΠ°ΡΡˆΡ‚Π°Π±Π° пиксСль/ΠΌΠ΅Ρ‚Ρ€“““ return PIX_PER_METER_AT_100M * (100 / altitude) def reset_reference(): global ref_kp, ref_des, current_altitude current_altitude = get_altitude() ret, frame = cap.read() if not ret: return False gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY) ref_kp, ref_des = orb.detectAndCompute(gray, None) return True def get_displacement(): if ref_des is None: return 0, 0 ret, frame = cap.read() if not ret: return 0, 0 # ДСтСкция ΠΈ сопоставлСниС gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY) kp, des = orb.detectAndCompute(gray, None) if des is not None and len(des) > 20: matches = bf.match(ref_des, des) matches = sorted(matches, key=lambda x: x.distance)[:20] if len(matches) > 10: src_pts = np.float32([ref_kp[m.queryIdx].pt for m in matches]) dst_pts = np.float32([kp[m.trainIdx].pt for m in matches]) M, _ = cv2.estimateAffinePartial2D(src_pts, dst_pts) if M is not None: scale = calculate_scale(get_altitude()) return M[0, 2]/scale, M[1, 2]/scale return 0, 0 # Основной Ρ†ΠΈΠΊΠ» reset_reference() last_reset = time.time() while True: # АвтоматичСский сброс ΠΏΠΎ Ρ‚Π°ΠΉΠΌΠ΅Ρ€Ρƒ if time.time() - last_reset > RESET_INTERVAL: reset_reference() last_reset = time.time() dx, dy = get_displacement() # ΠžΡ‚ΠΏΡ€Π°Π²ΠΊΠ° Π² ArduPilot с ΡƒΡ‡Π΅Ρ‚ΠΎΠΌ высоты mav.mav.vision_position_estimate_send( int(time.time() * 1e6), dx, dy, 0, 0, 0, 0, # ΠžΡ€ΠΈΠ΅Π½Ρ‚Π°Ρ†ΠΈΡ int(current_altitude * 1000), # Высота Π² ΠΌΠΌ 0 ) time.sleep(0.1) --- ### 2. ΠšΡ€ΠΈΡ‚ΠΈΡ‡Π΅ΡΠΊΠΈΠ΅ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ #### 1. ДинамичСский ΠΌΠ°ΡΡˆΡ‚Π°Π± - Π€ΠΎΡ€ΠΌΡƒΠ»Π°: scale = (PIX_PER_METER_AT_100M) * (100 / current_altitude) ΠŸΡ€ΠΈΠΌΠ΅Ρ€: - На 100 ΠΌ: 64 px/ΠΌ - На 150 ΠΌ: 43 px/ΠΌ - На 50 ΠΌ: 128 px/ΠΌ #### 2. АвтоматичСская коррСкция высоты - Π§Ρ‚Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ… Π±Π°Ρ€ΠΎΠΌΠ΅Ρ‚Ρ€Π° Ρ‡Π΅Ρ€Π΅Π· MAVLink: msg = mav.recv_match(type='GLOBAL_POSITION_INT') current_altitude = msg.alt / 1000 # ΠŸΠ΅Ρ€Π΅Π²ΠΎΠ΄ΠΈΠΌ ΠΌΠΌ Π² ΠΌΠ΅Ρ‚Ρ€Ρ‹ #### 3. Π“ΠΈΠ±Ρ€ΠΈΠ΄Π½Ρ‹ΠΉ Ρ‚Ρ€Π΅ΠΊΠΈΠ½Π³ - ΠšΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΡ ORB + RANSAC для Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΠΈ выбросов: M, inliers = cv2.estimateAffinePartial2D( src_pts, dst_pts, method=cv2.RANSAC, ransacReprojThreshold=3.0 ) --- ### 3. Настройки ArduPilot EK3_SRC1_POSZ = 0 # Π‘Π°Ρ€ΠΎΠΌΠ΅Ρ‚Ρ€ ΠΊΠ°ΠΊ основной источник высоты EK3_ALT_SOURCE = 1 # Ѐолбэк Π½Π° Π±Π°Ρ€ΠΎΠΌΠ΅Ρ‚Ρ€ ΠΏΡ€ΠΈ ΠΏΠΎΡ‚Π΅Ρ€Π΅ Vision VIS_POS_UNCERT = 3 # ΠŸΠΎΠ³Ρ€Π΅ΡˆΠ½ΠΎΡΡ‚ΡŒ 3 ΠΌΠ΅Ρ‚Ρ€Π° EK3_FLOW_USE = 1 # Π Π°Π·Ρ€Π΅ΡˆΠΈΡ‚ΡŒ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ†ΠΈΡŽ высоты --- ### 4. ΠžΡ†Π΅Π½ΠΊΠ° точности ΠΏΡ€ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΡΡŽΡ‰Π΅ΠΉΡΡ высотС | Высота | Ошибка позиционирования (Π² час) | |--------|-------------------------------| | 50 ΠΌ | ≤5 ΠΌ | | 100 ΠΌ | ≤8 ΠΌ | | 150 ΠΌ | ≤12 ΠΌ |.
ΠŸΠΎΡ…ΠΎΠΆΠΈΠ΅ Π·Π°ΠΊΠ°Π·Ρ‹

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° Python

дистанционно
договорная
ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅. Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° с нуля. НуТно Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠΎΠ΄ Π½Π° ΠΏΠΈΡ‚ΠΎΠ½Π΅ Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π Π΅ΡˆΠΈΡ‚ΡŒ ΠΊΡ€Π°Π΅Π²ΡƒΡŽ Π·Π°Π΄Π°Ρ‡Ρƒ для ΠΎΠ±Ρ‹ΠΊΠ½ΠΎΠ²Π΅Π½Π½ΠΎΠ³ΠΎ Π΄ΠΈΡ„Ρ„Π΅Ρ€Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ уравнСния Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ порядка Π½Π° ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΌ ΠΎΡ‚Ρ€Π΅Π·ΠΊΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ ΡΡ‚Ρ€Π΅Π»ΡŒΠ±Ρ‹ ΠΈ ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ-разностным ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ. НСльзя ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ встроСнныС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ.
Π‘Π°Π½ΠΊΡ‚-ΠŸΠ΅Ρ‚Π΅Ρ€Π±ΡƒΡ€Π³ ЀрилансСры

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° Python

дистанционно
договорная
для linux сСрвСра. Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° с нуля. ΠŸΡ€ΠΈΡˆΠ»ΡŽ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΠ΅ Π’Π—. Π½ΡƒΠΆΠ½ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ скрипт Π½Π° python для Ρ€Π΅Π·Π΅Ρ€Π²Π½ΠΎΠ³ΠΎ копирования.
Москва ЀрилансСры

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° Python

дистанционно
договорная
Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ПО с интСрфСйсом. Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° с нуля. 1. УравнСния эмпиричСских зависимостСй - ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π°ΠΏΠΏΡ€ΠΎΠΊΡΠΈΠΌΠΈΡ€ΡƒΡŽΡ‰ΠΈΠ΅ зависимости, ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‰ΠΈΠ΅ Π½Π΅Π»ΠΈΠ½Π΅ΠΉΠ½ΠΎΠ΅ взаимодСйствиС Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΊΡ‚ΠΎΡ€Π° ΠΈ конструктивных ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² Π’Π‘ Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅ –30…–55 Β°C, с Π΄ΠΎΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ статистичСской Π·Π½Π°Ρ‡ΠΈΠΌΠΎΡΡ‚ΡŒΡŽ (ΠΊΡ€ΠΈΡ‚Π΅Ρ€ΠΈΠΉ Π€ΠΈΡˆΠ΅Ρ€Π°, p<0,05)Β». 2. ΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΡΠΊΡΠΏΠ΅Ρ€ΠΈΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ модуля. ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π²Π΅Ρ€ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ эмпиричСскиС зависимости ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ инструмСнт для прогнозирования эксплуатационной готовности Π»Π΅Π³ΠΊΠΎΠΌΠΎΡ‚ΠΎΡ€Π½Ρ‹Ρ… Π’Π‘ ΠΏΡ€ΠΈ ΡΠΊΡΡ‚Ρ€Π΅ΠΌΠ°Π»ΡŒΠ½ΠΎ Π½ΠΈΠ·ΠΊΠΈΡ… Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Π°Ρ… (–30…–55 Β°C). 3. 3D-Π³Ρ€Π°Ρ„ΠΈΠΊΠΈ Π½Π° основС ΠΏΠΎΠ»ΠΈΠ½ΠΎΠΌΠΎΠ² - «Визуализация многопарамСтричСских зависимостСй, которая позволяСт Π²Ρ‹ΡΠ²ΠΈΡ‚ΡŒ Ρ€Π°Π½Π΅Π΅ Π½Π΅Ρ„ΠΎΡ€ΠΌΠ°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½Ρ‹Π΅ Π·ΠΎΠ½Ρ‹ ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹Ρ… Ρ€Π΅ΠΆΠΈΠΌΠΎΠ² эксплуатации ΠΈ критичСскиС ΠΏΠΎΡ€ΠΎΠ³ΠΈ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π° ΠΌΠ΅ΠΆΠ΄Ρƒ Π½ΠΈΠΌΠΈΒ».
Москва ЀрилансСры

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° Python

дистанционно
договорная
Π’Π΅Π±-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°. Π”ΠΎΡ€Π°Π±ΠΎΡ‚ΠΊΠ° ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π°. ПоТСлания ΠΈ особСнности: Python Django 1.4.8. Π’Π— Π² Ρ„Π°ΠΉΠ»Π΅ Π½ΠΈΠΆΠ΅ Робокасса ΡƒΠΆΠ΅ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½Π° ΠΊ сайту, просто Π½ΡƒΠΆΠ½ΠΎ систСму подписок Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ Π΅Ρ‘ ΠΎΠΏΠ»Π°Ρ‡ΠΈΠ²Π°Π»ΠΈ Ρ‡Π΅Ρ€Π΅Π· робокассу.
Москва ЀрилансСры

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° Python

дистанционно
договорная
ΠŸΡ€ΠΎΡˆΡƒ ΠΏΡ€ΠΎΠΉΡ‚ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Π²ΡƒΠ·Π°. НСсколько Ρ‚Π΅ΠΌ (2ΠΌΠ΅Ρ€Π½Ρ‹Π΅ масивы).
Москва ЀрилансСры

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° Python

дистанционно
договорная
ΠŸΠΎΠΌΠΎΡ‡ΡŒ с ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΎΠΉ Π²ΡƒΠ·Π°. 2ΠΌΠ΅Ρ€Π½Ρ‹Π΅ массивы,ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.
Москва ЀрилансСры

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° Python

дистанционно
договорная
Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ для ПК. Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° с нуля.
Π‘Π°Π½ΠΊΡ‚-ΠŸΠ΅Ρ‚Π΅Ρ€Π±ΡƒΡ€Π³ ЀрилансСры