|
2 éve | |
---|---|---|
.. | ||
Template | 2 éve | |
README.md | 2 éve | |
preview.png | 2 éve | |
template.json | 2 éve |
This template allows to create a ROS2 project with sample content.
The example ROS2 navigation stack launchfile is bundled with the template.
Due to ROS2 dependency, this project was prepared and tested on Linux operating system. It is recomended to use Ubuntu 20.04 or 22.10, however any distribution meeting following requirements may be used.
Refer to the O3DE System Requirements documentation to make sure that the system/hardware requirements are met. This project has the following dependencies:
Please make sure that clang
was installed and configured. For details refer to this section of O3DE documentation.
To run the navigation example, two ROS2 packages are also required:
The following steps will assume the following:
/home/${USER}/O3DE
./home/${USER}/O3DE/Engines/Development
.In this tutorial, CLI tools will be used. It is also possible to use O3DE gui to set up a project from template. See the O3DE Project manager documentation for more details. In such case it is required to source your ROS2 distro before launching O3DE manager:
source /opt/ros/humble/setup.bash
./build/linux/bin/profile/o3de
sudo apt install ros-${ROS_DISTRO}-ackermann-msgs ros-${ROS_DISTRO}-gazebo-msgs ros-${ROS_DISTRO}-control-toolbox
For convenienience, we'll define a shell variables with o3de folders:
export O3DE_HOME=/home/${USER}/O3DE
export O3DE_ENGINE=${O3DE_HOME}/Engines/Development
Clone the o3de-extras
repository containing the template and asset gems
mkdir -p ${O3DE_HOME}/Projects
cd ${O3DE_HOME}/Projects
git clone [email protected]:o3de/o3de-extras.git
Copy gems to the O3DE home.
mkdir -p ${O3DE_HOME}/Gems
cp o3de-extras/Gems/ROS2 ${O3DE_HOME}/Gems
cp o3de-extras/Gems/WarehouseSample ${O3DE_HOME}/Gems
cp o3de-extras/Gems/RosRobotSample ${O3DE_HOME}/Gems
Register these gems.
${O3DE_ENGINE}/scripts/o3de.sh register --gem-path ${O3DE_HOME}/Gems/ROS2
${O3DE_ENGINE}/scripts/o3de.sh register --gem-path ${O3DE_HOME}/Gems/WarehouseSample
${O3DE_ENGINE}/scripts/o3de.sh register --gem-path ${O3DE_HOME}/Gems/RosRobotSample
Assign a name for the new project. In this example, it is assumed that it will be: WarehouseTest
, and it will be located in $DEMO_BASE/WarehouseTest
folder.
export PROJECT_NAME=WarehouseTest
export PROJECT_PATH=${O3DE_HOME}/Projects/${PROJECT_NAME}
${O3DE_ENGINE}/scripts/o3de.sh create-project --project-path $PROJECT_PATH --template-path ${O3DE_HOME}/Projects/o3de-extras/Templates/Ros2ProjectTemplate/ -f
Enable gems.
${O3DE_ENGINE}/scripts/o3de.sh enable-gem --gem-name ROS2 --project-path $PROJECT_PATH
${O3DE_ENGINE}/scripts/o3de.sh enable-gem --gem-name WarehouseSample --project-path $PROJECT_PATH
${O3DE_ENGINE}/scripts/o3de.sh enable-gem --gem-name RosRobotSample --project-path $PROJECT_PATH
Next, let us the build project with the necessary elements of the O3DE engine and ROS2 Gem.
cd $PROJECT_PATH
source /opt/ros/humble/setup.bash
cmake -B build/linux -G "Ninja Multi-Config" -DLY_UNITY_BUILD=OFF -DCMAKE_EXPORT_COMPILE_COMMANDS=ON -DLY_PARALLEL_LINK_JOBS=16 -DLY_STRIP_DEBUG_SYMBOLS=OFF
cmake --build build/linux --config profile --target $PROJECT_NAME.GameLauncher Editor
Finally, previously built O3DE with preloaded ROS2 Gem can be run:
$PROJECT_PATH/build/linux/bin/profile/Editor
Refer to $PROJECT_PATH/Examples/slam_navigation/README.md
for instructions.