Skip to content

DVA490-474-Project-Course/robot-controller-interface

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

241 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Robot Controller Interface

About

This repository contains the executable code intended for running on the individual robots (on the raspberry pi), termed Individual Robot Behaviour, and the accompanying Raspberry Pi part of the Hardware interface API.

Built with

The Robot Controller Interface is built with the following:

Getting started

Prerequisites

On Ubuntu and other Debian derivatives, CMake can be installed with:

sudo apt install build-essential cmake

For ros2 humble see: https://docs.ros.org/en/humble/Installation/Ubuntu-Install-Debs.html

For nav2 see: https://docs.nav2.org/getting_started/index.html#installation

For SLAM Toolbox see: https://docs.nav2.org/tutorials/docs/navigation2_with_slam.html

Installation

  1. Clone the repository:
git clone https://github.com/DVA490-474-Project-Course/robot-controller-interface.git
  1. Navigate to the project directory:
cd robot-controller-interface
  1. Create a build directory and navigate to it:
mkdir build & cd build
  1. Build the source code:
cmake ..
make
  1. Locate the binaries which should be stored in bin:
cd ../bin
  1. Execute the desired binaries.

Usage

To use individual robot behaviour (path planning etc), then the following preconditions must be started: Start SLAM Toolbox (this requires publishing LIDAR values on the /scan topic):

ros2 launch slam_toolbox online_async_launch.py

Start the nav2 stack (This requires SLAM Toolbox and odometry being published on /odom topic):

ros2 launch nav2_bringup navigation_launch.py

Examples

Path planning

An example showing the functionality of the path planning can be seen by doing the following (this also requires the Gazebo simulation environment, see https://docs.nav2.org/getting_started/index.html): Start Gazebo:

ros2 launch turtlebot3_gazebo turtlebot3_world.launch.py

Start SLAM Toolbox:

ros2 launch slam_toolbox online_async_launch.py

Start the nav2 stack:

ros2 launch nav2_bringup navigation_launch.py

Run the following binary available in the robot-controller-interface/bin/ (bin in this projects root):

./main_test_exe --gtest_also_run_disabled_tests --gtest_filter=DwbControllerTest.DISABLED_SendTargetPoseTest

Angle towards target and shoot (ShootSetup)

No examples available.

Roadmap

API:

  • Develop Hardware Interface

Individual Robot Behaviour (executable):

  • Develop Path planning
  • Develop robot ability to shoot
  • nav2 stack configuration
  • Integrate Hardware Interface
  • Ability to send data
  • Ability to receive data
  • Initilization of robot

Design diagrams

Design diagrams/files can be found in the docs directory. Additionally they are available on:

License

Distributed under the MIT License. See License for more information.

Contributors and contact

About

All code running on the Raspberry Pi. This includes middleman doing path planning, aiming and kicking, etc (individual robot behaviour). As well as hardware interfacing with the nucleo 144.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors