mirror of
https://gitee.com/mirrors_PX4/PX4-Autopilot.git
synced 2026-10-21 17:03:35 +08:00
Moved last libs, drivers and headers, cleaned up IO build
This commit is contained in:
Executable
+100
@@ -0,0 +1,100 @@
|
||||
#!/usr/bin/tclsh
|
||||
#
|
||||
# Generate multirotor mixer scale tables compatible with the ArduCopter layout
|
||||
#
|
||||
|
||||
proc rad {a} { expr ($a / 360.0) * 2 * acos(-1) }
|
||||
proc rcos {a} { expr cos([rad $a])}
|
||||
|
||||
set quad_x {
|
||||
45 CCW
|
||||
-135 CCW
|
||||
-45 CW
|
||||
135 CW
|
||||
}
|
||||
|
||||
set quad_plus {
|
||||
90 CCW
|
||||
-90 CCW
|
||||
0 CW
|
||||
180 CW
|
||||
}
|
||||
|
||||
set quad_v {
|
||||
68 CCW
|
||||
-136 CCW
|
||||
-68 CW
|
||||
136 CW
|
||||
}
|
||||
|
||||
set hex_x {
|
||||
90 CW
|
||||
-90 CCW
|
||||
-30 CW
|
||||
150 CCW
|
||||
30 CCW
|
||||
-150 CW
|
||||
}
|
||||
|
||||
set hex_plus {
|
||||
0 CW
|
||||
180 CCW
|
||||
-120 CW
|
||||
60 CCW
|
||||
-60 CCW
|
||||
120 CW
|
||||
}
|
||||
|
||||
set octa_x {
|
||||
22.5 CW
|
||||
-157.5 CW
|
||||
67.5 CCW
|
||||
157.5 CCW
|
||||
-22.5 CCW
|
||||
-112.5 CCW
|
||||
-67.5 CW
|
||||
112.5 CW
|
||||
}
|
||||
|
||||
set octa_plus {
|
||||
0 CW
|
||||
180 CW
|
||||
45 CCW
|
||||
135 CCW
|
||||
-45 CCW
|
||||
-135 CCW
|
||||
-90 CW
|
||||
90 CW
|
||||
}
|
||||
|
||||
set tables {quad_x quad_plus quad_v hex_x hex_plus octa_x octa_plus}
|
||||
|
||||
proc factors {a d} { puts [format "\t{ %9.6f, %9.6f, %5.2f }," [rcos [expr $a + 90]] [rcos $a] [expr -$d]]}
|
||||
|
||||
foreach table $tables {
|
||||
puts [format "const MultirotorMixer::Rotor _config_%s\[\] = {" $table]
|
||||
|
||||
upvar #0 $table angles
|
||||
foreach {angle dir} $angles {
|
||||
if {$dir == "CW"} {
|
||||
set dd 1.0
|
||||
} else {
|
||||
set dd -1.0
|
||||
}
|
||||
factors $angle $dd
|
||||
}
|
||||
puts "};"
|
||||
}
|
||||
|
||||
puts "const MultirotorMixer::Rotor *_config_index\[MultirotorMixer::Geometry::MAX_GEOMETRY\] = {"
|
||||
foreach table $tables {
|
||||
puts [format "\t&_config_%s\[0\]," $table]
|
||||
}
|
||||
puts "};"
|
||||
|
||||
puts "const unsigned _config_rotor_count\[MultirotorMixer::Geometry::MAX_GEOMETRY\] = {"
|
||||
foreach table $tables {
|
||||
upvar #0 $table angles
|
||||
puts [format "\t%u, /* %s */" [expr [llength $angles] / 2] $table]
|
||||
}
|
||||
puts "};"
|
||||
Reference in New Issue
Block a user