mr-fusion-capstone's People
mr-fusion-capstone's Issues
Path planning find_closest_edge_to function finds first edge within threshold, not the closest edge to the robot
Graceful error handling throughout guidance software
Right now, there are many places in the guidance code that may encounter an error and panic. During debugging this is acceptable, but for operation of the robot we would prefer to detect errors and tell the UI and/or exit gracefully and restart rather than just crash.
This is a possibility whenever an option type uses .unwrap()
Automatic coverage reports for C modules
Mocking tcp sockets defined in the rust std library
Currently, our unit tests are mocking TCP connections, but some of these mocks are globally defined. This requries us to either
-
Use syncronization mechanisms in our unit tests to make sure the mocks return codes are not subject to races
-
Run our tests in one thread (which is currently what we are doing)
It would ideal if we could find a mocking library that does not require these mocks to be global or require explict condition compilation within our source code.
More test functionality coverage for path planning unit tests
More test cases than the one "obvious" pass and fail cases.
Some test cases I want at a minimum:
- Not on graph if the point is on campus but outside the path (ex. library parking lot)
- Not on graph if the point is within the graph boundary but not close enough to a path (ex. the middle of the quad)
- Not on graph if the point is very close to any arbitrary segment, but not part of the segment itself (I want at least three of these on different segments of the path)
- Closest edge found if the robot is within the threshold of two different edges, but closer to one of them (ex. a sharp intersection, but still clearly on one edge)
- No path found for an unconnected graph (may have to create unconnected graph file like the triangle example)
- Find a path between some pairs of adjacent vertices
- Find a path between some mildly distant points towards the center of campus
- Find a path between a few pairs of points on opposite sides of campus
When you get to passing the output of closest_edge_to to shortest_path:
- All path cases above but mix starting right at vertex and starting in the middle of an edge, multiple "positive" cases to test for completeness here
- Single-edge paths found from closest edge to each adjacent vertex (so 2 times running shortest_path_found from the same starting point in the middle of an edge)
Checking for NULL on input pointers
Every pass-by-pointer function needs to check if the input pointer is NULL before starting
No "magic number" return codes
Each error or success return code needs to have a defined constant explaining what the value represents, and so that the calling function can reference what error conditions there are
Remove from module header files everything that is used only internally
Header files should only have constants, type definitions, and public functions. Any functions not made available for use by external modules should not be in the header file
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. ๐๐๐
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google โค๏ธ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.