glpuga / ariac2021ws Goto Github PK
View Code? Open in Web Editor NEWDevelopment workspace with the solution to the ARIAC 2021/2022 Competitions from Team TheItalianJob
Development workspace with the solution to the ARIAC 2021/2022 Competitions from Team TheItalianJob
After rebasing on the latest version of BT.CPP, create a feature branch with both the contents of
To build on top of that, since the mocking feature might come handy.
A few of the exceptions there are probably no needed or indicate actual issues in the code.
Create BehaviorTreeManager class that fully wraps a BT,
Linked to: #65
Add my fork of BehaviorTree.cpp to the external projects as a submodules.
Follow up on #55 . See there for more information.
Create an inheritable BehavorTreeFactoryInterface with a partial BehavorTreeFactory.
After #36 check if tijcore still needs a direct dependency on Eigen. It shouldn't.
The current version of the mocking feature for BT inherits the mocking node from SyncActionNode, which prevents the mock from returning RUNNING because SyncActionNode tests for that value and throws if an attempt is made to return it.
This can be improved by inheriting directly from BaseActionNode instead.
Running roslaunch nist_gear sample_environment
takes several minutes to actually launch the simulation, but eventually succeeds.
This impairs our ability to iterate solutions and code quickly.
At least part of the time seems to be due to gazebo downloading models to .gazebo/models . This however, does not seem to substantially reduce the time it takes to launch the simulation a second time on the same container.
This ticket is about looking for ways to reduce the load time, preferably to tenths of seconds.
There's a test branch testing Industrial CI to this repo.
Requires:
Currently Inductrial CI in the self-hosted runner is configured to use whatever number of cores is available, but that causes peaks of memory use when building the repository.
This ticket is about limiting the number of cores to about half. The build time will not be too affected, since most of the process is executed sequentially anyway.
Following instructions from last year's competition here:
https://github.com/usnistgov/ARIAC/blob/ariac2021/wiki/tutorials/moveit_interface.md#using-rviz
A launch file could be created to use rviz to control the robot arms.
This ticket is about:
Ccache is great, but the first fuill build still takes the full time each time that the docker is started.
This ticket will research mounting the cache on a volume so that it persists across docker launches.
Install catkin-tools to allow building using catkin build
as an alternative to catkin_make
and catkin_make_isolated
.
Remove the logger to a separate package. It should not be part of tij_core.
It was also necessary to set CC and CXX so that catkin_make could find ccache.
ccache
in ubuntu docker image./usr/lib/ccache
to the start of the PATH so that calls to the compiler go through ccache.CC="gcc"
and CXX="g++"
so that catkin_make
go through ccache instead of using absolute paths to the compilers.As great as it is, Industrial CI takes a long time to run, most of which it spends installing the dependencies.
For PRs it would be great to have something faster, like just building the devel docker image and using it to build and run the tests. This would be much faster with my setups, because It will be faster, my self-hosted runner will cache docker image layers and make both building the image and running the tests very fast in the average case.
Configure repository for a proper master/devel/feature branch workflow with rebase merge by default.
Most of the codein tijbt
was moved to a separate repository for reusability within another project.
See https://github.com/glpuga/BehaviorTreeExtras for the new location of the code.
This ticket is about:
Create a docker image to be able to run the simulation consistently using the VORC workspace dockerfiles as starters.
Linked to: #65
devutils is the first package that was created, following a file struture that was not completed later.
Remove or refactor into other folders.
The current subtree mocking approach works, but leaves a lot of boilerplate on the hands of the user to actually set the mocks, since the user needs to demultiplex the calls the SubtreeMock node in the node builder.
See example in tijbt/tests
, in the factory class test, and tests in the behaviortree.cpp fork.
The current approach of creating a builder lambda that multiplexes at instantiation time based on the name of the subtree needs to be revised and/or simplified by providing a ready to user solution for this.
Ever since I used structured bindings in the ManangedLocus interface to return model info, I've regretted it. Most often than not the key
part of the pair is often not used, and causes "variable declared but not used errors".
Update the inter
The current folder structure in tijmath and tijcore is totally meaningless.
This issue will address tijmath and flatten it.
The test measures execution time for the halt() command to take effect, but it seems to be taking longer than expected from time to time. Investigate and fix.
Decuople creating a BT logger from creating the logger, so that loggers can be attached to a tree at some point after creation, making possible injecting them.
#8 changed the commit the ARIAC submodule is pointing to, to address an error in a dependency in the ariac
package in that repo.
This issue should remove that fix and restore the submodule to point to the master branch in the fork, which should in time be synced to the master branch of the official repo.
Tasks:
Idea: An environment variable might work to set for both tests and executable nodes.
Add a Readme.md file with instructions to:
The ARIAC upstream repository seems to have wrong dependency declared, which gets caught by rosdep
.
This issue will fix it until upstream gets fixed.
diff --git a/ariac/package.xml b/ariac/package.xml
index b77e085..0fc99ba 100644
--- a/ariac/package.xml
+++ b/ariac/package.xml
@@ -11,7 +11,7 @@
<exec_depend>nist_gear</exec_depend>
<exec_depend>test_ariac</exec_depend>
<exec_depend>ariac_example</exec_depend>
- <exec_depend>gantry_moveit_config</exec_depend>
+ <exec_depend>gantry2021_moveit_config</exec_depend>
<buildtool_depend>catkin</buildtool_depend>
<export>
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.