Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

135 2023 post cup cleanup #136

Merged
merged 40 commits into from
Oct 1, 2023
Merged

135 2023 post cup cleanup #136

merged 40 commits into from
Oct 1, 2023

Conversation

gdoffe
Copy link
Contributor

@gdoffe gdoffe commented Sep 29, 2023

Add following improvements:

  • rework motor_driver
  • make pegasus and cup2023 applications working with native architecture
  • bump RIOT version to 2023.07
  • improve RIOT patches
  • various small fixes

@gdoffe gdoffe linked an issue Sep 29, 2023 that may be closed by this pull request
@gdoffe gdoffe self-assigned this Sep 29, 2023
@gdoffe gdoffe force-pushed the 135-2023-post-cup-cleanup branch 7 times, most recently from ee3453d to 3cd4f5f Compare September 30, 2023 00:23
The speed has to be filtered in controller chain, not by the path pose
itself.
So the path set a maximum wanted speed, bit should not care if this
speed is greater than the maximum physical speed of the robot.

Signed-off-by: Gilles DOFFE <g.doffe@gmail.com>
Patches have to be applied serially.

Signed-off-by: Gilles DOFFE <g.doffe@gmail.com>
RIOT patches are applied only on global make. Thus after a distclean, a
"make -C <my_app_dir>" does not apply the patches.
Fix this by verifying and if necessary applying patches for each
application.

Signed-off-by: Gilles DOFFE <g.doffe@gmail.com>
If a user builds all applications and examples with default target using
'make -j', patches are applied in parallel because all
applications/examples are built in parallel.
This leads to patches application failures.

Signed-off-by: Gilles DOFFE <g.doffe@gmail.com>
As it is not used anymore, remove this board.

Signed-off-by: Gilles DOFFE <g.doffe@gmail.com>
Actuators are external devices and are not board related.

Signed-off-by: Gilles DOFFE <g.doffe@gmail.com>
These ports have same name than STM32 ones for emulation.

Signed-off-by: Gilles DOFFE <g.doffe@gmail.com>
Signed-off-by: Gilles DOFFE <g.doffe@gmail.com>
Signed-off-by: Gilles DOFFE <g.doffe@gmail.com>
Starter is now handled by the Raspberry Pi. Remove it.

Signed-off-by: Gilles DOFFE <g.doffe@gmail.com>
As GPIO are mocked for native architecture, same pinout can be used.

Signed-off-by: Gilles DOFFE <g.doffe@gmail.com>
Signed-off-by: Gilles DOFFE <g.doffe@gmail.com>
Mainly used to add simulated I2C configuration.

Signed-off-by: Gilles DOFFE <g.doffe@gmail.com>
This driver is deprecated and needs to setup motor drivers as internal
devices.

This serie of patches rework that driver to make compliant with RIOT
external drivers development guide[1].

[1] https://doc.riot-os.org/driver-guide.html

Signed-off-by: Gilles DOFFE <g.doffe@gmail.com>
Signed-off-by: Gilles DOFFE <g.doffe@gmail.com>
Signed-off-by: Gilles DOFFE <g.doffe@gmail.com>
Signed-off-by: Gilles DOFFE <g.doffe@gmail.com>
The cogip-board board does not exist anymore, use cogip-board-ng.

Signed-off-by: Gilles DOFFE <g.doffe@gmail.com>
In new RIOT version (2023.07), vfs_umount has a new prototype with a
boolean to force or not umount.

Signed-off-by: Gilles DOFFE <g.doffe@gmail.com>
RIOT provides headers for configuring I2C with predefined
configurations.

Signed-off-by: Gilles DOFFE <g.doffe@gmail.com>
Use a speed ratio (percentage of maximum speed) instead of speed enum
(LOW, NORMAL, MAX).
This allows a more fine grained speed setup and remove the include of
platform motion control header inside the lib.

Signed-off-by: Gilles DOFFE <g.doffe@gmail.com>
The path is now managed on Raspberry Pi. This is dead code.

