Learn the operating system for viewing using Gazebo and controlling simple robots
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/
https://www.nvidia.com/en-us/learn/learning-path/robotics/ Robotics Fundamentals Start your robotics journey with essential foundations in simulation, Robot Operating System (ROS), and robot learning. Discover how to build intelligent robotic systems with NVIDIA Isaac™, a comprehensive ecosystem for robotic development, with these NVIDIA Deep Learning Institute (DLI) courses. Gain a foundational understanding of core robotics concepts and explore essential workflows in simulation and robot learning with hands-on training in Isaac Sim™ and Isaac Lab.
Areas
- Perception
- Planning
- Control
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:
- Boston Dynamics - Known for their advanced humanoid and quadruped robots like Atlas and Spot. They focus on creating highly mobile and dexterous robots.
- NVIDIA - Develops the Isaac robotics platform for designing, simulating and deploying robots. Their AI technologies power many autonomous machines.
- Intuitive Surgical - Pioneers in robotic-assisted surgery with their da Vinci surgical systems.
- ABB Robotics - Major player in industrial robotics and automation.
- FANUC - Leading manufacturer of industrial robots and automation systems.
Innovative Startups:
- Anduril Industries - Develops autonomous systems for defense and national security applications. Recently raised $1.5 billion at a $14 billion valuation.
- Agility Robotics - Creates bipedal robots like Digit for warehouse and logistics applications.
- Simbe Robotics - Builds autonomous robots for retail inventory management.
- Vecna Robotics - Provides autonomous mobile robots for logistics and material handling.
- Energy Robotics - Offers robot-as-a-service solutions for industrial inspections.
Specialized Robotics Companies
- iRobot - Focuses on consumer robots like the Roomba vacuum cleaner.
- DJI - Leader in consumer and commercial drones.
- Starship Technologies - Develops autonomous delivery robots.
- RightHand Robotics - Specializes in robotic picking solutions for e-commerce fulfillment.
- ANYbotics - Creates four-legged robots for industrial inspections.
- Trossen (Interbotix) robotic arms and AI-driven hardware include a $60 3-Foot Pedel, $70 Playstation 4 wireless ROS controller, $418 robot arm with camera & NOC.
Robot in space?
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 Versions
“ROS” and “ROS2” are referenced interchangeably nowaday.
- ROS
- ROS2 facilitates a multi-robot architecture, which ROS was not build for.
- ROS3
This “classic” version of Gazebo v1.9 reached 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. See 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:
- It can only specify kinematic and dynamic properties of a single robot
- It cannot specify robot pose within a world
- It’s limited in describing complex robot configurations
There are several ways to obtain a URDF file for Gazebo:
-
Pre-processed Example: The rrbot.urdf from the gazebo_ros_demos package is a readily available example.
https://gazebosim.org/docs/latest/spawn_urdf/
-
GitHub Repositories: Some repositories like mybot_ws at https://github.com/richardw05/mybot_ws provide URDF models with different configurations:
- Base URDF model
- URDF with sensors
- Navigation-enabled URDF
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.
ROS2 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.).
-
Python - VIDEO
-
MATLAB - MATLAB
-
https://github.com/siemens/ros-sharp (ROS#) 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
Raspberry Pi 5 boot times are twice as quick: around 18 seconds versus 38 seconds on Pi 4. But users on Reddit report ROS2 & Gazebo still struggles even on much faster machines like i7 laptops. So limit your simulation complexity or consider running Gazebo in headless mode (no visualization).
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 for Robotics
Gazebo (at http://gazebosim.org/) was first released in 2002 by the Open Source Robotics Foundation (OSRF) as a fork of the Player/Stage project. It has become a widely-used platform in robotics research, education, and industry.
- Best for: General purpose robotics in complex environments, ROS integration, sensor simulation. XML-based SDF (Simulation Description Format) to describe simulation environments and models and COLLADA to describe 3D models and environments.
- Why use it: Can simulate robots in large, realistic worlds with lots of sensors and actuators. Think robot arms, drones, mobile robots. Rich in sensor simulation (cameras, lidars, IMUs); complex world-building.
- Real-life Example: Building and testing a warehouse robot—including its cameras and lidars—before you deploy the physical robot. Gazebo integrates with PCL (Point Cloud Library) processing and analysis. https://www.numberanalytics.com/blog/ultimate-guide-gazebo-embedded-systems-robotics
Bullet open-source physics engine. Used in PyBullet (simple interface for ML tasks). It’s very fast, but physics accuracy can lag behind MuJoCo for contacts and robotics-specific details.
NVIDIA RTX is the most powerful (and expensive):
- Omniverse provides the underlying platform for 3D simulation and collaboration, with a modular development platform of SDKs, APIs and microservices for building 3D applications and services powered by Universal Scene Description (OpenUSD) integrate 3D assets from various content creation tools into a single scene. It provides the infrastructure for real-time, physically accurate simulation and 3D content creation. It enables multiple tools and users to collaborate on shared virtual worlds.
- Issac Sim focuses on robotics simulation and testing of a wide range of robot types.
- Cosmos leverages generative AI to accelerate synthetic data generation and world modeling.
Compared with others, NVIDIA RTX is
- Best for: AI-powered robot simulation, synthetic data generation, photorealistic environments, scalable fleet testing.
- Why use it: Leverages advanced GPU physics, realistic sensor data, and integration with AI/reinforcement learning pipelines.
- Real-life Example: Creating a synthetic dataset for a robot vision system, training an entire robot fleet virtually before ever touching hardware.
MuJoCo (Multi-Joint dynamics with Contact) at https://mujoco.org for researchers.
- Best for: Python-based workflows at https://github.com/google-deepmind/mujoco include the dm_control PyMJCF module for procedural manipulation of MuJoCo models. Advanced physics, model-based control, optimization, reinforcement learning.
- Why use it: Fast and accurate physics, especially good for contact-rich settings (robot hands, legged robots). Convex optimization, soft contacts bodies. Has C# bindings plug-in for the Unity game engine. Its dynamic and physics properties include friction, inertia, elasticity, etc.
- Real-life Example: Training a legged robot to walk using reinforcement learning before trying it in real life. See https://towardsai.net/p/artificial-intelligence/quick-start-robotics-and-reinforcement-learning-with-mujoco
Webots (educational)
V-REP (now CoppeliaSim)
Unity (game engine with robotics plugins)
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.
https://www.youtube.com/watch?v=7TVWlADXwRw What Is ROS2? - Framework Overview
Hardware
https://www.robotshop.com/collections/clearpath-robotics
- Clearpath Robotics TurtleBot 4 Lite Mobile Robot SKU: RB-Cle-04 is $1,336.99
- Clearpath Robotics TurtleBot 4 Mobile Robot SKU: RB-Cle-03 is $2,191.44
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/
- Uses Layers like on mobile phones
- https://github.com/Adam13531/crkbd/blob/choc-v3/README.md
- https://github.com/Adam13531/qmk_firmware/blob/master/keyboards/crkbd/keymaps/adam/keymap.c
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
- Totem by GEISTGEIST: https://github.com/GEIGEIGEIST/TOTEM
- Totem (Tenting version) by Bert Plasschaert: https://github.com/BertPlasschaert/TOTEM-Tenting
- Sculpted KLP Lamé Keycaps printed in resin by braindefender: https://github.com/braindefender/KLP-Lame-Keycaps
- $25.99 Soldering iron: https://pine64.com/product/pinecil-smart-mini-portable-soldering-iron/
- Soldering tip cleaner kit: https://geni.us/xQ0L1c (Amazon)
- Batteries: https://www.ebay.de/itm/256408901266
- Keymap Editor by Nick Coutsos: https://nickcoutsos.github.io/keymap-editor/
- [4:1] $9.90 Seeed Studio XIAO Microcontroller
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/
- Install Homebrew
-
Install Conda
-
Install ROS2 using RoboStack
-
Create a new Conda environment
conda create -n ros2 python=3.9
-
Activate the environment:
conda activate ros2
- Install ROS2
conda install -c robostack ros-humble-desktop
- Install Gazebo: Deactivate the ROS2 environment
conda deactivate
- Install Gazebo using Homebrew
brew install gazebo
-
Install additional ROS2-Gazebo packages
- Activate the ROS2 environment
conda activate ros2
- Install Gazebo ROS packages
conda install -c robostack ros-humble-gazebo-ros ros-humble-gazebo-ros-pkgs
- Test the installation: # Run Gazebo GUI:
gazebo
- Run RViz2
rviz2