Introduction
These demos are for customers who purchase the navigator or navigator elite packages. These are pre-configured systems from Stanley Innovation.
Setup
- Notes: For this to work ssh via pre-shared key should be setup
- Also segchk, segstart, segstop should be added to the no password sudo list.
Turn on the platform
Press the small sliver button for ~ 1 second and it will light up blue. After about 20 seconds the platform will beep and then 5 seconds later it will beep a second time.
Connect the wireless
Connect the virtual machine host computer to the wireless on the platform.
Start your virtual machine
You should already have installed your virtual machine by following these instructions Robots/RMPv3/indigo/virtual_machine. Login to the virtual machine we will now call this the "remote control computer"
Bring up a terminal
You should start in a directory called ~/segway_remote_ws
Inside this directory there is a script called "start_v3"
Check for Communication
Run this:
./start_v3 test
You should get the following:
=====================Testing Communication=================== Testing Communication with the base... Using username->sibot Using computername->sibot1 This computer's IP is->10.66.171.101 SSH to platform...[ok]
Run assisted_teleop
Run this:
./start_v3 assisted_teleop
Things to look for
The terminal windows are often buried behind the RVIZ window. Minimize RVIZ so you can see the terminal windows because its important to check for any error messages there.
New terminal windows
- One that runs the assisted teleop application on the platform
NODES / segway_assisted_teleop (segway_assisted_teleop/segway_assisted_teleop) ROS_MASTER_URI=http://10.66.171.4:11311/ core service [/rosout] found process[segway_assisted_teleop-1]: started with pid [6943]
- One for the joystick node on the remote control computer
started roslaunch server http://10.66.171.101:40102/ SUMMARY ======== PARAMETERS * /joy_node/autorepeat_rate: 50.0 * /joy_node/deadzone: 0.1 * /joy_node/dev: /dev/input/js2 * /rosdistro: indigo * /rosversion: 1.11.13 NODES / joy_node (joy/joy_node) ROS_MASTER_URI=http://SIBOT1:11311 core service [/rosout] found process[joy_node-1]: started with pid [4721]
- One that starts RVIZ
started roslaunch server http://10.66.171.101:45225/ SUMMARY ======== PARAMETERS * /rosdistro: indigo * /rosversion: 1.11.13 NODES / rviz (rviz/rviz) ROS_MASTER_URI=http://SIBOT1:11311 core service [/rosout] found process[rviz-1]: started with pid [4999] [ INFO] [1441291544.374915219]: rviz version 1.11.7 [ INFO] [1441291544.375099062]: compiled against OGRE version 1.8.1 (Byatis) [ INFO] [1441291544.533374262]: Stereo is NOT SUPPORTED [ INFO] [1441291544.533468718]: OpenGl version: 3 (GLSL 1.3).
RVIZ window
- Look for the picture of the robot
- Look for the red laser data
Tweak RVIZ
Set RVIZ to TopDownOrtho View
Menu Bar -> Panels (Click "Views")
Under "Views" change type to TopDownOrtho
- Change scale to ~100
Drive around
To drive around you will have to push the "B" button on the joystick to enter tractor mode. Sometimes the joystick turns off so pushing "B" twice might be required. Hold "LT" as your deadman switch and try moving the sticks.
If the platform is too close to an obstacle then you might not be able to move. You can temporarily override the obstacle avoidance by holding both triggers "LT" & "RT".
Cautiously drive toward an obstacle that the laser can see and ensure the platform stops before contacting the object. If it touches the object STOP and figure out what's wrong. It's usually best to close all windows, open a new one and run this command:
./start_v3 reboot
Run mapless_nav
Close all open windows, open a new terminal and run this:
./start_v3 mapless_nav
Mapless_nav is exactly the same as assisted_teleop as far as windows and settings. The only difference is that RVIZ is started with a different profile so you can have different settings for mapless_nav than for assisted_teleop.
Run the map builder
Now for the fun stuff. We need to have the robot map out the intended environment. For navigation to work well its best if the environment doesn't change during the mapping.
Close all open windows, open a new terminal and run this:
./start_v3 mapping
You will get the joy node and RVIZ windows as before.
The navigation window (running on the platform) looks like this when its working:
NODES / segway_assisted_teleop (segway_assisted_teleop/segway_assisted_teleop) slam_gmapping (gmapping/slam_gmapping) ROS_MASTER_URI=http://10.66.171.4:11311/ core service [/rosout] found process[segway_assisted_teleop-1]: started with pid [8169] process[slam_gmapping-2]: started with pid [8199] Laser Pose= 1.52869 -2.39417 -0.959006
Look specifically for the "Laser Pose" line. That shows that mapping is really running.
Drive around
Drive around to build the map. The assisted teleop node is also running so the platform will avoid obstacles it can see but use caution as it will still contact obstacles the laser cannot see.
Save the map
When your done, find the window that you used to start the mapping and it should look like this:
./start_v3 mapping =====================Starting the Map builder=============== When you are ready to save the map enter a name and press [ENTER]:
Simply type a name for the map and press [ENTER] to save the map. You should see something like this:
[ INFO] [1441293025.560136906]: Waiting for the map [ INFO] [1441293025.827953619]: Received a 384 X 384 map @ 0.050 m/pix [ INFO] [1441293025.827999791]: Writing map occupancy data to /home/sibot/segway_ws/src/segway_v3/segway_navigation/segway_navigation_apps/maps/lab_map.map.pgm [ INFO] [1441293025.832787604]: Writing map occupancy data to /home/sibot/segway_ws/src/segway_v3/segway_navigation/segway_navigation_apps/maps/lab_map.map.yaml [ INFO] [1441293025.832909351]: Done
Maps are saved locally on the platform typically in this directory:
/home/sibot/segway_ws/src/segway_v3/segway_navigation/segway_navigation_apps/maps/
Run Mapping
Close all open windows, open a new terminal and run this:
./start_v3 map_nav lab_map.map
Substitute the name you used for the lab_map.map
If you can't remember the name you can enter no name and it will provide you a list:
./start_v3 map_nav
Again 3 terminal windows pop up with one for RVIZ.
Set the initial position
In order for mapping to work we need to tell the robot it's starting point on the map. It doesn't have to be exact but the closer the better. Click on "2D Pose Estimate" at the top of the RVIZ screen and click on the map where the platform is and hold down the mouse button and drag to set the direction. NOTE: The platform will spin the first time this is done trying to fine tune its initial position. If you don't click in the correct place you can repeat the steps but it will only spin once.
The goal is to have the red laser data line up with the black map.
Visually verify map vs laser
Before you drive around the platform based on the map you'll want to visually verify that the map lines up with the laser data.
Test the joystick interface
Next make sure the system can be driven around with the joystick. This is important because you can use the joystick to remotely stop the platform while testing the navigation. The "X" button will send the platform to standby mode and halt the navigation.
NOTE: In this mode there is no obstacle avoidance on input from the joystick. In this mode it is assumed that you will be commanding motion through way-points or Nav goals. The path planner will use the laser to avoid obstacles but the joystick commands are sent straight to the platform.
Test out the Nav Goal
Click on "2D Nav Goal" at the top of RVIZ. Click on the map for where you want the platform to go and drag to set the orientation. The platform will plot a course to that location and begin moving toward that location.
If you want to stop motion you can press the "X" button the joystick or press the kill switch.
Enable the Interactive features in RVIZ
Click on the "Interact" box at the top of the screen. You should see a blue ring appear around the platform with a white box above.
If not try click on the InteractiveMakers option in RVIZ and click on the Update Topic. Select the drop down and click the only option in the list. Click the interact button again and it will show up.
Test out Interactive Features
- Right click on the white box.
Select "WayPoints-->Add"
- Click the "Publish Point" at the top of the screen
- Click a few points onto the map (They will show up as red dots)
- Click "Interact" again
- Right click on the white box select "start"
- If you move the RVIZ window you should see in the terminal window the output of the planner. It might take a second for it to "get a plan" but once it starts moving it will keep you informed of its progress.
Note: The "publish points" do not provide a desired heading so the platform will turn at each way point back to 0 orientation. This behavior can be changed by creating the list nav_goals yourself and including heading information.