PhaROS: Build ROS Robots with Pharo
PhaROS is a research projet (2013-2020) that aimed at exploring the development of robot controllers with a live programming environment.
It is also a library and a framework that allow you to write, test and deploy ROS nodes with the Pharo reflective language and its IDE.
Source Code and Documentation
- Wiki on GitHub with some documentation
- PhaROS-related blog posts with pictures and videos
- Source Code
- Main code base on SmalltalkHub (Last commit 2020-02-17)
- Demos
- Device Drivers and Nodes
- Extra-Tools and Libs
Demos with Human Size Robots
Papers & Talks
Jun 7, 2017 – Robotic Exploration and Mapping with Pharo
The document discusses simultaneous localization and mapping (SLAM) and developing robotic applications using Pharo and the Robot Operating System (ROS). It introduces SLAM and ROS, describes how PhaROS allows using Pharo within ROS, addresses limitations and bugs when developing in Pharo, and concludes by discussing future work such as automated testing and working with multiple robots.
Nov 3, 2014 – Towards Live Programming in ROS with PhaROS and LRP
The document proposes a live programming approach for the Robot Operating System (ROS) using PhaROS and LRP. It identifies limitations of ROS for live programming like static launch files and lack of hot code swapping. The approach integrates a domain specific language for hierarchical state machines called LRP with PhaROS, a ROS client for the Pharo programming language. This allows ROS nodes to be developed in Pharo and everything to happen at runtime, enabling live parameter changes, code updates, and connection changes for ROS applications. Examples of using this approach include a robot that stops on obstacles and an obstacle avoider behavior.
Aug 28, 2014 – Talking to Robots in Pharo – ESUG 2014
This document discusses challenges in robotics software development. It describes the heterogeneity of different robots with varying sensors, actuators, sizes, and computing capabilities. Developing software for multiple robot types poses difficulties with different drivers, protocols, and low-level algorithms. The document also outlines other challenges including resource constraints, hardware and software integration, changing conditions, and safety. It proposes a methodology for safe test-driven development of robotics software.
Feb 2, 2014 – PhaROS: Towards Live Environments in Robotics – FOSDEM 2014
The document discusses PhaROS, a framework for robotic behavior development based on the Robot Operating System (ROS) architecture. PhaROS aims to provide high-level abstractions to ROS and make it easier to program robots for tasks like navigation in unknown environments. It introduces concepts like nodes, topics, and services from ROS. PhaROS includes tools like a command line interface for installing, creating, and distributing robot software packages. Examples of implementations using PhaROS include drivers for robots and localization algorithms.