Repository navigation
Plants: the ground is no building contact, and the risk governor under material - #154
Merged
Merged
Conversation
…r material JoltPlant names its ground to pycvc's nav_plant (ground_bodies, transfix/libcvc#1011), so a chassis scraping it is no building contact in nav_stats; it falls back on a pycvc without the argument. material-demo --plant runs libcvc's risk governor on the dynamic and Jolt plants where pycvc has it (sim_world::set_risk_governor, transfix/libcvc#1012; NativeSimWorld.set_risk_governor, PlantNavigator(risk_governor=...)). --no-governor shows the forces alone, --governor puts it on the kinematic bicycle too. The forces slow a vehicle only by what they take from its goal pull's surplus over its top speed, which on a physics plant is all of it: the dynamic RoboRacer crossed the scenario story's water at its top speed, its run the same to the millimetre as without material. Under the governor it stops short of the water (0 hazard steps, 14 before). docs/PLANTS.md explains both, with the material demo's table for every plant with and without the governor.
…lant's fallback CI's catalog pycvc refuses the ground_bodies call and JoltPlant makes the old one, which the spy recorded last. Check the first call names the ground and a second, if any, is the fallback.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
These are the two libcvc questions left open in #145, answered on the GRL-SNAM side.
building_contactscounted the ground.JoltPlantnow names its ground to pycvc'snav_plant(ground_bodies, transfix/libcvc#1011), so a chassis scraping the ground is no longer a building contact in nav_stats. On a pycvc without the argument, it falls back to the old call.On the dynamic plant, material changed nothing in the scenario story. The material's forces slow a vehicle only by what they take from its goal pull's surplus over its top speed.
What slows a vehicle on risky ground is libcvc's risk governor, which a sim_world can now switch on (
sim_world::set_risk_governor, transfix/libcvc#1012):NativeSimWorld.set_risk_governorandPlantNavigator(..., risk_governor=True | {...})turn it on;nav_native.HAS_RISK_GOVERNORprobes for it.material-demo --plantturns it on for the dynamic and Jolt plants where the running pycvc has it.--no-governorshows the forces alone;--governorputs it on the kinematic bicycle too.What it shows
material-demo --plant, RoboRacers, material on. Without material, every run crosses the water.The governor stops both physics vehicles short of the water. With no planner to find the dry gap, that is a dead end. On the kinematic bicycle the governor makes the scenario worse, which is why it stays off there by default. That bicycle is also the Python stories' twin.
Verified
On Windows, against a pycvc built with transfix/libcvc#1011 and #1012:
tests/test_plant_ground_and_governor.py(new, 4 tests):JoltPlantnaming its ground, and the fallback;test_fog_plant.pyandtest_plant_capture.py: 22 passed.material-demo --plant {dynamic,jolt,kinematic} {--governor,--no-governor}.test_labdeselected: it needs pycvc_gl.lab). An earlier run hittest_sim_thread_pause_resumeonce under load; alone it passes 4 of 4.Until a pycvc release carries #1011 and #1012:
HAS_RISK_GOVERNORis False and the demo runs the forces alone, as before;JoltPlantfalls back to the ground-counting call.