![]() |
industrial_robot_status_controller repositoryindustrial_robot_status_controller industrial_robot_status_interface |
|
Repository Summary
Checkout URI | https://github.com/gavanderhoorn/industrial_robot_status_controller.git |
VCS Type | git |
VCS Version | master |
Last Updated | 2023-06-28 |
Dev Status | DEVELOPED |
CI status | No Continuous Integration |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Packages
Name | Version |
---|---|
industrial_robot_status_controller | 0.1.2 |
industrial_robot_status_interface | 0.1.2 |
README
industrial_robot_status_controller
Overview
These packages provide a ros_control
compatible controller that publishes “robot status” of (industrial) robots in the form of [RobotStatus][] messages.
hardware_interface
s need to expose an IndustrialRobotStatusHandle
resource, which they update with information from a/the robot controller. The IndustrialRobotStatusController
will then take this and populate the fields of the RobotStatus
message with the information from the IndustrialRobotStatusHandle
.
Note: the controller does not implement any logic to derive the values of the fields in RobotStatus
, it merely transforms IndustrialRobotStatusHandle
into a RobotStatus
message. The hardware_interface
is responsible for implementing the correct logic to populate the fields based on information about the status of the robot controller that it interfaces with.
Installation
Binaries
These packages have been released through the ROS buildfarm. ROS Kinetic, Melodic and Noetic are supported on Ubuntu Xenial, Bionic and Noetic. All architectures supported by these ROS distributions are supported by this package.
The following command may be used to install the controller on a supported platform:
sudo apt-get install ros-kinetic-industrial-robot-status-controller
Replace kinetic
with melodic
when installing on ROS Melodic, or with noetic
on ROS Noetic.
Note: industrial_robot_status_interface
is only needed when integrating the interface into a hardware_interface
.
You can now continue with configuring your ros_control
controller stack. See the Example - Controller section below for an example controller configuration.
From source
This should only be needed in case:
- there is no release available for a particular platform
- the current release does not include a certain feature or fix available in the source repository
- changes to the packages are needed
In other cases a binary installation is preferred.
To build the packages, the following commands may be used in a Catkin workspace (example uses catkin_tools, but catkin_make
should also work):
# this assumes there is a Catkin workspace at '/path/to/catkin_ws' and it contains a 'src' sub directory
$ git -C /path/to/catkin_ws/src clone https://github.com/gavanderhoorn/industrial_robot_status_controller.git
$ rosdep update
$ rosdep install --from-paths /path/to/catkin_ws/src -i
$ cd /path/to/catkin_ws
$ catkin build
$ source devel/setup.bash
At this point the controller can be used with any ros_control
-based stack. See the Example - Controller section below for an example controller configuration.
Usage/Integration
Interface
#include
the industrial_robot_status_interface/industrial_robot_status_interface.h
header and store an instance of industrial_robot_status_interface::IndustrialRobotStatusInterface
somewhere in the hardware_interface
. Store an instance of IndustrialRobotStatusHandle
as well.
Register the IndustrialRobotStatusHandle
with the IndustrialRobotStatusInterface
and finally register the IndustrialRobotStatusInterface
with ros_control
via InterfaceManager::registerInterface(..)
.
Periodically update the IndustrialRobotStatusHandle
(typically in RobotHW::read(..)
) and set the fields (to TriState::UNKNOWN
, TriState::FALSE
or TriState::TRUE
), based upon information from the robot controller available to the hardware_interface
.
Controller
As the controller does not implement any logic itself, but merely transforms a IndustrialRobotStatusHandle
into a RobotStatus
message, it’s fully reusable and requires no source code changes (custom robot status derivation logic should be implemented in the hardware_interface
).
The controller supports two configurable settings:
-
publish_rate
: rate at whichRobotStatus
messages should be published (default: 10 Hz) -
handle_name
: name of theIndustrialRobotStatusHandle
resource exposed by thehardware_interface
(default:"industrial_robot_status_handle"
)
See the Example section below for a full configuration example of the controller.
Example
This section shows how to integrate the interface into a hardware_interface
and how to add a stanza to a ros_control
configuration file to load the controller.
Interface
Initialising and registering the IndustrialRobotStatusHandle
and IndustrialRobotStatusInterface
:
```c++ …
// these could be class members of course industrial_robot_status_interface::RobotStatus robot_status_resource_{}; industrial_robot_status_interface::IndustrialRobotStatusInterface robot_status_interface_{};
File truncated at 100 lines see the full file
CONTRIBUTING
![]() |
industrial_robot_status_controller repositoryindustrial_robot_status_controller industrial_robot_status_interface |
|
Repository Summary
Checkout URI | https://github.com/gavanderhoorn/industrial_robot_status_controller.git |
VCS Type | git |
VCS Version | master |
Last Updated | 2023-06-28 |
Dev Status | DEVELOPED |
CI status | No Continuous Integration |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Packages
Name | Version |
---|---|
industrial_robot_status_controller | 0.1.2 |
industrial_robot_status_interface | 0.1.2 |
README
industrial_robot_status_controller
Overview
These packages provide a ros_control
compatible controller that publishes “robot status” of (industrial) robots in the form of [RobotStatus][] messages.
hardware_interface
s need to expose an IndustrialRobotStatusHandle
resource, which they update with information from a/the robot controller. The IndustrialRobotStatusController
will then take this and populate the fields of the RobotStatus
message with the information from the IndustrialRobotStatusHandle
.
Note: the controller does not implement any logic to derive the values of the fields in RobotStatus
, it merely transforms IndustrialRobotStatusHandle
into a RobotStatus
message. The hardware_interface
is responsible for implementing the correct logic to populate the fields based on information about the status of the robot controller that it interfaces with.
Installation
Binaries
These packages have been released through the ROS buildfarm. ROS Kinetic, Melodic and Noetic are supported on Ubuntu Xenial, Bionic and Noetic. All architectures supported by these ROS distributions are supported by this package.
The following command may be used to install the controller on a supported platform:
sudo apt-get install ros-kinetic-industrial-robot-status-controller
Replace kinetic
with melodic
when installing on ROS Melodic, or with noetic
on ROS Noetic.
Note: industrial_robot_status_interface
is only needed when integrating the interface into a hardware_interface
.
You can now continue with configuring your ros_control
controller stack. See the Example - Controller section below for an example controller configuration.
From source
This should only be needed in case:
- there is no release available for a particular platform
- the current release does not include a certain feature or fix available in the source repository
- changes to the packages are needed
In other cases a binary installation is preferred.
To build the packages, the following commands may be used in a Catkin workspace (example uses catkin_tools, but catkin_make
should also work):
# this assumes there is a Catkin workspace at '/path/to/catkin_ws' and it contains a 'src' sub directory
$ git -C /path/to/catkin_ws/src clone https://github.com/gavanderhoorn/industrial_robot_status_controller.git
$ rosdep update
$ rosdep install --from-paths /path/to/catkin_ws/src -i
$ cd /path/to/catkin_ws
$ catkin build
$ source devel/setup.bash
At this point the controller can be used with any ros_control
-based stack. See the Example - Controller section below for an example controller configuration.
Usage/Integration
Interface
#include
the industrial_robot_status_interface/industrial_robot_status_interface.h
header and store an instance of industrial_robot_status_interface::IndustrialRobotStatusInterface
somewhere in the hardware_interface
. Store an instance of IndustrialRobotStatusHandle
as well.
Register the IndustrialRobotStatusHandle
with the IndustrialRobotStatusInterface
and finally register the IndustrialRobotStatusInterface
with ros_control
via InterfaceManager::registerInterface(..)
.
Periodically update the IndustrialRobotStatusHandle
(typically in RobotHW::read(..)
) and set the fields (to TriState::UNKNOWN
, TriState::FALSE
or TriState::TRUE
), based upon information from the robot controller available to the hardware_interface
.
Controller
As the controller does not implement any logic itself, but merely transforms a IndustrialRobotStatusHandle
into a RobotStatus
message, it’s fully reusable and requires no source code changes (custom robot status derivation logic should be implemented in the hardware_interface
).
The controller supports two configurable settings:
-
publish_rate
: rate at whichRobotStatus
messages should be published (default: 10 Hz) -
handle_name
: name of theIndustrialRobotStatusHandle
resource exposed by thehardware_interface
(default:"industrial_robot_status_handle"
)
See the Example section below for a full configuration example of the controller.
Example
This section shows how to integrate the interface into a hardware_interface
and how to add a stanza to a ros_control
configuration file to load the controller.
Interface
Initialising and registering the IndustrialRobotStatusHandle
and IndustrialRobotStatusInterface
:
```c++ …
// these could be class members of course industrial_robot_status_interface::RobotStatus robot_status_resource_{}; industrial_robot_status_interface::IndustrialRobotStatusInterface robot_status_interface_{};
File truncated at 100 lines see the full file
CONTRIBUTING
![]() |
industrial_robot_status_controller repositoryindustrial_robot_status_controller industrial_robot_status_interface |
|
Repository Summary
Checkout URI | https://github.com/gavanderhoorn/industrial_robot_status_controller.git |
VCS Type | git |
VCS Version | master |
Last Updated | 2023-06-28 |
Dev Status | DEVELOPED |
CI status | No Continuous Integration |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Packages
Name | Version |
---|---|
industrial_robot_status_controller | 0.1.2 |
industrial_robot_status_interface | 0.1.2 |
README
industrial_robot_status_controller
Overview
These packages provide a ros_control
compatible controller that publishes “robot status” of (industrial) robots in the form of [RobotStatus][] messages.
hardware_interface
s need to expose an IndustrialRobotStatusHandle
resource, which they update with information from a/the robot controller. The IndustrialRobotStatusController
will then take this and populate the fields of the RobotStatus
message with the information from the IndustrialRobotStatusHandle
.
Note: the controller does not implement any logic to derive the values of the fields in RobotStatus
, it merely transforms IndustrialRobotStatusHandle
into a RobotStatus
message. The hardware_interface
is responsible for implementing the correct logic to populate the fields based on information about the status of the robot controller that it interfaces with.
Installation
Binaries
These packages have been released through the ROS buildfarm. ROS Kinetic, Melodic and Noetic are supported on Ubuntu Xenial, Bionic and Noetic. All architectures supported by these ROS distributions are supported by this package.
The following command may be used to install the controller on a supported platform:
sudo apt-get install ros-kinetic-industrial-robot-status-controller
Replace kinetic
with melodic
when installing on ROS Melodic, or with noetic
on ROS Noetic.
Note: industrial_robot_status_interface
is only needed when integrating the interface into a hardware_interface
.
You can now continue with configuring your ros_control
controller stack. See the Example - Controller section below for an example controller configuration.
From source
This should only be needed in case:
- there is no release available for a particular platform
- the current release does not include a certain feature or fix available in the source repository
- changes to the packages are needed
In other cases a binary installation is preferred.
To build the packages, the following commands may be used in a Catkin workspace (example uses catkin_tools, but catkin_make
should also work):
# this assumes there is a Catkin workspace at '/path/to/catkin_ws' and it contains a 'src' sub directory
$ git -C /path/to/catkin_ws/src clone https://github.com/gavanderhoorn/industrial_robot_status_controller.git
$ rosdep update
$ rosdep install --from-paths /path/to/catkin_ws/src -i
$ cd /path/to/catkin_ws
$ catkin build
$ source devel/setup.bash
At this point the controller can be used with any ros_control
-based stack. See the Example - Controller section below for an example controller configuration.
Usage/Integration
Interface
#include
the industrial_robot_status_interface/industrial_robot_status_interface.h
header and store an instance of industrial_robot_status_interface::IndustrialRobotStatusInterface
somewhere in the hardware_interface
. Store an instance of IndustrialRobotStatusHandle
as well.
Register the IndustrialRobotStatusHandle
with the IndustrialRobotStatusInterface
and finally register the IndustrialRobotStatusInterface
with ros_control
via InterfaceManager::registerInterface(..)
.
Periodically update the IndustrialRobotStatusHandle
(typically in RobotHW::read(..)
) and set the fields (to TriState::UNKNOWN
, TriState::FALSE
or TriState::TRUE
), based upon information from the robot controller available to the hardware_interface
.
Controller
As the controller does not implement any logic itself, but merely transforms a IndustrialRobotStatusHandle
into a RobotStatus
message, it’s fully reusable and requires no source code changes (custom robot status derivation logic should be implemented in the hardware_interface
).
The controller supports two configurable settings:
-
publish_rate
: rate at whichRobotStatus
messages should be published (default: 10 Hz) -
handle_name
: name of theIndustrialRobotStatusHandle
resource exposed by thehardware_interface
(default:"industrial_robot_status_handle"
)
See the Example section below for a full configuration example of the controller.
Example
This section shows how to integrate the interface into a hardware_interface
and how to add a stanza to a ros_control
configuration file to load the controller.
Interface
Initialising and registering the IndustrialRobotStatusHandle
and IndustrialRobotStatusInterface
:
```c++ …
// these could be class members of course industrial_robot_status_interface::RobotStatus robot_status_resource_{}; industrial_robot_status_interface::IndustrialRobotStatusInterface robot_status_interface_{};
File truncated at 100 lines see the full file