Example of rclUE client
This is client example of rclUE and related UnrealEngine x ROS 2 porject.
Please check following as well
- rclUE: This repo enables communication between UE and ROS 2.
- RapyutaSimulationPlugins: This repo has classes/tools to create ROS 2 enables robots with rclUE.
- Download Unreal Engine 5 and set up rclUE-Examples by following README of the repo.
- Open Default/Character/Warehouse map and play
- Install ROS 2 by following https://docs.ros.org/en/humble/Installation/Ubuntu-Install-Debians.html
- Create and build ROS 2 ws.
mkdir -p colcon_ws/src cd colcon_ws/src git clone --recursive [email protected]:yuokamoto/rclUE_client_example.git cd ../../ source /opt/ros/<ros-distro>/setup.bash rosdep install --from-paths src -y --ignore-src colcon build --symlink-install --packages-up-to rclUE_client_example
- Run example client
source /opt/ros/<ros-distro>/setup.bash source colcon_ws/install/setup.bash ros2 run rclUE_client_example <example package name, e.g. conveyor_client> # or ros2 launch rclUE_client_example <example launch name, e.g. conveyor_client>
*Client script will do following from ROS 2 interface
-
Turtlebot3(
tb3_client_launch.py
)Turltbot3_benchmark.umap
- Spawn turtlebot3 and start tb3_simulation_launch.py which start navigation action server
- Send /initial_pose
- Send navigation goal.
-
Conveyor(
conveyor_client_launch.py
)Default.umap
- Spawn conveyor with mode=1 and speed=200, i.e. payload will move and stop at entrance/exit
- Spawn Payload
- Wait until payload stop at entrance/exit
- Set mode=0, i.e. paylod will move until move out from conveyor
- Set speed=-200.
- Wait until paylod move out.
- Repeat from step 1
-
Character(
charcter_client_launch.py
)CharacterMap.umap
-
Spawn character with all modes, 0. manual mode. Move when it subscribes goal. Goal can be pose or actor name.
- sequence mode. Move to goal sequence one by one
- random sequence mode. Move to goal sequence randomly
- random area mode. Move inside bounding box randomly.
Please check paramters in
ai_actor_client.py
andai_actor_client_launch.py
-
keep sending random goal to manual mode(=0) cahracter. Other characters move with
-
Warehouse(
warehouse_client.py
)Warehouse.umap
- Load tasks and agents from Agents.csv and Task.csv in config
- Send task one by one from Tasks.csv via ROS 2 topic.
- Track move and open container.
- Forklift unload pallet from the track and drop to trackberth
- Forklift pick pallet from floor and drop to rack
- Human move cart near the trackberth
- Human load boxes to the cart
- Human move cart to the conveyor and drop box to the conveyor
- Human move cart to the rack and drop box to the rack
-
Spline Conveyor: todo
-
Elevator: todo
-
VerticalConveyor: todo