CSCE 574 Robotics Fall 2018

Similar documents
Running the PR2. Chapter Getting set up Out of the box Batteries and power

Mini Turty II Robot Getting Started V1.0

ROS Tutorial. Me133a Joseph & Daniel 11/01/2017

CONNECT TO BUFFALO ROUTER

STEP BY STEP GUIDE (RASPBERRY PI)

@ The ULTIMATE Intellivision Manual

@ The ULTIMATE Manual

TurtleBot2&ROS - Learning TB2

Introduction to Pioneer Robots

Shadow Robot Documentation

ANSYS v14.5. Manager Installation Guide CAE Associates

Programming 2 Servos. Learn to connect and write code to control two servos.

Physical Inventory System User Manual. Version 19

LESSONS Lesson 1. Microcontrollers and SBCs. The Big Idea: Lesson 1: Microcontrollers and SBCs. Background: What, precisely, is computer science?

OverDrive for Kindle, Kindle Paperwhite, Kindle Voyage, and Kindle Oasis (not Kindle Fire and Fire Tablet) Contents

GNSS Conductor GF. User s Guide. (Document No. SE )

9/2/2013 Excellent ID. Operational Manual eskan SADL handheld scanner

1 Lab + Hwk 4: Introduction to the e-puck Robot

Outernet L-band on Rasbian Documentation

XLR PRO Radio Frequency (RF) Modem. Getting Started Guide

Kaseya 2. User Guide. Version 7.0

Robotic Manipulation Lab 1: Getting Acquainted with the Denso Robot Arms Fall 2010

EE-110 Introduction to Engineering & Laboratory Experience Saeid Rahimi, Ph.D. Labs Introduction to Arduino

Note: Objective: Prelab: ME 5286 Robotics Labs Lab 1: Hello Cobot World Duration: 2 Weeks (1/22/2018 2/02/2018)

EITN90 Radar and Remote Sensing Lab 2

FAQ for City of Tacoma employees

Emergency Stop Final Project

Understanding the Arduino to LabVIEW Interface

Downloading a ROBOTC Sample Program

Author Instructions FPIN Editorial Manager

Basic Recording. Start --> Programs --> Panopto --> Panopto Recorder. Logging In

Welcome to Weebly. Setting up Your Website. Write your username here:

Flash Blaster II v.2.00 for the Falcon digital console Falcon ENGLISH

Connect your robot with RoboDK (Kuka)

Quick Start Guide. Antenna Alignment Tool AIMWLLR0-35. QSG rev 7 AIMWLLR0-35 [NRB-0200] QSG.indd 1

Lab 8: Introduction to the e-puck Robot

Ev3 Robotics Programming 101

ECE 497 Introduction to Mobile Robotics Spring 09-10

Arduino Hacking Village THOTCON 0x9

Nikon Firmware Update for Coolpix 950 Version 1.3

Robot Interface CRI. 1. Summary. V10 - September 3 rd, 2018 CPRog Version: V TinyCtrl Version: V

Coaching Welcome Pack. One-on-one Coaching Welcome Pack

Fire CR Calibration Guide

From Camera to MLS. Class Outline: Transferring Photos to the Computer. Using a Card Reader

