Learn the operating system for controlling simple robots
Overview
NOTE: Content here are my personal opinions, and not intended to represent any employer (past or present). “PROTIP:” here highlight information I haven’t seen elsewhere on the internet because it is hard-won, little-know but significant facts based on my personal research and experience.
VIDEO: The “first human-like robot to space” went onboard the NASA STS-133 ULF-5 mission to the International Space Station “to become a permanent resident” on the orbiting spacecraft. With a pair of robotic arms and nimble hands, the humanoid robot known as Robonaut2 (R2) can “one day venture outside the station (for EVA) to help spacewalkers to make repairs or additions to the station or perform scientific work.”
“It can lift heavy objects in space. But then, since everything is weightless, anyone can.”
https://robots.ieee.org/robots/
Why ROS?
ROS (Robotic Operating System) is the de facto standard for robot programming. It provides libraries and tools to help software developers create robot applications. It provides hardware abstraction, device drivers, libraries, visualizers, message-passing, package management, and more.
ROS was originally developed in 2007 at Stanford university’s Artificial Intelligence Laboratory. Since 2013 it is managed by OSRF (Open Source Robotics Foundation) and offered free to use under open source BSD license.
ROS runs within Ubuntu 14.04 (not other Linux flavors).
ROS modules can be written in any language for which a client library exists (C++, Python, Java, MATLAB, etc.).
-
Python - VIDEO
-
MATLAB - MATLAB
-
https://github.com/siemens/ros-sharpROS# is a set of open source software libraries and tools in C# for communicating with ROS from .NET applications, in particular Unity3D
https://docs.google.com/presentation/d/1qPtCeO6QDLKaYEKVROqICuv20lecLNQAEz7J8GD73c4/edit#slide=id.g119ec7c0a1_0_190
Hardware
https://wiki.ros.org/Industrial/supported_hardware
Richard Wang https://www.youtube.com/watch?v=lgWnBWncRkU Closed-loop Control of a Hardware Robot in ROS (part 5)
https://www.instructables.com/id/Autonomous-Mobile-Robot-Using-ROS/
Installation
http://wiki.ros.org/ROS/Installation
http://wiki.ros.org/indigo/Installation/Ubuntu
http://wiki.ros.org/catkin/workspaces
Gazebo 3D Simulator
Gazebo visually simulates (displays) what the robot does.
http://gazebosim.org/tutorials
-
The Gazebo software includes a database of many robots and environments (Gazebo worlds)
rosrun gazebo_ros gazebo
Catkin
Catkin is the ROS build system to generate executables, libraries, and interfaces.
A CMake-based build system that is used to build all packages in ROS.
-
Build the Eclipse project files with additional build flag
§ The project files will be generated in ~/catkin_ws/build
catkin_make
-
Setup a Project in the Eclipse IDE:
catkin build package_name -G"Eclipse CDT4 - Unix Makefiles" -DCMAKE_CXX_COMPI
Download
-
Directly clone to your catkin workspace.
Using a common git folder is convenient if you have multiple catkin workspaces.
-
Open a terminal and browse to your git folder
cd ~/gits
-
Clone the Git repository with
git clone https://github.com/ethzasl/ros_best_practices.git
-
Symlink the new package to your catkin workspace
ln -s ~/git/ros_best_practices/ ~/catkin_ws/src/
Launch
-
Launch files are written in XML as *.launch files
Master
The ROS Master manages the communication between nodes.
Every node registers at startup with the master.
-
Start a master with
roscore
-
See http://wiki.ros.org/Master
Nodes
-
Run a talker demo node with
rosrun roscpp_tutorials talker
Ideas
http://robotwebtools.org/ IS A COLLECTION OF OPEN-SOURCE MODULES AND TOOLS FOR BUILDING WEB-BASED ROBOT APPS.
http://robotwebtools.org/demos.html
Justin Huang
(jstnhuang on GitHub), PhD student in robotics at the University of Washington in Seattle, Washington
ROS tutorial #1: Introduction, Installing ROS, and running the Turtlebot simulator 135K views
ROS tutorial #2: Publishers and subscribers 39K views
ROS tutorial #2.1: C++ walkthrough of publisher / subscriber lab 41K views
Tutorial Thursday! #1: ROS basics 47K views
Peter Frankhauser
pfankhauser@ethz.ch rsl.ethz.ch at rsl.ethz.ch in Zurich, Switzerland
Programming for Robotics (ROS) Course
2 Eclipse IDE C++ Slides at PDF
3 UI, Robot Models TF Transformation System http://wiki.ros.org/tf2 rqt User Interface Robot models (URDF) Unified Robot Description Format describes your robot. (composition, length of the different parts of the arm, which joints it contains, etc.) The MoveIt! assistant for configuration.
roslaunch moveit_setup_assistant setup_assistant.launch
Simulation descriptions (SDF) sdformat.org See PDF
4 Slides at https://github.com/ethz-asl/ros_best_practices/wiki
[ROS tutorial for beginners] Chapter 1- Intro to Robot Operating System The Construct 12K views
Lentin Joseph
Mastering ROS for Robotics Programming - Second Edition February 26, 2018 By Lentin Joseph, Jonathan Cacace | $39.99 $8 Discover best practices and troubleshooting solutions when working on ROS.
ROS Robotics Projects By Lentin Joseph | $39.99 $8
Build a variety of awesome robots that can see, sense, move, and do a lot more using the powerful Robot Operating System.
Anil Mahtani
Effective Robotics Programming with ROS - Third Edition By Anil Mahtani et al. | $39.99 $20.00 Find out everything you need to know to build powerful robots with the most up-to-date ROS.
- ROS Programming: Building Powerful Robots (Packt)
Robot Ignite Academy
References
rosrobots.com Exciting Robotics Projects and Tutorials using ROS Build a variety of awesome robots that can see, sense, move, and more using the powerful Robot Operating System. Packt Book talks about interfaces to self-driving cars, Leap Motion VR, Tensor Flow.
ROS Robotics By Example - Second Edition November 30, 2017 By Carol Fairchild, Dr. Thomas L. Harman | $39.99 $20.00 Learning how to build and program your own robots with the most popular open source robotics programming framework.
http://www.ros.org/browse/list.php
github.com/ethz-asl/ros_best_practices/wiki
“All I want is a two-finger robot that presses up/down buttons on a remote device.”
VIDEO http://www.openbionics.org focus on robotic hands with 5 fingers.
VIDEO: The microdot push by Naran is it (for $50). But it’s out of stock.