ArduCopter Mega: порт на обычную Arduino (тестим)

SovGVD

не, там новые файлы добавились, он их не обновил… но щас нашел куда тыркнуть =) чуть позже залью

а еще меня вот этот код смущает:

if(baro_alt < 1000){

			#if SONAR_TILT_CORRECTION == 1
				// correct alt for angle of the sonar
				float temp = cos_pitch_x * cos_roll_x;
				temp = max(temp, 0.707);
				sonar_alt = (float)sonar_alt * temp;
			#endif

			scale = (sonar_alt - 400) / 200;
			scale = constrain(scale, 0, 1);
			current_loc.alt = ((float)sonar_alt * (1.0 - scale)) + ((float)baro_alt * scale) + home.alt;
		}else{
			current_loc.alt = baro_alt + home.alt;
		}

высота барометра отдается в сантиметрах, т.е. к барометру, поключится сонар на высотее менее 1000 см (10 метров!) дальше какое то математическое кунгфу
у оригинального ардукоптера сонар до 10 метров прошибает?

в оригинальном ардукоптере (в сантиметрах же)

// convert analog value to distance in cm (using child implementation most likely)
	raw_value = convert_raw_to_distance(raw_value);

и при этом границы от 20 см до 7 метров (наш дальномер в лучшем случае 5 метров, а в реальности метра 2 только стабильно)

#define AP_RANGEFINDER_MAXSONARXL_MIN_DISTANCE 20
#define AP_RANGEFINDER_MAXSONARXL_MAX_DISTANCE 700

и где задается SONAR_TILT_CORRECTION=1? вроде не видел такого раньше тут

Sir_Alex:

Я так понимаю, что компас калибруется автоматом, во время запуска коптера (или полета)

хз… у меня нормально показывает только если не калибровать вообще =) но вернул на всякий случай

tusik

Заработал компас. Показывает, вроде, правильно. Глеб, у тебя в последней прошивке нет #define MAG_ORIENTATION ROTATION_YAW_270

SovGVD
tusik:

в последней прошивке нет #define MAG_ORIENTATION ROTATION_YAW_270

он вроде одинаковый для всех - вынес его в config.h, чтобы глаза не мозолил =)

tusik:

Заработал компас.

а сделал то что? или само собой?

tusik
SovGVD:

а сделал то что? или само собой?

Сделал еразе, и поставил #define MAG_ORIENTATION ROTATION_YAW_270

SovGVD

имхо еразе должен был помочь… всеравно где задается конфиг компаса (потестируб вечером, если влияет, то верну на место)
проверь в config.h есть строки

#define HIL_MODE	HIL_MODE_DISABLED
#define GCS_PROTOCOL  GCS_PROTOCOL_MAVLINK
#define MAG_ORIENTATION		ROTATION_YAW_270
#define MAG_PROTOCOL MAG_PROTOCOL_5883L
tusik
SovGVD:

в config.h есть строки

Строки есть, но пока не вернул #define MAG_ORIENTATION ROTATION_YAW_270 на место, правильно не показывал

iBat
SovGVD:

опа… а чето в SVN не залились файлы то новые от компаса? 0_0
как обновить список файлов для закачки?

  1. В какую ветку коммит был?
  2. Не залиться они ну просто не могут 😃 Если только какой-то глюк при коммите произошел. Тогда можно попробовать make clean и коммит заново.

Если по SVN еще вопросы будут - обращайтесь 😃

SovGVD
  1. в бранч 2.0.40
  2. могут, если не поставить им статус на добавление (файлов до этого не было в списке и commit игнорил их… через какой то аддон к файловому манагеру поставил статуст на добавление и всё отлично залилось)
tusik:

пока не вернул #define MAG_ORIENTATION ROTATION_YAW_270 на место, правильно не показывал

ну фиг с ним, верну туда =)

iBat

Под windows советую TortoiseSvn - таких проблем поможет избежать. Заодно сразу в проводнике/командере видно какие файлы изменились и требуют коммита.

SovGVD
tusik:

правильно не показывал

имхо можо теперь и LOITER потестить 😉 только сонар пока лучше отключить - фигово работает да и высота всего 1-2 метра

iBat:

советую TortoiseSvn

поставил RabbitSVN под Linux - как раз тоже самое делает, но хочется то через консольку 😉

iBat
SovGVD:

поставил RabbitSVN под Linux - как раз тоже самое делает, но хочется то через консольку 😉

Эмм, так для консольки то как раз ничего дополнительно и не надо ставить.
cd <каталог>
svn [команда]
Только вот команд придется прилично подучить. Хотя для начала commit/update/switch хватит.

