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

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° 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

дистанционно
договорная
Π’Π΅Π±-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°. Π Π°Π·Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ FastAPI-бэкСнд, Π΄ΠΎΡ€Π°Π±ΠΎΡ‚ΠΊΠ° ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π°. ПоТСлания ΠΈ особСнности: Π Π°Π·Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ Π³ΠΎΡ‚ΠΎΠ²Ρ‹ΠΉ FastAPI-бэкСнд Π½Π° сСрвСрС, ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Claude API, ΡΠ²ΡΠ·Π°Ρ‚ΡŒ с сайтом Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π» ΠΏΡƒΡ‚ΡŒ: Π·Π°Π³Ρ€ΡƒΠ·ΠΈΠ» PDF ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ? ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ» расчёт ? скачал КП. Код Π³ΠΎΡ‚ΠΎΠ², Π½ΡƒΠΆΠ΅Π½ Π΄Π΅ΠΏΠ»ΠΎΠΉ, Π½Π΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° с нуля.
Москва ЀрилансСры

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

дистанционно
договорная
Π Π΅ΡˆΠΈΡ‚ΡŒ 5 Π·Π°Π΄Π°Ρ‡. РСшСниС.
Москва ЀрилансСры

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

дистанционно
договорная
прСзСнтация ΠΏΠΎ Π³ΠΎΡ‚ΠΎΠ²ΠΎΠΌΡƒ ΠΊΠΎΠ΄Ρƒ. Настройка, тСстированиС. Π•ΡΡ‚ΡŒ ΠΊΠΎΠ΄Ρ‹ для ΠΏΠΈΡ‚ΠΎΠ½Π°, ΠΈΠ· -ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π½ΡƒΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€Π΅Π·Π΅Π½Ρ‚Π°Ρ†ΠΈΡŽ.
Π£Ρ„Π° ЀрилансСры

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

дистанционно
договорная
Π Π°Π±ΠΎΡ‚Π° с pdf. Π Π°Π±ΠΎΡ‚Π° с pdf. ПоТСлания ΠΈ особСнности: ЗдравствуйтС, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠ° ΠΏΠΎΠΌΠΎΡ‰ΡŒ с ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Ρ… Π² Ρ„Π°ΠΉΠ»Π΅ PDF.
Москва ЀрилансСры

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

дистанционно
договорная
Автоматизация / парсинг / Π±ΠΎΡ‚Ρ‹. Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° с нуля.
Π‘Π°ΠΌΠ°Ρ€Π° ЀрилансСры

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

дистанционно
договорная
Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ описаниС. Π”ΠΎΡ€Π°Π±ΠΎΡ‚ΠΊΠ° ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π°. ΠŸΡ€ΠΈΠ²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽ ΡƒΠ²Π°ΠΆΠ°Π΅ΠΌΡ‹Ρ… спСциалистов! НуТна ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠ° ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΡŒ Π² ΠΏΡ€ΠΎΡ…ΠΎΠΆΠ΄Π΅Π½ΠΈΠΈ собСсСдования ΠΏΠΎ стСку Python + SQL + AI/Data Engineering. Вакансия ΠΌΠΈΠ΄Π» уровня. Π˜Ρ‰Ρƒ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ€Π°Π·Π±ΠΈΡ€Π°ΡŽΡ‰Π΅Π³ΠΎΡΡ Π² Ρ‚Π΅ΠΌΠ΅ спСциалиста. ΠšΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π³ΠΎΡ‚ΠΎΠ² ΠΏΠΎΠΌΠΎΡ‡ΡŒ с срСднСго ΠΈ слоТного уровня вопросами. ΠŸΠΈΡˆΠΈΡ‚Π΅ ваши прСдлоТСния ΠΏΠΎ Ρ†Π΅Π½Π΅ Π² Π»ΠΈΡ‡ΠΊΡƒ.
Москва ЀрилансСры

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

дистанционно
договорная
Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ для ПК. Π”ΠΎΡ€Π°Π±ΠΎΡ‚ΠΊΠ° ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π°, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° с нуля. НСобходимо, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΏΠ°Ρ€Ρƒ docker ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ², Π½Π°Π»Π°Π΄ΠΈΡ‚ΡŒ ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΠΎΠ΅ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ поисковой Π²Ρ‹Π΄Π°Ρ‡ΠΈ с Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… страниц Π±Π΅Π· использования ΠΏΠ»Π°Ρ‚Π½Ρ‹Ρ… Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ.
Москва ЀрилансСры