AMiRo-Apps issueshttps://gitlab.ub.uni-bielefeld.de/AMiRo/AMiRo-Apps/-/issues2022-03-17T10:26:53+01:00https://gitlab.ub.uni-bielefeld.de/AMiRo/AMiRo-Apps/-/issues/18'AMiRo-Charger' enhancements2022-03-17T10:26:53+01:00Thomas Schöpping'AMiRo-Charger' enhancementsThere are several open issues with the [AMiRo-Charger](apps/AMiRo-Charger) application:
- [ ] Take fule gauges into account.<br>
Charging should only be enabled if batteries are actually within a defined range (e.g. 50% - 80% char...There are several open issues with the [AMiRo-Charger](apps/AMiRo-Charger) application:
- [ ] Take fule gauges into account.<br>
Charging should only be enabled if batteries are actually within a defined range (e.g. 50% - 80% charge).
- [ ] Introduce service to allow manual charging.<br>
A service should be provided to set charging manually.
The service should still check current system parameters and respond accordingly:
- system voltage too low for charging -> error
- battery level out of recommended range -> warning
- [ ] Decouple LED control to individual application.<br>
Currently, the status LED is toggled by the application, which is undesired behaviour.
Preferably, an additional application will listen to the messages published by the charge app and set the LED accordingly.
- [ ] Introduce DiWheelDrive logic.<br>
Introduce logic specifically for the DiWheelDrive modules:
- check pin voltage (periodically and/or on demand)
- enable voltage from pins to system voltage (on demand only)2022-06-30https://gitlab.ub.uni-bielefeld.de/AMiRo/AMiRo-Apps/-/issues/39Demo: AssemblyLine2022-11-09T10:43:04+01:00Svenja KennewegDemo: AssemblyLineDuring the Autonomous Systems engineering project the students developed an exemplary "assembly-line". For this the AMiRo follows - given a JSON file - the attached track.
One student group also developed an graphical user interface whi...During the Autonomous Systems engineering project the students developed an exemplary "assembly-line". For this the AMiRo follows - given a JSON file - the attached track.
One student group also developed an graphical user interface which could be used as a demo. While testing their implementation following things were noticed that must be improved for a stable and valid demo:
- [ ] Unstable Line Following. Resetting the overall velocity from 0.15 to 0.1 seems as a valid solution.
- [ ] Shape detection of the objects only works for the default velocity of 0.15
- [ ] Revision of the GUI (no pixelated graphs, dynamic adjustment of sizes)
- [ ] No connection after a long standing of the AMiRo in the IDLE state
- [ ] GUI sometimes lags behind the real positions
After fixing the above points following todos are still pending:
- [ ] Demo should run on all AMiRos (Default AMiRo is 68)
- [ ] Write a demo readme here: https://gitlab.ub.uni-bielefeld.de/amiro-internal/demos/management
- [ ] Probably a docker image for the Demo is useful
- [ ] Python package of the GUI
[Automatica5_merged.pdf](/uploads/e4e4c4bf15109621c2a3b1656b9d4ba8/Automatica5_merged.pdf)Kaja HubmannKaja Hubmannhttps://gitlab.ub.uni-bielefeld.de/AMiRo/AMiRo-Apps/-/issues/23(De)serialization of data2022-03-17T10:29:20+01:00Svenja Kenneweg(De)serialization of dataAn use case is the CANBridge where the data should be serialized before sending them and deserialized when receiving.
For this, an appropriate library like [nanopb](https://jpa.kapsi.fi/nanopb/) could be used.An use case is the CANBridge where the data should be serialized before sending them and deserialized when receiving.
For this, an appropriate library like [nanopb](https://jpa.kapsi.fi/nanopb/) could be used.https://gitlab.ub.uni-bielefeld.de/AMiRo/AMiRo-Apps/-/issues/4DifferentialMotorControl auto-calibration2022-11-15T12:23:50+01:00Thomas SchöppingDifferentialMotorControl auto-calibrationThe DifferentialMotorControl application (DMC) should provide a feature to automatically calibrate the several PID parameters.
An according interface (service and shell command) is already in place.
The automatic calibration procedure i...The DifferentialMotorControl application (DMC) should provide a feature to automatically calibrate the several PID parameters.
An according interface (service and shell command) is already in place.
The automatic calibration procedure is planned to work like this;
1. Preparations
- Simplify all controllers to P-controllers by setting all other gains to 0.
- Set the P-gains for the two motor controllers to low values.
- Deactivate the steering controller by setting even the P-gain to 0.
- Ignore any incoming target velocity requrests during calibration.
2. Calibration of the motor controllers
1. Iteratively increase the P-gains of the two motor controllers until they oscillate but try to make the robot move straight.
2. Repeat the following sequence
1. move forwards
3. move backwards
4. stop
3. As soon as those critical gains are found, adapt all other gains using [Ziegler-Nichols method](https://en.wikipedia.org/wiki/Ziegler%E2%80%93Nichols_method).
3. Calibration of the steering controller
1. Set the P-gain of the steering controller to a low value.
2. Iteratively increase the P-gain of the steering controller until it oscillates.
3 Repeat the following sequence
1. turn left
3. turn right
4. stop
3. As soon as the critical gain is found, adapt all other gains using [Ziegler-Nichols method](https://en.wikipedia.org/wiki/Ziegler%E2%80%93Nichols_method).Lauritz KeysbergLauritz Keysberghttps://gitlab.ub.uni-bielefeld.de/AMiRo/AMiRo-Apps/-/issues/19EEPROM application2022-03-17T10:25:37+01:00Thomas SchöppingEEPROM applicationIntroduce an application for EEPROM access on the AMiRo modules.
Preferably, the contents should be represented by a custom C struct for simple access.
In order to support versioning/compatibility checks, some identifier should be stor...Introduce an application for EEPROM access on the AMiRo modules.
Preferably, the contents should be represented by a custom C struct for simple access.
In order to support versioning/compatibility checks, some identifier should be stored in the EEPROM.
This could be accomplished by a hash of the struct type (not its contents!).2022-03-31https://gitlab.ub.uni-bielefeld.de/AMiRo/AMiRo-Apps/-/issues/3`HelloWorld` enhancements2022-03-17T10:29:46+01:00Thomas Schöpping`HelloWorld` enhancementsThe `HelloWorld` application currently does not set any timing constraints.
The application as well as the configuration code need to be expanded so that the user can optionally set those parameters via the provided CLI.The `HelloWorld` application currently does not set any timing constraints.
The application as well as the configuration code need to be expanded so that the user can optionally set those parameters via the provided CLI.https://gitlab.ub.uni-bielefeld.de/AMiRo/AMiRo-Apps/-/issues/2introspection application2022-03-17T10:29:49+01:00Thomas Schöppingintrospection applicationDesign and implement an application that can be used for introspection of [µRT](https://gitlab.ub.uni-bielefeld.de/AMiRo/uRtWare).
The too shall be accessible via the [AMiRo-OS](https://gitlab.ub.uni-bielefeld.de/AMiRo/AMiRo-OS) shell.
T...Design and implement an application that can be used for introspection of [µRT](https://gitlab.ub.uni-bielefeld.de/AMiRo/uRtWare).
The too shall be accessible via the [AMiRo-OS](https://gitlab.ub.uni-bielefeld.de/AMiRo/AMiRo-OS) shell.
Typical capabilities of the too shall be (among others):
- list all topics
- read information about topics
- read information about messages and print payload
- listen to one or multiple topics and inform the user
- list all available services
- etc.
In order to realize an efficient and user friendly introspection, further enhancements of [µRT](https://gitlab.ub.uni-bielefeld.de/AMiRo/uRtWare) and [AMiRo-OS](https://gitlab.ub.uni-bielefeld.de/AMiRo/AMiRo-OS) may be necessary as well.https://gitlab.ub.uni-bielefeld.de/AMiRo/AMiRo-Apps/-/issues/15obstacle avoidance applications2022-10-21T11:15:12+02:00Thomas Schöppingobstacle avoidance applicationsImplement a set of applications to avoid obstacles and facilitate wall following.
In principle the independent applications should be combined in a configuration so that
- The robot moves straight forward at a specified speed.
- As soon...Implement a set of applications to avoid obstacles and facilitate wall following.
In principle the independent applications should be combined in a configuration so that
- The robot moves straight forward at a specified speed.
- As soon as an obstacle is detected in front, the robot stops.
- If an obstacle is detected the robot can follow its shape.2022-05-15https://gitlab.ub.uni-bielefeld.de/AMiRo/AMiRo-Apps/-/issues/17StreetSign demo FSM2022-03-17T10:26:58+01:00Thomas SchöppingStreetSign demo FSMImplement an application to interface the high-level logic of the street sign detection demo.
This application should also implement an FSM according to the expectations of the high-level logig.Implement an application to interface the high-level logic of the street sign detection demo.
This application should also implement an FSM according to the expectations of the high-level logig.2022-06-30