Home
Add Document
Sign In
Create An Account
Building Android Robots - ROS.org
Recommend Documents
No documents
Building Android Robots - ROS.org
Download PDF
103 downloads
235 Views
966KB Size
Report
Comment
7x faster processor. â 20x memory size. â 140x faster networking bitrate. â 100x video resolution. â More integr
Building Android Robots Juan Ignacio Ubeira Julian Cerruti
Kickstart
Tools and libraries
Why?
Advantages
Cost?
Required effort
How?
Why? Technological evolution (2008 – 2017) Samsung Galaxy S8
T-Mobile G1
✓ ✓ ✓ ✓ ✓
7x faster processor 20x memory size 140x faster networking bitrate 100x video resolution More integrated sensors
Why? Popularity pushes innovation forward Source: gs.statcounter.com
How? Tools and libraries
Infrastructure
ROSJava
• ROS implementation in pure Java • http://wiki.ros.org/rosjava
How? Tools and libraries
Infrastructure
ROSJava
• ROS implementation in pure Java • http://wiki.ros.org/rosjava
Native Libraries
Android NDK (roscpp_android)
• Cross compiled ROS packages – JNI with native node wrapper • http://wiki.ros.org/android_ndk
How? Tools and libraries
Infrastructure
ROSJava
• ROS implementation in pure Java • http://wiki.ros.org/rosjava
Native Libraries
Android NDK (roscpp_android)
• Cross compiled ROS packages – JNI with native node wrapper • http://wiki.ros.org/android_ndk
Java libraries
ROSJava Maven repository
• Place to share compiled Java artifacts • https://github.com/rosjava/rosjava_mvn_repo
Building a robot Tangobot: A Turtlebot spinoff
Autonomous Android Powered Research platform Open source Tangobot’s wiki page: http://wiki.ros.org/Robots/Tangobot
Building a robot
Building a robot Generic autonomous robot: Hardware components
Perception devices • Lasers, IMU, cameras, etc.
Processing unit • CPU & Memory
Actuators • Mobile base
Building a robot Tangobot: Hardware components Turtlebot
Tangobot Android phone (Tango-enabled)
Laser
Laptop Robot base (IMU)
Robot base
Building a robot Tangobot: Software components
Application
User Interface Node launcher
Navigation stack Sensor drivers Mobile base drivers
Building a robot Generic Navigation stack workflow
• Sensors • Goals
Inputs
Navstack • Costmaps • Planners • Recovery
• Velocity commands
Outputs
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
Building a robot Tangobot: Perception Motion Tracking
Area Learning
Google Tango
Depth Perception
Building a robot Tangobot: Tango and ROS interfacing Tango ROS node
Raw data
ROS data
Native node (Maven) Tango ROS Streamer wiki: http://wiki.ros.org/tango_ros_streamer
Navstack
• Pose • Pointclouds • Cameras
Building a robot Tangobot: Robot base driver
Twist commands
Base Serial controller commands
Robot Base
Java node (Maven) Node source: https://github.com/ekumenlabs/base_controller
Next steps Tangobot roadmap
Maps Global costmap • Build • Navigate • Share
Bases New platforms • TurtleBot 3 • iRobot Create App source: https://github.com/ekumenlabs/tangobot
GMapping Tango ADF
Closing thoughts
Challenges
Advantages
Tools
Multiple technologies
Popular devices
ROSJava
Package availability
Evolving devices
ROSCpp Android
Thanks!
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
×
Report "Building Android Robots - ROS.org"
Your name
Email
Reason
-Select Reason-
Pornographic
Defamatory
Illegal/Unlawful
Spam
Other Terms Of Service Violation
File a copyright complaint
Description
×
Sign In
Email
Password
Remember me
Forgot password?
Sign In
Our partners will collect data and use cookies for ad personalization and measurement.
Learn how we and our ad partner Google, collect and use data
.
Agree & close