personalrobotics / benchmarks Goto Github PK
View Code? Open in Web Editor NEWBenchmarks to measure OpenRAVE's performance.
Benchmarks to measure OpenRAVE's performance.
Currently, for herb benchmarks we load herb via herbpy.initialize
. Remove this once issue #243 in prpy is resolved.
The BenchmarkCollisionResult
class that is intended, will need to also save the env
file that the planning call is made in so that the collision checks can be done for that environment. I want to keep the last block of outfile
dumping to be common, rather than two separate blocks depending on whether collision checks are to be logged or planning times. It is far more wasteful to save the env
to a .yaml
file than a .json
file.
@gilwoolee can we change the if outfile is not None:
block in execute_benchmark
to do a JSON
dump rather than a YAML
dump?
@cdellin requests:
When I try to run execute_benchmark
on a log generated from a WAM testing environment (here - https://github.com/personalrobotics/benchmarks/tree/new_planning_benchmarks_example/prpy_benchmarks/example)
the following line (https://github.com/personalrobotics/benchmarks/blob/feature/new_planning_benchmarks/prpy_benchmarks/src/prpy_benchmarks/benchmark_utils.py#L52)
gives an error:
RuntimeError: That planner does not support planning method PlanToConfiguration!
when either CBiRRT or Snap is used
I'm seeing a bug with the ODE collision checker in OpenRAVE that occurs very rarely (~0.0001% of configurations) where ODE reports a HERB configuration as invalid (in collision) when it is actually valid (free). I've found four occurrences of this so far (I found this while comparing the performance of ODE and FCL for generating self-checked roadmaps). I have not found an examples of the converse problem (ODE reporting no collision even if one exists). One example is this configuration:
The right arm configuration which provokes the bug is: [ 4.2735537841327362, 0.4740221519094111, -2.4119405981641928, 1.9935127248613886, -1.7596538407270064, -0.14357628170248468, -1.4142931202799787 ]
.
In this case, the spurious collision is between the /right/wam3
link (upper arm) and the /right/wam5
link (small piece near the wrist); these links are actually ~25cm away from each other at their closest point. The bug is very sensitive; e.g. changing the elbow joint in the 14th digit in either direction changes the result so that it is correct. PQP and FCL both do not suffer from this bug.
Here's a minimal test case: https://gist.github.com/cdellin/b743425f5dd96da92b0c
I don't have the time to investigate this further. Here are some other notes:
/right/wam3
and /right/wam5
are disabled.robot.CheckSelfCollision
or env.CheckCollision(link1,link2)
.qtcoin
viewer after the spurious check and clicking once on the robot to perform a collision check reproduces the bug (i.e. the robot is bounded by an orange box, and a verbose message is printed reporting the /right/wam3
-/right/wam5
collision. However, clicking a second time produces the correct result. I'm not sure what clicking does behind the scenes (recomputes kinematics?) but this might be a place to look.I'm adding this here because I don't know where else to add it. If we find that it's a bug in ODE or OpenRAVE, we should open issues with those projects. I suppose it's also possible that the HERB description (mesh files?) has a bug somewhere.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.