Replace VehicleTrailer/DiffSteerTrailer with an ArticulatedVehicle (or delete them)
Los mantenedores suelen responder en 1 día
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 5/5
- Tiempo estimado
- Más de una semana
- Aptitud para principiantes
- 22/100
Línea de trabajo
The classes live in src/roboticstoolbox/mobile/Vehicle.py: Trailer, DiffSteerTrailer, VehicleTrailer, and the VehicleBase they should derive from. Start by reading VehicleBase.__init__ next to VehicleTrailer.__init__ and step to see which base attributes are missing, then search the repo for imports of these classes. Done means a recorded decision (ArticulatedVehicle or deletion), with the remaining code covered by tests and docstrings.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Trailer, DiffSteerTrailer and VehicleTrailer in src/roboticstoolbox/mobile/Vehicle.py were a late addition, are not used in the book, and are in poor shape. They are not exported from roboticstoolbox, have no tests and are not in the docs, so only code that imports them from roboticstoolbox.mobile.Vehicle can be affected.
Found during the type-hinting pass. They were annotated only to the extent needed for mypy to pass; their defects were recorded, not fixed.
Proposal
Investigate replacing VehicleTrailer and DiffSteerTrailer with a single ArticulatedVehicle class that is a proper VehicleBase subclass and composes a Trailer. Drop DiffSteerTrailer. This is a design question, not a patch.
Known defects (headstart)
-
VehicleTrailerdoes not callsuper().__init__, so mostVehicleBaseattributes (_V,_control, ...) do not exist on it;_x0is not converted to an array;stepreturnsNonewhere the base returns odometry (hence# type: ignore[override]). Needs a decision: composition, or a proper subclass. -
VehicleTrailer.plotis a copy ofDiffSteerTrailer.plotand usesself._L1,self._L2,self._animation_trailer, none of which exist onVehicleTrailer. Dead code. -
DiffSteerTrailer.derivhas a leftoverprint(X[2], eta, etad)and a deadif X[2] > 0.01: pass;DiffSteerTrailer.__init__callsx0.copy(), which only works because the default is a list. -
Trailer._animationwas only set when an animation or polygon was given, butVehicleTrailer.initreads it (initialised toNonein the typing PR; it crashed before). -
DiffSteerTrailer.initcalledself._animation_trailer.addeven whentrailer=None(now guarded). -
Trailer.__init__has placeholder docstring text (_summary_,_description_). -
The
runblockexample in theVehicleTrailer.stepdocstring usesVehicleTrailerandTrailerwithout importing them (aNameErrorwhen the docs are built)
Acceptance
- Decide:
ArticulatedVehicleor delete. - Whatever remains has tests, docs and a docstring, and
VehicleBaseattributes are all initialised.
- Lenguaje dominante
- C++
- Estrellas
- 3.5k
- Forks
- 639
- Merge medio
- 1 d 16 h
- PR fusionados (30 d)
- 88
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Tiene una plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de petercorke/robotics-toolbox-python
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
petercorke/robotics-toolbox-python#709 ·
Los mantenedores suelen responder en 1 día
-
tech-debt Tests needed
Dificultad 4/5 3-5 días Aptitud para principiantes 25/100
petercorke/robotics-toolbox-python#804 ·
Los mantenedores suelen responder en 1 día
-
tech-debt
Dificultad 5/5 Más de una semana Aptitud para principiantes 10/100
petercorke/robotics-toolbox-python#803 ·
Los mantenedores suelen responder en 1 día
-
tech-debt
Dificultad 2/5 Menos de una hora Aptitud para principiantes 25/100
petercorke/robotics-toolbox-python#789 ·
Los mantenedores suelen responder en 1 día
-
CI: a PR influx is serialised by 'require up to date' plus a 12 minute CI; consider a merge queueAbiertotech-debt
Dificultad 5/5 Más de una semana Aptitud para principiantes 15/100
petercorke/robotics-toolbox-python#758 ·
Los mantenedores suelen responder en 1 día
Todos los issues de petercorke/robotics-toolbox-python
Issues similares
-
Mac mini M6 (16 GB): Q2_0 streaming works - measured 11.7->27.2 tok/s + arena fix for sub-32 GB MacsAbierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
Los mantenedores suelen responder en 1 día
-
champion good first issue remake source/qq
Dificultad 2/5 1-3 horas Aptitud para principiantes 65/100
metasequoiaime/msime-windows#1025 ·
Los mantenedores suelen responder en 1 día
-
backlog bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
EchoTools/nevr-runtime#653 ·
Los mantenedores suelen responder en 1 día
-
`--fail-require-skip` never fires: run_tests.py searches stdout, but the unittest binary writes the skip summary to stderrPosiblemente ocupada Un pull request vinculado a esta issue está abierto o ya se fusionó. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
InfiniTimeOrg/InfiniTime#2492 ·