===== Sending poses to PR2 in gazebo using action designators =====
This step-by-step explanation shows how to get the PR2 gazebo simulation
up and running and how to execute simple translation/rotation commands
using high level components (i.e. action designators).
- From the shell, start roscore: roscore
- Start pr2_gazebo: roslaunch pr2_gazebo pr2_empty_world.launch
- Start additional components for (fake) localization: roslaunch pr2_nav_pcontroller nav_pcontroller.launch
- **IMPORTANT:** Set the parameter (under ) for "global_frame" as follows in the launch file: global_frame: odom_combined
For this, it might be better to just copy the launch file and change this in your local version.
- **Remark:** On the "real" robot, this would be: roslaunch ias_pr2_2dnav pr2_2dnav.launch
which should launch all the necessary parts.
- Start emacs and run the SLIME REPL for ROS: M-x slime-ros
- From within emacs, load the PR2 navigation process module: ,ros-load-system pr2-navigation-process-module
- Switch to the nav process module package:,!p
pr2-navigation-process-module
- Run the ROS node: (startup-ros)
- "Fake" the localization (since no mapping server is present): (setf designators-ros:*fixed-frame* "odom_combined")
- Initialize the nav process module: (init-pr2-navigation-process-module)
Nope, this is done automatically during the loading of this system.
- Send a navigation action to position (x, y) with rotation (qz): (call-nav-action *navp-client*
(make-designator
'desig-props:location
`((desig-props:pose ,(tf:make-pose-stamped
"/base_footprint"
0.0
(tf:make-3d-vector x y 0)
(tf:make-quaternion 0 0 qz 1))))))
- Watch it move in gazebo ;)!