Signed-off-by: Gilles DOFFE <g.doffe@gmail.com>
The app_test application was used for simulation because cup application
was not buildable with native arhcitecture.
As it is now solved, remove this app.

Signed-off-by: Gilles DOFFE <g.doffe@gmail.com>
The pf_test platform was used for simulation because pegasus platform
was not buildable with native arhcitecture.
As it is now solved, remove this platform.

Signed-off-by: Gilles DOFFE <g.doffe@gmail.com>
This module is legacy and no more used in favor of remote menu on
Raspberry Pi.

Signed-off-by: Gilles DOFFE <g.doffe@gmail.com>
This fixes following errors using native architecture:
  RIOT/drivers/pca9685/pca9685.c:42:15: error: format ‘%p’ expects
  argument of type ‘void *’, but argument 5 has type ‘const
  pca9685_params_t *’ [-Werror=format=]

Signed-off-by: Gilles DOFFE <g.doffe@gmail.com>
If the gpio is initialized as an input or interruptable pin, the
gpio_mock driver returns -1 leading to failed initialization.
However that is not because nothing can change the GPIO state that it
has to be an error.
Return 0 in all cases.

Signed-off-by: Gilles DOFFE <g.doffe@gmail.com>
If gpio_mock is used, GPIO_PIN is not defined for native architecture
and defaults to macro from periph/gpio.h.
Thus in the default GPIO_PIN macro, port is not considered and thus some
GPIOs from different ports could overlap.
For example on a switch/case test on a given pin, GPIO_PIN could return
twice same value for two different pins, which leads to build error:
 * GPIO_PIN(0,3) => 3
 * GPIO_PIN(1,3) => 3
Enable GPIO_PIN native definition for bot gpio_linux and gpio_mock
drivers.

Signed-off-by: Gilles DOFFE <g.doffe@gmail.com>
The pcf857x_gpio_write() is also returning void as pcf857x_gpio_*
functions.

This fixes following errors using native architecture:
RIOT/drivers/pcf857x/pcf857x.c:319:12: error: ISO C forbids ‘return’
with expression, in function returning void [-Werror=pedantic]
  319 |     return pcf857x_gpio_write(dev, pin, 0);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Signed-off-by: Gilles DOFFE <g.doffe@gmail.com>
In last RIOT versions, 2023.07 at the time of this commit, shell
commands modules have been renamed.

Signed-off-by: Gilles DOFFE <g.doffe@gmail.com>
Signed-off-by: Gilles DOFFE <g.doffe@gmail.com>
This callback is used to simulate coding wheels behavior, setting QDEC
register value to something theorically close to speed order.

Signed-off-by: Gilles DOFFE <g.doffe@gmail.com>
As QDEC callback is now handled in params, this code is not used
anymore.

Signed-off-by: Gilles DOFFE <g.doffe@gmail.com>
QuadPID controller cannot handle linear speed not zero as the robot has
to rotate on itself.

Signed-off-by: Gilles DOFFE <g.doffe@gmail.com>
Empiric testing shows that maximum angular speed is not high enough. 2
rotations per second, so 720 degrees per second seems fair enough.

Signed-off-by: Gilles DOFFE <g.doffe@gmail.com>
As QDEC values are simulated and set to theorical values, it overrides
speed PIDs control.
Thus set them to 0.

Signed-off-by: Gilles DOFFE <g.doffe@gmail.com>
Signed-off-by: Gilles DOFFE <g.doffe@gmail.com>
Signed-off-by: Gilles DOFFE <g.doffe@gmail.com>
As RIOT patches are now applied with a separate target, apply them on
CI.

Signed-off-by: Gilles DOFFE <g.doffe@gmail.com>
Signed-off-by: Gilles DOFFE <g.doffe@gmail.com>
@ecourtois ecourtois merged commit 65d6dec into master Oct 1, 2023
1 check passed
@ecourtois ecourtois deleted the 135-2023-post-cup-cleanup branch October 1, 2023 16:51
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2023 post cup cleanup
2 participants