Skip to content

Latest commit

 

History

History
43 lines (39 loc) · 2.33 KB

OculusPrimeNavigation.md

File metadata and controls

43 lines (39 loc) · 2.33 KB
date title
2017-08-15
Oculus Prime Navigation

There are multiple techniques to carry out way-point navigation on the Oculus Prime platform using the navigation stack.

  1. "Pure" ROS: To set a single goal the pure ROS way, bypassing the use of the oculusprime browser UI altogether, first run:
$ roslaunch oculusprime globalpath_follow.launch

Or try:

$ roslaunch oculusprime remote_nav.launch
  1. Via Command Line: You can also send coordinates via command line (AFTER you set initial position using the web browser or Rviz map). Enter a command similar to:
$ rostopic pub /move_base_simple/goal geometry_msgs/PoseStamped \
'{ header: { frame_id: "map" }, pose: { position: { x: 4.797, y: 2.962, z: 0 }, orientation: { x: 0, y: 0, z: 0.999961751128, w: -0.00874621528223 } } }'
  • Change the coordinates shown to match where your goal is. An easy way to find goal coordinates is to set the goal on the map with a mouse, and while the robot is driving there, enter:
$ rostopic echo /move_base/current_goal
  • An example of doing this via a python ROS node, starting with simpler coordinates (x,y,th), can be found here.
  1. Waypoints: If you want to choose from a list of waypoints instead, you can use the functionality built into the oculusprime server and do it via oculusprime commands:
  • First read the waypoints:
state rosmapwaypoints
  • This should return a long comma-separated string with no spaces using the format "name,x,y,th," for all the waypoints, similar to <telnet> <state> waypointA, 4.387, -0.858, -0.3218, waypointB, 2.081, 2.739, -1.5103.
  • Change the coordinates of the particular waypoint you want to change within the string, then send the whole string to the savewaypoints command, eg: Advanced -> telnet text command -> enter command:
savewaypoints waypointA,5.456,-2.345,-0.3218,waypointB,2.081,2.739,-1.5103
  • Then drive to the new coordinates by sending:
gotowaypoint waypointA