bomonike

Learn the operating system for viewing using Gazebo and controlling simple robots

ros.png

This is at https://bomonike.github.io/ros with source at https://github.com/bomonike/bomonike.github.io/blob/master/ros.md

https://classic.gazebosim.org/tutorials?tut=ros_urdf

https://gazebosim.org/docs/ionic/spawn_urdf/

Areas

Companies

The robotics industry is rapidly evolving, with companies innovating in areas like industrial automation, healthcare, defense, consumer products, and autonomous systems. Many of these companies are pushing the boundaries of artificial intelligence, computer vision, and advanced mechanical engineering to create increasingly capable and versatile robotic systems.

Major Players:

Innovative Startups:

Specialized Robotics Companies

Robot in space?

ros-Robonaut2-ISS-770x578

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.”

Amazing

The IEEE catalogs robot projects at

https://robots.ieee.org/robots/

Mechatronics

Oliver Foote talks Mechatronics on his YouTube channel

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 the OSRF (Open Source Robotics Foundation) at openrobotics.org and offered free to use under open source BSD license at
https://github.com/ros

But in December 2022, the business of OSRC and OSRC-SG was acquired by Intrinsic.ai, an Alphabet (Google) company that sells a the Flowstate robot developer environment.

ros-intrinsic-flow-1898x1162.png

ROS Versions

“ROS” and “ROS2” are referenced interchangeably nowaday.

This “classic” version of Gazebo at v1.9 reaches end-of-life in January 2025.

URDF to SDF

URDF (Unified Robot Description Format) is a popular code-independent, human-readable format to describe the geometry of robots and their cells. It’s XML in format.

https://wiki.ros.org/urdf

It’s used for collision checking and dynamic path planning. Think of it like a textual CAD description: “part-one is 1 meter left of part-two and has the following triangle-mesh for display purposes.”

Currently, its limitations:

There are several ways to obtain a URDF file for Gazebo:

The URDF syntax breaks proper formatting with heavy use of XML attributes, which in turn makes URDF more inflexible. There is also no mechanism for backward compatibility.

To deal with this issue, a new format called the Simulation Description Format (SDF) was created for use in Gazebo. http://sdformat.org Also XML, SDF is a complete description for everything from the world level down to the robot level. It is scalable, and makes it easy to add and modify elements. The SDF format is itself described using XML, which facilitates a simple upgrade tool to migrate old versions to new versions. It is also self-descriptive.

The Prop Shop at https://3dprop.store is an on online repository of 3D models.

Thoughtworks Tech Radar

The influential October, 2024 publication
https://www.thoughtworks.com/radar/languages-and-frameworks/summary/ros-2 says:

“ROS 2 is an open-source framework designed for the development of robotic systems. It provides a set of libraries and tools that enable the modular implementation of applications, covering functions like inter-process communication, multithreaded execution and quality of service. ROS 2 builds on its predecessor by providing improved real-time capabilities, better modularity, increased support for diverse platforms and sensible defaults. ROS 2 is gaining traction in the automotive industry; its node-based architecture and topic-based communication model are especially attractive for manufacturers with complex, evolving in-vehicle applications, such as autonomous driving functionality.”

ROS Specs

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.).

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

Simulators

Gazebo, Bullet, Issac

Gazebo 3D Simulator

Gazebo visually simulates (displays) what the robot does.

http://gazebosim.org

http://gazebosim.org/tutorials

  1. 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.

  2. Build the Eclipse project files with additional build flag

    § The project files will be generated in ~/catkin_ws/build

    catkin_make
  3. Setup a Project in the Eclipse IDE:

     catkin build package_name -G"Eclipse CDT4 - Unix Makefiles"
    -DCMAKE_CXX_COMPI

    Download

  4. Directly clone to your catkin workspace.

    Using a common git folder is convenient if you have multiple catkin workspaces.

  5. Open a terminal and browse to your git folder

    cd ~/gits
    
    
  6. Clone the Git repository with

     git clone https://github.com/ethzasl/ros_best_practices.git
  7. Symlink the new package to your catkin workspace

    ln -s ~/git/ros_best_practices/ ~/catkin_ws/src/

    Launch

  8. 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.

  9. Start a master with

     roscore 
  10. See http://wiki.ros.org/Master

    Nodes

  11. 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

Course 1 Slides PDF

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.

Robot Ignite Academy

ROS in 5 days by the Robot Ignite Academy at theconstructsim.com/robotigniteacademy_learnros/ros-courses-library

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.

VIDEO:

http://www.ros.org/browse/list.php

PDF in GitHub

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.

