Skip to content

Source Code

Hiroto Takeuchi edited this page Dec 9, 2024 · 8 revisions

ROS Packages

UI

This contains main node that allows user/dev of catbot to interact with the bot and controls the robot using a terminal UI.

Foundation

This contains all of the source code required to make direct instruction to low level hardware. See foundation for more architecture guide on this directory.

ROS Network structure

flowchart TD
    A[UI]
    B[Foundation]
    
    A -->|motor/set_target_position/component_name| B
    A -->|muscle/contract/component_name| B
    A -->|muscle/relax/component_name| B
Loading

We have the following nodes:

  • UI: Terminal UI with buttons and key click handlers
  • foundation: Low level hardware communication software

Each with their own packages.

Foundation

Currently we have many topic that represents requests from the UI to the foundation. These are representing the requests made from the UI to the foundation node. The topic path follows the schema below:

<context_name>/<device_action_name>/<identifier>

See foundation for more information on vocab(context, device action, etc.)

One caveat of this schema is that for every device we add on the component module, the number of paths will increase by the number of function that is available for that device. However, this was chosen over putting the device identifier into the parameter which would have increased the complexity of the topic param type declaration. This also allows us to automatically declare paths for every device without having to manually declare topic path for every device name.

We do not have a feedback from the foundation to the UI currently and will be the goal of next semester.

External Links for Resources

ROS

  • Installation: LINK
  • Tutorials: LINK
  • Python Client Library(rclpy): LINK

Club Software Drive

Clone this wiki locally