Skip to content
This repository has been archived by the owner on Oct 25, 2023. It is now read-only.

Wiki guidelines

MadeInPierre edited this page Oct 25, 2018 · 1 revision

Rules and Instructions

When writing a page about a node in the project, following a few simple rules helps the Wiki be consistent and homogeneous accross all existing pages. This page provides a dummy example of how your page should look like.

Below is a structure that you must follow when creating a new page. The following sections are mandatory:

  • Description
    • Authors and versions
  • Configuration
  • Communication
  • Running the package
  • How it works

And that's it! Now go copy&paste the markdown text below and change the dummy text to a super-instructive package description! (..read the dummy text first right, I mean this is where the true guidelines are 🤔)

Description

This package is super duper freaking awesome! It lets us put a jetpack inside our robot and make it fly 🚀.

Authors and versions

  • v0.1 (A17) : @MadeInPierre
    • Jetpack class supports flying simulation
    • Main new feature here
  • v1.0 (P18) : @Jetpacker
    • Supporting communication with the jetpack arduino, can now fly (with some accuracy).

Configuration

This is where you explain how to write the XML files, config files, etc.

Step 1: creating the jetpack theoretical model

Divide your section in main steps. If this section is well-written, the user should understand how the node works while filling up the configuration info.

Example

Do not forget examples ! They are the best way of quickly explaining how the user is supposed to do something. Code samples are also welcome if needed:

def success(dedication, persistence, passion):
    dedication += 1 # dedicate yourself
    persistence += 1 # be persistent
    passion = True # have passion

    if passion is True:
        magic = dedication + persistence
        return magic
    else:
        magic = 0
        return magic

Step 2: configurating the arduino protocol

You got the idea, right?

Communication

Here you can give an organized list of what servers and clients exist in your package, and what their functions are. This will help the reader understand how the node is trigerred and what its role is in the system.

Servers

Server name Type Function
/jetpack/physicist/goto Action A client can send a goto request to this node. The node will start the navigation with the jetpack until it arrives at the specified position. Specifying a string in the attribute waypoint will make the robot go to the position associated with the given name.
/jetpack/physicist/emergency Service Simple service without arguments that will completely stop the jetpack engine.

Clients and subscriptions

Server name Type Function
/drivers/ard_jetpack/set_enabled Action When a goto action is triggered by a client, the node will activate the jetpack by sending a service request to the arduino.

Running the package

You can now give clear instructions on:

  • How to run the node(s) until they go to a fully initialized state.
  • How to explore all the nodes features (enabling certain parameters during runtime, cancelling an action if possible...)

Do not hesitate to simply give a set of launch or action commands:

rosrun jetpack_physicist physicist_node.py

How it works

Finally, you can give a extensive explanation on how the code works! Use any markdown structure to convey your ideas. The more there are images and schematics, the better!

If you use external python modules or C++ libraries, don't forget to mention how they are used in your package.