thing • Calculates the angles for joints on a limb based on the tip • Could also be the force needed to move each joint to the appropriate position so that the tip of the limb arrives at a given coordinate as a result • Quaternion • Another physics thing • Used to calculate the rotation of a limb/joint of a robot • The coordinates of a joint would be in the form [ (x, y, z) (x, y, z, w) ]
• Supports Ubuntu on amd64 and ARM + more debian distributions • Started in 2007 at Stanford - a place called Willow Garage primarily for PR2 • Licensed under permissive BSD • Supported by OSR foundation • Mostly a message passing infrastructure • Helpful libraries for robot-y things (IK, path planning etc) • Used in a lot of real world robots • RMIT University has a fleet of drones running on ROS
• Uses ROS topics • Based on custom message formats over TCP - can use UDP too • RPC based ROS Services • Lock-step behaviour when passing messages • Based on XMLRPC • Node Graph • Addressed like a unix filesystem • Has local and global namespaces • Node registry - resides in master
the master node • Key-value database • Types • Message Types (msg) • Service Types (srv) • Packages - with manifests (build + dependencies) - package.xml • Manifests and Configs • Based on XML • URDF - used to define a robot
semi-idiomatic abstraction for robotics and IoT for Go • Already supports a lot of platforms and popular interface drivers both standard and proprietary • Extensible: • Platforms • Drivers • Supports combination of platforms • Has a lot of examples to learn from on https://gobot.io/documentation/ examples
Can represent a rover, drone or any other machine • Takes in slices of Adaptors/Drivers to compose a robot • Adaptors • Packages to control platforms • Usually specific to a platform targeted • Drivers • Packages that control hardware interfaces • Supports popular interfaces such as I2C, SPI, GPIO, PWM • Uses a custom implementation of the sysfs package
gobot • gobot.NewRobot() • Metal Gobot • Like Sphero • Not using gobot abstractions directly • Master Gobot • Master-slave pattern • Enables control over swarms of robots
rosco • Based on rcl - official C library • github.com/thejanasatan/rosco • Contributions welcome! • ROS/Gobot Workshops for students at RMIT • Do some robotics work in Rust too - shoutout to any rustaceans