When adding a test node to a makefile section, with required compilation
flags, include and other options, all the files (not arch dependent
files) can be compiled with a TAP compatible program, included in the
standard tests of the CI servers.
Not all module's XML files are converted, but a large part of the most
important parts are already covered. More will be added later. The
number of tested airframes (full compilation of all targets) have been
reduced to speed the CI compile time but still covers the relevant
architecture and boards.
The main benefit is that the overall coverage is already better than
before as previous test aircraft were compiling more or less the same
part of the airborne code, while this new mechanism is more efficient to
test modules not included in any config.
* cv.c changes to support multiple cameras, compiles but untested
* opticflow module runs on both cameras
* modified airframe to showcase module running with two cameras
* updated OPTICFLOW ABI message to send camera id info
* now possible to subscribe to the ABI message from a specific camera
* Added camera_id field to conform with new telemetry message
* Updated pprzlink
* Make sd logger listen to settings on download port
* Improve compilation conditions for download port listener
* Rename SDLOGGER_DOWNLINK_DEVICE to DOWNLOAD_DEVICE
Co-authored-by: Tom van Dijk <tomvand@users.noreply.github.com>
* [shell] add a shell module with ChibiOS
- add a set of core commands
- allow to add custom commands from external modules at runtime
- fix small errors in rtos_mon module
* [shell] only for ap target at the moment
* [nav] bio-inspired navigation module
based on the preliminary work of an internship
integrate a bio-inspired navigation based on the behavior of fish
* update pprzlink ref
* add citation to module description
* removed "MAX7456_SLAVE_IDX" redefined warnings
changed <define name="MAX7456_SPI_DEV" value="spi2" /> AND <define name="MAX7456_SLAVE_IDX" value="SPI_SLAVE1" />
to <configure name="MAX7456_SPI_DEV" value="spi2" /> AND <configure name="MAX7456_SLAVE_IDX" value="SPI_SLAVE1" />
otherwise i was getting to many warnings about "MAX7456_SLAVE_IDX" redefined
* improved osd busy flag checks
Removed one static function and the code now checks both the OSD busy flag and the OSD Reset flag.
* Added THE OSD status register bits
Added two more definitions about the OSD busy flag and the OSD reset flag.
* Made the busy flag check a litle more strict.
Removed one static function and the code now checks both the OSD busy flag and the OSD Reset flag.
* Changed the busy flag check
Removed one static function and the code now checks both the OSD busy flag and the OSD Reset flag always after writing to the OSD
The code is also a bit cleaner.
* changed the OSD STATUS register bit positions
I changed the OSD status register bit positions and names to better blend with the rest of the file.
They weren't used anywhere else except for the busy flag checks.
* STATUS register bit position names and style change
I changed the OSD status register bit positions and names to better blend with the rest of the file and to look better to the eye.
Those and the older ones are only used to check the busy flag.
* Made the BUSY flag check more robust.
The busy flag (actually the NVRAM Busy FLAG) and the Power On Reset flag now is checked every time the code writes something to NVRAM.
* Delete max7456.c
includes baro bmp280 and updated max7456 osb
Squashed commit of the following:
commit 647ec61a9a16966b523bbf5f535ce85679785c9a
Author: Gautier Hattenberger <gautier.hattenberger@enac.fr>
Date: Wed Oct 14 18:33:02 2020 +0200
[conf] matek board module only configure internal sensors
it makes it easier to reuse by other people
commit 9bfa96685d
Author: hendrixgr <hendrixgr@gmail.com>
Date: Wed Oct 14 17:41:32 2020 +0300
Easyglider with Matek F405 Wing autopilot airframes
Added coordinated turning using both the ailerons and the rudder in Auto2
commit e736781ac3
Author: hendrixgr <hendrixgr@gmail.com>
Date: Wed Oct 14 17:40:05 2020 +0300
Easyglider with Matek F405 Wing autopilot airframes.
I added the combi switch for coordinated turns using both the alilerons and the rudder in Auto2.
commit 8be348a1d8
Author: hendrixgr <hendrixgr@gmail.com>
Date: Wed Oct 14 17:39:02 2020 +0300
Easyglider with Matek F405 Wing autopilot
I added the combi switch for coordinated turns using both the alilerons and the rudder in Auto2.
commit c0f7339686
Author: hendrixgr <hendrixgr@gmail.com>
Date: Wed Oct 14 16:19:35 2020 +0300
Easyglider and Matek wing autopilot module autoload file
I just added some comments.
commit c4645705ad
Author: hendrixgr <hendrixgr@gmail.com>
Date: Wed Oct 14 16:12:44 2020 +0300
Easyglider with Matek wing autopilot and module autoload/
This airframe file needs the paparazzi/conf/module/board_matek_wing.xml file in order to compile.
commit 2c273589d3
Author: hendrixgr <hendrixgr@gmail.com>
Date: Wed Oct 14 16:04:50 2020 +0300
board module for auto loading the required modules
I don't usually change those airframe modules so i put them all in the board module file.
commit 58e1e551d1
Author: hendrixgr <hendrixgr@gmail.com>
Date: Wed Oct 14 13:34:18 2020 +0300
Removed the Baro definitions and cleaned up the file.
commit a1a47ec150
Author: hendrixgr <hendrixgr@gmail.com>
Date: Wed Oct 14 13:30:02 2020 +0300
Corrected the autopilot type and link to the manufacturer.
commit 870f2d2e94
Author: hendrixgr <hendrixgr@gmail.com>
Date: Wed Oct 14 13:26:41 2020 +0300
Removed the .xml file type from modules and changed the spoken aircraft name.
commit 700141cc9c
Author: hendrixgr <hendrixgr@gmail.com>
Date: Wed Oct 14 08:05:31 2020 +0300
Added support for the Matek F405 Wing autopilot OSD.
Removed all warning and pragma messages and used PRINT_CONFIG_MSG() instead.
Added support for rotorcrafts which i don't like....
Matek osd will work now, TEXT artificial horizon is added, additional string format capabilities are given in the osd_put_s() and osd_sprintf() functions , able to inject special osd character code in to a string to be sent to the osd display
and the code now checks the osd chip's busy flag instead of waiting and hoping that the OSD is not busy.
commit fe17c0250c
Author: hendrixgr <hendrixgr@gmail.com>
Date: Wed Oct 14 07:30:11 2020 +0300
Update osd_max7456.xml
I removed the PAL or NTSC selection because i think this should be done in the airframe file.
commit a1966511f9
Author: hendrixgr <hendrixgr@gmail.com>
Date: Tue Oct 13 22:38:21 2020 +0300
Matek F405 Wing OSD support
Added support for rotorcrafts which i don't like....
Matek osd will work now, TEXT artificial horizon is added, additional string format capabilities are given in the osd_put_s() and osd_sprintf() functions , able to inject special osd character code in to a string to be sent to the osd display
and the code now checks the osd chip's busy flag instead of waiting and hoping that the OSD is not busy.
commit 4edaecc3bf
Author: hendrixgr <hendrixgr@gmail.com>
Date: Tue Oct 13 21:34:38 2020 +0300
Matek OSD support
I changed the HOME waypoint altitude to ground alt in order to avoid a compiler error about not finding waypoints[WP_HOME].a
Matek osd will work now, TEXT artificial horizon is added, additional string format capabilities are given in the osd_put_s() and osd_sprintf() functions , able to inject special osd character code in to a string to be sent to the osd display
and the code now checks the osd chip's busy flag instead of waiting and hoping that the OSD is not busy.
commit 201d5e7793
Author: hendrixgr <hendrixgr@gmail.com>
Date: Tue Oct 13 19:51:15 2020 +0300
Delete Easystar_matek_f405_wing.xml
commit a6730fb148
Author: hendrixgr <hendrixgr@gmail.com>
Date: Tue Oct 13 19:49:50 2020 +0300
Easyglider airframe file corrected.
It had the parachute radio channel in it which doesn't exist but strangely it was compiling fine here until i deleted the aircraft and created a new one.
commit a430091754
Author: hendrixgr <hendrixgr@gmail.com>
Date: Tue Oct 13 18:26:31 2020 +0300
Baro BMP280 files
I can only test the BMP280 in I2C mode so SPI must wait...
commit 2bc25212ac
Author: hendrixgr <hendrixgr@gmail.com>
Date: Tue Oct 13 18:22:47 2020 +0300
Barometer BMP280 files
This time only double precision is available.
commit 03dc09de77
Author: hendrixgr <hendrixgr@gmail.com>
Date: Tue Oct 13 18:18:16 2020 +0300
Matek F405 Wing board header file
The Matek autopilot can measure up to 104A so logically 104 /4096 step of the ADC should give 25,3 ma for every adc count.
Some measurements are needed.
commit c77c2365da
Author: hendrixgr <hendrixgr@gmail.com>
Date: Tue Oct 13 18:04:49 2020 +0300
Barometer BMP280 module XML file.
commit 2e3721bbad
Author: hendrixgr <hendrixgr@gmail.com>
Date: Tue Oct 13 16:21:06 2020 +0300
Improved OSD and Matek type OSD support.
Matek osd will work now, TEXT artificial horizon is added, additional string format capabilities are given in the osd_put_s() and osd_sprintf() functions , able to inject special osd character code in to a string to be sent to the osd display
and the code now checks the osd chip's busy flag instead of waiting and hoping that the OSD is not busy.
commit f67172d1a6
Author: hendrixgr <hendrixgr@gmail.com>
Date: Tue Oct 13 15:48:54 2020 +0300
Radio file for OPENTX radios and 8 channels PPM signal
commit 294341357e
Author: hendrixgr <hendrixgr@gmail.com>
Date: Tue Oct 13 15:45:37 2020 +0300
Telemetry file for use with the orangerx loaded with the OPENLRSNG firmware
Telemetry file for use with the orangerx 433 Mhz receiver or any other OPENLRSNG capable receiver.
The OPENLRSNG receivers have a transparent serial datalink built in to the radio control signal thus eliminating the need for a separate modem.
commit e8905c8158
Author: hendrixgr <hendrixgr@gmail.com>
Date: Tue Oct 13 15:38:53 2020 +0300
Easystar glider with the MATEK F405 WING
Airframe file of the Easystar powered glider with the Matek F405 Wing autopilot.
commit de3f5f54b3
Author: hendrixgr <hendrixgr@gmail.com>
Date: Tue Oct 13 12:33:09 2020 +0300
improved osd
Matek osd will work now, TEXT artificial horizon, additional string format capabilities, able to inject special osd character code in to a string to be sent to the osd display
and the code now checks the osd chip's busy flag instead of waiting.
commit 78ae7cccc3
Author: hendrixgr <hendrixgr@gmail.com>
Date: Tue Oct 13 12:27:56 2020 +0300
matek f405 wing autopilot makefile
* GCC wrap example
* Rename pca95x4 to pca95xx
* Fix softi2c_spin hanging
Suspected cause is sys_time_usleep hanging when called from SPI,
because interrupts are disabled. But not confirmed. Adding LED
code fixes the hang, so cannot test.
Co-authored-by: Tom van Dijk <tomvand@users.noreply.github.com>
* First comit of clean branch
* Added new drone airframe files (xml and model folder) for gazebo
* Renamed sdf file for bebop drone with stereo cams
* Added custom configuration and control panel files
On branch stereoCamerasNewDrone
Changes to be committed:
new file: conf/userconf/tudelft/ralphthesis2020_conf.xml
new file: conf/userconf/tudelft/ralphthesis2020_control_panel.xml
* Added new files necessary for a new bebop model with stereo vision
On branch stereoCamerasNewDrone
Changes to be committed:
new file: conf/airframes/tudelft/bebop_ralphthesis2020_stereo.xml
new file: conf/flight_plans/tudelft/ralphthesis2020_stereo_cyberzoo.xml
modified: conf/simulator/gazebo/airframes/bebop_w_stereo_cams.xml
modified: conf/simulator/gazebo/models/bebop_w_stereo_cams/bebop_w_stereo_cams.sdf
modified: conf/simulator/gazebo/models/bebop_w_stereo_cams/model.config
modified: conf/userconf/tudelft/ralphthesis2020_conf.xml
* Replaced cameras on bebop (front + down) with a stereo setup
On branch stereoCamerasNewDrone
Changes to be committed:
modified: conf/simulator/gazebo/models/bebop_w_stereo_cams/bebop_w_stereo_cams.sdf
* Solved low resolution in left camera
On branch stereoCamerasNewDrone
Changes to be committed:
modified: conf/simulator/gazebo/models/bebop_w_stereo_cams/bebop_w_stereo_cams.sdf
* Created new module "wedgebu" and added it to the airframe "bebop_ralphthesis2020_stereo.xml"
Also, used "make" to create tool for creating modules
On branch wedgeBug
Your branch is up to date with 'origin/wedgeBug'.
Changes to be committed:
modified: conf/airframes/tudelft/bebop_ralphthesis2020_stereo.xml
new file: conf/modules/wedgebug.xml
modified: conf/userconf/tudelft/ralphthesis2020_conf.xml
new file: sw/airborne/modules/wedgebug/wedgebug.c
new file: sw/airborne/modules/wedgebug/wedgebug.h
new file: sw/tools/create_module/create_module_ui.py
new file: sw/tools/create_module/datalink_ui.py
new file: sw/tools/create_module/event_ui.py
modified: sw/tools/create_module/files_create.py
new file: sw/tools/create_module/init_ui.py
new file: sw/tools/create_module/periodic_ui.py
* Added functions to copy images from left and right camera to global variables
On branch wedgeBug
Your branch is ahead of 'origin/wedgeBug' by 1 commit.
Changes to be committed:
modified: conf/airframes/tudelft/bebop_ralphthesis2020_stereo.xml
modified: conf/modules/wedgebug.xml
modified: conf/simulator/gazebo/models/bebop_w_stereo_cams/bebop_w_stereo_cams.sdf
modified: sw/airborne/modules/wedgebug/wedgebug.c
* Added function to compare individual pixels of images types (image_t)
* Tried to figure out why the C++ Mat object of the left gray pixels looks different to the left image
* A rough implementation and proof of the copy function (note: copy buf entries by incrementing pointer)
Changes to be committed:
deleted: Color_Image.jpg
modified: conf/airframes/tudelft/bebop_ralphthesis2020_stereo.xml
deleted: merged_stereo_image.jpg
modified: sw/airborne/modules/wedgebug/wedgebug.c
modified: sw/airborne/modules/wedgebug/wedgebug.h
modified: sw/airborne/modules/wedgebug/wedgebug_opencv.cpp
modified: sw/airborne/modules/wedgebug/wedgebug_opencv.h
* Finalized 1) image merging function for YY image and 2) function for saving gray images using openCV
* Created C++ function to create and return disparity image. Also changed gazebo world.
* 1) Added FPS like controlls for drone, using Xbox controller. 2) Added cropping image functionality of block matching function.
* SBM can take 16 bit images now, save function uses an image_t struct and a new type called "IMAGE_OPENCV_DISP" was added, specifically for OpenCV disparity images.
* Added openCV dependent openin and closing functions
* Added 1) openCV dependent dilation and sobel operation functions, 2) 3d point structure to image.h 3) Loop in wedebug.c for findin edge point closest to target.
* Added functions to convert world coordinates to camera coordinates (turned out to be a wrong implementation. Next commit will be the correct implementation)
* Added functions to convert world to agent to camera coordinates (and vice versa)
* Cleaned up coordinate conversion functions
* 1. Created new world for drone testing, 2. Created new waytpoints for drone testing, 4. Created state machine template in module 5. Debugged the "SBM_OCV" function 6. Filled in the state for "Initial position", "Move to start", "Start position" and "Goal reached" 7. Started to fill in the state "Move to goal" 8. Created function to get median distance of object in front ("median_disparity_to_point") 9. Created function to determine angle between drone and goal point ("heading_towards_waypoin") 10. Cleaned up code, removed non-essential variables (especially images) and added new variables.
* Converted edge detection algorithm into a function and cleaned code more. Also created more global variables.
* Added draft approach for "EDGE_DETECTION"
* Quick save
* First draft of code. The robot can evade a board in its way and reach the goal. Also increase periodic loop speed to 15 hz to counter the fast turning of the drone
* Included code for measuring metrics and displaying them. Also, cleaned the code some more.
* Cleaned code, added comments to describe code and variables and got rid of bug in function calculating heading direction.
* Removed bug in POSITION_EDGE state, where a new holding point was not set, after an obstacle was encountered. Also added various shapes (with birck texture) for testing.
* Added more shapes for experiment and added settings to change in GCS
* Changed camera settings to mimic those of Mathies et al. 2014. The drone can now avoid the standard metal board and the brick wall (type 2 2 x 2 meters)!
* Implemented state machine for control modes.
* Simplified code
* Cleaned code
* Added a flag to detect changes in the navigation mode used
* Merged background processes under the condition that the state machine is running in certain state
* Debugged time measurement of total time (metric 1)
* Cleaned code
* MAde debug options state number independent (i.e. they have been renamed to include the name of the state and not the number)
* Remove states: POSITION_INITIAL, MOVE_TO_START and POSITION_START from finite state machine. Also all associate variables have been removed.
* Changed "NUMER_OF_STATES" to "NUMBER_OF_STATES". Also increased "max_obstacle_confidence" from 3 to 5, to avoid fake obstacle detection.
* Added metric measurement when in direct flight.
* Added aluminum bar as object for goal marker and creted button for drone to move to start position and another button for drone to start the experiment. In the current example the drone goes around a 2x2 meter wall.
* Added saving flag and functions for report (in c and cpp file)
* Added median kernel dimensions as options in settings
* Made unused waypoints invisible in the GCS
* Added two more objects for investigation (with a larger hole for the drone to fly through). Also fine tuned the code.
* Commit before change of depth image.
* Added 16 bit background processes for greater precision. Also change some funciton in C++ file to better handle 16bit images
* Using depht works, but its not fine tuned and code is messy.
* Ibligatory commit so that I can checkout a different branch.
* Added depth image on which edge detection is now based on (used to be based on disparity). It works relatively ok with all shapes investigated.
* A save after the experiments for the first repor thave been finalized.
* After demonstration
* Added code to toggle between p2DWedgeBug and p3DWedgeBug.
* Removed original files that were created during the previous merge process.
* Added background processes that works with a 16 bit disparity image (i.e. more precise distance measurement)
* Made finite state machine more readable. Also refined find_best_edge coordinates2 function. Additionally, added function to got from image place coordinates to camera coordinate using depth as input. Lastly, depth is now measured in cm when considerring the thresholds.
* Successfully integrated edge search over depth image instead of disparity image (tested in direct control mode only). Next step is to implement this for the guided mode.
* Addressed bug: The baseline used by the drone model was not the same as in the c file. This has been changed such that the baseline in the drone model now resembles the one in the c file.
By addressing this bug of the Bug algorithm the drone can now judge distances accurately. This in turn results in the drone being able to accurately avoid the wall (2mxm) obstacle.
* Changed flight plan to start experiment atuomatically.
* Just a checkpoint
* Added tree models.
* Removed non used objects from world file.
* Reverted back to opencv_bebop
* Reverted back to original files for push to master
* Added new shapes for experimentation
* Deleted blacklisted
* Cleaned code before push
* Added missing varibales and added declarations.
* Run style bash script and renamed image enum name (IMAGE_INT16)
* Corrected typos and delted unused control panel config file.
* [generator] set prescaler at run/compile time for modules
* [generator] fix freq for periodic and cleaning
* [datalink] fix freq in datalink modules extra_dl and mavlink
* [ocaml] massive update of the build process
convert individual code generator to a single process, parsing everything once and calling the required generators
- remove all subsystems makefiles
- fix module name
- example of radio file without ctl attribute
* [build] start with flight plan to make semaphore happy
* [ocaml] move the buffer outside the lazy block
for some reason, it seems to make problems with compilation server
Semaphore
it really makes no sense, but nevermind...
* [driver] factorize some vl53l1x function and use event loop
- the reading of data is still not blocking, but using the
event loop to perform all reading transactions in a row instead of
splitting them in several periodic calls
- move boot and reading sequence to the peripheral driver
- add an auto address increment option to support several sensors
[vl53l1] change boot return status to void
* [module] support for the multi-ranger deck for crazyflie
- add driver of the pca95x4 I/O expander
- read and publish data of the 5 vl53l1x sensor of the deck
* [conf] update config of crazyflie
- update example in Enac folder
- allow multi-ranger deck with forcefield module
- use same IMU defaults than original crazyflie settings
* [bug] syslink send_message buffer was 2 bytes too short
* [sonar] poll new data at 50 Hz
* simulation for bebop without act feedback
* Remove use of variable length arrays in WLS CA
Instead use defines to fix the length of arrays at compile time
* Use module conf to set control allocation size
By defining the control allocation problem size in the makefile section
of the module xml, there is no need to introduce a dependency on the
generated airframe file in the wls_alloc code
* Fix bebop simulation problem
Somehow the small inertia caused the drone to start upside down, maybe
some kind of overflow somewhere? In any case, this small change was
enough to do a simulation without issues...
The development of jsbsim is now switch to git with an new active team.
The stable release v1.0.0rc1 has several fix and improvements, but
requires some modification from us to properly handle the type of file
path passed as arguments to load models.
Also, the default path when pkg-config is not found was /opt, which was
used in very early versions of NPS. The default is now /usr so that it
is compatible with a standard install of the new lib version.