Skip to main content

Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

Difference between revisions of "Papyrus/customizations/robotics/installation"

(Installation through the Virtual Box Appliance)
(Installation)
 
(8 intermediate revisions by 2 users not shown)
Line 1: Line 1:
 
__NOTOC__
 
__NOTOC__
 
 
= Installation instructions =
 
= Installation instructions =
 
== Installation through the Virtual Box Appliance ==
 
== Installation through the Virtual Box Appliance ==
We provide a [ftp://ftp.cea.fr/pub/lise/p4r/CEAPilot_VirtualMachine.ova virtual machine] that comes with everything needed pre-installed to develop ROS2 applications using Papyrus for Robotics.
+
We provide a [ftp://ftp.cea.fr/pub/lise/p4r/p4r-machine.ova virtual machine] that comes with everything needed pre-installed to develop ROS 2 applications using Papyrus for Robotics.
  
For this virtual machine, username is “user” and password is “p”. User “user” is allowed to use “sudo”. After logging in, you'll find a readme file with some additional links and videos on the desktop.
+
For this virtual machine, username is “user” and password is “p”. User “user” is allowed to use “sudo”.
  
 
== Manual Installation ==
 
== Manual Installation ==
 
=== Binary installation ===
 
=== Binary installation ===
  
Alternatively, Papyrus for Robotics can be installed either in form of an RCP (a self contained Eclipse installation) or added to an existing Eclipse installation by using an update site. Both can be downloaded from [https://www.eclipse.org/papyrus/components/robotics eclipse.org/papyrus/components/robotics] referring to the current 0.8 release.
+
Alternatively, Papyrus for Robotics can be installed either in form of an RCP (a self contained Eclipse installation) or added to an existing Eclipse installation by using an update site. Both can be downloaded from [https://www.eclipse.org/papyrus/components/robotics eclipse.org/papyrus/components/robotics] referring to the current 0.9 release.
  
* If you use the RCP, make sure that a JRE is already installed in your system and contained in the system PATH.
+
* RCPs
 +
** [https://download.eclipse.org/modeling/mdt/papyrus/components/robotics/releases/0.9.0/rcps/products Release RCPs] for 2023-03
 +
** [https://ci.eclipse.org/papyrus/job/papyrus-robotics-2023-03/lastSuccessfulBuild/artifact/releng/org.eclipse.papyrus.robotics.product/target/products/ Nightly RCPs] for 2023-03.
  
* If want to extend an existing Eclipse, add the update-site via Help->Install New Software->Add ([https://download.eclipse.org/modeling/mdt/papyrus/components/robotics/ release update-site] (for 2020-06) or one of the nightly update sites below)
+
* If want to extend an existing Eclipse, add the update-site via Help->Install New Software->Add
 
+
** [https://download.eclipse.org/modeling/mdt/papyrus/components/robotics/releases/0.9.0/p2/ Release update-site] (v0.9, for 2022-06 or newer)
* Nightly builds with the latest changes are available on the Eclipse continuous integration server, see [https://ci.eclipse.org/papyrus/view/Robotics/job/papyrus-robotics-2020-06/lastSuccessfulBuild/artifact/releng/org.eclipse.papyrus.robotics.p2/target/repository/ 2020-06] (nightly update site), and [https://ci.eclipse.org/papyrus/view/Robotics/job/papyrus-robotics-2021-03/lastSuccessfulBuild/artifact/releng/org.eclipse.papyrus.robotics.p2/target/repository/ 2021-03] (nightly update site), [https://ci.eclipse.org/papyrus/job/papyrus-robotics-2021-03/lastSuccessfulBuild/artifact/releng/org.eclipse.papyrus.robotics.product/target/products/ 2021-03] (nightly RCP builds).
+
** [https://download.eclipse.org/modeling/mdt/papyrus/components/robotics/2020-06/ Release update-site] (v0.8, for 2020-06)
 +
** [https://ci.eclipse.org/papyrus/view/Robotics/job/papyrus-robotics-2023-03/lastSuccessfulBuild/artifact/releng/org.eclipse.papyrus.robotics.p2/target/repository/ Nightly update site] (for 2023-03)
  
 
=== Source code installation ===
 
=== Source code installation ===
Line 22: Line 24:
 
See [[Papyrus/customizations/robotics/devinstall|Developer installation]].
 
See [[Papyrus/customizations/robotics/devinstall|Developer installation]].
  
=== ROS2 Dependencies ===
+
=== ROS 2 Dependencies ===
==== ROS2 Environment ====
+
==== ROS 2 Environment ====
If you plan to use Papyrus for Robotics to design and deploy ROS2-based systems, you need to install ROS2. The current release 0.8 supports [https://index.ros.org/doc/ros2/Installation/Foxy/ ROS2 Foxy Fitzroy] and [https://index.ros.org/doc/ros2/Installation/Eloquent/ ROS2 Eloquent Elusor]
+
If you plan to use Papyrus for Robotics to design and deploy ROS 2-based systems, you need to install ROS 2. The current release 0.9 supports all the ROS 2 distributions from [https://docs.ros.org/en/foxy/Installation.html ROS 2 Foxy Fitzroy] and successive. Most tested distributions are [https://docs.ros.org/en/humble/Installation.html ROS 2 Humble Hawksbill] and Foxy.
 +
 
 +
In case you have a source installation of ROS 2, you need configure Papyrus for Robotics to include your custom ROS 2 installation path to the list of paths to source (see below).
  
 
==== Behavior Tree Execution ====
 
==== Behavior Tree Execution ====
In addition to ROS2, if you plan to use Papyrus for Robotics to execute task specifications in form of behavior trees, you need to install:
+
In addition to ROS 2, if you plan to use Papyrus for Robotics to execute task specifications in form of behavior trees, you need to install the <code>bt_sequencer</code> package, a companion sequencing framework which is responsible for behavior-tree based task execution.
 +
 
 +
===== Installation =====
 +
 
 +
First install the <code>nav2_behavior_tree</code> package from Navigation2, then download and build the <code>bt_sequencer</code>, e.g., as shown below. (Remember to replace <code><your-distribution></code> with <code>humble</code> or <code>foxy</code>.)
 +
<pre>
 +
sudo apt-get install ros-<your-distribution>-nav2-behavior-tree
 +
mkdir -p ~/ros2_ws/sequencer_ws/src
 +
cd ~/ros2_ws/sequencer_ws/src
 +
wget -q -O tmp.zip ftp://ftp.cea.fr/pub/lise/p4r/bt_sequencer_<your-distribution>.zip && unzip tmp.zip && rm tmp.zip
 +
cd ~/ros2_ws/sequencer_ws
 +
colcon build --symlink-install --packages-up-to bt_sequencer
 +
</pre>
 +
 
 +
Then configure Papyrus for Robotics to include the <code>bt_sequencer</code> installation path (here <code>~/ros2_ws/sequencer_ws/install</code>) in the list of paths to source.
 +
* In Papyrus for Robotics, click on <code>Window</code>&rarr;<code>Preferences</code>
 +
* Then type <code>ros 2</code> in the preference filter text box on top left and add the path above using the <code>New</code> button. Then press the <code>Apply and Close</code> button (green).
 +
[[File:Papyrus-customizations-robotics-ConfigureBtSequencer.png|500px]]
 +
 
 +
 
 +
In case you have a source installation of the <code>nav2_behavior_tree</code> package (including its dependencies &mdash; <code>nav2_common</code>, <code>nav2_msgs</code>, <code>nav2_util</code> and <code>behaviortree_cpp_v3</code>), just add its installation path as well, to the list of paths to source.
  
* the [https://github.com/ros-planning/navigation2/tree/foxy-devel/nav2_behavior_tree <code>nav2_behavior_tree</code>] package from Navigation2, including its dependencies ([https://github.com/ros-planning/navigation2/tree/foxy-devel/nav2_common <code>nav2_common</code>], [https://github.com/ros-planning/navigation2/tree/foxy-devel/nav2_msgs <code>nav2_msgs</code>], [https://github.com/ros-planning/navigation2/tree/foxy-devel/nav2_util <code>nav2_util</code>] and [https://github.com/BehaviorTree/BehaviorTree.CPP <code>behaviortree_cpp_v3</code>]). [https://navigation.ros.org/build_instructions/index.html# Build and Install Navigation2] explains how to get the complete framework on your machine.
+
===== Note on Licensing =====
  
* the [ftp://ftp.cea.fr/pub/lise/p4r/bt_sequencer.zip <code>bt_sequencer</code>] package. This package is a slightly modified version of [https://github.com/ros-planning/navigation2/tree/foxy-devel/nav2_bt_navigator <code>nav2_bt_navigator</code>] with the following changes:
+
The <code>bt_sequencer</code> is a slightly modified version of Nav2's <code>nav2_bt_navigator</code> package and it is licensed under the Apache License, Version 2.0 as the original package (Copyright (c) 2018 Intel Corporation). The <code>bt_sequencer</code> includes the following changes:
** commented default <code>plugin_libs</code>
+
* all the Nav2 specificities are removed (inheritance from <code>nav2_util::LifecycleNode</code>, simple action server that implements the <code>NavigateToPose</code> action, all the corresponding callbacks and data types), except for the usage of class <code>nav2_behavior_tree::BehaviorTreeEngine</code>
** added a ZMQ logger from [https://www.behaviortree.dev/ BehaviorTree.CPP]
+
* a ZMQ logger is added from <code>BehaviorTree.CPP</code>
** forced the execution of BT at activation (and not as response to a <code>NavigateToPose</code> goal request)
+
* an action server is added that triggers the execution of a BT at each <code>bt_sequencer_msgs::action::ExecuteBt</code> goal requests. The BT to be executed must be provided as parameter of the <code>bt_sequencer</code> node.

Latest revision as of 10:55, 29 July 2023

Installation instructions

Installation through the Virtual Box Appliance

We provide a virtual machine that comes with everything needed pre-installed to develop ROS 2 applications using Papyrus for Robotics.

For this virtual machine, username is “user” and password is “p”. User “user” is allowed to use “sudo”.

Manual Installation

Binary installation

Alternatively, Papyrus for Robotics can be installed either in form of an RCP (a self contained Eclipse installation) or added to an existing Eclipse installation by using an update site. Both can be downloaded from eclipse.org/papyrus/components/robotics referring to the current 0.9 release.

Source code installation

See Developer installation.

ROS 2 Dependencies

ROS 2 Environment

If you plan to use Papyrus for Robotics to design and deploy ROS 2-based systems, you need to install ROS 2. The current release 0.9 supports all the ROS 2 distributions from ROS 2 Foxy Fitzroy and successive. Most tested distributions are ROS 2 Humble Hawksbill and Foxy.

In case you have a source installation of ROS 2, you need configure Papyrus for Robotics to include your custom ROS 2 installation path to the list of paths to source (see below).

Behavior Tree Execution

In addition to ROS 2, if you plan to use Papyrus for Robotics to execute task specifications in form of behavior trees, you need to install the bt_sequencer package, a companion sequencing framework which is responsible for behavior-tree based task execution.

Installation

First install the nav2_behavior_tree package from Navigation2, then download and build the bt_sequencer, e.g., as shown below. (Remember to replace <your-distribution> with humble or foxy.)

sudo apt-get install ros-<your-distribution>-nav2-behavior-tree
mkdir -p ~/ros2_ws/sequencer_ws/src
cd ~/ros2_ws/sequencer_ws/src
wget -q -O tmp.zip ftp://ftp.cea.fr/pub/lise/p4r/bt_sequencer_<your-distribution>.zip && unzip tmp.zip && rm tmp.zip
cd ~/ros2_ws/sequencer_ws
colcon build --symlink-install --packages-up-to bt_sequencer

Then configure Papyrus for Robotics to include the bt_sequencer installation path (here ~/ros2_ws/sequencer_ws/install) in the list of paths to source.

  • In Papyrus for Robotics, click on WindowPreferences
  • Then type ros 2 in the preference filter text box on top left and add the path above using the New button. Then press the Apply and Close button (green).

Papyrus-customizations-robotics-ConfigureBtSequencer.png


In case you have a source installation of the nav2_behavior_tree package (including its dependencies — nav2_common, nav2_msgs, nav2_util and behaviortree_cpp_v3), just add its installation path as well, to the list of paths to source.

Note on Licensing

The bt_sequencer is a slightly modified version of Nav2's nav2_bt_navigator package and it is licensed under the Apache License, Version 2.0 as the original package (Copyright (c) 2018 Intel Corporation). The bt_sequencer includes the following changes:

  • all the Nav2 specificities are removed (inheritance from nav2_util::LifecycleNode, simple action server that implements the NavigateToPose action, all the corresponding callbacks and data types), except for the usage of class nav2_behavior_tree::BehaviorTreeEngine
  • a ZMQ logger is added from BehaviorTree.CPP
  • an action server is added that triggers the execution of a BT at each bt_sequencer_msgs::action::ExecuteBt goal requests. The BT to be executed must be provided as parameter of the bt_sequencer node.

Back to the top