UE Project which includes examples to use rclUE.
- rclUE: This repo enables communication between UE and ROS 2.
- RapyutaSimulationPlugins: This repo has classes/tools to create ROS 2 enables robots with rclUE.
devel
: Main branch. Compatible with Unreal Engine 5.1 with Ubuntu 20.04jammy
: Compatible with Unreal Engine 5.1 with Ubuntu 22.04UE4
: Compatible with Unreal Engine 4.27
ROS2TopicExamples
: BP and C++ ROS2 example nodes of publisher/subscriber.ROS2ServiceExamples
: BP and C++ ROS2 example nodes of service server/client.ROS2ActionExamples
: BP and C++ ROS2 example nodes of action server/clientTurtlebot3 Benchmark
: BP and C++ ROS2 turtlebot3 navigation. Burger is implemented in C++ and Waffle is implemented in BP.RobotArmExample
: Robot arm example which can be controlled from sensor_msgs/JointStates.Entry
: Get map name from command line and transition to that maps. Mainly used to packaged project to change initial map.LargeGround
: Large enough map for simulating many robots. Mainly used to test distributed multi-robot simulation.Turtlebot3AutoTest
: Maps for Automated test.
- please check Getting Started as well.
- Download UE5.1 for Linux by following Unreal Engine for Linux
- Clone this repo :
git clone --recurse-submodules [email protected]:rapyuta-robotics/turtlebot3-UE.git
- Retrieve the large files :
git-lfs pull && git submodule foreach git-lfs pull
- Build and run
cd turtlebot3-UE export UE5_DIR=<path to UE5> ./update_project_files.sh make turtlebot3Editor ./run_editor.sh <false or true to use dds server or not> $(pwd) <ue_exe>
* Since the prooject is set to use
ROS2 with Discovery Server
to communicate with ROS2 Node in UE, you needs to execute source turtlebot3_UE/fastdds_setup.sh
. You can run without server by ./run_editor.sh false
Please install pre-commit before commiting your changes. Follow this instruction https://pre-commit.com/
then run
./setup_pre_commit.sh
this will setup pre-commit to all submodules as well.
- Install ROS2 foxy
- you can use ROS2 humble as well by checkout
Plugins/rclUE
toUE5_devel_humble
branch.
- you can use ROS2 humble as well by checkout
- Install Nav2
- Play turtlebot3-UE
cd turtlebot3-UE && source fastdds_setup.sh
#if you use ROS2 Discovery Server. You don't need this if you start editor with./run_editor false
.ros2 launch nav2_bringup tb3_simulation_launch.py use_simulator:=False map:=<path to turtlebot3-UE>/Content/Turtlebot3_benchmark.yaml
!NOTE: The test script is setup to run with fastdds, which requires UE to start before ROS is enabled, thus /opt/ros/<ros_distro>/setup.bash
, which is already run in the script, needs to be not added to ~/.bashrc
./ExternalTest/run_local_sim_tb3_tests.sh <ue_exe> <ue_map> <tb3_model> <tb3_name> <tb3_init_pos> <tb3_init_rot>
with:
<ue_exe>
: path to the UE editor executor, eg:~/UE/UnrealEngine/Engine/Binaries/Linux/UE4Editor
<ue_map>
: ue map name, eg:Turtlebot3AutoTest
<tb3_model>
:burger
orwaffle
<tb3_name>
as the robot given names, eg:burger0
<tb3_init_pos>
as the robot initial position (x,y,z), eg:0.0,0.0,0.1
<tb3_init_rot>
as the robot initial rotation (r,p,y), eg:0.0,0.0,0.0