Comments (13)
For a free, open source and OS-independent visualization, OpenGL is probably the only decent choice we have right now. Do you have any alternatives?
from behavior-tree.
Indeed! I think it is a good thing to stick with OpenGL. What I really think should be improved is the graphics! So, it is a bit primitive yet... I mean... it is the first version and demands improvements.
Also, I think that the visualization implemented here could be an alternative if there is any unnecessary resource demand by the use of OpenGL.
from behavior-tree.
That is with graphviz, I have the same visualization on my python implementation of BTs (soon available).
That visualization does only outputs a png (or pdf) file. It is not an on screen visualization in which we can visualize which subtree is currently ticked (executed) as in OpenGL.
from behavior-tree.
Yes. That is right! The "static output" by graphviz is the major drawback. But, I must agree that it is simple and clean graph output. We should get a pretty OpenGL representation.
from behavior-tree.
I hacked some slight changes to the visualization on my machine - nothing major, mostly optimizing the spacing of the nodes at each depth layer - which made the visualization more useful to me. I'll post a screenshot later today.
from behavior-tree.
Awesome, keep us posted!
from behavior-tree.
Hey @int3ll3ct... That is awesome! Keep in touch.
from behavior-tree.
Here's my current slightly modded BT viz, note that I'm using the ROS-Behavior-Tree code as a baseline. My goal was to avoid nodes visually overlapping, which was a problem with my tree.
from behavior-tree.
@int3ll3ct Have you tried to use the PgUp/PgDown key to increase/decrease the spacing between nodes?
from behavior-tree.
Yes I did, but the existing viz algorithm overlaid my PanTiltServosOff and MemPriority nodes at any x spacing (the existing algorithm computed their centers to be dead-centered over each other). What I have done is no prettier, but will always maximize the space between nodes at every depth level. I also added a JSON parser for the BT visual editor at Behavior3.com, in order to create trees visually, and read in trees from JSON files, and I added more decorators and a couple of default actions. Out of the 3 BT implementations I was considering using, I felt yours dealt with the node "halt" concept the best, so I switched over to your implementation (I first started first using the almc implementation, which seems to be an ancestor of your implementation.)
from behavior-tree.
@int3ll3ct I agree, sometimes the overlapping can be tricky to solve wil PgUp/Pg Down. Fell free to upload the improvements.
I am in contact with the developer of Behavior3.com I also had in mind of doing a parsing from JSON files (I have also asked him to add the possibility to draw the BTs from top down). Unfortunately this is still in the TODO list.
Yes, I was working with almc, he is my colleague. We now work on different topics, so I have decided to have my own library.
I feel flattered in having people using BT++, I honestly did not expect to have many people using it. Fell free to comment or request improvements/additions.
from behavior-tree.
The version 1.2 of the ROS library has an improved visualization.
from behavior-tree.
done in version 1.3
from behavior-tree.
Related Issues (12)
- Dependencies? HOT 2
- JSON <-> BT++ convertion HOT 2
- Hiccup building the library on Ubuntu 16.04 HOT 6
- ```make install``` rule fails HOT 3
- I can't use xilb. HOT 1
- Improving Reactivity using Implicit Sequences is unclear HOT 1
- ControlNodes and BT::RUNNING HOT 3
- Test on Windows? HOT 2
- Why is 'while' suggested to be used in the ActionNode? HOT 1
- coding style HOT 1
- Question: is a thread per node really necessary? HOT 11
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.
from behavior-tree.