Wilson Mar bio photo

Wilson Mar

Hello!

Calendar YouTube Github Acronyms

LinkedIn

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/

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?

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.

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

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

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.

  • ROS Programming: Building Powerful Robots (Packt)

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

  • 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/

  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