CMU-Robotics-Club / RoboBuggy2

A complete re-write of the old RoboBuggy.
GNU General Public License v3.0
2 stars 0 forks source link

Transfered the trajectory passing in autonsystem to be handled by ros messages #100

Closed mehulgoel873 closed 1 week ago

mehulgoel873 commented 1 week ago

What type of PR is this? (check all applicable)

Description

Changes -- I created a pack and unpack function within the trajectory class that takes the positions and packs it into a ros msg that can be sent over ros topics.

The reasoning behind this is that this better separates the controller from the path planner to better reflect our software architecture and will make more sense overall.

The benefits behind this change is that the overall repository now has a chance for becoming cleaner and overall more likely to work.

Related Tickets & Documents

QA Instructions, Screenshots, Recordings

Please replace this line with instructions on how to test your changes, a note on the devices and browsers this has been tested on, as well as any relevant images for UI changes.

Added/updated tests?

We encourage you to keep the code coverage percentage at 80% and above.

I ran the single and double version of the buggy sim, and the code seemed to be working.

[optional] Are there any post deployment tasks we need to perform?

[optional] What gif best describes this PR or how it makes you feel?

alt_text

mehulgoel873 commented 1 week ago

Is this the final version of the trajectory setup? It seems like the files are still as coupled as before, how does prompting the trajectory class to publish a new trajectory each tick different from just having it return the trajectory directly?

This is correct, I haven't decoupled the files in the autonsystem just yet. This requires recreating how we treat the controllers and path planners, which I wanted to make a separate task due to the behemoth that is. However, since now all the information passed between both the controller and path planner happens only through a ros topic, it should be relatively simple to separate both into different ros nodes.