1 of 15

table-bot

2022-09-23

2 of 15

3 of 15

Why this project

  • Robots are cool
  • Ties a lot of tech together
    • Electronics
    • Distributed systems
    • Networking
  • Many interesting explorable directions in the future
    • Logistics
    • Construction
    • Agriculture
  • Previous experience in open source Google-fu

4 of 15

Why present

  • Get feedback
  • Clarify progress by communicating it
  • Share struggles with unknowns - and get help!
  • Share learnings

5 of 15

Task: Move a table from kitchen to office desk

Proposed Workflow:

  1. User sends pickup=kitchen to robot via mobile phone
  2. Robot navigates to pickup
  3. User places package on robot
  4. User sends dropoff=desk to robot via mobile phone
  5. Robot navigates to dropoff
  6. Robot alerts user upon arrival at dropoff

6 of 15

Robot = Perception + Autonomy + Movement

Definition

  • Perception - sense what’s happening
    • Laser range - ping laser to wall how long to bounce back gives you distance, rpLIDAR A1
    • Odometry - how much robot moves per motor spin, wheel encoders
  • Autonomy - decide what to do
    • Map making - SLAM Toolbox
    • Path planning - Nav2
    • Orchestrating processes - ROS2
  • Movement - do it
    • Motors - SGM37-550 (stall=36kg)
    • Drivers - VNH2SP30 (for stronger motors vs popular low-current L298N)

7 of 15

Hardware setup

© Josh Newman, Articulated Robotics: Ultimate guide to using motors in robotics

8 of 15

Progress

  • Receive laser range data
  • Estimate odometry from laser data

  • Create a map of the simulated environment
  • Create path to simulated destination
  • Connect laser to mapper
  • Create real map
  • Create real path
  • Move motors
  • Send commands wirelessly server to robot
  • Connect robot to autonomous controller
  • Send commands mobile phone to server

Perception

Autonomy

Movement

9 of 15

Unknown unknowns

  • Estimate odometry from laser data
    • Explore slam-toolbox to check if this is done automatically
    • Try out Andrea Censi’s Canonical Scan Matcher - needs ros1 compatibility connector
    • Try out rf2o laser scan matching
  • Send commands wirelessly server to robot
    • Explore available connector code for Motor controller to communications middleware
    • Write custom C++

10 of 15

Progress pics

11 of 15

Open source robots use distributed systems with request/response and publish/subscribe models

Learnings

ROS2 nodes

12 of 15

There’s an open source framework for orchestrating multiple robots

Learnings

OpenRMF Hotel Example

13 of 15

Robot perception tasks are offloading computation to the cloud

Learnings

FogROS2

14 of 15

Reactive programming might prevent state-related problems when launching ROS nodes

Learnings

ReactiveX, RxROS2

  • Prevents nested callbacks in asynchronous functions

15 of 15

Thank you!! 🤖🚗