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: | ||
+ | </ |