Neato XV-11: Difference between revisions

No edit summary
No edit summary
Line 1: Line 1:
<br />[[File:Neato-xv-11.jpg|thumb]]'''''This content has been migrated from the old xv11hacking.com website'''''
<br />[[File:Neato-xv-11.jpg|thumb]]'''''This content has been migrated from the old [https://web.archive.org/web/20120107080436/http://xv11hacking.wikispaces.com/ xv11hacking.com] website'''''


What is the Neato XV-11 you ask??  
What is the Neato XV-11 you ask??  
Line 12: Line 12:
''The following procedure will help you install the Robot Operating System on Ubuntu 10.10 for use with the XV-11.''
''The following procedure will help you install the Robot Operating System on Ubuntu 10.10 for use with the XV-11.''


I have tested this running Ubuntu 10.10 as a VMware virtual machine as well as installed on a system as the booted OS. Ubuntu is a very easy to use Linux release you can download from here Now lets get started! Open a terminal by clicking on '''Applications -> Accessories -> Terminal''' Enter the following commands by copying and pasting them into the terminal window. Use '''CTRL-C''' to copy and then '''CTRL-SHIFT-V''' to paste them in the terminal window.
I have tested this running Ubuntu 10.10 as a VMware virtual machine as well as installed on a system as the booted OS. Ubuntu is a very easy to use Linux release you can download from [http://www.ubuntu.com/ here] Now lets get started! Open a terminal by clicking on '''Applications -> Accessories -> Terminal''' Enter the following commands by copying and pasting them into the terminal window. Use '''CTRL-C''' to copy and then '''CTRL-SHIFT-V''' to paste them in the terminal window.
 
<br />
#sudo sh -c ‘echo “deb http://code.ros.org/packages/ros/ubuntu maverick main” > /etc/apt/sources.list.d/ros-latest.list’
sudo sh -c ‘echo “deb http://code.ros.org/packages/ros/ubuntu maverick main” > /etc/apt/sources.list.d/ros-latest.list’
#wget http://code.ros.org/packages/ros.key -O - | sudo apt-key add -
wget http://code.ros.org/packages/ros.key -O - | sudo apt-key add -
#sudo apt-get update
sudo apt-get update
#sudo apt-get install ros-cturtle-base
sudo apt-get install ros-cturtle-base


The last command will install approximately 5GB worth of software so grab some coffee, a Rockstar, or your stimulant of choice! Once it is done installing run the commands below to install some more ROS software in your home folder.
The last command will install approximately 5GB worth of software so grab some coffee, a Rockstar, or your stimulant of choice! Once it is done installing run the commands below to install some more ROS software in your home folder.
 
<br />
#cd; mkdir ros; cd ros
cd; mkdir ros; cd ros
#svn co https://brown-ros-pkg.googlecode.com/svn/tags/brown-ros-pkg/teleop_twist_keyboard
svn co https://brown-ros-pkg.googlecode.com/svn/tags/brown-ros-pkg/teleop_twist_keyboard
#svn co http://albany-ros-pkg.googlecode.com/svn/trunk/slam_coreslam/coreslam
svn co http://albany-ros-pkg.googlecode.com/svn/trunk/slam_coreslam/coreslam
#svn co http://albany-ros-pkg.googlecode.com/svn/trunk/neato_robot
svn co http://albany-ros-pkg.googlecode.com/svn/trunk/neato_robot
#echo ‘. /opt/ros/cturtle/setup.sh’ >> ~/.bashrc
echo ‘. /opt/ros/cturtle/setup.sh’ >> ~/.bashrc
#echo ‘export ROS_PACKAGE_PATH=~/ros:${ROS_PACKAGE_PATH}’ >> ~/.bashrc
echo ‘export ROS_PACKAGE_PATH=~/ros:${ROS_PACKAGE_PATH}’ >> ~/.bashrc
#source ~/.bashrc
source ~/.bashrc
#sudo su
sudo su
#echo ‘. /opt/ros/cturtle/setup.sh’ >> ~/.bashrc
echo ‘. /opt/ros/cturtle/setup.sh’ >> ~/.bashrc
#echo ‘export ROS_PACKAGE_PATH=${ROS_PACKAGE_PATH}’ >> ~/.bashrc
echo ‘export ROS_PACKAGE_PATH=${ROS_PACKAGE_PATH}’ >> ~/.bashrc
#exit
exit
#cd ~/ros/teleop_twist_keyboard; rosmake
cd ~/ros/teleop_twist_keyboard; rosmake
#cd ~/ros/coreslam; rosmake
cd ~/ros/coreslam; rosmake
#cd ~/ros/neato_robot; rosmake
cd ~/ros/neato_robot; rosmake


Now we will edit the /etc/modules file so the usbserial driver will be automatically loaded with the parameters needed. We also add the cdc_acm driver to the blacklist so it will not be used with the XV-11. On a Macbook Pro the system used this driver instead of usbserial.
Now we will edit the /etc/modules file so the usbserial driver will be automatically loaded with the parameters needed. We also add the cdc_acm driver to the blacklist so it will not be used with the XV-11. On a Macbook Pro the system used this driver instead of usbserial.
 
<br />
#sudo su
sudo su
#echo “usbserial vendor=0x2108 product=0x780B” >> /etc/modules
echo “usbserial vendor=0x2108 product=0x780B” >> /etc/modules
#echo “blacklist cdc_acm” >> /etc/modprobe.d/blacklist.conf
echo “blacklist cdc_acm” >> /etc/modprobe.d/blacklist.conf
#modprobe usbserial vendor=0x2108 product=0x780B
modprobe usbserial vendor=0x2108 product=0x780B
#rmmod cdc_acm
rmmod cdc_acm
#exit
exit


Almost time to plug your XV-11 into the system!! For the sake of simplicity do not plug in any other USB to serial devices at this point. This will ensure your XV-11 appears as '''/dev/ttyUSB0''' and will simplify setup at this point.
Almost time to plug your XV-11 into the system!! For the sake of simplicity do not plug in any other USB to serial devices at this point. This will ensure your XV-11 appears as '''/dev/ttyUSB0''' and will simplify setup at this point.


#ls /dev/ttyU*
ls /dev/ttyU*


Once you plug in the XV-11 you should see '''/dev/ttyUSB0''' appear. Now lets load the XV-11 drivers.
Once you plug in the XV-11 you should see '''/dev/ttyUSB0''' appear. Now lets load the XV-11 drivers.


#roslaunch neato_node bringup.launch
roslaunch neato_node bringup.launch


Entering the above command should initiate a connection to '''/dev/ttyUSB0''' and after a couple seconds you will hear the LIDAR start to spin on the XV-11. Don’t worry if you don’t hear it, press '''CTRL-C''' to exit the driver then enter the command again. I have found it does not seem to start properly upon first load. Now press '''CTRL-SHIFT-T''' while your terminal window is selected to open a new tab within that terminal window, just like a new web browser tab. We will open a few of these tabs to load the different ROS drivers/programs.
Entering the above command should initiate a connection to '''/dev/ttyUSB0''' and after a couple seconds you will hear the LIDAR start to spin on the XV-11. Don’t worry if you don’t hear it, press '''CTRL-C''' to exit the driver then enter the command again. I have found it does not seem to start properly upon first load. Now press '''CTRL-SHIFT-T''' while your terminal window is selected to open a new tab within that terminal window, just like a new web browser tab. We will open a few of these tabs to load the different ROS drivers/programs.


#roslaunch 2dnav_neato move_base.launch
roslaunch 2dnav_neato move_base.launch
#(open a new tab before running the next command)
(open a new tab before running the next command)
#rosrun rviz rviz
rosrun rviz rviz


Just to verify, you should have three tabs open now with these three commands simultaneously running. SWEET HUH!! Now you have the GUI application running, just a couple more steps and its play time! On the top menu bar click '''Plugins -> Manage''' then click the box next to '''Loaded''' and click '''OK'''. There is a video [http://www.ros.org/wiki/navigation/Tutorials/Using%20rviz%20with%20the%20Navigation%20Stack here] with details on setting up RViz. You can use this file with RViz and it has all those parameters already setup. Right click on the file and save it. Within RViz just go to '''File -> Open Config''' and select the XV11.vcg file. Now open a new terminal which we will use for keyboard control to manually navigate the XV-11.
Just to verify, you should have three tabs open now with these three commands simultaneously running. SWEET HUH!! Now you have the GUI application running, just a couple more steps and its play time! On the top menu bar click '''Plugins -> Manage''' then click the box next to '''Loaded''' and click '''OK'''. There is a video [http://www.ros.org/wiki/navigation/Tutorials/Using%20rviz%20with%20the%20Navigation%20Stack here] with details on setting up RViz. You can use this file with RViz and it has all those parameters already setup. Right click on the file and save it. Within RViz just go to '''File -> Open Config''' and select the XV11.vcg file. Now open a new terminal which we will use for keyboard control to manually navigate the XV-11.


#rosrun teleop_twist_keyboard teleop_twist_keyboard.py
rosrun teleop_twist_keyboard teleop_twist_keyboard.py


You will see which keys are used to navigate on the screen once the program is running. The default speed settings are too fast for the XV-11 so you need to reduce the speed before it will respond to any input. Repeatedly press the '''“x”''' key to reduce speed when traveling in a straight line to about 0.10 and then do the same with the “c” key to reduce rotational speed to about 0.15. Now you can use the keyboard keys to navigate.
You will see which keys are used to navigate on the screen once the program is running. The default speed settings are too fast for the XV-11 so you need to reduce the speed before it will respond to any input. Repeatedly press the '''“x”''' key to reduce speed when traveling in a straight line to about 0.10 and then do the same with the “c” key to reduce rotational speed to about 0.15. Now you can use the keyboard keys to navigate.