Skip to content

petercsauer/ros_controller

Repository files navigation

ros_controller

Project Description

The ROS Controller was created as a part of a MSR @ Northwestern winter project. The goal was to create a controller that can be easily customized to help ROS developers debug new applications and help regular robot technicians program new capabilities into existing applications. Please see https://petercsauer.github.io/controller.html for more information.

Usage Instructions

  • Connect the robot and controller to the same network
  • export ROS_HOSTNAME=http://raspberrypi.local:11311 (on robot)
  • export ROS_IP=raspberrypi.local (on robot)
  • roslaunch control control.launch (on controller)
  • run any node to be tested on the robot

Software

Interface

Modes of Usage

Mouse Control Mode
Joystick Control Mode
  • In this mode, the left joystick controls the menu selection options in the interface
  • This can be used to press the menu buttons in the application and run services or remote options.
  • Can switch between joystick control and velocity control modes by holding down the joystick button for 2 seconds.
Velocity Control Mode
Mouse and Keyboard Control
Info Modules
Service Modules
  • Service modules have been created to allow the developer to easily test different services offered by the robot.
  • Developers can click the play button next to a service option to run that service with an autocompleted command (\t).
  • Developers can click the main section of the service module to input their own command to run.

Configurability

Info Modules
  • Info modules can be configured in the modules.yaml file.
  • Info modules can be removed or added depending on the setting in that file and the usage case of the developer
Basic Remote
  • Action buttons can also be added through the modules.yaml file.
  • Each button has a publisher associated with it, and can publish a specific message which is configured by the developer in the modules.yaml file

Interface Modules

Nodes

Interface
  • the interface node subscribes to useful rostopics (such as the robots pose or joint states)
  • it displays this information using a GUI designed by me from scratch using pygame.
Controller
  • the controller node publishes cmd_vels from the left joystick when in Velocity control mode.
  • it also allows the user to control the mouse using pynput when in Mouse control mode.
  • the controller node also publishes an array of buttons and which one is selected currently by the joystick

Hardware

BOM

Electronics
Cables
Construction Materials
  • Black 1/4" Acrylic (Laser Cut)
  • 2" 10-32 Machine Screws (Black Oxide) (4X)
  • 10-32 Machine Nuts (4x)
  • Double Sided 3M Foam Tape

CAD

CAD Files
  • The CAD files for this project are located in the Hardware directory of this repository
  • Hardware/Assemblies/FullAssembly.sldasm: The Full controller assembly
  • Hardware/Assemblies/FrontAssembly.sldasm: The assembly of the front screen and joystick controllers
  • Hardware/Assemblies/BackAssembly.sldasm: The assembly of the RPi4 and HDMI Interface boards
  • Hardware/DXF: The DXF files for the different laser cut panels that make up the casing
Renders
  • Full Assembly Full Assembly
  • Back Assembly Back Assembly
  • Front Assembly (Side View) Front Assembly
  • Front Assembly (Back View) Front Assembly

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published