====== TortugaBot ====== The latest setup guide (Dec 2022) was moved to [[software:tortugabot_ros1_noetic|the ROS1 Noetic guide]]. The TortugaBot is a little robot which has an ASUS Xtion Pro Live as sensor. It is mainly build from acrylc glass and Aluminium bars. To move he is using two [[http://www.robot-electronics.co.uk/htm/emg30.htm | EMG30]] or [[http://www.robot-electronics.co.uk/htm/emg49.htm|EMG49]] motors which get their power from a 11.1V 2500mAh Li-Po battery. He gets controlled by a Laptop which has to be put in the LispBot. ===== Partlist ===== The Partlist is {{:software:materiallist_robot.ods|here}}. ===== CAD Model ===== The CAD Model Download is gonna be here soon. ===== Software ===== The TortugaBot laptops are small Lenovo IdeaPad Flex 10 netbooks. ==== Installed software ==== * The OS the netbooks are running is the latest LTS version of Ubuntu, ATM it is Ubuntu 14.04 * All the laptops should have a Desktop version of ROS installed. ATM it is ros-indigo-desktop * The software repo for TortugaBots is in ''https://github.com/code-iai/tortugabot'' * All the software you need is typically located in ''${HOME}/workspace/ros'' or something similar * The launch files for the robot are in ''roslauch tortugabot_bringup TAB-TAB''. ==== Configuring a new user ==== * For students we usually create users with no admin access * Add the user to the ''dialout'' group, such that it could have access to the TTY ports for talking to the wheel drivers. $ sudo usermod -a -G dialout USERNAME $ groups USERNAME # to check if it worked * To make sure the OS won't go to bed when closing the lid change the following settings: * In "Power" settings of your "System settings" change from "suspending" to "doing nothing" when closing the lid * In "Brightness and Lock" settings turn the lock off. * We put the ROS packages in the directory typically called ''${HOME}/workspace/ros/src'', where ''.../ros'' is the catkin workspace: $ cd && mkdir -p workspace/ros/src $ source /opt/ros/indigo/setup.bash $ cd workspace/ros && catkin_make $ echo -e "\n# ROS\nsource \$HOME/workspace/ros/devel/setup.bash\n" >> ~/.bashrc $ . ~/.bashrc $ cd src && wstool init * The software is located mostly in the [[https://github.com/code-iai/tortugabot|tortugabot repo on Github]] * To install everything in one shot you can use the ''.rosinstall'' file from the repo. Don't forget to compile your workspace after getting the code. $ wstool merge https://raw.githubusercontent.com/code-iai/tortugabot/master/rosinstall.yaml $ wstool update $ cd .. && rosdep install --from-paths src --ignore-src Check the [[https://github.com/code-iai/tortugabot|README file in the repo]] for more info. ==== Reinstalling OS ==== For completely new laptops or reinstalling the OS. The usual convention is: * Right now the only OS on the netbooks is Ubuntu, so we get rid of the Windows * //If you have Windows:// To get access to the boot menu (because the laptops are running UEFI) start Windows, keep the Shift key pressed while pressing "Restart", when an advanced menu comes up choose troubleshooting (the button with the screwdriver on the picture) and choose configure UEFI, this will restart the computer and get you into the boot menu. * //If you don't have Windows:// turn laptop on and start pressing Fn + F2 to get into Bios. After Lenovo logo Bios should come up. * When installing your Ubuntu configure the boot menu to * disable safe boot * enable legacy boot * when installing from USB, make sure the USB boot is enabled * The hostname (computer name) of TortugaBot laptops are usually tortugabotN, where N is the serial number * To make sure the OS doesn't go to sleep or hibernate when you close the lid, in ''/etc/systemd/logind.conf'' add (uncomment) the folowing line: HandleLidSwitch=ignore * The dedicated network for TortugaBots is the "tortugabot" wiki access point, which connects you to the internal lab Ethernet. So, when keeping people access to the network please keep in mind that the robots are also in that network and that accidentally having a torrent daemon running in the background can get our research group into trouble. * To make sure the laptops don't connect to UniBremen wifi automatically, in the network settings get rid of that network get rid of the Ticks on automatically connecting and on allowing all users to connect to it. * To enable ssh access install ''sudo apt-get install openssh-server'' * We usually install the Desktop version of ROS: e.g. ros-indigo-desktop. You might also want to install the ''wstool'' and ''rosinstall'', they're both ''sudo apt-get install python-BLA''. * You might also want to run ''sudo rosdep init'' ==== Installing QtSixA for the Sony DualShock3 controllers ==== Install QtSix according to the instructions here: [[http://qtsixa.sourceforge.net/|QtSixA in Sourceforge]] Basically: sudo add-apt-repository ppa:falk-t-j/qtsixa sudo apt-get update sudo apt-get install qtsixa sudo /etc/init.d/sixad start Then connect the DualShock3 controller over USB with a mini-usb cable. And start "qtsixa". There select Tasks -> Pair Device to PC -> DualShock controller After that, the device should be paired to the laptop. And if you press the "Playstation" button (in the center), it should connect to the laptop. It vibrates a little to confirm. To get sixad to start all the time, do: cd /etc/rc2.d && sudo ln -s ../init.d/sixad S99sixad ==== guvcview ==== guvcview and other uvc related things were not working with a recent kernel (4.4.x) The following fixes the problem: sudo add-apt-repository ppa:pj-assis/ppa sudo apt-get update sudo apt-get install guvcview ==== libuvc-camera for the webcams ==== Create the file /etc/udev/rules.d/99-uvc.rules with the following inside: # UVC camera Microsoft LifeCam Studio SUBSYSTEMS=="usb", ENV{DEVTYPE}=="usb_device", ATTRS{idVendor}=="045e", ATTRS{idProduct}=="0772", MODE="0666" (adjust for your webcam looking at lsusb) Then restart udev: /etc/init.d/udev restart And re-connect the webcam. It should now be readable for everyone. Install the camera driver: sudo apt install ros-indigo-libuvc-camera Create a launch file with the following contents: ==== Configuring network to communicate with laser ==== Connect the laser and make sure it is powered up with the battery. Go to the network connections icon (which is next to your volume icon in the Ubuntu GUI). There should be an ethernet connection existing which is not completely configured. On the bottom of network connections menu click on "Edit Connections...". Choose "Wired Connection 1" and click on "Edit...". There, in the "Ethernet" tab use Device Mac Address from the drop-down menu. In the "IPv4 Settings" tab choose "Method" "Manual" and in "Addresses" add a new address -- click on "Add". The "Address" is the IP address of the network card -- your ethernet to USB dongle, e.g. "192.168.200.1". As netmask use "255.255.255.0" and leave "Gateway" empty or zeros. In "IPv6" settings choose "Method" "Ignore". Done. It should connect automatically anytime when the laser is connected. ==== Documentation ==== One of our students was working on creating a map of the hallway using the little robots. Here's a PDF with some documentation of the mapping process and also the robot itself. {{:software:finaltortugabotpaper.pdf|}}