190 likes | 201 Views
Explore the integration of ROS in individual student projects in robotics, focusing on ROS core, communication methods, supported languages, and future development plans. Utilize the TekiControl software layer for enhanced project management.
E N D
ÓE-NIKTekiControl Szabó Zsolt Ügyvivő szakértő (Kari Erasmus koordinátor) szabo.zsolt@nik.uni-obuda.hu http://teki.nik.uni-obuda.hu/ http://teki.knowsitall.info/
AIBO szabo.zsolt@nik.uni-obuda.hu
AIBO ERS210 • Several student projects using one hardware element • Two distinct programming interfaces: OPEN-R (C++), RCODE (script language w TCP/IP) • Object recognition, color normalization, robot soccer, remote control Independent projects, no teamwork • Problem: Ad-Hoc organization, no common classes / interfaces, no co-operation • Solution: ROS, TurtleBot2 (bought in dec.2013) szabo.zsolt@nik.uni-obuda.hu
TurtleBot 2 szabo.zsolt@nik.uni-obuda.hu
Actual state • What does our robot do?It collects data about the surrounding environment, then discards it and drives into walls. • What WILL our robot do?It SHALL collect data about the surrounding environment, then it SHALL do whatever we tell it to do. szabo.zsolt@nik.uni-obuda.hu
ROS structure • ROS is a „robot middleware” • ROS core: manages the basic communication between the various nodes • Nodes can be any software component, the basic principle of ROS is to be totally platform- and programming language independent (not fully true) • E.g. Kobuki, Kinect, CameraX, Kinect_Mic, Stereo_Mic, Speaker, etc etc etc szabo.zsolt@nik.uni-obuda.hu
Using ROS • Linux-based, usually Ubuntu LTS • We use an Ubuntu Precise (12.04) netbook • ROS Versions: Fuerte, Groovy, Hydro • ROS Windows Never ready, unstable, untested, highly NOT recommended • ROS Source Not really tested, not recommended • ROS Debian Not really tested, high number of package version conflicts • Live DVD or virtual machine: OK szabo.zsolt@nik.uni-obuda.hu
Publish & Subscribe • ROS nodes can communicate using topics and messages • A node can advertise (create) topics and publish messages into this topic • Other nodes can subscribe to topics and receive messages from that topic using callbacks • „Distributed multicast” possible, but the communication is always one-way • Custom message types are possible, messages are usually passed as references szabo.zsolt@nik.uni-obuda.hu
RosBridge • *UNOFFICIAL* package • A TCP/IP wrapper of ROS • Allows full ROS topic/message management using HTTP request/response pairs • All communication is done in JSON little slower (plus: no possibility of pass-by-reference) • Advantage: *TRUELY* platform and programming language independent ROS nodes are possible szabo.zsolt@nik.uni-obuda.hu
Native Languages • Default supported: c++ (roscpp), python (rospy), Java (rosjava, in Hydro) People in OE-NIK are usually not professionals in these languages • Roscs highly beta and extremely no documentation • Our own extension: TekiControl... A program written in C#, a .NET software layer above ROS to facilitate the integration of student projects • TekiControl is executed in Ubuntu using Mono szabo.zsolt@nik.uni-obuda.hu
TekiCore szabo.zsolt@nik.uni-obuda.hu
TekiControl • Currently: TekiCore + simple remote control of the robot from TCP/IP clients or from a webpage • Connection with ROS: Native C++ glue + UDP communication (probably extended as a managed ROS node in the future roscs2 ) • Example modules in C# and Managed C++ • Future plan (~3 years): RoboCup, HomeRobotics section • Student projects + teamwork + devices szabo.zsolt@nik.uni-obuda.hu
TekiControl modules • TekiCore C# szabozs • Examplemodules C# orC++ szabozs • FullManaged ROS ??? (szabozs? ) Othermodulesshould be donebystudents (eitherinnative ROS oras a TekiModule) • Managed PCL.NET • ROS vs OAA • ROS Simulation: Gazebo, Turtlesim • ROS documentationreview + check ( publicdomain!) szabo.zsolt@nik.uni-obuda.hu
TekiControl modules • Audio frameworks: speech recognition and synthesis (JACK, POCKETSPHINX, FESTIVAL) • 3D environment scanning and mapping(KINECT/FREENECT, PCL, SLAM) • Safe navigation using 0-360 lenses and cameras • Objectrecognition (OPENCV, MOPED) • Facerecognition (OPENCV, AFORGE) • Roboticmanipulatorarm (inthefuture) • Safe and target-findernavigation (inthefuture) „Teki, bringmemyglasses!” … szabo.zsolt@nik.uni-obuda.hu
A JÖVŐ… ??? szabo.zsolt@nik.uni-obuda.hu
Development model • HIGHLY centralized and supervised • Development at home or in 3.10 / 3.11, questions in email/gtalk/skype • A GIT repository will be created, one branch per module, „master” = TekiCore / szabozs • *REGULAR* weekly meetings + reports on weekly work • Every week: 1. current status 2. current problems 3. goals for next week 4. goals for next month szabo.zsolt@nik.uni-obuda.hu
Credits • Hungarians: Thesis Work I. + II. for big projects • TDK participation for small projects (*highly* suggested for big projects as well) • French students: small projects are advised, custom credits based on personal consultation • Brazilian students: Project Work I. + II. szabo.zsolt@nik.uni-obuda.hu
Application • DEADLINE: 3/MAR/2014, MIDNIGHT • Application in email: szabo.zsolt@nik.uni-obuda.hu • CV (must include list of previous projects / works AND a list of programming skills (languages, platforms, technologies) ) • Project topic • Environment (language, OS, ROS access method) • Imaginary project timeline szabo.zsolt@nik.uni-obuda.hu
Thank you for your attention!Questions ??? Szabó Zsolt Ügyvivő szakértő (Kari Erasmus koordinátor) szabo.zsolt@nik.uni-obuda.hu http://teki.nik.uni-obuda.hu/ http://teki.knowsitall.info/