Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| tutorials:advanced:unreal-engine [2022/03/08 13:52] – vanessa | tutorials:advanced:unreal-engine [2022/03/08 14:15] (current) – [Spawn objects in Unreal from Cram] vanessa | ||
|---|---|---|---|
| Line 23: | Line 23: | ||
| sudo apt install ros-melodic-rosbridge-server ros-melodic-robot-state-publisher ros-melodic-joint-state-publisher-gui ros-melodic-tf ros-melodic-tf2 ros-melodic-tf2-ros ros-melodic-pr2-arm-kinematics | sudo apt install ros-melodic-rosbridge-server ros-melodic-robot-state-publisher ros-melodic-joint-state-publisher-gui ros-melodic-tf ros-melodic-tf2 ros-melodic-tf2-ros ros-melodic-pr2-arm-kinematics | ||
| </ | </ | ||
| + | |||
| + | |||
| + | |||
| + | Further software stacks are needed to control the robot in Unreal via CRAM plans and Giskards motion planner, as well as perception and knowledge inference and logging. | ||
| + | |||
| + | Follow the installation instructions for each of the following software stacks, picking the ones required for your specific purpose. Using separate, overlayed workspaces is recommended. | ||
| + | |||
| + | * [[https:// | ||
| + | * [[https:// | ||
| + | * [[https:// | ||
| Now create a catkin workspace for deps from repositories. Use wstool for git imports and rosdep for apt sources. | Now create a catkin workspace for deps from repositories. Use wstool for git imports and rosdep for apt sources. | ||
| Line 34: | Line 44: | ||
| rosdep install --from-paths --ignore-src . -r | rosdep install --from-paths --ignore-src . -r | ||
| </ | </ | ||
| - | |||
| - | Unless all dependencies are installed successfully, | ||
| Build the workspace either with the ros-native catkin or with python-catkin-tools, | Build the workspace either with the ros-native catkin or with python-catkin-tools, | ||
| Line 45: | Line 53: | ||
| If the build process wasn't successful, install the missing packages via apt, find missing repositories in the code-iai GitHub group or ask the contributors for help. | If the build process wasn't successful, install the missing packages via apt, find missing repositories in the code-iai GitHub group or ask the contributors for help. | ||
| - | Further software stacks are needed to control | + | ====== Running |
| + | Finally, the connection to the ROS network can be established by launching the following nodes. Make sure the workspace is sourced. | ||
| - | Follow the installation instructions | + | <code bash> |
| + | #Launch rosbridge | ||
| + | roslaunch rosbridge_server rosbridge_websocket.launch | ||
| - | * [[https:// | + | # Launch urobosim world |
| - | * [[https:// | + | roslaunch urobosim_ros_config world.launch |
| - | * [[https:// | + | </code> |
| - | ====== Using Cram in Unreal Engine====== | + | |
| + | Hit the ' | ||
| + | |||
| + | ===== GISKARD ===== | ||
| + | |||
| + | Giskard requires the whole_body_controller topics of the robot. To achieve that, make sure the rosbridge to Unreal is running properly. | ||
| + | |||
| + | <code bash> | ||
| + | roslaunch giskardpy giskardpy_pr2_unreal.launch | ||
| + | </ | ||
| + | |||
| + | This launches Giskards trajectory planner. There may occur one timeout error for the state topic, which is fine for now. | ||
| + | |||
| + | Launch RViz by executing rviz. Add the Robot Model to the scene. Add InteractiveMarkers and choose the topic; if / | ||
| + | |||
| + | ===== CRAM ===== | ||
| + | |||
| + | cram-unreal provides | ||
| + | |||
| + | * A :detecting PM and plan to detect objects from Unreal to put them in Bullet | ||
| + | * The service clients to spawn and move objects in a running Unreal world (and stubs to extend to further clients) | ||
| + | * Some unused plans for pouring (feeding-plans) | ||
| + | |||
| + | cram-pr2-unreal-process-modules (aka pr2-unreal-pms) provides | ||
| + | |||
| + | * An extension to pr2-pms as | ||
| + | * The with-unreal-robot macro uses unreal-detection while using the same manipulation pms as pr2-pms: | ||
| + | * Also a few changes to Giskard' | ||
| + | |||
| + | Note: Remove CATKIN_IGNORE in the cram_pr2 packages and cram_external_interfaces/ | ||
| + | |||
| + | Play the map in Unreal. The PR2 should twitch and wiggle its arms a bit if it's good. If not, check the DemoProject repo ReadMe how to troubleshoot. | ||
| + | |||
| + | ====== Start the Demo ====== | ||
| + | |||
| + | Startup roslisp_repl. First load cram_pr2_pick_place_demo, | ||
| + | |||
| + | |||
| + | |||
| + | <code bash> | ||
| + | (pr2-unreal-pms: | ||
| + | | ||
| + | </ | ||
| + | |||
| + | ====== Spawn objects in Unreal from Cram ====== | ||
| + | Run the same launch files as above, but without giskard. Open Emacs, load cram_urobosim and start a node. Try to spawn an object with | ||
| + | |||
| + | <code bash> | ||
| + | (unreal: | ||
| + | </ | ||

