Skip to content

GitLab

  • Projects
  • Groups
  • Snippets
  • Help
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
H harvest-automation
  • Project overview
    • Project overview
    • Details
    • Activity
    • Releases
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 4
    • Issues 4
    • List
    • Boards
    • Labels
    • Service Desk
    • Milestones
  • Merge requests 0
    • Merge requests 0
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Operations
    • Operations
    • Incidents
    • Environments
  • Analytics
    • Analytics
    • CI/CD
    • Repository
    • Value Stream
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Members
    • Members
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • Henrik Andreasson
  • harvest-automation
  • Wiki
  • ros services

ros services · Changes

Page history
nicholas created page: ros services authored Jul 27, 2020 by Nicholas Shindler's avatar Nicholas Shindler
Hide whitespace changes
Inline Side-by-side
Showing with 16 additions and 0 deletions
+16 -0
  • ros-services.md ros-services.md +16 -0
  • No files found.
ros-services.md 0 → 100644
View page @ ca19b997
# ROS Services
The writer parent class takes information from a **ROS** topic and writes it to the HV Robot.
Writer classes subscribe to a topic, the data is taken and formatted as a message paired with a [probe](probes) that is saved to a array in the object. while the code is running, at the set interval (default 100hz) all the messages from all the probes are taken and sent to the robot. This means that the messages are always sent in a single data packet and no faster than the speed that the ros node is looping.
## Creating A Writer
### creating the class
To create a new function to send data to the HV Robot, the Writer class must be extended. the child class needs to have a `__init__()` function where the *subscriber* is defined and the probe name is passed to the parent constructor; and a `callback` function where the data is formatted to be passed to the robot over the probes.
#### formatting the data
The writer will take either a list of messages or a single message. if you send a single message, and there is only a single probe associated with the class, then a single probe-message tuple is created, if there are multiple probes associated with this class, then each probe is sent the same message. If a message array is passed and there are multiple probes defined, then the two arrays will be zipped together, and if they are not the same length then it will raise an exception. messages are associated to probes sequentially, so data at index 0 is paired with probe at index 0.
### adding to options
All new controller classes need to be added to the options in the parser controller argument, and subsequently to the all services list as well as the controllers list in `main_node.py`. This requires creating an Enum value for the controller as well as defining it as a variable in `config.py`. finally the class needs to be added to the *cmdr* list in the `hv_client.py` constructor.
\ No newline at end of file
Clone repository
  • client
  • Home
  • probes
  • reader
  • ros services
  • setup
  • writer