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
    
  2. 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.
  3. 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