raros is an application consisting of different subsystems that can be used to control a physical robot. This application was developed as part of a project at the Lucerne University of Applied Sciences and Arts with the goal of evaluating how such a control system can be implemented with ROS2.
Ultimately, the project should be able to be used to teach students the basic concepts of programming in a playful way, as they can see their work directly resulting in actions executed by the robot instead of just viewing some text in a terminal.
TODO
TODO
The client library is available on Maven Central and can be referenced in your project as follows:
Maven:
<dependency>
<groupId>io.github.francwhite</groupId>
<artifactId>raros-client</artifactId>
<version>1.0.1</version>
</dependency>Gradle:
implementation 'io.github.francwhite:raros-client:1.0.1'All required subsystems for the master controller (RaspberryPi) are available as docker images on GitHub Container Registry. The easiest way to get started is to use the docker-compose.yml file in the root directory of this repository.
Prerequisites:
- docker is installed
./configdirectory exists for the volume mount
Instructions:
cd [path/to/docker-compose.yaml] # change directory to where the docker-compose.yaml file is located
mkdir config # create config directory, only required on first run
docker-compose up -d # start the containers in detached modeThe code for the microcontroller (arduino) is available in the micro_ros
directory of this repository. To build and flash the software onto the microcontroller, clone the repository and use the flash.sh script located in root of said directory.
Prerequisites:
- PlatformIO CLI is installed
- Arduino is connected to the computer via USB
Instructions:
git clone https://github.com/francWhite/raros.git # clone the repository
cd raros/apps/micro_ros # navigate to the micro_ros directory
chmod +x flash.sh # make the script executable
./flash.sh # build and flash the software onto the microcontrollerMake sure that the controller and microcontroller are running and connected to the same network as the client.
The client library can be used to control the robot over the RobotController interface. An instance of the controller can be created as follows:
import io.github.francwhite.raros.client.controller.RobotControllerFactory;
...
RobotController client = RobotControllerFactory.create(URI.create("http://hostname:8000"))TODO
TODO
TODO
TODO
TODO
This project is licensed under the MIT License - see the LICENSE file for details.