User Tools

Site Tools


software:tortugabot

TortugaBot

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 EMG30 or 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 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 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 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:

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:

<launch>
  <group ns="camera">
    <node pkg="libuvc_camera" type="camera_node" name="mycam">
      <!-- Parameters used to find the camera -->
      <param name="vendor" value="0x045e"/>
      <param name="product" value="0x0772"/>
      <param name="serial" value=""/>
      <!-- If the above parameters aren't unique, choose the first match: -->
      <param name="index" value="0"/>

      <!-- Image size and type -->
      <param name="width" value="640"/>
      <param name="height" value="480"/>
      <!-- choose whichever uncompressed format the camera supports: -->
      <param name="video_mode" value="uncompressed"/> <!-- or yuyv/nv12/mjpeg -->
      <param name="frame_rate" value="15"/>

      <param name="timestamp_method" value="start"/> <!-- start of frame -->
      <param name="camera_info_url" value="file:///tmp/cam.yaml"/>

      <param name="auto_exposure" value="3"/> <!-- use aperture_priority auto exposure -->
      <param name="auto_white_balance" value="false"/>
    </node>
  </group>
</launch>

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. finaltortugabotpaper.pdf

software/tortugabot.txt · Last modified: 2018/01/16 16:38 by gkazhoya