julian cerruti juan ignacio ubeira - roscon 2020 · julian cerruti. kickstart why? advantages how?...

22
Building Android Robots Juan Ignacio Ubeira Julian Cerruti

Upload: others

Post on 29-Jul-2020

7 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Julian Cerruti Juan Ignacio Ubeira - ROSCon 2020 · Julian Cerruti. Kickstart Why? Advantages How? Tools and libraries Cost? Required effort. Why? Technological evolution (2008 –

Building Android Robots

Juan Ignacio UbeiraJulian Cerruti

Page 2: Julian Cerruti Juan Ignacio Ubeira - ROSCon 2020 · Julian Cerruti. Kickstart Why? Advantages How? Tools and libraries Cost? Required effort. Why? Technological evolution (2008 –
Page 3: Julian Cerruti Juan Ignacio Ubeira - ROSCon 2020 · Julian Cerruti. Kickstart Why? Advantages How? Tools and libraries Cost? Required effort. Why? Technological evolution (2008 –

Kickstart

Why? Advantages

How?Tools and libraries

Cost? Required effort

Page 4: Julian Cerruti Juan Ignacio Ubeira - ROSCon 2020 · Julian Cerruti. Kickstart Why? Advantages How? Tools and libraries Cost? Required effort. Why? Technological evolution (2008 –

Why?

Technological evolution (2008 – 2017)

T-Mobile G1

Samsung Galaxy S8

✓ 7x faster processor✓ 20x memory size✓ 140x faster networking bitrate✓ 100x video resolution✓ More integrated sensors

Page 5: Julian Cerruti Juan Ignacio Ubeira - ROSCon 2020 · Julian Cerruti. Kickstart Why? Advantages How? Tools and libraries Cost? Required effort. Why? Technological evolution (2008 –

Why?

Popularity pushes innovation forward

Source: gs.statcounter.com

Page 6: Julian Cerruti Juan Ignacio Ubeira - ROSCon 2020 · Julian Cerruti. Kickstart Why? Advantages How? Tools and libraries Cost? Required effort. Why? Technological evolution (2008 –

How?

Tools and libraries

ROSJavaInfrastructure• ROS implementation in pure Java• http://wiki.ros.org/rosjava

Page 7: Julian Cerruti Juan Ignacio Ubeira - ROSCon 2020 · Julian Cerruti. Kickstart Why? Advantages How? Tools and libraries Cost? Required effort. Why? Technological evolution (2008 –

How?

Tools and libraries

ROSJavaInfrastructure• ROS implementation in pure Java• http://wiki.ros.org/rosjava

Android NDK (roscpp_android)Native Libraries• Cross compiled ROS packages – JNI with native node wrapper• http://wiki.ros.org/android_ndk

Page 8: Julian Cerruti Juan Ignacio Ubeira - ROSCon 2020 · Julian Cerruti. Kickstart Why? Advantages How? Tools and libraries Cost? Required effort. Why? Technological evolution (2008 –

How?

Tools and libraries

ROSJavaInfrastructure• ROS implementation in pure Java• http://wiki.ros.org/rosjava

Android NDK (roscpp_android)Native Libraries• Cross compiled ROS packages – JNI with native node wrapper• http://wiki.ros.org/android_ndk

ROSJava Maven repositoryJava libraries• Place to share compiled Java artifacts• https://github.com/rosjava/rosjava_mvn_repo

Page 9: Julian Cerruti Juan Ignacio Ubeira - ROSCon 2020 · Julian Cerruti. Kickstart Why? Advantages How? Tools and libraries Cost? Required effort. Why? Technological evolution (2008 –

Building a robot

Tangobot: A Turtlebot spinoff

Autonomous

Android Powered

Research platform

Open sourceTangobot’s wiki page: http://wiki.ros.org/Robots/Tangobot

Page 11: Julian Cerruti Juan Ignacio Ubeira - ROSCon 2020 · Julian Cerruti. Kickstart Why? Advantages How? Tools and libraries Cost? Required effort. Why? Technological evolution (2008 –

Building a robot

Generic autonomous robot: Hardware components

Perception devices• Lasers, IMU, cameras, etc.

Processing unit• CPU & Memory

Actuators• Mobile base

Page 12: Julian Cerruti Juan Ignacio Ubeira - ROSCon 2020 · Julian Cerruti. Kickstart Why? Advantages How? Tools and libraries Cost? Required effort. Why? Technological evolution (2008 –

Building a robot

Tangobot: Hardware components

Robot base (IMU)

Laptop

Laser

Android phone(Tango-enabled)

Robot base

Turtlebot Tangobot

Page 13: Julian Cerruti Juan Ignacio Ubeira - ROSCon 2020 · Julian Cerruti. Kickstart Why? Advantages How? Tools and libraries Cost? Required effort. Why? Technological evolution (2008 –

Building a robot

Tangobot: Software components

Application

Navigation stack

Sensor drivers

Mobile base drivers

User Interface

Node launcher

Page 14: Julian Cerruti Juan Ignacio Ubeira - ROSCon 2020 · Julian Cerruti. Kickstart Why? Advantages How? Tools and libraries Cost? Required effort. Why? Technological evolution (2008 –

Building a robot

Generic Navigation stack workflow

• Sensors• Goals

Inputs

• Costmaps• Planners• Recovery

Navstack• Velocity

commands

Outputs

Page 15: Julian Cerruti Juan Ignacio Ubeira - ROSCon 2020 · Julian Cerruti. Kickstart Why? Advantages How? Tools and libraries Cost? Required effort. Why? Technological evolution (2008 –

Building a robot

Tangobot: Cross compiled navigation stack

Cross compiled Navstack (ROSCpp)

JNI wrapper: execute & shutdown (C)

ROSJava Native node (Java)

Executed by Tangobot app

Tutorial: http://wiki.ros.org/android_ndk/Tutorials/WrappingNativeRosjavaNode

Page 16: Julian Cerruti Juan Ignacio Ubeira - ROSCon 2020 · Julian Cerruti. Kickstart Why? Advantages How? Tools and libraries Cost? Required effort. Why? Technological evolution (2008 –

Building a robot

Tangobot: PerceptionMotion

Tracking

Depth Perception

Area Learning Google

Tango

Page 17: Julian Cerruti Juan Ignacio Ubeira - ROSCon 2020 · Julian Cerruti. Kickstart Why? Advantages How? Tools and libraries Cost? Required effort. Why? Technological evolution (2008 –

Building a robot

Tangobot: Tango and ROS interfacing

Tango ROS Streamer wiki: http://wiki.ros.org/tango_ros_streamer

Raw data

ROS data

Navstack

Native node (Maven)

Tango ROS node

• Pose• Pointclouds• Cameras

Page 18: Julian Cerruti Juan Ignacio Ubeira - ROSCon 2020 · Julian Cerruti. Kickstart Why? Advantages How? Tools and libraries Cost? Required effort. Why? Technological evolution (2008 –

Building a robot

Tangobot: Robot base driver

Node source: https://github.com/ekumenlabs/base_controller

Twist commands

Serial commands

Base controller

Java node (Maven)

Robot Base

Page 19: Julian Cerruti Juan Ignacio Ubeira - ROSCon 2020 · Julian Cerruti. Kickstart Why? Advantages How? Tools and libraries Cost? Required effort. Why? Technological evolution (2008 –

Next steps

Tangobot roadmap

App source: https://github.com/ekumenlabs/tangobot

Global costmapMaps• Build• Navigate• Share

GMapping

Tango ADF

New platformsBases• TurtleBot 3• iRobot Create

Page 20: Julian Cerruti Juan Ignacio Ubeira - ROSCon 2020 · Julian Cerruti. Kickstart Why? Advantages How? Tools and libraries Cost? Required effort. Why? Technological evolution (2008 –

Closing thoughts

Challenges

Multiple technologies

Package availability

Advantages

Popular devices

Evolving devices

Tools

ROSJava

ROSCpp Android

Page 21: Julian Cerruti Juan Ignacio Ubeira - ROSCon 2020 · Julian Cerruti. Kickstart Why? Advantages How? Tools and libraries Cost? Required effort. Why? Technological evolution (2008 –

Thanks!

Page 22: Julian Cerruti Juan Ignacio Ubeira - ROSCon 2020 · Julian Cerruti. Kickstart Why? Advantages How? Tools and libraries Cost? Required effort. Why? Technological evolution (2008 –

Q&A

Useful links:• http://ekumenlabs.com• http://wiki.ros.org/Robots/Tangobot• http://wiki.ros.org/rosjava• http://wiki.ros.org/android_ndk• http://wiki.ros.org/tango_ros_streamer