SovGVD
iBat:

для консольки то как раз ничего дополнительно и не надо ставить.

ну дык вот всё через консоль, кроме добавления файла…т.е. если я создан новый файл, он не зальется, пока не указать явно что его надо залить
нет пока времени на изучение комманд… то баги правлю, то на работе, то в гостях

evgenyl
SovGVD:

поставил RabbitSVN под Linux - как раз тоже самое делает, но хочется то через консольку

Глеб, мне в линуксе нравится kdesvn.
А вообще, у нас почти все разработчики используют не клиент svn, а поддержку svn в какой нибудь ide, например в eclipse, там правишь и сразу коммитишь.

Sir_Alex
SovGVD:

ну дык вот всё через консоль, кроме добавления файла…т.е. если я создан новый файл, он не зальется, пока не указать явно что его надо залить

Подозреваю, что тебе поможет “svn add” 😃
P.S. Хотя я всю жизнь работаю с Тортиллой.

SovGVD
evgenyl:

нравится kdesvn.

ой не… еще половину кед тянуть =)

evgenyl:

поддержку svn в какой нибудь ide

не люблю IDE, постоянно какие то громилы, с кучей кнопочек и подсказок… последние 6 лет предпочитаю блокнот или блокнот с подстветкой синтаксиса - чистый код и ничего не отвлекает

а теперь всётаки по теме - нужен ли на вообще сонар? если он максимум до 5 метров видит (если верить сайту), а в реальности метра 2, а дальше уже фигню показывать начинает, как вариант выставить в коде чтобы врубался сонар только на очень маленькой высоте (3метра и ниже) - тогда вроде как и работать будет и не будет подмешивать свои неверные данные барометру на больших высотах

evgenyl
SovGVD:

ой не… еще половину кед тянуть =)

А я в кедах ) тоже не люблю IDE, сижу в geany, простенький редактор )

По поводу сонара, я бы например для FPV хотел бы режим, чтобы нельзя было опустится ниже 1 метра, так можно лететь на сверхмалой высоте и не боятся где там земля.

Еще тут проскакивало что кто-то начал писать поддержку GPS по i2c, тоже есть мысль заняться этим, пока просто собираю инфу, если есть какие то наброски, пусть даже не работающие, хотелось бы посмотреть ?

SovGVD
evgenyl:

я бы например для FPV хотел бы режим, чтобы нельзя было опустится ниже 1 метра

ну до 2 метров он нормально видит

evgenyl:

GPS по i2c

вот это бы пригодилось, вроде как много народу купили allinone с gps а оно там глючит и повисает

evgenyl:

сижу в geany, простенький редактор )

вот и я в geany, убрав всё - только вкладки, подсветка и подсказки по функциям в php =)

Sir_Alex
evgenyl:

Еще тут проскакивало что кто-то начал писать поддержку GPS по i2c

Да, спроси у Romb89.

По сонару, мне кажется, нам надо применить триггер. Ну например когда мы взлетаем, сонар отключается на высоте 3.5м, а при приземлении, включается на высоте 2м-2.5. Это позволит избежать скачкообразного перехода и глюков на высоте - перехода сонар/баро (~3м). Ну и еще, пока работает сонар, например на высоте 2-3метра, надо бы использовать его, для автокалибровки барометра… что бы так же, не происходил скачкообразный переход.

SovGVD
Sir_Alex:

сонар отключается на высоте 3.5м

в последней ревизии в конфиге добавил BARO_TO_SONAR_VALUE - высота в сантиметрах(т.е. лучше туда пихнуть 200 или 300 подняв у сонара максимальное значение дальности), ниже которой используется сонар
по идее скачкообразный перевод не должен быть, при условии: высота такая, что сонар еще измеряет (для в2 это 1.5м, т.е. поставив 200 вполне плавно должен перейти с сонар+барометр на один барометр)

Gapey

а для перехода используется данные с сонара или с барометра ???
немешало-бы кроме всего проченго проверять их взаимное соответствие , ато малоли придется садиться ниже/выше уровня старта или будеим пролетать над чемто … в этом случае нужно предусмотреть иные алгоритмы …

SovGVD
Gapey:

а для перехода используется данные с сонара или с барометра ???

с барометра, чтобы не получилась фигня если “будеим пролетать над чемто”

Gapey:

малоли придется садиться ниже/выше уровня старта

летайте на ровных асфальтированных площадках 😉
шутка… сесть всеравно не получится автоматом, при RTL коптер должен прилететь на точку взлета, ужерживая высоту (или подниматсь на 8 метров,так и не понял по коментам на diydrones)