Skip to content
This repository was archived by the owner on Oct 6, 2023. It is now read-only.

Commit 8c0fa85

Browse files
committed
Groot2 release
1 parent 94a0481 commit 8c0fa85

21 files changed

Lines changed: 560 additions & 71 deletions

docusaurus.config.js

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,18 @@ const config = {
9090
type: 'doc', label: 'Tutorial', docId: 'intro', position: 'left'
9191
},
9292
{
93-
to: '/editors', label: 'Editors', position: 'left'
93+
position: 'left',
94+
label: 'Tools',
95+
items: [
96+
{
97+
to: '/groot',
98+
label: 'Groot'
99+
},
100+
{
101+
to: '/moveit_studio',
102+
label: 'MoveIt Studio'
103+
}
104+
]
94105
},
95106
{
96107
to: '/migration', label: 'Migration from 3.X', position: 'left'

package.json

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,19 +16,22 @@
1616
"dependencies": {
1717
"@cmfcmf/docusaurus-search-local": "^0.11.0",
1818
"@dipakparmar/docusaurus-plugin-umami": "^2.0.2",
19-
"@docusaurus/core": "2.1.0",
20-
"@docusaurus/plugin-ideal-image": "^2.1.0",
21-
"@docusaurus/preset-classic": "2.1.0",
19+
"@docusaurus/core": "2.2.0",
20+
"@docusaurus/plugin-ideal-image": "^2.2.0",
21+
"@docusaurus/preset-classic": "2.2.0",
2222
"@mdx-js/react": "^1.6.22",
23+
"autoprefixer": "^10.4.13",
24+
"bootstrap": "^5.2.2",
2325
"clsx": "^1.2.1",
26+
"postcss": "^8.4.19",
2427
"prism-react-renderer": "^1.3.5",
2528
"react": "^17.0.2",
2629
"react-bootstrap": "^2.5.0",
2730
"react-bootstrap-icons": "^1.9.1",
2831
"react-dom": "^17.0.2"
2932
},
3033
"devDependencies": {
31-
"@docusaurus/module-type-aliases": "2.1.0"
34+
"@docusaurus/module-type-aliases": "2.2.0"
3235
},
3336
"browserslist": {
3437
"production": [

src/css/custom.css

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,3 +32,9 @@ article {
3232
.theme-doc-sidebar-menu{
3333
font-size: 18px;
3434
}
35+
36+
@media (max-width: 567px){
37+
.navbar__title {
38+
font-size: 14px;
39+
}
40+
}

src/pages/groot.js

Lines changed: 249 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,249 @@
1+
import React from 'react';
2+
import Layout from '@theme/Layout';
3+
import Link from '@docusaurus/Link';
4+
import useBaseUrl from '@docusaurus/useBaseUrl';
5+
import styles from './groot.module.css';
6+
import Table from 'react-bootstrap/Table';
7+
import { OverlayTrigger, Tooltip } from 'react-bootstrap';
8+
function Check(props) {
9+
return <img src={useBaseUrl('img/check.png')} width="15" alt="yes" />;
10+
}
11+
function Cross(props) {
12+
return <img src={useBaseUrl('img/cross.png')} width="15" alt="no" />;
13+
}
14+
export default function Groot() {
15+
const renderTooltip = (message, props) => {
16+
return (<Tooltip id="button-tooltip" className={styles.toolTip} {...props}>
17+
{message}
18+
</Tooltip>)
19+
}
20+
21+
const openPopup = () => {
22+
if(!window.mootrack)
23+
{
24+
!(function (t, n, e, o, a) {
25+
function d(t) {
26+
var n = ~~(Date.now() / 3e5),
27+
o = document.createElement(e);
28+
(o.async = !0), (o.src = t + "?ts=" + n);
29+
var a = document.getElementsByTagName(e)[0];
30+
a.parentNode.insertBefore(o, a);
31+
}
32+
(t.MooTrackerObject = a),
33+
(t[a] =
34+
t[a] ||
35+
function () {
36+
return t[a].q
37+
? void t[a].q.push(arguments)
38+
: void (t[a].q = [arguments]);
39+
}),
40+
window.attachEvent
41+
? window.attachEvent("onload", d.bind(this, o))
42+
: window.addEventListener("load", d.bind(this, o), !1);
43+
})(
44+
window,
45+
document,
46+
"script",
47+
"https://cdn.stat-track.com/statics/moosend-tracking.min.js",
48+
"mootrack"
49+
)
50+
}{" "}
51+
mootrack('loadForm', '419144d798774876bcfcd1e1f0b6a2ad')
52+
}
53+
54+
return (
55+
<Layout title="Groot" description="Groot Editor">
56+
{/* groot intro */}
57+
<div className={`styles.sectionText`}>
58+
<div className={`container text--left ${styles.sectionText}`}>
59+
<div className="row">
60+
<div className="col col--6">
61+
<h1>Groot</h1>
62+
<p><b>Groot</b> is the Integrated Development Environment to build and debug Behavior Trees.
63+
It allows you to:
64+
</p>
65+
<p>
66+
<ul>
67+
<li>Create and edit trees, using a drag and drop interface.</li>
68+
<li>Monitor the state of a tree remotely in real-time.</li>
69+
<li>Debug and test your behaviors (<b>new in version 2</b>)</li>
70+
</ul>
71+
</p>
72+
<h3>Groot 2 is under development (preview now available)</h3>
73+
<p>
74+
We are reimaginging Groot to be easier to use and more scalable, focusing in particular
75+
on the needs of industrial and professional users.
76+
<br/>If you use BT.CPP and Groot professionally, <a href="mailto:dfaconti@aurynrobotics.com">contact us</a> and
77+
we will be happy to help.
78+
</p>
79+
80+
<div className={styles.buttonGroup}>
81+
<button
82+
data-mooform-id="419144d7-9877-4876-bcfc-d1e1f0b6a2ad"
83+
className="button button--primary button--lg"
84+
onClick={openPopup} >
85+
Keep me up to date
86+
</button>
87+
</div>
88+
89+
</div>
90+
<div className="col col--6">
91+
<img
92+
className={styles.grootImg}
93+
src={useBaseUrl('img/groot_2.png')}
94+
alt="groot 2" />
95+
</div>
96+
</div>
97+
</div>
98+
</div>
99+
{/* groot versions & cards */}
100+
<div className={styles.sectionText}>
101+
</div>
102+
<div className={`${styles.sectionText} ${styles.comparisionSection} ${styles.flexCol}`}>
103+
<div class="container">
104+
<h2 className='text--center'>Which version of Groot is the right for you?</h2>
105+
<div className="row">
106+
<div className="col col--6">
107+
<div className={`text--left ${styles.sectionText}`}>
108+
<div className={`row ${styles.grootCardWrapper}`}>
109+
<div className={styles.grootCard}>
110+
<h2><img
111+
src={useBaseUrl('img/pro_logo_icon.svg')}
112+
alt="pro" width="40"/> Groot 2.X</h2>
113+
114+
<p><b>Groot 2</b> is the professional successor of Groot, focusing on improved
115+
user experience, debuggability and scalability.<br/>
116+
It introduces advanced tools, to support the
117+
entire development cycle, from conception to validation.
118+
</p>
119+
<p>
120+
<b>Under development:</b> you can download the free editor.
121+
</p>
122+
</div>
123+
<div className={styles.grootCard}>
124+
<h2><img
125+
src={useBaseUrl('img/open_source_icon.svg')}
126+
alt="pro" width="40"/> Groot 1.0</h2>
127+
<p><b>Groot</b> is the original open source editor for <b>BT.CPP</b>.<br/>
128+
It is not under active development anymore, but it still a great
129+
option for users who are still using <b>BehaviorTree.CPP 3.8</b> and need
130+
real-time visualization.</p>
131+
<div className={styles.buttonGroup}>
132+
<Link className="button button--primary" to="https://github.com/BehaviorTree/Groot">
133+
Groot on Github
134+
</Link>
135+
</div>
136+
</div>
137+
</div>
138+
</div>
139+
</div>
140+
<div className="col col--6">
141+
{/* groot features table */}
142+
<div className={`${styles.sectionText} ${styles.grootFeatureTableWrapper}`}>
143+
<Table className={styles.grootFeatureTable}>
144+
<thead>
145+
<tr>
146+
<th scope="col"></th>
147+
<th scope="col" className={`text--center ${styles.whitespaceNoWrap}`}>Groot 1.0</th>
148+
<th scope="col" className={`text--center ${styles.whitespaceNoWrap}`}>Groot 2.x</th>
149+
</tr>
150+
</thead>
151+
<tbody>
152+
<tr>
153+
<th scope="row">BehaviorTree.CPP compatibility
154+
</th>
155+
<td>3.8</td>
156+
<td>4.X</td>
157+
</tr>
158+
<tr>
159+
<th scope="row">Open Source</th>
160+
<td><Check /></td>
161+
<td><Cross /></td>
162+
</tr>
163+
<tr>
164+
<th scope="row">
165+
Actively developed
166+
</th>
167+
<td><Cross /></td>
168+
<td><Check /></td>
169+
</tr>
170+
<tr>
171+
<th scope="row">Commercial support</th>
172+
<td><Cross /></td>
173+
<td><Check /></td>
174+
</tr>
175+
<tr>
176+
<th scope="row">Tree Editor</th>
177+
<td>Free</td>
178+
<td>Free</td>
179+
</tr>
180+
<tr>
181+
<th scope="row">Multi-file projects<br /></th>
182+
<td><Cross /></td>
183+
<td><Check /></td>
184+
</tr>
185+
<tr>
186+
<th scope="row">Support for BT.CPP 4 pre/post conditions<br /></th>
187+
<td><Cross /></td>
188+
<td><Check /></td>
189+
</tr>
190+
<tr>
191+
<th scope="row">Realtime Monitoring</th>
192+
<td>Free</td>
193+
<td>Commercial<br/><span className={`${styles.whitespaceNoWrap}`}>(Coming soon)</span></td>
194+
</tr>
195+
<tr>
196+
<th scope="row">Realtime Debugging:<br /><ul>
197+
<li>Add breakpoints at run-time</li>
198+
<li>Visualize the content of the Blackboard</li>
199+
<li>Nodes mocking and automated tests</li>
200+
<li>Add fault injection</li>
201+
</ul> </th>
202+
<td><Cross /></td>
203+
<td>Coming soon</td>
204+
</tr>
205+
</tbody>
206+
</Table>
207+
</div>
208+
</div>
209+
</div>
210+
</div>
211+
</div>
212+
213+
{/* groot download */}
214+
<div className={`${styles.sectionText} container ${styles.flexCol} gap-5 `}>
215+
<h1>Download Groot 2</h1>
216+
<h3>Version: 0.1.0 (beta-1)</h3>
217+
<div className={styles.downloadGroup}>
218+
<div>
219+
<img className={styles.downloadLogo} src={useBaseUrl('img/windows.png')} alt="windows logo"/>
220+
<Link
221+
className="button button--outline button--primary button--lg"
222+
to="https://s3.us-west-1.amazonaws.com/download.behaviortree.dev/groot2_windows_installer/Groot2-windows-installer.exe"
223+
>
224+
Download Windows installer
225+
</Link>
226+
</div>
227+
<div>
228+
<img className={styles.downloadLogo} src={useBaseUrl('img/linux.png')} alt="linux logo"/>
229+
<Link
230+
className="button button--outline button--primary button--lg"
231+
to="https://s3.us-west-1.amazonaws.com/download.behaviortree.dev/groot2_linux_installer/Groot2-linux-installer.run"
232+
>
233+
Download Linux installer
234+
</Link>
235+
</div>
236+
<div>
237+
<img className={styles.downloadLogo} src={useBaseUrl('img/appimage.png')} alt="appimage logo"/>
238+
<Link
239+
className="button button--outline button--primary button--lg"
240+
to="https://s3.us-west-1.amazonaws.com/download.behaviortree.dev/groot2_linux_installer/Groot2-x86_64.AppImage"
241+
>
242+
Download Appimage (Linux)
243+
</Link>
244+
</div>
245+
</div>
246+
</div>
247+
</Layout>
248+
);
249+
}

0 commit comments

Comments
 (0)