|
|
|
[[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/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”.
|
|
|
|
|
|
|
|
[[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.9 release.
|
|
|
|
|
|
|
|
* 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/releases/0.9.0/p2/[Release update-site] (v0.9, for 2022-06 or newer)
|
|
|
|
** 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
|
|
|
|
|
|
|
|
See link:Papyrus/customizations/robotics/devinstall[Developer installation].
|
|
|
|
|
|
|
|
[[ros_2_dependencies]]
|
|
|
|
==== ROS 2 Dependencies
|
|
|
|
|
|
|
|
[[ros_2_environment]]
|
|
|
|
===== 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 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 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 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 `Window`→`Preferences`
|
|
|
|
* 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).
|
|
|
|
|
|
|
|
image:figs/ConfigureBtSequencer.png[Configure BT Sequence,500]
|
|
|
|
|
|
|
|
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]]
|
|
|
|
====== 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. |