Giter Site home page Giter Site logo

smarc2's Introduction

SMaRC 2 for ROS 2 Humble

This is the repository of packages for ROS Humble. Each of the following directories also include more detailed readmes within.

This document has step-by-step instructions to get things running.

Stuff in this repo

Add more directories as needed.

The main consideration is: where will this run?

  • Make submodule (see docs) if:
    • It only runs on a specific setup, like ONLY the sam harware or ONLY the sim.
    • It is a single-use "I just need this data once and then I will forget about it" kind of thing
  • Make a normal dir if:
    • It can be run anywhere. Like localization and control stuffs.
    • It does not do anything until manually invoked. Like GUI stuff.

High-level constructs like action servers and behaviour trees. These usually rely on many other packages to function.

Docker-related stuff. Like dockerfiles and other such artifacts.

A good starting point if you would like to start writing some code to run on a robot. Check this basic tutorial on creating a package to start your journey into Ros Humble.

Images, diagrams, pdfs, text that describe larger concepts that apply to multiple packages.

Tutorials and such also go here.

Individual packages should have their own documentation in their readme files.

Where example nodes and code go. These are not meant to be ran on a robot, and usually their performance is not the point. If you had to give a piece of code out more than once, it should live here.

Packages/repos to use equipment not directly linked to one vehicles (i.e UW GPS, Mocap)

Packages that we have not developed ourlseves entirely, but rely on. Maybe with edits from us that are not available upstream. Always check the license of the package you put here!

Packages related to external-to-robot control and monitoring. Stuff like MQTT and node-red configurations.

All ROS message, action and service definitions should live here. Put them in appropriate packages, like sam-hardware specific stuff in sam_msgs and so on.

Splitting messages into multiple packages depending on their use context is very, very welcome. If some messages are basically used only "internally", that set of messages should be in their own package here. An example would be "BT messages" that only the behaviour tree interacts with. Or "SLAM messages" used for communication between some slam-related nodes and nowhere else.

Packages related to DR localization and mapping.

Where scripts for ease-of-use are stored.

This is where our simulation-related packages live. If something is required ONLY for the sim and not anywhere else, that thing should be in here. Similar to Sam, these are submodules. From the perspective of ROS, simulation is just another robot.

Packages that by themselves aren't very useful, but contain commonly used things like LATLON <-> UTM conversion services, simple motion planners like a dubins vehicle and similar.

Scripts and launches to get the vehicles up

URDF files and the accompanying models of individual robots. These are depended on by many packages and should require no dependencies.

Vehicles's hardware-specific packages. It is likely that these packages will not compile or run on anything but the real SAM hardware. These should be set up as submodules.

smarc2's People

Contributors

kkalem avatar ignaciotb avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.