Milli Developer Kit Reference Application Published on Silver Spring Networks STAGE (

UCP-Config Program Version: 3.28 HG A

Endurance R/C Wi-Fi Servo Controller 2 Instructions

XT-1 Configuration Manager User Manual EN

RoboLab Real-time Rescue

Computer Science 25: Introduction to C Programming

Audacity 5EBI Manual

Fetch Robotics. Release Indigo. Fetch Robotics Inc

Make sure you have these items handy

How To Find Out What Facebook Knows About You

Introduction to VIPLE: Visual IoT Programming Language Environment. Table of Contents

Mediasite Desktop Recorder: Recording a Lecture 2017

Reviewing Your Tax Return In Your Portal

THD74 Programmer Help RT Systems, Inc.

Custom Mobile App Support

VEX TOURNAMENT MANAGER SOFTWARE USER GUIDE

Lesson 3: Arduino. Goals

iphoto Getting Started Get to know iphoto and learn how to import and organize your photos, and create a photo slideshow and book.

BEST PRACTICES MAKE PERFECT, PART II

How to Make Games in MakeCode Arcade Created by Isaac Wellish. Last updated on :10:15 PM UTC

Joseph, here s your personalized SAT guide.

Lab Assignment 5 Geoprocessing Service. Due Date: 01/24/2014

Check the current firmware version for the Coolpix 5700

Scripted Introduction

Lab 3 Swinging pendulum experiment

When accessing our class network, you can get there in one of two ways. The easiest is to put this web address directly into your browser.

LD2342 USWM V1.6. LD2342 V1.4 Page 1 of 18

PIPELINE DEFECT MAPPER

METAVERSE WALLET USER MANUAL

RSPB Old Moor help with online sites

OWEN Walking Robot Install Guide

How To Handbook For Learners

JOINT STOCK COMPANY. MULTICHANNEL RECEIVER RI-4010M (version RM ) User guide

Introductory Psychology (1030H & 1101) Fall 2017 Research Participation (RP) Information

J, K, L. Each command, 31. Fully qualified domain name (FQDN), 116

things you should know first: Technology Tablets Download free app Puffin Acdemy. More info in the Resources page on your educator dashboard.

Anki Documentation. Jennifer and Soren Bjornstad Contact: November 20, 2011

Lucida 3D Scanner Factum Foundation

Probabilistic Robotics Course. Robots and Sensors Orazio

Megamark Arduino Library Documentation

Table of Contents. Vizit s Carousel Menu Gallery Play Favorite Remove Rotate Fill Screen Friends Block Lock Screen Settings Reply Share

Chroma Servo Board v3 for Raspberry Pi. (Firmware 0.1 and 0.2)

J. La Favre Using Arduino with Raspberry Pi February 7, 2018

Research Assignment for PSY x and 07x

Adafruit Ultimate GPS Breakout On the Raspberry Pi. NERP: Not Exclusively Raspberry Pi

Faculty Lecture Capture Guide

Introductory Psychology (1030H, 1101, & 2101) Spring 2016 Research Participation (RP) Information

FINAL REVIEW. Well done you are an MC Hacker. Welcome to Hacking Minecraft.

General Workflow Instructions for capturing 360 images using Theta V, editing in Photoshop, and publishing to Google StreetView

Submittals Quick Reference Guide

2. Now you need to create permissions for all of your reviewers. You need to be in the Administration Tab to do so. Your screen should look like this:

Ansible Tower Quick Setup Guide

SoundCheck 11 Quick Start Guide

Altair Avionics Corporation Monitor Link Program

PaperCut VCA Cash Acceptor Manual

Quick Start Instructions EMV-INspektor V2

Transcription:

CSCE 574 Robotics Fall 2018 Courtesy of Alberto Quattrini Li. Notes on the Turtlebot 2 This document contains some details on how to use the Turtlebot 2 robots. For any question, please email the instructors. 1. Important Documents These notes are intended to help you get started, but are not even close to being a replacement for the real documentation of the robot. The most important reference to consult can be found here: http://wiki.ros.org/robots/turtlebot A guide that shows how to work with the robot on Ubuntu 14.04 can be found here: http://learn.turtlebot.com/ An important node to be used for the RGBd sensor (Microsoft Kinect) is the following: http://wiki.ros.org/depthimage_to_laserscan 2. Lab facilities The robots are picked up by each group by contacting the instructor and will be stored in Swearingen 1D49. Access to this room is controlled using a combination lock, for which the combination will be given in class. As said during the class, the best way to work with the robots is to use your own laptops to write the program and then upload it to the Raspberry Pi mounted on the robots. The desktop computers in the lab, which can be accessed with your usual CSE department credentials, can also be used to write the program (contact Ryan Austin (Systems Administrator) if you have trouble logging in). However, to load the program to the Raspberry Pi an external laptop should be used. Please ensure that the robots batteries are charged, by returning each robot to the charging station when you re done working with it. 3. About the robot As shown in the class, the Turtlebot 2 robot has the following components: Kobuki mobile base with internal battery, A Kinect sensor that collects RGBd images, A Raspberry Pi 3 with external battery where the USB cable that goes to the mobile base and the USB cable for the Kinect connect to. has no user-accessible computer. Instead, it has a Raspberry Pi B+ mounted on top of it, which is connected to the robot by a serial cable. As such, your programs need to be uploaded and run on the Raspberry Pi through your computer, which will be connected with the provided LAN cable. CSCE574 Fall 2018 Notes on the Turtlebot 2 1 of 6

4. What you get When you pick up the robot, you will get: The Turtlebot 2, with the components as described in Section 3, A charger for the Kobuki mobile base 5. How to charge it When the robot is not used, the batteries should be put in charge so that you are not having problems next time to work with the robot. There are two batteries on the robot that need to be charged: The Kobuki mobile base with the provided charger, The external battery for the Raspberry Pi. The first one, can be charged by connecting the cable on the corresponding port, as shown in the following picture The second one, requires that two USB cables are connected together, as shown in the following picture: CSCE574 Fall 2018 Notes on the Turtlebot 2 2 of 6

6. How to turn on the robot This is the procedure to turn on and use the robot: Disconnect the two USB cables that recharge the external bettery Disconnect the charger from the Kobuki mobile base If the Raspberry Pi did not turn on---namely no LED is visible from the Raspberry Pi---, press the button on the battery, shown in the following picture. After 1 minute, the Raspberry Pi should be operational and ready to be used. 7. Writing programs to control the Robot Here are the basic steps to write and execute a program that is going to be running on the Raspberry Pi: Use your favorite text editor to write or modify your ROS program. Once the robot is on as specified in Section 6, connect the provided LAN cable from the Raspberry Pi to your computer. To simplify the operation, first ssh to the Raspberry Pi to get the IP address of the WiFi interface (IP address of the Raspberry Pi: 192.168.1.1; username: pi; password: raspberry). ssh pi@192.168.1.1 Get the IP address by typing CSCE574 Fall 2018 Notes on the Turtlebot 2 3 of 6

ifconfig The output includes the IP address of the WiFi interface, that is connected to uscguest. As such, your computer should be connected to uscguest. Write down the IP address and exit the ssh session, by pressing ctrl+d. Unplug the LAN cable from your computer. Copy the program to the Raspberry Pi by using scp (IP address of the Raspberry Pi: <IP address identified>; username: pi; password: raspberry). e.g., using a Windows-based machine, you can use https://winscp.net/eng/download.php application to transfer the data from your laptop to your computer OR using a Unix-based machine, to copy a folder called project_03 in the catkin_ws/src/ directory of the Raspberry Pi scp -r project_03 pi@<ip address identified>:~/catkin_ws/src Connect to the Raspberry Pi by using ssh. e.g., using a Windows-based machine, you can use PuTTY to access the Raspberry Pi http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html OR using a Unix-based machine, ssh pi@<ip address identified> and input the password. Use screen to start a shell window within the ssh session so that the shell is active even through network disruptions. Run the main nodes for the Kobuki base roslaunch turtlebot_bringup minimal.launch Exit from the screen holding ctrl and pressing a and then d Run another screen Run the nodes for the Kinect roslaunch turtlebot_bringup 3dsensor.launch Exit from the screen holding ctrl and pressing a and then d Run another screen -S project Run your program using rosrun. e.g., rosrun project_03 project_03_node You can leave the session open, or you can close the screen, again with ctrl+a and d; and exit the ssh session. To stop the robot: Connect again to the robot with ssh through WiFi. Resume the screen about the project screen -r project Terminate your program by pressing Ctrl+c. Turn off the Raspberry Pi: sudo halt. Wait 1 minute and then follow the procedure to charge the robot. CSCE574 Fall 2018 Notes on the Turtlebot 2 4 of 6

8. Coding style The program should be written by you and the code should be following an adequate and consistent coding style. In particular, the following coding style from Google is adopted https://google.github.io/styleguide/pyguide.html. This general guidelines should drive your code writing: Don t repeat yourself. Source code in which the same information appears in multiple places can be difficult to understand and, therefore, to debug. a) If you find yourself repeatedly copying and pasting a block of code, you should probably write a function to abstract that block. b) If your code contains explicit magic numbers that are repeated or copied from the documentation, you should probably replace those explicit numbers with named constants. Write for your audience. The audience for your source code includes, as a minimum (a) you and your group members, (b) your instructor, and (c) your interpreter. Therefore, your goal should be to write code that is easy for humans to read and understand. Important steps toward achieving this goal include: a) Using names that accurately describe the data or code that they name. b) Writing comments for each function and section of code explaining its purpose and clarifying anything that s not obvious about how it works. c) Using a consistent style for indentation and spacing, including indentation of nested blocks. Lastly, please don t fall into the trap of writing bad code with the intention of fixing it to meet these general guidelines after it works. By doing that, you ll experience the pain that goes with these constraints but miss out on the benefits. The use of external software is allowed only if: The use of it does not trivialize the assignment. The source should be clearly reported. N.B.: Please remember to always backup your code, the best way being using a version control system (e.g., git, svn, or hg)! N.B.2: As a suggestion, ensure that you modify the code in one place, e.g., your laptop, and synchronize it with the Raspberry Pi on the robot. If you modify the code on the Raspberry Pi, you might have inconsistent copies of your code across the computers and possibly it could lead to overwriting the files and thus losing important parts of code. 9. Communicating with the robot As ROS is used, there are the topics that should be used to send velocity commands or read sensor data. In the following a list of the main topics that are useful to know. As a reminder, you can use rostopic list And rostopic info CSCE574 Fall 2018 Notes on the Turtlebot 2 5 of 6

To get more information about the available topics and the type of messages required. Control The node for controlling the base has a multiplexer node that has 3 different topics to send velocity commands. In particular the topics are the following: /cmd vel mux/input/navi /cmd vel mux/input/teleop /cmd vel mux/input/safety controller The rationale is that for example you would like to take teleoperative control of the robot to override automatically generated commands sent by your software. Odometry Raw data from the odometers and the IMU are available in the following topics: /odom /imu/data Kinect Data that are used as if the Kinect is a laser range sensor is available at the following topic: /scan CSCE574 Fall 2018 Notes on the Turtlebot 2 6 of 6