Meet Reynard the Robot

Introduction

Reynard the Robot is a simple cartoon robot designed to help users learn the Robot Raconteur communication framework, and also learn how to develop interfaces for various devices and software components. Reynard is implemented as a simple Python package that uses a web browser to display the robot and its user interface. The base of the robot can be translated in the X and Y directions, and robot arm has three revolute joints, for a total of 5 degrees of freedom. The user interface also provides a simple chat window to send and receive messages.

Reynard the Robot

Installation

Reynard the Robot is a simple Python package that can be installed using pip. To install Reynard the Robot, use the following command:

python -m pip install reynard_the_robot

On Linux, it may be necessary to use python3 instead of python. Use python3 in all future commands if this is the case. It may also be necessary to install the python3-pip package on Linux. On Ubuntu and Debian, run sudo apt-get install python3-pip to install pip for Python 3.

Start Reynard the Robot Server

Most of the examples in the Robot Raconteur documentation use Reynard the Robot as an example. To start Reynard the Robot as a Robot Raconteur service, use the following command:

python -m reynard_the_robot

Remember to use python3 instead of python on Linux if necessary.

With the server running, open a web browser to the address http://localhost:29201 to see Reynard the Robot!

The Robot Raconteur server is now and can be connected to using the Robot Raconteur client libraries. The following is an example of a Python client that connects to the Reynard the Robot server:

from RobotRaconteur.Client import *

c = RRN.ConnectService('rr+tcp://localhost:29200?service=reynard')
c.say("Hello from Robot Raconteur client!")

Reynard the Robot as a Python Package

Run the following script to run Reynard the Robot directly from Python as a Python class:

from reynard_the_robot import Reynard

reynard = Reynard()
reynard.start()
reynard.say("Hello, I am Reynard the Robot!")
reynard.teleport(100,200)

input("Press enter to exit")

Run the script using Python, and open a web browser to the address http://localhost:29201 to see Reynard the Robot.

Remember to use python3 instead of python on Linux if necessary.

Reynard the Robot Control Interfaces

Robots, industrial devices, and software components have a myriad of possible software interfaces. These interfaces can be simple digital/analog signals, serial communication, network communication, proprietary protocols, software application programming interfaces (APIs), and more. These various software interfaces can be bewildering to programmers and system integrators who are trying to make these devices work together. Reynard the Robot is designed to be representative of the types of interfaces that are commonly found in real-world devices and software components. Reynard the Robot implements several of these interfaces to help users learn how to develop interfaces for various devices and software components.

The following interfaces are provides:

  • Python Library API

  • Robot Raconteur Service

  • HTTP REST API

  • Raw ASCII Socket

  • ROS 1 (external package required)

  • ROS 2 (external package required)

See the Reynard the Robot Documentation for details on how to use these various interfaces.

The Robot Raconteur documentation uses Reynard the Robot as an example to demonstrate how to use the Robot Raconteur communication framework. The documentation will also show how to use the various interfaces to develop Robot Raconteur drivers.