https://www.youtube.com/watch?v=7TVWlADXwRw What Is ROS2? - Framework Overview

Hardware

https://www.robotshop.com/collections/clearpath-robotics

Arduino Alvik

https://store.arduino.cc/products/alvik 158,60 For an obstacle avoidance robot to a smart warehouse automation robot car. Powered by the versatile Nano ESP32. MicroPython and Arduino language. soon plans to introduce block-based coding Sensors: Alvik’s Time of Flight, RGB color and line-following array sensors, along with its 6-axis gyroscope and accelerometer. Comes with LEGO® Technic™ connectors, M3 screw connectors for custom 3D or laser-cutter designs.

Servo, I2C Grove, and I2C Qwiic connectors Add motors for controlling movement and robotic arms, or integrate extra sensors

Ranka Emika Robot

https://www.franka.de/co is based in Munchin (Munich), Germany

https://www.youtube.com/watch?v=bXo68UFNyhk Torque sensors in all seven axes enable the arm to manipulate delicate objects such as jewlery.

https://www.youtube.com/watch?v=MI4QqJY6nJA The $700 MyCobot Pi robot arm from Elephant Robotic has 6 DoF.

It’s driven by a Raspberry Pi.

Robotic arms

https://www.youtube.com/watch?v=q35VVfmouX8 Should you Buy a Robotic Arm? by Austen Paul

https://www.youtube.com/watch?v=e3TNaIyTAnY I Made a Robot Arm to Hold My Camera [$500] by 3DprintedLife

Alt Keyboard Builds

https://www.youtube.com/watch?v=rfJUuSfouM4 What the heck is a $279 Corne 42 MX split keyboard? Made my own 36-key. by Adam Learns https://adamlearns.live/

Lily58

https://www.youtube.com/watch?v=fU2H1dTXcJU Review: Sofle Split Mechanical Keyboard – build, encoders, choc switches. Full Review. by Ben Frain

https://www.youtube.com/watch?v=rvM2BthjEI4 Building My Endgame Split Keyboard from Scratch

https://www.youtube.com/watch?v=PhxM8o__9Xo My Journey From Mechanical to Ergonomic Keyboards | The Story of Kaly

https://www.youtube.com/watch?v=h_ex-oMVOrI Building Dactyl Cygnus by Juha Kauppinen

https://www.youtube.com/watch?v=N_mZEbJmKYg Prebuilt Split Keyboards Aren’t Overpriced by If Coding Were Natural

https://www.youtube.com/watch?v=fU2H1dTXcJU Review: Sofle Split Mechanical Keyboard – build, encoders, choc switches. Full Review. Ben Frain

https://www.youtube.com/watch?v=IJxuzyO9b8M How to Build a Custom Keyboard From Scratch | Part 1 Layout and Design by Casual Coders

https://www.youtube.com/watch?v=EOaPb9wrgDY Try the keyboards for yourself: https://adumb-codes.github.io Code for all my videos is available at: https://github.com/sponsors/adumb-codes/

https://www.youtube.com/watch?v=riqmW3UHqPY My favorite ergo split keyboard so far EIGA

https://www.youtube.com/watch?v=7UXsD7nSfDY I Built My Dream Keyboard from Absolute Scratch Christian Selig

https://www.youtube.com/watch?v=Ong_-2G9RDM the endgame keyboard by Joshua Blais

https://www.youtube.com/watch?v=l5kAx08Iom4 How to Build a Wireless Lily58 Keyboard Joe Scotto

AI Agent

https://www.youtube.com/watch?v=WxcBEXkQoSE Creating the MOST POWERFUL AI Agent for Your Second Brain by Logan Hallucinates

VEX Robotics labs

https://education.vex.com/stemlabs/cs

Install ROS2 and Gazebo on Ubuntu

https://releases.ubuntu.com/noble/

  1. Install Homebrew
  2. Install Conda

  3. Install ROS2 using RoboStack

  4. Create a new Conda environment

    conda create -n ros2 python=3.9
    
  5. Activate the environment:

    conda activate ros2
    
  6. Install ROS2
    conda install -c robostack ros-humble-desktop
    
  7. Install Gazebo: Deactivate the ROS2 environment
    conda deactivate
    
  8. Install Gazebo using Homebrew
    brew install gazebo
    
  9. Install additional ROS2-Gazebo packages

  10. Activate the ROS2 environment
    conda activate ros2
    
  11. Install Gazebo ROS packages
    conda install -c robostack ros-humble-gazebo-ros ros-humble-gazebo-ros-pkgs
    
  12. Test the installation: # Run Gazebo GUI:
    gazebo
    
  13. Run RViz2
    rviz2