Package Summary
Tags | No category tags. |
Version | 0.2.1 |
License | BSD |
Build type | CATKIN |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/asmodehn/rostful.git |
VCS Type | git |
VCS Version | 0.2.1 |
Last Updated | 2018-04-22 |
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) |
Package Description
Additional Links
Maintainers
- AlexV
Authors
- Ben Kehoe
ROSTful
ROStful - A REST API for ROS.
We follow a feature branching workflow
Rostful is intended to be the outside layer of ROS (and eventualy any multiprocess system). Meaning it will interface ROS with other systems, over the internet, via HTTP and through a REST API. As such, this should be used as any python program, from a virtual environment. We also need to install the specific pyros interface for the system we want to expose.
` $ mkvirtualenv rostful (rostful)$ pip install rostful pyros[ros] (rostful)$ python -m rostful flask
`
A ROS package is provided as a third party release, for ease of deployment within a ROS system. However it is heavily recommended to do development the "python way", dynamically, using virtual environments, with quick iterations. The rostful PyPI package is released more often than the ROS package, and will have latest updates available for use.
PYTHON VIRTUALENV SETUP
How to setup your python virtual environment on Ubuntu (tested on Xenial
16.04) * Install and Setup virtualenvwrapper if needed
` sudo apt install virtualenvwrapper
[ * Create your virtual
environment for your project ]{.title-ref}$ mkvirtualenv myproject
[ *
Populate it to use rostful. The catkin dependency is temporarily needed
to be able to use the setup.py currently provided in rostful.
]{.title-ref}(myproject)$ pip install rostful pyros[ros] (myproject)$ pip install rostful
`
Try it now
Go check the examples
Overview
ROStful is a lightweight web server for making ROS services, topics, and actions available as RESTful web services.
ROStful web services primarily use the rosbridge JSON mapping for ROS messages. However, binary serialized ROS messages can be used to increase performance.
The purpose of ROStful is different from rosbridge: rosbridge provides an API for ROS through JSON using web sockets. ROStful allows specific services, topics, and actions to be provided as web services (using plain get and post requests) without exposing underlying ROS concepts. The ROStful client, however, additionally provides a modicum of multi-master functionality. The client proxy is a node that connects to a ROStful web service and exposes the services, topics, and actions locally over ROS.
The ROStful server has no dependencies on 3rd party libraries, and is WSGI-compatible and can therefore be used with most web servers like Apache and IIS.
ROStful web services
A ROStful web service is a web service that uses ROS data structures for input and output. These include services, topics, and actions.
Service methods accept as input a ROS message over HTTP POST and return a ROS message in the response. The input and output cannot be defined directly with ROS messages; it must use a ROS service definition.
Methods denoted as topics may use any ROS message, but are limited to accepting that message via HTTP POST or returning it, taking no input, via HTTP GET. Topic methods do not need to allow both methods. A topic method allowing POST is described as a “subscribing” method, and one that allows GET is a “publishing” method.
Methods denoted as actions consist of a set of subsidiary topic methods,
the subscribing-only goal
and cancel
methods, and the
publishing-only status
, result
, and feedback
methods. These
methods are located at the url <action method url>/<suffix>
, where
the suffix is the subsidiary method name.
The ROStful server
The ROStful server can provide services, topics, and actions that are locally available over ROS as ROStful web services. Topics may be specified as publishing, subscribing, or both.
ROStful uses the rosbridge JSON mapping by default, but binary
serialized ROS messages can be sent with the Content-Header
set to
application/vnd.ros.msg
. Giving this MIME type in the Accept
header
File truncated at 100 lines see the full file
Changelog
0.2.1 (2018-04-22)
- Now storing log in ROS_HOME when running on ROS as installed package. cosmetics. [AlexV]
0.2.0 (2018-04-21)
-
V0.2.0. [AlexV]
-
Integrated release commands to setup.py. [AlexV]
-
Cleaning up param interface to only keep a working minimum view. [AlexV]
-
Fixing getting param value. [AlexV]
-
Removing unused scripts. __main__ is now the entrypoint. [AlexV]
-
Pin numpy to latest version 1.14.2. [pyup-bot]
-
Pin hypothesis to latest version 3.56.3. [pyup-bot]
-
Pin pytest-xdist to latest version 1.22.2. [pyup-bot]
-
Pin pytest to latest version 3.5.0. [pyup-bot]
-
Removing outdated ros content. has already been moved to examples or pyros interface. [AlexV]
-
Adding pyup badges. [AlexV]
-
Cleaning up Readmes. added gitchangelog and pyup configuration. [AlexV]
-
Updating sphinx config. [AlexV]
-
Fixing dependencies to latest pyros. [AlexV]
-
Reverting to latest tox. [AlexV]
-
Reviewing dependencies and ROS packages versions. [AlexV]
-
Cleaning up travis matrix in yml. fixing travis-env in tox.ini. [AlexV]
-
Pinning tox to 2.9.1 for travis testing. [AlexV]
-
Quick fix to install python-catkin-pip on travis (doesn't get automatically pulled by rosdep apparently) [alexv]
-
Adding pyros dependency. [AlexV]
-
Fixing imports for new pyros_04. forcing PyrosROS node. removed unused server module. cleaning up instance config file. [alexv]
-
Migrating to latest catkin_pip. [AlexV]
-
Readme file command correction. [Thomas]
Fixed the command to Install and setup the virtualenvwrapper
-
Not upgrading tox on travis just yet. [AlexV]
-
Fixing tox params. [AlexV]
-
Removing tox options for hypothesis. [AlexV]
-
Removing ROS specific files. adding tox and requirements. [AlexV]
-
Fixing python-flask-restful dependency. [AlexV]
-
Adding kinetic travis checks. [AlexV]
-
Preventing switch to tornado 5 for now (breaking install on lder systems). [AlexV]
-
Making dependency on backports.ssl-mach-hostname system version dependent. [AlexV]
-
Adding python install dependency on backports.ssl-match-hostname on python <=3.4. [AlexV]
-
Now travis install current package in venv before running tests to make sure we retrieve dependencies. [AlexV]
-
Removing submodules from setup.py packages_dir. they re gone. [AlexV]
-
Default config exposes everything. Better for ease of use for now... [AlexV]
-
Commenting useless stuff. [AlexV]
-
Getting flask restful resource to work. [AlexV]
-
Getting ROS interface by defaut. better for now. [AlexV]
File truncated at 100 lines see the full file
Wiki Tutorials
Package Dependencies
Deps | Name |
---|---|
catkin_pip | |
roslint | |
rostest | |
catkin | |
rosunit | |
pyros | |
pyros_interfaces_ros | |
click | |
webargs | |
flask_cors | |
flask_reverse_proxy | |
tblib | |
rospy |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged rostful at Robotics Stack Exchange
Package Summary
Tags | No category tags. |
Version | 0.2.1 |
License | BSD |
Build type | CATKIN |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/asmodehn/rostful.git |
VCS Type | git |
VCS Version | 0.2.1 |
Last Updated | 2018-04-22 |
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) |
Package Description
Additional Links
Maintainers
- AlexV
Authors
- Ben Kehoe
ROSTful
ROStful - A REST API for ROS.
We follow a feature branching workflow
Rostful is intended to be the outside layer of ROS (and eventualy any multiprocess system). Meaning it will interface ROS with other systems, over the internet, via HTTP and through a REST API. As such, this should be used as any python program, from a virtual environment. We also need to install the specific pyros interface for the system we want to expose.
` $ mkvirtualenv rostful (rostful)$ pip install rostful pyros[ros] (rostful)$ python -m rostful flask
`
A ROS package is provided as a third party release, for ease of deployment within a ROS system. However it is heavily recommended to do development the "python way", dynamically, using virtual environments, with quick iterations. The rostful PyPI package is released more often than the ROS package, and will have latest updates available for use.
PYTHON VIRTUALENV SETUP
How to setup your python virtual environment on Ubuntu (tested on Xenial
16.04) * Install and Setup virtualenvwrapper if needed
` sudo apt install virtualenvwrapper
[ * Create your virtual
environment for your project ]{.title-ref}$ mkvirtualenv myproject
[ *
Populate it to use rostful. The catkin dependency is temporarily needed
to be able to use the setup.py currently provided in rostful.
]{.title-ref}(myproject)$ pip install rostful pyros[ros] (myproject)$ pip install rostful
`
Try it now
Go check the examples
Overview
ROStful is a lightweight web server for making ROS services, topics, and actions available as RESTful web services.
ROStful web services primarily use the rosbridge JSON mapping for ROS messages. However, binary serialized ROS messages can be used to increase performance.
The purpose of ROStful is different from rosbridge: rosbridge provides an API for ROS through JSON using web sockets. ROStful allows specific services, topics, and actions to be provided as web services (using plain get and post requests) without exposing underlying ROS concepts. The ROStful client, however, additionally provides a modicum of multi-master functionality. The client proxy is a node that connects to a ROStful web service and exposes the services, topics, and actions locally over ROS.
The ROStful server has no dependencies on 3rd party libraries, and is WSGI-compatible and can therefore be used with most web servers like Apache and IIS.
ROStful web services
A ROStful web service is a web service that uses ROS data structures for input and output. These include services, topics, and actions.
Service methods accept as input a ROS message over HTTP POST and return a ROS message in the response. The input and output cannot be defined directly with ROS messages; it must use a ROS service definition.
Methods denoted as topics may use any ROS message, but are limited to accepting that message via HTTP POST or returning it, taking no input, via HTTP GET. Topic methods do not need to allow both methods. A topic method allowing POST is described as a “subscribing” method, and one that allows GET is a “publishing” method.
Methods denoted as actions consist of a set of subsidiary topic methods,
the subscribing-only goal
and cancel
methods, and the
publishing-only status
, result
, and feedback
methods. These
methods are located at the url <action method url>/<suffix>
, where
the suffix is the subsidiary method name.
The ROStful server
The ROStful server can provide services, topics, and actions that are locally available over ROS as ROStful web services. Topics may be specified as publishing, subscribing, or both.
ROStful uses the rosbridge JSON mapping by default, but binary
serialized ROS messages can be sent with the Content-Header
set to
application/vnd.ros.msg
. Giving this MIME type in the Accept
header
File truncated at 100 lines see the full file
Changelog
0.2.1 (2018-04-22)
- Now storing log in ROS_HOME when running on ROS as installed package. cosmetics. [AlexV]
0.2.0 (2018-04-21)
-
V0.2.0. [AlexV]
-
Integrated release commands to setup.py. [AlexV]
-
Cleaning up param interface to only keep a working minimum view. [AlexV]
-
Fixing getting param value. [AlexV]
-
Removing unused scripts. __main__ is now the entrypoint. [AlexV]
-
Pin numpy to latest version 1.14.2. [pyup-bot]
-
Pin hypothesis to latest version 3.56.3. [pyup-bot]
-
Pin pytest-xdist to latest version 1.22.2. [pyup-bot]
-
Pin pytest to latest version 3.5.0. [pyup-bot]
-
Removing outdated ros content. has already been moved to examples or pyros interface. [AlexV]
-
Adding pyup badges. [AlexV]
-
Cleaning up Readmes. added gitchangelog and pyup configuration. [AlexV]
-
Updating sphinx config. [AlexV]
-
Fixing dependencies to latest pyros. [AlexV]
-
Reverting to latest tox. [AlexV]
-
Reviewing dependencies and ROS packages versions. [AlexV]
-
Cleaning up travis matrix in yml. fixing travis-env in tox.ini. [AlexV]
-
Pinning tox to 2.9.1 for travis testing. [AlexV]
-
Quick fix to install python-catkin-pip on travis (doesn't get automatically pulled by rosdep apparently) [alexv]
-
Adding pyros dependency. [AlexV]
-
Fixing imports for new pyros_04. forcing PyrosROS node. removed unused server module. cleaning up instance config file. [alexv]
-
Migrating to latest catkin_pip. [AlexV]
-
Readme file command correction. [Thomas]
Fixed the command to Install and setup the virtualenvwrapper
-
Not upgrading tox on travis just yet. [AlexV]
-
Fixing tox params. [AlexV]
-
Removing tox options for hypothesis. [AlexV]
-
Removing ROS specific files. adding tox and requirements. [AlexV]
-
Fixing python-flask-restful dependency. [AlexV]
-
Adding kinetic travis checks. [AlexV]
-
Preventing switch to tornado 5 for now (breaking install on lder systems). [AlexV]
-
Making dependency on backports.ssl-mach-hostname system version dependent. [AlexV]
-
Adding python install dependency on backports.ssl-match-hostname on python <=3.4. [AlexV]
-
Now travis install current package in venv before running tests to make sure we retrieve dependencies. [AlexV]
-
Removing submodules from setup.py packages_dir. they re gone. [AlexV]
-
Default config exposes everything. Better for ease of use for now... [AlexV]
-
Commenting useless stuff. [AlexV]
-
Getting flask restful resource to work. [AlexV]
-
Getting ROS interface by defaut. better for now. [AlexV]
File truncated at 100 lines see the full file
Wiki Tutorials
Package Dependencies
Deps | Name |
---|---|
catkin_pip | |
roslint | |
rostest | |
catkin | |
rosunit | |
pyros | |
pyros_interfaces_ros | |
click | |
webargs | |
flask_cors | |
flask_reverse_proxy | |
tblib | |
rospy |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged rostful at Robotics Stack Exchange
Package Summary
Tags | No category tags. |
Version | 0.2.1 |
License | BSD |
Build type | CATKIN |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/asmodehn/rostful.git |
VCS Type | git |
VCS Version | 0.2.1 |
Last Updated | 2018-04-22 |
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) |
Package Description
Additional Links
Maintainers
- AlexV
Authors
- Ben Kehoe
ROSTful
ROStful - A REST API for ROS.
We follow a feature branching workflow
Rostful is intended to be the outside layer of ROS (and eventualy any multiprocess system). Meaning it will interface ROS with other systems, over the internet, via HTTP and through a REST API. As such, this should be used as any python program, from a virtual environment. We also need to install the specific pyros interface for the system we want to expose.
` $ mkvirtualenv rostful (rostful)$ pip install rostful pyros[ros] (rostful)$ python -m rostful flask
`
A ROS package is provided as a third party release, for ease of deployment within a ROS system. However it is heavily recommended to do development the "python way", dynamically, using virtual environments, with quick iterations. The rostful PyPI package is released more often than the ROS package, and will have latest updates available for use.
PYTHON VIRTUALENV SETUP
How to setup your python virtual environment on Ubuntu (tested on Xenial
16.04) * Install and Setup virtualenvwrapper if needed
` sudo apt install virtualenvwrapper
[ * Create your virtual
environment for your project ]{.title-ref}$ mkvirtualenv myproject
[ *
Populate it to use rostful. The catkin dependency is temporarily needed
to be able to use the setup.py currently provided in rostful.
]{.title-ref}(myproject)$ pip install rostful pyros[ros] (myproject)$ pip install rostful
`
Try it now
Go check the examples
Overview
ROStful is a lightweight web server for making ROS services, topics, and actions available as RESTful web services.
ROStful web services primarily use the rosbridge JSON mapping for ROS messages. However, binary serialized ROS messages can be used to increase performance.
The purpose of ROStful is different from rosbridge: rosbridge provides an API for ROS through JSON using web sockets. ROStful allows specific services, topics, and actions to be provided as web services (using plain get and post requests) without exposing underlying ROS concepts. The ROStful client, however, additionally provides a modicum of multi-master functionality. The client proxy is a node that connects to a ROStful web service and exposes the services, topics, and actions locally over ROS.
The ROStful server has no dependencies on 3rd party libraries, and is WSGI-compatible and can therefore be used with most web servers like Apache and IIS.
ROStful web services
A ROStful web service is a web service that uses ROS data structures for input and output. These include services, topics, and actions.
Service methods accept as input a ROS message over HTTP POST and return a ROS message in the response. The input and output cannot be defined directly with ROS messages; it must use a ROS service definition.
Methods denoted as topics may use any ROS message, but are limited to accepting that message via HTTP POST or returning it, taking no input, via HTTP GET. Topic methods do not need to allow both methods. A topic method allowing POST is described as a “subscribing” method, and one that allows GET is a “publishing” method.
Methods denoted as actions consist of a set of subsidiary topic methods,
the subscribing-only goal
and cancel
methods, and the
publishing-only status
, result
, and feedback
methods. These
methods are located at the url <action method url>/<suffix>
, where
the suffix is the subsidiary method name.
The ROStful server
The ROStful server can provide services, topics, and actions that are locally available over ROS as ROStful web services. Topics may be specified as publishing, subscribing, or both.
ROStful uses the rosbridge JSON mapping by default, but binary
serialized ROS messages can be sent with the Content-Header
set to
application/vnd.ros.msg
. Giving this MIME type in the Accept
header
File truncated at 100 lines see the full file
Changelog
0.2.1 (2018-04-22)
- Now storing log in ROS_HOME when running on ROS as installed package. cosmetics. [AlexV]
0.2.0 (2018-04-21)
-
V0.2.0. [AlexV]
-
Integrated release commands to setup.py. [AlexV]
-
Cleaning up param interface to only keep a working minimum view. [AlexV]
-
Fixing getting param value. [AlexV]
-
Removing unused scripts. __main__ is now the entrypoint. [AlexV]
-
Pin numpy to latest version 1.14.2. [pyup-bot]
-
Pin hypothesis to latest version 3.56.3. [pyup-bot]
-
Pin pytest-xdist to latest version 1.22.2. [pyup-bot]
-
Pin pytest to latest version 3.5.0. [pyup-bot]
-
Removing outdated ros content. has already been moved to examples or pyros interface. [AlexV]
-
Adding pyup badges. [AlexV]
-
Cleaning up Readmes. added gitchangelog and pyup configuration. [AlexV]
-
Updating sphinx config. [AlexV]
-
Fixing dependencies to latest pyros. [AlexV]
-
Reverting to latest tox. [AlexV]
-
Reviewing dependencies and ROS packages versions. [AlexV]
-
Cleaning up travis matrix in yml. fixing travis-env in tox.ini. [AlexV]
-
Pinning tox to 2.9.1 for travis testing. [AlexV]
-
Quick fix to install python-catkin-pip on travis (doesn't get automatically pulled by rosdep apparently) [alexv]
-
Adding pyros dependency. [AlexV]
-
Fixing imports for new pyros_04. forcing PyrosROS node. removed unused server module. cleaning up instance config file. [alexv]
-
Migrating to latest catkin_pip. [AlexV]
-
Readme file command correction. [Thomas]
Fixed the command to Install and setup the virtualenvwrapper
-
Not upgrading tox on travis just yet. [AlexV]
-
Fixing tox params. [AlexV]
-
Removing tox options for hypothesis. [AlexV]
-
Removing ROS specific files. adding tox and requirements. [AlexV]
-
Fixing python-flask-restful dependency. [AlexV]
-
Adding kinetic travis checks. [AlexV]
-
Preventing switch to tornado 5 for now (breaking install on lder systems). [AlexV]
-
Making dependency on backports.ssl-mach-hostname system version dependent. [AlexV]
-
Adding python install dependency on backports.ssl-match-hostname on python <=3.4. [AlexV]
-
Now travis install current package in venv before running tests to make sure we retrieve dependencies. [AlexV]
-
Removing submodules from setup.py packages_dir. they re gone. [AlexV]
-
Default config exposes everything. Better for ease of use for now... [AlexV]
-
Commenting useless stuff. [AlexV]
-
Getting flask restful resource to work. [AlexV]
-
Getting ROS interface by defaut. better for now. [AlexV]
File truncated at 100 lines see the full file
Wiki Tutorials
Package Dependencies
Deps | Name |
---|---|
catkin_pip | |
roslint | |
rostest | |
catkin | |
rosunit | |
pyros | |
pyros_interfaces_ros | |
click | |
webargs | |
flask_cors | |
flask_reverse_proxy | |
tblib | |
rospy |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged rostful at Robotics Stack Exchange
Package Summary
Tags | No category tags. |
Version | 0.2.1 |
License | BSD |
Build type | CATKIN |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/asmodehn/rostful.git |
VCS Type | git |
VCS Version | 0.2.1 |
Last Updated | 2018-04-22 |
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) |
Package Description
Additional Links
Maintainers
- AlexV
Authors
- Ben Kehoe
ROSTful
ROStful - A REST API for ROS.
We follow a feature branching workflow
Rostful is intended to be the outside layer of ROS (and eventualy any multiprocess system). Meaning it will interface ROS with other systems, over the internet, via HTTP and through a REST API. As such, this should be used as any python program, from a virtual environment. We also need to install the specific pyros interface for the system we want to expose.
` $ mkvirtualenv rostful (rostful)$ pip install rostful pyros[ros] (rostful)$ python -m rostful flask
`
A ROS package is provided as a third party release, for ease of deployment within a ROS system. However it is heavily recommended to do development the "python way", dynamically, using virtual environments, with quick iterations. The rostful PyPI package is released more often than the ROS package, and will have latest updates available for use.
PYTHON VIRTUALENV SETUP
How to setup your python virtual environment on Ubuntu (tested on Xenial
16.04) * Install and Setup virtualenvwrapper if needed
` sudo apt install virtualenvwrapper
[ * Create your virtual
environment for your project ]{.title-ref}$ mkvirtualenv myproject
[ *
Populate it to use rostful. The catkin dependency is temporarily needed
to be able to use the setup.py currently provided in rostful.
]{.title-ref}(myproject)$ pip install rostful pyros[ros] (myproject)$ pip install rostful
`
Try it now
Go check the examples
Overview
ROStful is a lightweight web server for making ROS services, topics, and actions available as RESTful web services.
ROStful web services primarily use the rosbridge JSON mapping for ROS messages. However, binary serialized ROS messages can be used to increase performance.
The purpose of ROStful is different from rosbridge: rosbridge provides an API for ROS through JSON using web sockets. ROStful allows specific services, topics, and actions to be provided as web services (using plain get and post requests) without exposing underlying ROS concepts. The ROStful client, however, additionally provides a modicum of multi-master functionality. The client proxy is a node that connects to a ROStful web service and exposes the services, topics, and actions locally over ROS.
The ROStful server has no dependencies on 3rd party libraries, and is WSGI-compatible and can therefore be used with most web servers like Apache and IIS.
ROStful web services
A ROStful web service is a web service that uses ROS data structures for input and output. These include services, topics, and actions.
Service methods accept as input a ROS message over HTTP POST and return a ROS message in the response. The input and output cannot be defined directly with ROS messages; it must use a ROS service definition.
Methods denoted as topics may use any ROS message, but are limited to accepting that message via HTTP POST or returning it, taking no input, via HTTP GET. Topic methods do not need to allow both methods. A topic method allowing POST is described as a “subscribing” method, and one that allows GET is a “publishing” method.
Methods denoted as actions consist of a set of subsidiary topic methods,
the subscribing-only goal
and cancel
methods, and the
publishing-only status
, result
, and feedback
methods. These
methods are located at the url <action method url>/<suffix>
, where
the suffix is the subsidiary method name.
The ROStful server
The ROStful server can provide services, topics, and actions that are locally available over ROS as ROStful web services. Topics may be specified as publishing, subscribing, or both.
ROStful uses the rosbridge JSON mapping by default, but binary
serialized ROS messages can be sent with the Content-Header
set to
application/vnd.ros.msg
. Giving this MIME type in the Accept
header
File truncated at 100 lines see the full file
Changelog
0.2.1 (2018-04-22)
- Now storing log in ROS_HOME when running on ROS as installed package. cosmetics. [AlexV]
0.2.0 (2018-04-21)
-
V0.2.0. [AlexV]
-
Integrated release commands to setup.py. [AlexV]
-
Cleaning up param interface to only keep a working minimum view. [AlexV]
-
Fixing getting param value. [AlexV]
-
Removing unused scripts. __main__ is now the entrypoint. [AlexV]
-
Pin numpy to latest version 1.14.2. [pyup-bot]
-
Pin hypothesis to latest version 3.56.3. [pyup-bot]
-
Pin pytest-xdist to latest version 1.22.2. [pyup-bot]
-
Pin pytest to latest version 3.5.0. [pyup-bot]
-
Removing outdated ros content. has already been moved to examples or pyros interface. [AlexV]
-
Adding pyup badges. [AlexV]
-
Cleaning up Readmes. added gitchangelog and pyup configuration. [AlexV]
-
Updating sphinx config. [AlexV]
-
Fixing dependencies to latest pyros. [AlexV]
-
Reverting to latest tox. [AlexV]
-
Reviewing dependencies and ROS packages versions. [AlexV]
-
Cleaning up travis matrix in yml. fixing travis-env in tox.ini. [AlexV]
-
Pinning tox to 2.9.1 for travis testing. [AlexV]
-
Quick fix to install python-catkin-pip on travis (doesn't get automatically pulled by rosdep apparently) [alexv]
-
Adding pyros dependency. [AlexV]
-
Fixing imports for new pyros_04. forcing PyrosROS node. removed unused server module. cleaning up instance config file. [alexv]
-
Migrating to latest catkin_pip. [AlexV]
-
Readme file command correction. [Thomas]
Fixed the command to Install and setup the virtualenvwrapper
-
Not upgrading tox on travis just yet. [AlexV]
-
Fixing tox params. [AlexV]
-
Removing tox options for hypothesis. [AlexV]
-
Removing ROS specific files. adding tox and requirements. [AlexV]
-
Fixing python-flask-restful dependency. [AlexV]
-
Adding kinetic travis checks. [AlexV]
-
Preventing switch to tornado 5 for now (breaking install on lder systems). [AlexV]
-
Making dependency on backports.ssl-mach-hostname system version dependent. [AlexV]
-
Adding python install dependency on backports.ssl-match-hostname on python <=3.4. [AlexV]
-
Now travis install current package in venv before running tests to make sure we retrieve dependencies. [AlexV]
-
Removing submodules from setup.py packages_dir. they re gone. [AlexV]
-
Default config exposes everything. Better for ease of use for now... [AlexV]
-
Commenting useless stuff. [AlexV]
-
Getting flask restful resource to work. [AlexV]
-
Getting ROS interface by defaut. better for now. [AlexV]
File truncated at 100 lines see the full file
Wiki Tutorials
Package Dependencies
Deps | Name |
---|---|
catkin_pip | |
roslint | |
rostest | |
catkin | |
rosunit | |
pyros | |
pyros_interfaces_ros | |
click | |
webargs | |
flask_cors | |
flask_reverse_proxy | |
tblib | |
rospy |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged rostful at Robotics Stack Exchange
Package Summary
Tags | No category tags. |
Version | 0.2.1 |
License | BSD |
Build type | CATKIN |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/asmodehn/rostful.git |
VCS Type | git |
VCS Version | 0.2.1 |
Last Updated | 2018-04-22 |
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) |
Package Description
Additional Links
Maintainers
- AlexV
Authors
- Ben Kehoe
ROSTful
ROStful - A REST API for ROS.
We follow a feature branching workflow
Rostful is intended to be the outside layer of ROS (and eventualy any multiprocess system). Meaning it will interface ROS with other systems, over the internet, via HTTP and through a REST API. As such, this should be used as any python program, from a virtual environment. We also need to install the specific pyros interface for the system we want to expose.
` $ mkvirtualenv rostful (rostful)$ pip install rostful pyros[ros] (rostful)$ python -m rostful flask
`
A ROS package is provided as a third party release, for ease of deployment within a ROS system. However it is heavily recommended to do development the "python way", dynamically, using virtual environments, with quick iterations. The rostful PyPI package is released more often than the ROS package, and will have latest updates available for use.
PYTHON VIRTUALENV SETUP
How to setup your python virtual environment on Ubuntu (tested on Xenial
16.04) * Install and Setup virtualenvwrapper if needed
` sudo apt install virtualenvwrapper
[ * Create your virtual
environment for your project ]{.title-ref}$ mkvirtualenv myproject
[ *
Populate it to use rostful. The catkin dependency is temporarily needed
to be able to use the setup.py currently provided in rostful.
]{.title-ref}(myproject)$ pip install rostful pyros[ros] (myproject)$ pip install rostful
`
Try it now
Go check the examples
Overview
ROStful is a lightweight web server for making ROS services, topics, and actions available as RESTful web services.
ROStful web services primarily use the rosbridge JSON mapping for ROS messages. However, binary serialized ROS messages can be used to increase performance.
The purpose of ROStful is different from rosbridge: rosbridge provides an API for ROS through JSON using web sockets. ROStful allows specific services, topics, and actions to be provided as web services (using plain get and post requests) without exposing underlying ROS concepts. The ROStful client, however, additionally provides a modicum of multi-master functionality. The client proxy is a node that connects to a ROStful web service and exposes the services, topics, and actions locally over ROS.
The ROStful server has no dependencies on 3rd party libraries, and is WSGI-compatible and can therefore be used with most web servers like Apache and IIS.
ROStful web services
A ROStful web service is a web service that uses ROS data structures for input and output. These include services, topics, and actions.
Service methods accept as input a ROS message over HTTP POST and return a ROS message in the response. The input and output cannot be defined directly with ROS messages; it must use a ROS service definition.
Methods denoted as topics may use any ROS message, but are limited to accepting that message via HTTP POST or returning it, taking no input, via HTTP GET. Topic methods do not need to allow both methods. A topic method allowing POST is described as a “subscribing” method, and one that allows GET is a “publishing” method.
Methods denoted as actions consist of a set of subsidiary topic methods,
the subscribing-only goal
and cancel
methods, and the
publishing-only status
, result
, and feedback
methods. These
methods are located at the url <action method url>/<suffix>
, where
the suffix is the subsidiary method name.
The ROStful server
The ROStful server can provide services, topics, and actions that are locally available over ROS as ROStful web services. Topics may be specified as publishing, subscribing, or both.
ROStful uses the rosbridge JSON mapping by default, but binary
serialized ROS messages can be sent with the Content-Header
set to
application/vnd.ros.msg
. Giving this MIME type in the Accept
header
File truncated at 100 lines see the full file
Changelog
0.2.1 (2018-04-22)
- Now storing log in ROS_HOME when running on ROS as installed package. cosmetics. [AlexV]
0.2.0 (2018-04-21)
-
V0.2.0. [AlexV]
-
Integrated release commands to setup.py. [AlexV]
-
Cleaning up param interface to only keep a working minimum view. [AlexV]
-
Fixing getting param value. [AlexV]
-
Removing unused scripts. __main__ is now the entrypoint. [AlexV]
-
Pin numpy to latest version 1.14.2. [pyup-bot]
-
Pin hypothesis to latest version 3.56.3. [pyup-bot]
-
Pin pytest-xdist to latest version 1.22.2. [pyup-bot]
-
Pin pytest to latest version 3.5.0. [pyup-bot]
-
Removing outdated ros content. has already been moved to examples or pyros interface. [AlexV]
-
Adding pyup badges. [AlexV]
-
Cleaning up Readmes. added gitchangelog and pyup configuration. [AlexV]
-
Updating sphinx config. [AlexV]
-
Fixing dependencies to latest pyros. [AlexV]
-
Reverting to latest tox. [AlexV]
-
Reviewing dependencies and ROS packages versions. [AlexV]
-
Cleaning up travis matrix in yml. fixing travis-env in tox.ini. [AlexV]
-
Pinning tox to 2.9.1 for travis testing. [AlexV]
-
Quick fix to install python-catkin-pip on travis (doesn't get automatically pulled by rosdep apparently) [alexv]
-
Adding pyros dependency. [AlexV]
-
Fixing imports for new pyros_04. forcing PyrosROS node. removed unused server module. cleaning up instance config file. [alexv]
-
Migrating to latest catkin_pip. [AlexV]
-
Readme file command correction. [Thomas]
Fixed the command to Install and setup the virtualenvwrapper
-
Not upgrading tox on travis just yet. [AlexV]
-
Fixing tox params. [AlexV]
-
Removing tox options for hypothesis. [AlexV]
-
Removing ROS specific files. adding tox and requirements. [AlexV]
-
Fixing python-flask-restful dependency. [AlexV]
-
Adding kinetic travis checks. [AlexV]
-
Preventing switch to tornado 5 for now (breaking install on lder systems). [AlexV]
-
Making dependency on backports.ssl-mach-hostname system version dependent. [AlexV]
-
Adding python install dependency on backports.ssl-match-hostname on python <=3.4. [AlexV]
-
Now travis install current package in venv before running tests to make sure we retrieve dependencies. [AlexV]
-
Removing submodules from setup.py packages_dir. they re gone. [AlexV]
-
Default config exposes everything. Better for ease of use for now... [AlexV]
-
Commenting useless stuff. [AlexV]
-
Getting flask restful resource to work. [AlexV]
-
Getting ROS interface by defaut. better for now. [AlexV]
File truncated at 100 lines see the full file
Wiki Tutorials
Package Dependencies
Deps | Name |
---|---|
catkin_pip | |
roslint | |
rostest | |
catkin | |
rosunit | |
pyros | |
pyros_interfaces_ros | |
click | |
webargs | |
flask_cors | |
flask_reverse_proxy | |
tblib | |
rospy |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged rostful at Robotics Stack Exchange
Package Summary
Tags | No category tags. |
Version | 0.2.1 |
License | BSD |
Build type | CATKIN |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/asmodehn/rostful.git |
VCS Type | git |
VCS Version | 0.2.1 |
Last Updated | 2018-04-22 |
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) |
Package Description
Additional Links
Maintainers
- AlexV
Authors
- Ben Kehoe
ROSTful
ROStful - A REST API for ROS.
We follow a feature branching workflow
Rostful is intended to be the outside layer of ROS (and eventualy any multiprocess system). Meaning it will interface ROS with other systems, over the internet, via HTTP and through a REST API. As such, this should be used as any python program, from a virtual environment. We also need to install the specific pyros interface for the system we want to expose.
` $ mkvirtualenv rostful (rostful)$ pip install rostful pyros[ros] (rostful)$ python -m rostful flask
`
A ROS package is provided as a third party release, for ease of deployment within a ROS system. However it is heavily recommended to do development the "python way", dynamically, using virtual environments, with quick iterations. The rostful PyPI package is released more often than the ROS package, and will have latest updates available for use.
PYTHON VIRTUALENV SETUP
How to setup your python virtual environment on Ubuntu (tested on Xenial
16.04) * Install and Setup virtualenvwrapper if needed
` sudo apt install virtualenvwrapper
[ * Create your virtual
environment for your project ]{.title-ref}$ mkvirtualenv myproject
[ *
Populate it to use rostful. The catkin dependency is temporarily needed
to be able to use the setup.py currently provided in rostful.
]{.title-ref}(myproject)$ pip install rostful pyros[ros] (myproject)$ pip install rostful
`
Try it now
Go check the examples
Overview
ROStful is a lightweight web server for making ROS services, topics, and actions available as RESTful web services.
ROStful web services primarily use the rosbridge JSON mapping for ROS messages. However, binary serialized ROS messages can be used to increase performance.
The purpose of ROStful is different from rosbridge: rosbridge provides an API for ROS through JSON using web sockets. ROStful allows specific services, topics, and actions to be provided as web services (using plain get and post requests) without exposing underlying ROS concepts. The ROStful client, however, additionally provides a modicum of multi-master functionality. The client proxy is a node that connects to a ROStful web service and exposes the services, topics, and actions locally over ROS.
The ROStful server has no dependencies on 3rd party libraries, and is WSGI-compatible and can therefore be used with most web servers like Apache and IIS.
ROStful web services
A ROStful web service is a web service that uses ROS data structures for input and output. These include services, topics, and actions.
Service methods accept as input a ROS message over HTTP POST and return a ROS message in the response. The input and output cannot be defined directly with ROS messages; it must use a ROS service definition.
Methods denoted as topics may use any ROS message, but are limited to accepting that message via HTTP POST or returning it, taking no input, via HTTP GET. Topic methods do not need to allow both methods. A topic method allowing POST is described as a “subscribing” method, and one that allows GET is a “publishing” method.
Methods denoted as actions consist of a set of subsidiary topic methods,
the subscribing-only goal
and cancel
methods, and the
publishing-only status
, result
, and feedback
methods. These
methods are located at the url <action method url>/<suffix>
, where
the suffix is the subsidiary method name.
The ROStful server
The ROStful server can provide services, topics, and actions that are locally available over ROS as ROStful web services. Topics may be specified as publishing, subscribing, or both.
ROStful uses the rosbridge JSON mapping by default, but binary
serialized ROS messages can be sent with the Content-Header
set to
application/vnd.ros.msg
. Giving this MIME type in the Accept
header
File truncated at 100 lines see the full file
Changelog
0.2.1 (2018-04-22)
- Now storing log in ROS_HOME when running on ROS as installed package. cosmetics. [AlexV]
0.2.0 (2018-04-21)
-
V0.2.0. [AlexV]
-
Integrated release commands to setup.py. [AlexV]
-
Cleaning up param interface to only keep a working minimum view. [AlexV]
-
Fixing getting param value. [AlexV]
-
Removing unused scripts. __main__ is now the entrypoint. [AlexV]
-
Pin numpy to latest version 1.14.2. [pyup-bot]
-
Pin hypothesis to latest version 3.56.3. [pyup-bot]
-
Pin pytest-xdist to latest version 1.22.2. [pyup-bot]
-
Pin pytest to latest version 3.5.0. [pyup-bot]
-
Removing outdated ros content. has already been moved to examples or pyros interface. [AlexV]
-
Adding pyup badges. [AlexV]
-
Cleaning up Readmes. added gitchangelog and pyup configuration. [AlexV]
-
Updating sphinx config. [AlexV]
-
Fixing dependencies to latest pyros. [AlexV]
-
Reverting to latest tox. [AlexV]
-
Reviewing dependencies and ROS packages versions. [AlexV]
-
Cleaning up travis matrix in yml. fixing travis-env in tox.ini. [AlexV]
-
Pinning tox to 2.9.1 for travis testing. [AlexV]
-
Quick fix to install python-catkin-pip on travis (doesn't get automatically pulled by rosdep apparently) [alexv]
-
Adding pyros dependency. [AlexV]
-
Fixing imports for new pyros_04. forcing PyrosROS node. removed unused server module. cleaning up instance config file. [alexv]
-
Migrating to latest catkin_pip. [AlexV]
-
Readme file command correction. [Thomas]
Fixed the command to Install and setup the virtualenvwrapper
-
Not upgrading tox on travis just yet. [AlexV]
-
Fixing tox params. [AlexV]
-
Removing tox options for hypothesis. [AlexV]
-
Removing ROS specific files. adding tox and requirements. [AlexV]
-
Fixing python-flask-restful dependency. [AlexV]
-
Adding kinetic travis checks. [AlexV]
-
Preventing switch to tornado 5 for now (breaking install on lder systems). [AlexV]
-
Making dependency on backports.ssl-mach-hostname system version dependent. [AlexV]
-
Adding python install dependency on backports.ssl-match-hostname on python <=3.4. [AlexV]
-
Now travis install current package in venv before running tests to make sure we retrieve dependencies. [AlexV]
-
Removing submodules from setup.py packages_dir. they re gone. [AlexV]
-
Default config exposes everything. Better for ease of use for now... [AlexV]
-
Commenting useless stuff. [AlexV]
-
Getting flask restful resource to work. [AlexV]
-
Getting ROS interface by defaut. better for now. [AlexV]
File truncated at 100 lines see the full file
Wiki Tutorials
Package Dependencies
Deps | Name |
---|---|
catkin_pip | |
roslint | |
rostest | |
catkin | |
rosunit | |
pyros | |
pyros_interfaces_ros | |
click | |
webargs | |
flask_cors | |
flask_reverse_proxy | |
tblib | |
rospy |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged rostful at Robotics Stack Exchange
Package Summary
Tags | No category tags. |
Version | 0.2.1 |
License | BSD |
Build type | CATKIN |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/asmodehn/rostful.git |
VCS Type | git |
VCS Version | 0.2.1 |
Last Updated | 2018-04-22 |
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) |
Package Description
Additional Links
Maintainers
- AlexV
Authors
- Ben Kehoe
ROSTful
ROStful - A REST API for ROS.
We follow a feature branching workflow
Rostful is intended to be the outside layer of ROS (and eventualy any multiprocess system). Meaning it will interface ROS with other systems, over the internet, via HTTP and through a REST API. As such, this should be used as any python program, from a virtual environment. We also need to install the specific pyros interface for the system we want to expose.
` $ mkvirtualenv rostful (rostful)$ pip install rostful pyros[ros] (rostful)$ python -m rostful flask
`
A ROS package is provided as a third party release, for ease of deployment within a ROS system. However it is heavily recommended to do development the "python way", dynamically, using virtual environments, with quick iterations. The rostful PyPI package is released more often than the ROS package, and will have latest updates available for use.
PYTHON VIRTUALENV SETUP
How to setup your python virtual environment on Ubuntu (tested on Xenial
16.04) * Install and Setup virtualenvwrapper if needed
` sudo apt install virtualenvwrapper
[ * Create your virtual
environment for your project ]{.title-ref}$ mkvirtualenv myproject
[ *
Populate it to use rostful. The catkin dependency is temporarily needed
to be able to use the setup.py currently provided in rostful.
]{.title-ref}(myproject)$ pip install rostful pyros[ros] (myproject)$ pip install rostful
`
Try it now
Go check the examples
Overview
ROStful is a lightweight web server for making ROS services, topics, and actions available as RESTful web services.
ROStful web services primarily use the rosbridge JSON mapping for ROS messages. However, binary serialized ROS messages can be used to increase performance.
The purpose of ROStful is different from rosbridge: rosbridge provides an API for ROS through JSON using web sockets. ROStful allows specific services, topics, and actions to be provided as web services (using plain get and post requests) without exposing underlying ROS concepts. The ROStful client, however, additionally provides a modicum of multi-master functionality. The client proxy is a node that connects to a ROStful web service and exposes the services, topics, and actions locally over ROS.
The ROStful server has no dependencies on 3rd party libraries, and is WSGI-compatible and can therefore be used with most web servers like Apache and IIS.
ROStful web services
A ROStful web service is a web service that uses ROS data structures for input and output. These include services, topics, and actions.
Service methods accept as input a ROS message over HTTP POST and return a ROS message in the response. The input and output cannot be defined directly with ROS messages; it must use a ROS service definition.
Methods denoted as topics may use any ROS message, but are limited to accepting that message via HTTP POST or returning it, taking no input, via HTTP GET. Topic methods do not need to allow both methods. A topic method allowing POST is described as a “subscribing” method, and one that allows GET is a “publishing” method.
Methods denoted as actions consist of a set of subsidiary topic methods,
the subscribing-only goal
and cancel
methods, and the
publishing-only status
, result
, and feedback
methods. These
methods are located at the url <action method url>/<suffix>
, where
the suffix is the subsidiary method name.
The ROStful server
The ROStful server can provide services, topics, and actions that are locally available over ROS as ROStful web services. Topics may be specified as publishing, subscribing, or both.
ROStful uses the rosbridge JSON mapping by default, but binary
serialized ROS messages can be sent with the Content-Header
set to
application/vnd.ros.msg
. Giving this MIME type in the Accept
header
File truncated at 100 lines see the full file
Changelog
0.2.1 (2018-04-22)
- Now storing log in ROS_HOME when running on ROS as installed package. cosmetics. [AlexV]
0.2.0 (2018-04-21)
-
V0.2.0. [AlexV]
-
Integrated release commands to setup.py. [AlexV]
-
Cleaning up param interface to only keep a working minimum view. [AlexV]
-
Fixing getting param value. [AlexV]
-
Removing unused scripts. __main__ is now the entrypoint. [AlexV]
-
Pin numpy to latest version 1.14.2. [pyup-bot]
-
Pin hypothesis to latest version 3.56.3. [pyup-bot]
-
Pin pytest-xdist to latest version 1.22.2. [pyup-bot]
-
Pin pytest to latest version 3.5.0. [pyup-bot]
-
Removing outdated ros content. has already been moved to examples or pyros interface. [AlexV]
-
Adding pyup badges. [AlexV]
-
Cleaning up Readmes. added gitchangelog and pyup configuration. [AlexV]
-
Updating sphinx config. [AlexV]
-
Fixing dependencies to latest pyros. [AlexV]
-
Reverting to latest tox. [AlexV]
-
Reviewing dependencies and ROS packages versions. [AlexV]
-
Cleaning up travis matrix in yml. fixing travis-env in tox.ini. [AlexV]
-
Pinning tox to 2.9.1 for travis testing. [AlexV]
-
Quick fix to install python-catkin-pip on travis (doesn't get automatically pulled by rosdep apparently) [alexv]
-
Adding pyros dependency. [AlexV]
-
Fixing imports for new pyros_04. forcing PyrosROS node. removed unused server module. cleaning up instance config file. [alexv]
-
Migrating to latest catkin_pip. [AlexV]
-
Readme file command correction. [Thomas]
Fixed the command to Install and setup the virtualenvwrapper
-
Not upgrading tox on travis just yet. [AlexV]
-
Fixing tox params. [AlexV]
-
Removing tox options for hypothesis. [AlexV]
-
Removing ROS specific files. adding tox and requirements. [AlexV]
-
Fixing python-flask-restful dependency. [AlexV]
-
Adding kinetic travis checks. [AlexV]
-
Preventing switch to tornado 5 for now (breaking install on lder systems). [AlexV]
-
Making dependency on backports.ssl-mach-hostname system version dependent. [AlexV]
-
Adding python install dependency on backports.ssl-match-hostname on python <=3.4. [AlexV]
-
Now travis install current package in venv before running tests to make sure we retrieve dependencies. [AlexV]
-
Removing submodules from setup.py packages_dir. they re gone. [AlexV]
-
Default config exposes everything. Better for ease of use for now... [AlexV]
-
Commenting useless stuff. [AlexV]
-
Getting flask restful resource to work. [AlexV]
-
Getting ROS interface by defaut. better for now. [AlexV]
File truncated at 100 lines see the full file
Wiki Tutorials
Package Dependencies
Deps | Name |
---|---|
catkin_pip | |
roslint | |
rostest | |
catkin | |
rosunit | |
pyros | |
pyros_interfaces_ros | |
click | |
webargs | |
flask_cors | |
flask_reverse_proxy | |
tblib | |
rospy |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged rostful at Robotics Stack Exchange
Package Summary
Tags | No category tags. |
Version | 0.2.1 |
License | BSD |
Build type | CATKIN |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/asmodehn/rostful.git |
VCS Type | git |
VCS Version | 0.2.1 |
Last Updated | 2018-04-22 |
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) |
Package Description
Additional Links
Maintainers
- AlexV
Authors
- Ben Kehoe
ROSTful
ROStful - A REST API for ROS.
We follow a feature branching workflow
Rostful is intended to be the outside layer of ROS (and eventualy any multiprocess system). Meaning it will interface ROS with other systems, over the internet, via HTTP and through a REST API. As such, this should be used as any python program, from a virtual environment. We also need to install the specific pyros interface for the system we want to expose.
` $ mkvirtualenv rostful (rostful)$ pip install rostful pyros[ros] (rostful)$ python -m rostful flask
`
A ROS package is provided as a third party release, for ease of deployment within a ROS system. However it is heavily recommended to do development the "python way", dynamically, using virtual environments, with quick iterations. The rostful PyPI package is released more often than the ROS package, and will have latest updates available for use.
PYTHON VIRTUALENV SETUP
How to setup your python virtual environment on Ubuntu (tested on Xenial
16.04) * Install and Setup virtualenvwrapper if needed
` sudo apt install virtualenvwrapper
[ * Create your virtual
environment for your project ]{.title-ref}$ mkvirtualenv myproject
[ *
Populate it to use rostful. The catkin dependency is temporarily needed
to be able to use the setup.py currently provided in rostful.
]{.title-ref}(myproject)$ pip install rostful pyros[ros] (myproject)$ pip install rostful
`
Try it now
Go check the examples
Overview
ROStful is a lightweight web server for making ROS services, topics, and actions available as RESTful web services.
ROStful web services primarily use the rosbridge JSON mapping for ROS messages. However, binary serialized ROS messages can be used to increase performance.
The purpose of ROStful is different from rosbridge: rosbridge provides an API for ROS through JSON using web sockets. ROStful allows specific services, topics, and actions to be provided as web services (using plain get and post requests) without exposing underlying ROS concepts. The ROStful client, however, additionally provides a modicum of multi-master functionality. The client proxy is a node that connects to a ROStful web service and exposes the services, topics, and actions locally over ROS.
The ROStful server has no dependencies on 3rd party libraries, and is WSGI-compatible and can therefore be used with most web servers like Apache and IIS.
ROStful web services
A ROStful web service is a web service that uses ROS data structures for input and output. These include services, topics, and actions.
Service methods accept as input a ROS message over HTTP POST and return a ROS message in the response. The input and output cannot be defined directly with ROS messages; it must use a ROS service definition.
Methods denoted as topics may use any ROS message, but are limited to accepting that message via HTTP POST or returning it, taking no input, via HTTP GET. Topic methods do not need to allow both methods. A topic method allowing POST is described as a “subscribing” method, and one that allows GET is a “publishing” method.
Methods denoted as actions consist of a set of subsidiary topic methods,
the subscribing-only goal
and cancel
methods, and the
publishing-only status
, result
, and feedback
methods. These
methods are located at the url <action method url>/<suffix>
, where
the suffix is the subsidiary method name.
The ROStful server
The ROStful server can provide services, topics, and actions that are locally available over ROS as ROStful web services. Topics may be specified as publishing, subscribing, or both.
ROStful uses the rosbridge JSON mapping by default, but binary
serialized ROS messages can be sent with the Content-Header
set to
application/vnd.ros.msg
. Giving this MIME type in the Accept
header
File truncated at 100 lines see the full file
Changelog
0.2.1 (2018-04-22)
- Now storing log in ROS_HOME when running on ROS as installed package. cosmetics. [AlexV]
0.2.0 (2018-04-21)
-
V0.2.0. [AlexV]
-
Integrated release commands to setup.py. [AlexV]
-
Cleaning up param interface to only keep a working minimum view. [AlexV]
-
Fixing getting param value. [AlexV]
-
Removing unused scripts. __main__ is now the entrypoint. [AlexV]
-
Pin numpy to latest version 1.14.2. [pyup-bot]
-
Pin hypothesis to latest version 3.56.3. [pyup-bot]
-
Pin pytest-xdist to latest version 1.22.2. [pyup-bot]
-
Pin pytest to latest version 3.5.0. [pyup-bot]
-
Removing outdated ros content. has already been moved to examples or pyros interface. [AlexV]
-
Adding pyup badges. [AlexV]
-
Cleaning up Readmes. added gitchangelog and pyup configuration. [AlexV]
-
Updating sphinx config. [AlexV]
-
Fixing dependencies to latest pyros. [AlexV]
-
Reverting to latest tox. [AlexV]
-
Reviewing dependencies and ROS packages versions. [AlexV]
-
Cleaning up travis matrix in yml. fixing travis-env in tox.ini. [AlexV]
-
Pinning tox to 2.9.1 for travis testing. [AlexV]
-
Quick fix to install python-catkin-pip on travis (doesn't get automatically pulled by rosdep apparently) [alexv]
-
Adding pyros dependency. [AlexV]
-
Fixing imports for new pyros_04. forcing PyrosROS node. removed unused server module. cleaning up instance config file. [alexv]
-
Migrating to latest catkin_pip. [AlexV]
-
Readme file command correction. [Thomas]
Fixed the command to Install and setup the virtualenvwrapper
-
Not upgrading tox on travis just yet. [AlexV]
-
Fixing tox params. [AlexV]
-
Removing tox options for hypothesis. [AlexV]
-
Removing ROS specific files. adding tox and requirements. [AlexV]
-
Fixing python-flask-restful dependency. [AlexV]
-
Adding kinetic travis checks. [AlexV]
-
Preventing switch to tornado 5 for now (breaking install on lder systems). [AlexV]
-
Making dependency on backports.ssl-mach-hostname system version dependent. [AlexV]
-
Adding python install dependency on backports.ssl-match-hostname on python <=3.4. [AlexV]
-
Now travis install current package in venv before running tests to make sure we retrieve dependencies. [AlexV]
-
Removing submodules from setup.py packages_dir. they re gone. [AlexV]
-
Default config exposes everything. Better for ease of use for now... [AlexV]
-
Commenting useless stuff. [AlexV]
-
Getting flask restful resource to work. [AlexV]
-
Getting ROS interface by defaut. better for now. [AlexV]
File truncated at 100 lines see the full file
Wiki Tutorials
Package Dependencies
Deps | Name |
---|---|
catkin_pip | |
roslint | |
rostest | |
catkin | |
rosunit | |
pyros | |
pyros_interfaces_ros | |
click | |
webargs | |
flask_cors | |
flask_reverse_proxy | |
tblib | |
rospy |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged rostful at Robotics Stack Exchange
Package Summary
Tags | No category tags. |
Version | 0.2.1 |
License | BSD |
Build type | CATKIN |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/asmodehn/rostful.git |
VCS Type | git |
VCS Version | 0.2.1 |
Last Updated | 2018-04-22 |
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) |
Package Description
Additional Links
Maintainers
- AlexV
Authors
- Ben Kehoe
ROSTful
ROStful - A REST API for ROS.
We follow a feature branching workflow
Rostful is intended to be the outside layer of ROS (and eventualy any multiprocess system). Meaning it will interface ROS with other systems, over the internet, via HTTP and through a REST API. As such, this should be used as any python program, from a virtual environment. We also need to install the specific pyros interface for the system we want to expose.
` $ mkvirtualenv rostful (rostful)$ pip install rostful pyros[ros] (rostful)$ python -m rostful flask
`
A ROS package is provided as a third party release, for ease of deployment within a ROS system. However it is heavily recommended to do development the "python way", dynamically, using virtual environments, with quick iterations. The rostful PyPI package is released more often than the ROS package, and will have latest updates available for use.
PYTHON VIRTUALENV SETUP
How to setup your python virtual environment on Ubuntu (tested on Xenial
16.04) * Install and Setup virtualenvwrapper if needed
` sudo apt install virtualenvwrapper
[ * Create your virtual
environment for your project ]{.title-ref}$ mkvirtualenv myproject
[ *
Populate it to use rostful. The catkin dependency is temporarily needed
to be able to use the setup.py currently provided in rostful.
]{.title-ref}(myproject)$ pip install rostful pyros[ros] (myproject)$ pip install rostful
`
Try it now
Go check the examples
Overview
ROStful is a lightweight web server for making ROS services, topics, and actions available as RESTful web services.
ROStful web services primarily use the rosbridge JSON mapping for ROS messages. However, binary serialized ROS messages can be used to increase performance.
The purpose of ROStful is different from rosbridge: rosbridge provides an API for ROS through JSON using web sockets. ROStful allows specific services, topics, and actions to be provided as web services (using plain get and post requests) without exposing underlying ROS concepts. The ROStful client, however, additionally provides a modicum of multi-master functionality. The client proxy is a node that connects to a ROStful web service and exposes the services, topics, and actions locally over ROS.
The ROStful server has no dependencies on 3rd party libraries, and is WSGI-compatible and can therefore be used with most web servers like Apache and IIS.
ROStful web services
A ROStful web service is a web service that uses ROS data structures for input and output. These include services, topics, and actions.
Service methods accept as input a ROS message over HTTP POST and return a ROS message in the response. The input and output cannot be defined directly with ROS messages; it must use a ROS service definition.
Methods denoted as topics may use any ROS message, but are limited to accepting that message via HTTP POST or returning it, taking no input, via HTTP GET. Topic methods do not need to allow both methods. A topic method allowing POST is described as a “subscribing” method, and one that allows GET is a “publishing” method.
Methods denoted as actions consist of a set of subsidiary topic methods,
the subscribing-only goal
and cancel
methods, and the
publishing-only status
, result
, and feedback
methods. These
methods are located at the url <action method url>/<suffix>
, where
the suffix is the subsidiary method name.
The ROStful server
The ROStful server can provide services, topics, and actions that are locally available over ROS as ROStful web services. Topics may be specified as publishing, subscribing, or both.
ROStful uses the rosbridge JSON mapping by default, but binary
serialized ROS messages can be sent with the Content-Header
set to
application/vnd.ros.msg
. Giving this MIME type in the Accept
header
File truncated at 100 lines see the full file
Changelog
0.2.1 (2018-04-22)
- Now storing log in ROS_HOME when running on ROS as installed package. cosmetics. [AlexV]
0.2.0 (2018-04-21)
-
V0.2.0. [AlexV]
-
Integrated release commands to setup.py. [AlexV]
-
Cleaning up param interface to only keep a working minimum view. [AlexV]
-
Fixing getting param value. [AlexV]
-
Removing unused scripts. __main__ is now the entrypoint. [AlexV]
-
Pin numpy to latest version 1.14.2. [pyup-bot]
-
Pin hypothesis to latest version 3.56.3. [pyup-bot]
-
Pin pytest-xdist to latest version 1.22.2. [pyup-bot]
-
Pin pytest to latest version 3.5.0. [pyup-bot]
-
Removing outdated ros content. has already been moved to examples or pyros interface. [AlexV]
-
Adding pyup badges. [AlexV]
-
Cleaning up Readmes. added gitchangelog and pyup configuration. [AlexV]
-
Updating sphinx config. [AlexV]
-
Fixing dependencies to latest pyros. [AlexV]
-
Reverting to latest tox. [AlexV]
-
Reviewing dependencies and ROS packages versions. [AlexV]
-
Cleaning up travis matrix in yml. fixing travis-env in tox.ini. [AlexV]
-
Pinning tox to 2.9.1 for travis testing. [AlexV]
-
Quick fix to install python-catkin-pip on travis (doesn't get automatically pulled by rosdep apparently) [alexv]
-
Adding pyros dependency. [AlexV]
-
Fixing imports for new pyros_04. forcing PyrosROS node. removed unused server module. cleaning up instance config file. [alexv]
-
Migrating to latest catkin_pip. [AlexV]
-
Readme file command correction. [Thomas]
Fixed the command to Install and setup the virtualenvwrapper
-
Not upgrading tox on travis just yet. [AlexV]
-
Fixing tox params. [AlexV]
-
Removing tox options for hypothesis. [AlexV]
-
Removing ROS specific files. adding tox and requirements. [AlexV]
-
Fixing python-flask-restful dependency. [AlexV]
-
Adding kinetic travis checks. [AlexV]
-
Preventing switch to tornado 5 for now (breaking install on lder systems). [AlexV]
-
Making dependency on backports.ssl-mach-hostname system version dependent. [AlexV]
-
Adding python install dependency on backports.ssl-match-hostname on python <=3.4. [AlexV]
-
Now travis install current package in venv before running tests to make sure we retrieve dependencies. [AlexV]
-
Removing submodules from setup.py packages_dir. they re gone. [AlexV]
-
Default config exposes everything. Better for ease of use for now... [AlexV]
-
Commenting useless stuff. [AlexV]
-
Getting flask restful resource to work. [AlexV]
-
Getting ROS interface by defaut. better for now. [AlexV]
File truncated at 100 lines see the full file
Wiki Tutorials
Package Dependencies
Deps | Name |
---|---|
catkin_pip | |
roslint | |
rostest | |
catkin | |
rosunit | |
pyros | |
pyros_interfaces_ros | |
click | |
webargs | |
flask_cors | |
flask_reverse_proxy | |
tblib | |
rospy |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged rostful at Robotics Stack Exchange
Package Summary
Tags | No category tags. |
Version | 0.2.1 |
License | BSD |
Build type | CATKIN |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/asmodehn/rostful.git |
VCS Type | git |
VCS Version | 0.2.1 |
Last Updated | 2018-04-22 |
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) |
Package Description
Additional Links
Maintainers
- AlexV
Authors
- Ben Kehoe
ROSTful
ROStful - A REST API for ROS.
We follow a feature branching workflow
Rostful is intended to be the outside layer of ROS (and eventualy any multiprocess system). Meaning it will interface ROS with other systems, over the internet, via HTTP and through a REST API. As such, this should be used as any python program, from a virtual environment. We also need to install the specific pyros interface for the system we want to expose.
` $ mkvirtualenv rostful (rostful)$ pip install rostful pyros[ros] (rostful)$ python -m rostful flask
`
A ROS package is provided as a third party release, for ease of deployment within a ROS system. However it is heavily recommended to do development the "python way", dynamically, using virtual environments, with quick iterations. The rostful PyPI package is released more often than the ROS package, and will have latest updates available for use.
PYTHON VIRTUALENV SETUP
How to setup your python virtual environment on Ubuntu (tested on Xenial
16.04) * Install and Setup virtualenvwrapper if needed
` sudo apt install virtualenvwrapper
[ * Create your virtual
environment for your project ]{.title-ref}$ mkvirtualenv myproject
[ *
Populate it to use rostful. The catkin dependency is temporarily needed
to be able to use the setup.py currently provided in rostful.
]{.title-ref}(myproject)$ pip install rostful pyros[ros] (myproject)$ pip install rostful
`
Try it now
Go check the examples
Overview
ROStful is a lightweight web server for making ROS services, topics, and actions available as RESTful web services.
ROStful web services primarily use the rosbridge JSON mapping for ROS messages. However, binary serialized ROS messages can be used to increase performance.
The purpose of ROStful is different from rosbridge: rosbridge provides an API for ROS through JSON using web sockets. ROStful allows specific services, topics, and actions to be provided as web services (using plain get and post requests) without exposing underlying ROS concepts. The ROStful client, however, additionally provides a modicum of multi-master functionality. The client proxy is a node that connects to a ROStful web service and exposes the services, topics, and actions locally over ROS.
The ROStful server has no dependencies on 3rd party libraries, and is WSGI-compatible and can therefore be used with most web servers like Apache and IIS.
ROStful web services
A ROStful web service is a web service that uses ROS data structures for input and output. These include services, topics, and actions.
Service methods accept as input a ROS message over HTTP POST and return a ROS message in the response. The input and output cannot be defined directly with ROS messages; it must use a ROS service definition.
Methods denoted as topics may use any ROS message, but are limited to accepting that message via HTTP POST or returning it, taking no input, via HTTP GET. Topic methods do not need to allow both methods. A topic method allowing POST is described as a “subscribing” method, and one that allows GET is a “publishing” method.
Methods denoted as actions consist of a set of subsidiary topic methods,
the subscribing-only goal
and cancel
methods, and the
publishing-only status
, result
, and feedback
methods. These
methods are located at the url <action method url>/<suffix>
, where
the suffix is the subsidiary method name.
The ROStful server
The ROStful server can provide services, topics, and actions that are locally available over ROS as ROStful web services. Topics may be specified as publishing, subscribing, or both.
ROStful uses the rosbridge JSON mapping by default, but binary
serialized ROS messages can be sent with the Content-Header
set to
application/vnd.ros.msg
. Giving this MIME type in the Accept
header
File truncated at 100 lines see the full file
Changelog
0.2.1 (2018-04-22)
- Now storing log in ROS_HOME when running on ROS as installed package. cosmetics. [AlexV]
0.2.0 (2018-04-21)
-
V0.2.0. [AlexV]
-
Integrated release commands to setup.py. [AlexV]
-
Cleaning up param interface to only keep a working minimum view. [AlexV]
-
Fixing getting param value. [AlexV]
-
Removing unused scripts. __main__ is now the entrypoint. [AlexV]
-
Pin numpy to latest version 1.14.2. [pyup-bot]
-
Pin hypothesis to latest version 3.56.3. [pyup-bot]
-
Pin pytest-xdist to latest version 1.22.2. [pyup-bot]
-
Pin pytest to latest version 3.5.0. [pyup-bot]
-
Removing outdated ros content. has already been moved to examples or pyros interface. [AlexV]
-
Adding pyup badges. [AlexV]
-
Cleaning up Readmes. added gitchangelog and pyup configuration. [AlexV]
-
Updating sphinx config. [AlexV]
-
Fixing dependencies to latest pyros. [AlexV]
-
Reverting to latest tox. [AlexV]
-
Reviewing dependencies and ROS packages versions. [AlexV]
-
Cleaning up travis matrix in yml. fixing travis-env in tox.ini. [AlexV]
-
Pinning tox to 2.9.1 for travis testing. [AlexV]
-
Quick fix to install python-catkin-pip on travis (doesn't get automatically pulled by rosdep apparently) [alexv]
-
Adding pyros dependency. [AlexV]
-
Fixing imports for new pyros_04. forcing PyrosROS node. removed unused server module. cleaning up instance config file. [alexv]
-
Migrating to latest catkin_pip. [AlexV]
-
Readme file command correction. [Thomas]
Fixed the command to Install and setup the virtualenvwrapper
-
Not upgrading tox on travis just yet. [AlexV]
-
Fixing tox params. [AlexV]
-
Removing tox options for hypothesis. [AlexV]
-
Removing ROS specific files. adding tox and requirements. [AlexV]
-
Fixing python-flask-restful dependency. [AlexV]
-
Adding kinetic travis checks. [AlexV]
-
Preventing switch to tornado 5 for now (breaking install on lder systems). [AlexV]
-
Making dependency on backports.ssl-mach-hostname system version dependent. [AlexV]
-
Adding python install dependency on backports.ssl-match-hostname on python <=3.4. [AlexV]
-
Now travis install current package in venv before running tests to make sure we retrieve dependencies. [AlexV]
-
Removing submodules from setup.py packages_dir. they re gone. [AlexV]
-
Default config exposes everything. Better for ease of use for now... [AlexV]
-
Commenting useless stuff. [AlexV]
-
Getting flask restful resource to work. [AlexV]
-
Getting ROS interface by defaut. better for now. [AlexV]
File truncated at 100 lines see the full file
Wiki Tutorials
Package Dependencies
Deps | Name |
---|---|
catkin_pip | |
roslint | |
rostest | |
catkin | |
rosunit | |
pyros | |
pyros_interfaces_ros | |
click | |
webargs | |
flask_cors | |
flask_reverse_proxy | |
tblib | |
rospy |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged rostful at Robotics Stack Exchange
Package Summary
Tags | No category tags. |
Version | 0.2.1 |
License | BSD |
Build type | CATKIN |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/asmodehn/rostful.git |
VCS Type | git |
VCS Version | 0.2.1 |
Last Updated | 2018-04-22 |
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) |
Package Description
Additional Links
Maintainers
- AlexV
Authors
- Ben Kehoe
ROSTful
ROStful - A REST API for ROS.
We follow a feature branching workflow
Rostful is intended to be the outside layer of ROS (and eventualy any multiprocess system). Meaning it will interface ROS with other systems, over the internet, via HTTP and through a REST API. As such, this should be used as any python program, from a virtual environment. We also need to install the specific pyros interface for the system we want to expose.
` $ mkvirtualenv rostful (rostful)$ pip install rostful pyros[ros] (rostful)$ python -m rostful flask
`
A ROS package is provided as a third party release, for ease of deployment within a ROS system. However it is heavily recommended to do development the "python way", dynamically, using virtual environments, with quick iterations. The rostful PyPI package is released more often than the ROS package, and will have latest updates available for use.
PYTHON VIRTUALENV SETUP
How to setup your python virtual environment on Ubuntu (tested on Xenial
16.04) * Install and Setup virtualenvwrapper if needed
` sudo apt install virtualenvwrapper
[ * Create your virtual
environment for your project ]{.title-ref}$ mkvirtualenv myproject
[ *
Populate it to use rostful. The catkin dependency is temporarily needed
to be able to use the setup.py currently provided in rostful.
]{.title-ref}(myproject)$ pip install rostful pyros[ros] (myproject)$ pip install rostful
`
Try it now
Go check the examples
Overview
ROStful is a lightweight web server for making ROS services, topics, and actions available as RESTful web services.
ROStful web services primarily use the rosbridge JSON mapping for ROS messages. However, binary serialized ROS messages can be used to increase performance.
The purpose of ROStful is different from rosbridge: rosbridge provides an API for ROS through JSON using web sockets. ROStful allows specific services, topics, and actions to be provided as web services (using plain get and post requests) without exposing underlying ROS concepts. The ROStful client, however, additionally provides a modicum of multi-master functionality. The client proxy is a node that connects to a ROStful web service and exposes the services, topics, and actions locally over ROS.
The ROStful server has no dependencies on 3rd party libraries, and is WSGI-compatible and can therefore be used with most web servers like Apache and IIS.
ROStful web services
A ROStful web service is a web service that uses ROS data structures for input and output. These include services, topics, and actions.
Service methods accept as input a ROS message over HTTP POST and return a ROS message in the response. The input and output cannot be defined directly with ROS messages; it must use a ROS service definition.
Methods denoted as topics may use any ROS message, but are limited to accepting that message via HTTP POST or returning it, taking no input, via HTTP GET. Topic methods do not need to allow both methods. A topic method allowing POST is described as a “subscribing” method, and one that allows GET is a “publishing” method.
Methods denoted as actions consist of a set of subsidiary topic methods,
the subscribing-only goal
and cancel
methods, and the
publishing-only status
, result
, and feedback
methods. These
methods are located at the url <action method url>/<suffix>
, where
the suffix is the subsidiary method name.
The ROStful server
The ROStful server can provide services, topics, and actions that are locally available over ROS as ROStful web services. Topics may be specified as publishing, subscribing, or both.
ROStful uses the rosbridge JSON mapping by default, but binary
serialized ROS messages can be sent with the Content-Header
set to
application/vnd.ros.msg
. Giving this MIME type in the Accept
header
File truncated at 100 lines see the full file
Changelog
0.2.1 (2018-04-22)
- Now storing log in ROS_HOME when running on ROS as installed package. cosmetics. [AlexV]
0.2.0 (2018-04-21)
-
V0.2.0. [AlexV]
-
Integrated release commands to setup.py. [AlexV]
-
Cleaning up param interface to only keep a working minimum view. [AlexV]
-
Fixing getting param value. [AlexV]
-
Removing unused scripts. __main__ is now the entrypoint. [AlexV]
-
Pin numpy to latest version 1.14.2. [pyup-bot]
-
Pin hypothesis to latest version 3.56.3. [pyup-bot]
-
Pin pytest-xdist to latest version 1.22.2. [pyup-bot]
-
Pin pytest to latest version 3.5.0. [pyup-bot]
-
Removing outdated ros content. has already been moved to examples or pyros interface. [AlexV]
-
Adding pyup badges. [AlexV]
-
Cleaning up Readmes. added gitchangelog and pyup configuration. [AlexV]
-
Updating sphinx config. [AlexV]
-
Fixing dependencies to latest pyros. [AlexV]
-
Reverting to latest tox. [AlexV]
-
Reviewing dependencies and ROS packages versions. [AlexV]
-
Cleaning up travis matrix in yml. fixing travis-env in tox.ini. [AlexV]
-
Pinning tox to 2.9.1 for travis testing. [AlexV]
-
Quick fix to install python-catkin-pip on travis (doesn't get automatically pulled by rosdep apparently) [alexv]
-
Adding pyros dependency. [AlexV]
-
Fixing imports for new pyros_04. forcing PyrosROS node. removed unused server module. cleaning up instance config file. [alexv]
-
Migrating to latest catkin_pip. [AlexV]
-
Readme file command correction. [Thomas]
Fixed the command to Install and setup the virtualenvwrapper
-
Not upgrading tox on travis just yet. [AlexV]
-
Fixing tox params. [AlexV]
-
Removing tox options for hypothesis. [AlexV]
-
Removing ROS specific files. adding tox and requirements. [AlexV]
-
Fixing python-flask-restful dependency. [AlexV]
-
Adding kinetic travis checks. [AlexV]
-
Preventing switch to tornado 5 for now (breaking install on lder systems). [AlexV]
-
Making dependency on backports.ssl-mach-hostname system version dependent. [AlexV]
-
Adding python install dependency on backports.ssl-match-hostname on python <=3.4. [AlexV]
-
Now travis install current package in venv before running tests to make sure we retrieve dependencies. [AlexV]
-
Removing submodules from setup.py packages_dir. they re gone. [AlexV]
-
Default config exposes everything. Better for ease of use for now... [AlexV]
-
Commenting useless stuff. [AlexV]
-
Getting flask restful resource to work. [AlexV]
-
Getting ROS interface by defaut. better for now. [AlexV]
File truncated at 100 lines see the full file
Wiki Tutorials
Package Dependencies
Deps | Name |
---|---|
catkin_pip | |
roslint | |
rostest | |
catkin | |
rosunit | |
pyros | |
pyros_interfaces_ros | |
click | |
webargs | |
flask_cors | |
flask_reverse_proxy | |
tblib | |
rospy |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged rostful at Robotics Stack Exchange
Package Summary
Tags | No category tags. |
Version | 0.2.1 |
License | BSD |
Build type | CATKIN |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/asmodehn/rostful.git |
VCS Type | git |
VCS Version | 0.2.1 |
Last Updated | 2018-04-22 |
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) |
Package Description
Additional Links
Maintainers
- AlexV
Authors
- Ben Kehoe
ROSTful
ROStful - A REST API for ROS.
We follow a feature branching workflow
Rostful is intended to be the outside layer of ROS (and eventualy any multiprocess system). Meaning it will interface ROS with other systems, over the internet, via HTTP and through a REST API. As such, this should be used as any python program, from a virtual environment. We also need to install the specific pyros interface for the system we want to expose.
` $ mkvirtualenv rostful (rostful)$ pip install rostful pyros[ros] (rostful)$ python -m rostful flask
`
A ROS package is provided as a third party release, for ease of deployment within a ROS system. However it is heavily recommended to do development the "python way", dynamically, using virtual environments, with quick iterations. The rostful PyPI package is released more often than the ROS package, and will have latest updates available for use.
PYTHON VIRTUALENV SETUP
How to setup your python virtual environment on Ubuntu (tested on Xenial
16.04) * Install and Setup virtualenvwrapper if needed
` sudo apt install virtualenvwrapper
[ * Create your virtual
environment for your project ]{.title-ref}$ mkvirtualenv myproject
[ *
Populate it to use rostful. The catkin dependency is temporarily needed
to be able to use the setup.py currently provided in rostful.
]{.title-ref}(myproject)$ pip install rostful pyros[ros] (myproject)$ pip install rostful
`
Try it now
Go check the examples
Overview
ROStful is a lightweight web server for making ROS services, topics, and actions available as RESTful web services.
ROStful web services primarily use the rosbridge JSON mapping for ROS messages. However, binary serialized ROS messages can be used to increase performance.
The purpose of ROStful is different from rosbridge: rosbridge provides an API for ROS through JSON using web sockets. ROStful allows specific services, topics, and actions to be provided as web services (using plain get and post requests) without exposing underlying ROS concepts. The ROStful client, however, additionally provides a modicum of multi-master functionality. The client proxy is a node that connects to a ROStful web service and exposes the services, topics, and actions locally over ROS.
The ROStful server has no dependencies on 3rd party libraries, and is WSGI-compatible and can therefore be used with most web servers like Apache and IIS.
ROStful web services
A ROStful web service is a web service that uses ROS data structures for input and output. These include services, topics, and actions.
Service methods accept as input a ROS message over HTTP POST and return a ROS message in the response. The input and output cannot be defined directly with ROS messages; it must use a ROS service definition.
Methods denoted as topics may use any ROS message, but are limited to accepting that message via HTTP POST or returning it, taking no input, via HTTP GET. Topic methods do not need to allow both methods. A topic method allowing POST is described as a “subscribing” method, and one that allows GET is a “publishing” method.
Methods denoted as actions consist of a set of subsidiary topic methods,
the subscribing-only goal
and cancel
methods, and the
publishing-only status
, result
, and feedback
methods. These
methods are located at the url <action method url>/<suffix>
, where
the suffix is the subsidiary method name.
The ROStful server
The ROStful server can provide services, topics, and actions that are locally available over ROS as ROStful web services. Topics may be specified as publishing, subscribing, or both.
ROStful uses the rosbridge JSON mapping by default, but binary
serialized ROS messages can be sent with the Content-Header
set to
application/vnd.ros.msg
. Giving this MIME type in the Accept
header
File truncated at 100 lines see the full file
Changelog
0.2.1 (2018-04-22)
- Now storing log in ROS_HOME when running on ROS as installed package. cosmetics. [AlexV]
0.2.0 (2018-04-21)
-
V0.2.0. [AlexV]
-
Integrated release commands to setup.py. [AlexV]
-
Cleaning up param interface to only keep a working minimum view. [AlexV]
-
Fixing getting param value. [AlexV]
-
Removing unused scripts. __main__ is now the entrypoint. [AlexV]
-
Pin numpy to latest version 1.14.2. [pyup-bot]
-
Pin hypothesis to latest version 3.56.3. [pyup-bot]
-
Pin pytest-xdist to latest version 1.22.2. [pyup-bot]
-
Pin pytest to latest version 3.5.0. [pyup-bot]
-
Removing outdated ros content. has already been moved to examples or pyros interface. [AlexV]
-
Adding pyup badges. [AlexV]
-
Cleaning up Readmes. added gitchangelog and pyup configuration. [AlexV]
-
Updating sphinx config. [AlexV]
-
Fixing dependencies to latest pyros. [AlexV]
-
Reverting to latest tox. [AlexV]
-
Reviewing dependencies and ROS packages versions. [AlexV]
-
Cleaning up travis matrix in yml. fixing travis-env in tox.ini. [AlexV]
-
Pinning tox to 2.9.1 for travis testing. [AlexV]
-
Quick fix to install python-catkin-pip on travis (doesn't get automatically pulled by rosdep apparently) [alexv]
-
Adding pyros dependency. [AlexV]
-
Fixing imports for new pyros_04. forcing PyrosROS node. removed unused server module. cleaning up instance config file. [alexv]
-
Migrating to latest catkin_pip. [AlexV]
-
Readme file command correction. [Thomas]
Fixed the command to Install and setup the virtualenvwrapper
-
Not upgrading tox on travis just yet. [AlexV]
-
Fixing tox params. [AlexV]
-
Removing tox options for hypothesis. [AlexV]
-
Removing ROS specific files. adding tox and requirements. [AlexV]
-
Fixing python-flask-restful dependency. [AlexV]
-
Adding kinetic travis checks. [AlexV]
-
Preventing switch to tornado 5 for now (breaking install on lder systems). [AlexV]
-
Making dependency on backports.ssl-mach-hostname system version dependent. [AlexV]
-
Adding python install dependency on backports.ssl-match-hostname on python <=3.4. [AlexV]
-
Now travis install current package in venv before running tests to make sure we retrieve dependencies. [AlexV]
-
Removing submodules from setup.py packages_dir. they re gone. [AlexV]
-
Default config exposes everything. Better for ease of use for now... [AlexV]
-
Commenting useless stuff. [AlexV]
-
Getting flask restful resource to work. [AlexV]
-
Getting ROS interface by defaut. better for now. [AlexV]
File truncated at 100 lines see the full file
Wiki Tutorials
Package Dependencies
Deps | Name |
---|---|
catkin_pip | |
roslint | |
rostest | |
catkin | |
rosunit | |
pyros | |
pyros_interfaces_ros | |
click | |
webargs | |
flask_cors | |
flask_reverse_proxy | |
tblib | |
rospy |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged rostful at Robotics Stack Exchange
Package Summary
Tags | No category tags. |
Version | 0.2.1 |
License | BSD |
Build type | CATKIN |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/asmodehn/rostful.git |
VCS Type | git |
VCS Version | 0.2.1 |
Last Updated | 2018-04-22 |
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) |
Package Description
Additional Links
Maintainers
- AlexV
Authors
- Ben Kehoe
ROSTful
ROStful - A REST API for ROS.
We follow a feature branching workflow
Rostful is intended to be the outside layer of ROS (and eventualy any multiprocess system). Meaning it will interface ROS with other systems, over the internet, via HTTP and through a REST API. As such, this should be used as any python program, from a virtual environment. We also need to install the specific pyros interface for the system we want to expose.
` $ mkvirtualenv rostful (rostful)$ pip install rostful pyros[ros] (rostful)$ python -m rostful flask
`
A ROS package is provided as a third party release, for ease of deployment within a ROS system. However it is heavily recommended to do development the "python way", dynamically, using virtual environments, with quick iterations. The rostful PyPI package is released more often than the ROS package, and will have latest updates available for use.
PYTHON VIRTUALENV SETUP
How to setup your python virtual environment on Ubuntu (tested on Xenial
16.04) * Install and Setup virtualenvwrapper if needed
` sudo apt install virtualenvwrapper
[ * Create your virtual
environment for your project ]{.title-ref}$ mkvirtualenv myproject
[ *
Populate it to use rostful. The catkin dependency is temporarily needed
to be able to use the setup.py currently provided in rostful.
]{.title-ref}(myproject)$ pip install rostful pyros[ros] (myproject)$ pip install rostful
`
Try it now
Go check the examples
Overview
ROStful is a lightweight web server for making ROS services, topics, and actions available as RESTful web services.
ROStful web services primarily use the rosbridge JSON mapping for ROS messages. However, binary serialized ROS messages can be used to increase performance.
The purpose of ROStful is different from rosbridge: rosbridge provides an API for ROS through JSON using web sockets. ROStful allows specific services, topics, and actions to be provided as web services (using plain get and post requests) without exposing underlying ROS concepts. The ROStful client, however, additionally provides a modicum of multi-master functionality. The client proxy is a node that connects to a ROStful web service and exposes the services, topics, and actions locally over ROS.
The ROStful server has no dependencies on 3rd party libraries, and is WSGI-compatible and can therefore be used with most web servers like Apache and IIS.
ROStful web services
A ROStful web service is a web service that uses ROS data structures for input and output. These include services, topics, and actions.
Service methods accept as input a ROS message over HTTP POST and return a ROS message in the response. The input and output cannot be defined directly with ROS messages; it must use a ROS service definition.
Methods denoted as topics may use any ROS message, but are limited to accepting that message via HTTP POST or returning it, taking no input, via HTTP GET. Topic methods do not need to allow both methods. A topic method allowing POST is described as a “subscribing” method, and one that allows GET is a “publishing” method.
Methods denoted as actions consist of a set of subsidiary topic methods,
the subscribing-only goal
and cancel
methods, and the
publishing-only status
, result
, and feedback
methods. These
methods are located at the url <action method url>/<suffix>
, where
the suffix is the subsidiary method name.
The ROStful server
The ROStful server can provide services, topics, and actions that are locally available over ROS as ROStful web services. Topics may be specified as publishing, subscribing, or both.
ROStful uses the rosbridge JSON mapping by default, but binary
serialized ROS messages can be sent with the Content-Header
set to
application/vnd.ros.msg
. Giving this MIME type in the Accept
header
File truncated at 100 lines see the full file
Changelog
0.2.1 (2018-04-22)
- Now storing log in ROS_HOME when running on ROS as installed package. cosmetics. [AlexV]
0.2.0 (2018-04-21)
-
V0.2.0. [AlexV]
-
Integrated release commands to setup.py. [AlexV]
-
Cleaning up param interface to only keep a working minimum view. [AlexV]
-
Fixing getting param value. [AlexV]
-
Removing unused scripts. __main__ is now the entrypoint. [AlexV]
-
Pin numpy to latest version 1.14.2. [pyup-bot]
-
Pin hypothesis to latest version 3.56.3. [pyup-bot]
-
Pin pytest-xdist to latest version 1.22.2. [pyup-bot]
-
Pin pytest to latest version 3.5.0. [pyup-bot]
-
Removing outdated ros content. has already been moved to examples or pyros interface. [AlexV]
-
Adding pyup badges. [AlexV]
-
Cleaning up Readmes. added gitchangelog and pyup configuration. [AlexV]
-
Updating sphinx config. [AlexV]
-
Fixing dependencies to latest pyros. [AlexV]
-
Reverting to latest tox. [AlexV]
-
Reviewing dependencies and ROS packages versions. [AlexV]
-
Cleaning up travis matrix in yml. fixing travis-env in tox.ini. [AlexV]
-
Pinning tox to 2.9.1 for travis testing. [AlexV]
-
Quick fix to install python-catkin-pip on travis (doesn't get automatically pulled by rosdep apparently) [alexv]
-
Adding pyros dependency. [AlexV]
-
Fixing imports for new pyros_04. forcing PyrosROS node. removed unused server module. cleaning up instance config file. [alexv]
-
Migrating to latest catkin_pip. [AlexV]
-
Readme file command correction. [Thomas]
Fixed the command to Install and setup the virtualenvwrapper
-
Not upgrading tox on travis just yet. [AlexV]
-
Fixing tox params. [AlexV]
-
Removing tox options for hypothesis. [AlexV]
-
Removing ROS specific files. adding tox and requirements. [AlexV]
-
Fixing python-flask-restful dependency. [AlexV]
-
Adding kinetic travis checks. [AlexV]
-
Preventing switch to tornado 5 for now (breaking install on lder systems). [AlexV]
-
Making dependency on backports.ssl-mach-hostname system version dependent. [AlexV]
-
Adding python install dependency on backports.ssl-match-hostname on python <=3.4. [AlexV]
-
Now travis install current package in venv before running tests to make sure we retrieve dependencies. [AlexV]
-
Removing submodules from setup.py packages_dir. they re gone. [AlexV]
-
Default config exposes everything. Better for ease of use for now... [AlexV]
-
Commenting useless stuff. [AlexV]
-
Getting flask restful resource to work. [AlexV]
-
Getting ROS interface by defaut. better for now. [AlexV]
File truncated at 100 lines see the full file
Wiki Tutorials
Package Dependencies
Deps | Name |
---|---|
catkin_pip | |
roslint | |
rostest | |
catkin | |
rosunit | |
pyros | |
pyros_interfaces_ros | |
click | |
webargs | |
flask_cors | |
flask_reverse_proxy | |
tblib | |
rospy |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged rostful at Robotics Stack Exchange
Package Summary
Tags | No category tags. |
Version | 0.2.1 |
License | BSD |
Build type | CATKIN |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/asmodehn/rostful.git |
VCS Type | git |
VCS Version | 0.2.1 |
Last Updated | 2018-04-22 |
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) |
Package Description
Additional Links
Maintainers
- AlexV
Authors
- Ben Kehoe
ROSTful
ROStful - A REST API for ROS.
We follow a feature branching workflow
Rostful is intended to be the outside layer of ROS (and eventualy any multiprocess system). Meaning it will interface ROS with other systems, over the internet, via HTTP and through a REST API. As such, this should be used as any python program, from a virtual environment. We also need to install the specific pyros interface for the system we want to expose.
` $ mkvirtualenv rostful (rostful)$ pip install rostful pyros[ros] (rostful)$ python -m rostful flask
`
A ROS package is provided as a third party release, for ease of deployment within a ROS system. However it is heavily recommended to do development the "python way", dynamically, using virtual environments, with quick iterations. The rostful PyPI package is released more often than the ROS package, and will have latest updates available for use.
PYTHON VIRTUALENV SETUP
How to setup your python virtual environment on Ubuntu (tested on Xenial
16.04) * Install and Setup virtualenvwrapper if needed
` sudo apt install virtualenvwrapper
[ * Create your virtual
environment for your project ]{.title-ref}$ mkvirtualenv myproject
[ *
Populate it to use rostful. The catkin dependency is temporarily needed
to be able to use the setup.py currently provided in rostful.
]{.title-ref}(myproject)$ pip install rostful pyros[ros] (myproject)$ pip install rostful
`
Try it now
Go check the examples
Overview
ROStful is a lightweight web server for making ROS services, topics, and actions available as RESTful web services.
ROStful web services primarily use the rosbridge JSON mapping for ROS messages. However, binary serialized ROS messages can be used to increase performance.
The purpose of ROStful is different from rosbridge: rosbridge provides an API for ROS through JSON using web sockets. ROStful allows specific services, topics, and actions to be provided as web services (using plain get and post requests) without exposing underlying ROS concepts. The ROStful client, however, additionally provides a modicum of multi-master functionality. The client proxy is a node that connects to a ROStful web service and exposes the services, topics, and actions locally over ROS.
The ROStful server has no dependencies on 3rd party libraries, and is WSGI-compatible and can therefore be used with most web servers like Apache and IIS.
ROStful web services
A ROStful web service is a web service that uses ROS data structures for input and output. These include services, topics, and actions.
Service methods accept as input a ROS message over HTTP POST and return a ROS message in the response. The input and output cannot be defined directly with ROS messages; it must use a ROS service definition.
Methods denoted as topics may use any ROS message, but are limited to accepting that message via HTTP POST or returning it, taking no input, via HTTP GET. Topic methods do not need to allow both methods. A topic method allowing POST is described as a “subscribing” method, and one that allows GET is a “publishing” method.
Methods denoted as actions consist of a set of subsidiary topic methods,
the subscribing-only goal
and cancel
methods, and the
publishing-only status
, result
, and feedback
methods. These
methods are located at the url <action method url>/<suffix>
, where
the suffix is the subsidiary method name.
The ROStful server
The ROStful server can provide services, topics, and actions that are locally available over ROS as ROStful web services. Topics may be specified as publishing, subscribing, or both.
ROStful uses the rosbridge JSON mapping by default, but binary
serialized ROS messages can be sent with the Content-Header
set to
application/vnd.ros.msg
. Giving this MIME type in the Accept
header
File truncated at 100 lines see the full file
Changelog
0.2.1 (2018-04-22)
- Now storing log in ROS_HOME when running on ROS as installed package. cosmetics. [AlexV]
0.2.0 (2018-04-21)
-
V0.2.0. [AlexV]
-
Integrated release commands to setup.py. [AlexV]
-
Cleaning up param interface to only keep a working minimum view. [AlexV]
-
Fixing getting param value. [AlexV]
-
Removing unused scripts. __main__ is now the entrypoint. [AlexV]
-
Pin numpy to latest version 1.14.2. [pyup-bot]
-
Pin hypothesis to latest version 3.56.3. [pyup-bot]
-
Pin pytest-xdist to latest version 1.22.2. [pyup-bot]
-
Pin pytest to latest version 3.5.0. [pyup-bot]
-
Removing outdated ros content. has already been moved to examples or pyros interface. [AlexV]
-
Adding pyup badges. [AlexV]
-
Cleaning up Readmes. added gitchangelog and pyup configuration. [AlexV]
-
Updating sphinx config. [AlexV]
-
Fixing dependencies to latest pyros. [AlexV]
-
Reverting to latest tox. [AlexV]
-
Reviewing dependencies and ROS packages versions. [AlexV]
-
Cleaning up travis matrix in yml. fixing travis-env in tox.ini. [AlexV]
-
Pinning tox to 2.9.1 for travis testing. [AlexV]
-
Quick fix to install python-catkin-pip on travis (doesn't get automatically pulled by rosdep apparently) [alexv]
-
Adding pyros dependency. [AlexV]
-
Fixing imports for new pyros_04. forcing PyrosROS node. removed unused server module. cleaning up instance config file. [alexv]
-
Migrating to latest catkin_pip. [AlexV]
-
Readme file command correction. [Thomas]
Fixed the command to Install and setup the virtualenvwrapper
-
Not upgrading tox on travis just yet. [AlexV]
-
Fixing tox params. [AlexV]
-
Removing tox options for hypothesis. [AlexV]
-
Removing ROS specific files. adding tox and requirements. [AlexV]
-
Fixing python-flask-restful dependency. [AlexV]
-
Adding kinetic travis checks. [AlexV]
-
Preventing switch to tornado 5 for now (breaking install on lder systems). [AlexV]
-
Making dependency on backports.ssl-mach-hostname system version dependent. [AlexV]
-
Adding python install dependency on backports.ssl-match-hostname on python <=3.4. [AlexV]
-
Now travis install current package in venv before running tests to make sure we retrieve dependencies. [AlexV]
-
Removing submodules from setup.py packages_dir. they re gone. [AlexV]
-
Default config exposes everything. Better for ease of use for now... [AlexV]
-
Commenting useless stuff. [AlexV]
-
Getting flask restful resource to work. [AlexV]
-
Getting ROS interface by defaut. better for now. [AlexV]
File truncated at 100 lines see the full file
Wiki Tutorials
Package Dependencies
Deps | Name |
---|---|
catkin_pip | |
roslint | |
rostest | |
catkin | |
rosunit | |
pyros | |
pyros_interfaces_ros | |
click | |
webargs | |
flask_cors | |
flask_reverse_proxy | |
tblib | |
rospy |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged rostful at Robotics Stack Exchange
Package Summary
Tags | No category tags. |
Version | 0.2.1 |
License | BSD |
Build type | CATKIN |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/asmodehn/rostful.git |
VCS Type | git |
VCS Version | 0.2.1 |
Last Updated | 2018-04-22 |
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) |
Package Description
Additional Links
Maintainers
- AlexV
Authors
- Ben Kehoe
ROSTful
ROStful - A REST API for ROS.
We follow a feature branching workflow
Rostful is intended to be the outside layer of ROS (and eventualy any multiprocess system). Meaning it will interface ROS with other systems, over the internet, via HTTP and through a REST API. As such, this should be used as any python program, from a virtual environment. We also need to install the specific pyros interface for the system we want to expose.
` $ mkvirtualenv rostful (rostful)$ pip install rostful pyros[ros] (rostful)$ python -m rostful flask
`
A ROS package is provided as a third party release, for ease of deployment within a ROS system. However it is heavily recommended to do development the "python way", dynamically, using virtual environments, with quick iterations. The rostful PyPI package is released more often than the ROS package, and will have latest updates available for use.
PYTHON VIRTUALENV SETUP
How to setup your python virtual environment on Ubuntu (tested on Xenial
16.04) * Install and Setup virtualenvwrapper if needed
` sudo apt install virtualenvwrapper
[ * Create your virtual
environment for your project ]{.title-ref}$ mkvirtualenv myproject
[ *
Populate it to use rostful. The catkin dependency is temporarily needed
to be able to use the setup.py currently provided in rostful.
]{.title-ref}(myproject)$ pip install rostful pyros[ros] (myproject)$ pip install rostful
`
Try it now
Go check the examples
Overview
ROStful is a lightweight web server for making ROS services, topics, and actions available as RESTful web services.
ROStful web services primarily use the rosbridge JSON mapping for ROS messages. However, binary serialized ROS messages can be used to increase performance.
The purpose of ROStful is different from rosbridge: rosbridge provides an API for ROS through JSON using web sockets. ROStful allows specific services, topics, and actions to be provided as web services (using plain get and post requests) without exposing underlying ROS concepts. The ROStful client, however, additionally provides a modicum of multi-master functionality. The client proxy is a node that connects to a ROStful web service and exposes the services, topics, and actions locally over ROS.
The ROStful server has no dependencies on 3rd party libraries, and is WSGI-compatible and can therefore be used with most web servers like Apache and IIS.
ROStful web services
A ROStful web service is a web service that uses ROS data structures for input and output. These include services, topics, and actions.
Service methods accept as input a ROS message over HTTP POST and return a ROS message in the response. The input and output cannot be defined directly with ROS messages; it must use a ROS service definition.
Methods denoted as topics may use any ROS message, but are limited to accepting that message via HTTP POST or returning it, taking no input, via HTTP GET. Topic methods do not need to allow both methods. A topic method allowing POST is described as a “subscribing” method, and one that allows GET is a “publishing” method.
Methods denoted as actions consist of a set of subsidiary topic methods,
the subscribing-only goal
and cancel
methods, and the
publishing-only status
, result
, and feedback
methods. These
methods are located at the url <action method url>/<suffix>
, where
the suffix is the subsidiary method name.
The ROStful server
The ROStful server can provide services, topics, and actions that are locally available over ROS as ROStful web services. Topics may be specified as publishing, subscribing, or both.
ROStful uses the rosbridge JSON mapping by default, but binary
serialized ROS messages can be sent with the Content-Header
set to
application/vnd.ros.msg
. Giving this MIME type in the Accept
header
File truncated at 100 lines see the full file
Changelog
0.2.1 (2018-04-22)
- Now storing log in ROS_HOME when running on ROS as installed package. cosmetics. [AlexV]
0.2.0 (2018-04-21)
-
V0.2.0. [AlexV]
-
Integrated release commands to setup.py. [AlexV]
-
Cleaning up param interface to only keep a working minimum view. [AlexV]
-
Fixing getting param value. [AlexV]
-
Removing unused scripts. __main__ is now the entrypoint. [AlexV]
-
Pin numpy to latest version 1.14.2. [pyup-bot]
-
Pin hypothesis to latest version 3.56.3. [pyup-bot]
-
Pin pytest-xdist to latest version 1.22.2. [pyup-bot]
-
Pin pytest to latest version 3.5.0. [pyup-bot]
-
Removing outdated ros content. has already been moved to examples or pyros interface. [AlexV]
-
Adding pyup badges. [AlexV]
-
Cleaning up Readmes. added gitchangelog and pyup configuration. [AlexV]
-
Updating sphinx config. [AlexV]
-
Fixing dependencies to latest pyros. [AlexV]
-
Reverting to latest tox. [AlexV]
-
Reviewing dependencies and ROS packages versions. [AlexV]
-
Cleaning up travis matrix in yml. fixing travis-env in tox.ini. [AlexV]
-
Pinning tox to 2.9.1 for travis testing. [AlexV]
-
Quick fix to install python-catkin-pip on travis (doesn't get automatically pulled by rosdep apparently) [alexv]
-
Adding pyros dependency. [AlexV]
-
Fixing imports for new pyros_04. forcing PyrosROS node. removed unused server module. cleaning up instance config file. [alexv]
-
Migrating to latest catkin_pip. [AlexV]
-
Readme file command correction. [Thomas]
Fixed the command to Install and setup the virtualenvwrapper
-
Not upgrading tox on travis just yet. [AlexV]
-
Fixing tox params. [AlexV]
-
Removing tox options for hypothesis. [AlexV]
-
Removing ROS specific files. adding tox and requirements. [AlexV]
-
Fixing python-flask-restful dependency. [AlexV]
-
Adding kinetic travis checks. [AlexV]
-
Preventing switch to tornado 5 for now (breaking install on lder systems). [AlexV]
-
Making dependency on backports.ssl-mach-hostname system version dependent. [AlexV]
-
Adding python install dependency on backports.ssl-match-hostname on python <=3.4. [AlexV]
-
Now travis install current package in venv before running tests to make sure we retrieve dependencies. [AlexV]
-
Removing submodules from setup.py packages_dir. they re gone. [AlexV]
-
Default config exposes everything. Better for ease of use for now... [AlexV]
-
Commenting useless stuff. [AlexV]
-
Getting flask restful resource to work. [AlexV]
-
Getting ROS interface by defaut. better for now. [AlexV]
File truncated at 100 lines see the full file
Wiki Tutorials
Package Dependencies
Deps | Name |
---|---|
catkin_pip | |
roslint | |
rostest | |
catkin | |
rosunit | |
pyros | |
pyros_interfaces_ros | |
click | |
webargs | |
flask_cors | |
flask_reverse_proxy | |
tblib | |
rospy |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged rostful at Robotics Stack Exchange
Package Summary
Tags | No category tags. |
Version | 0.2.1 |
License | BSD |
Build type | CATKIN |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/asmodehn/rostful.git |
VCS Type | git |
VCS Version | 0.2.1 |
Last Updated | 2018-04-22 |
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) |
Package Description
Additional Links
Maintainers
- AlexV
Authors
- Ben Kehoe
ROSTful
ROStful - A REST API for ROS.
We follow a feature branching workflow
Rostful is intended to be the outside layer of ROS (and eventualy any multiprocess system). Meaning it will interface ROS with other systems, over the internet, via HTTP and through a REST API. As such, this should be used as any python program, from a virtual environment. We also need to install the specific pyros interface for the system we want to expose.
` $ mkvirtualenv rostful (rostful)$ pip install rostful pyros[ros] (rostful)$ python -m rostful flask
`
A ROS package is provided as a third party release, for ease of deployment within a ROS system. However it is heavily recommended to do development the "python way", dynamically, using virtual environments, with quick iterations. The rostful PyPI package is released more often than the ROS package, and will have latest updates available for use.
PYTHON VIRTUALENV SETUP
How to setup your python virtual environment on Ubuntu (tested on Xenial
16.04) * Install and Setup virtualenvwrapper if needed
` sudo apt install virtualenvwrapper
[ * Create your virtual
environment for your project ]{.title-ref}$ mkvirtualenv myproject
[ *
Populate it to use rostful. The catkin dependency is temporarily needed
to be able to use the setup.py currently provided in rostful.
]{.title-ref}(myproject)$ pip install rostful pyros[ros] (myproject)$ pip install rostful
`
Try it now
Go check the examples
Overview
ROStful is a lightweight web server for making ROS services, topics, and actions available as RESTful web services.
ROStful web services primarily use the rosbridge JSON mapping for ROS messages. However, binary serialized ROS messages can be used to increase performance.
The purpose of ROStful is different from rosbridge: rosbridge provides an API for ROS through JSON using web sockets. ROStful allows specific services, topics, and actions to be provided as web services (using plain get and post requests) without exposing underlying ROS concepts. The ROStful client, however, additionally provides a modicum of multi-master functionality. The client proxy is a node that connects to a ROStful web service and exposes the services, topics, and actions locally over ROS.
The ROStful server has no dependencies on 3rd party libraries, and is WSGI-compatible and can therefore be used with most web servers like Apache and IIS.
ROStful web services
A ROStful web service is a web service that uses ROS data structures for input and output. These include services, topics, and actions.
Service methods accept as input a ROS message over HTTP POST and return a ROS message in the response. The input and output cannot be defined directly with ROS messages; it must use a ROS service definition.
Methods denoted as topics may use any ROS message, but are limited to accepting that message via HTTP POST or returning it, taking no input, via HTTP GET. Topic methods do not need to allow both methods. A topic method allowing POST is described as a “subscribing” method, and one that allows GET is a “publishing” method.
Methods denoted as actions consist of a set of subsidiary topic methods,
the subscribing-only goal
and cancel
methods, and the
publishing-only status
, result
, and feedback
methods. These
methods are located at the url <action method url>/<suffix>
, where
the suffix is the subsidiary method name.
The ROStful server
The ROStful server can provide services, topics, and actions that are locally available over ROS as ROStful web services. Topics may be specified as publishing, subscribing, or both.
ROStful uses the rosbridge JSON mapping by default, but binary
serialized ROS messages can be sent with the Content-Header
set to
application/vnd.ros.msg
. Giving this MIME type in the Accept
header
File truncated at 100 lines see the full file
Changelog
0.2.1 (2018-04-22)
- Now storing log in ROS_HOME when running on ROS as installed package. cosmetics. [AlexV]
0.2.0 (2018-04-21)
-
V0.2.0. [AlexV]
-
Integrated release commands to setup.py. [AlexV]
-
Cleaning up param interface to only keep a working minimum view. [AlexV]
-
Fixing getting param value. [AlexV]
-
Removing unused scripts. __main__ is now the entrypoint. [AlexV]
-
Pin numpy to latest version 1.14.2. [pyup-bot]
-
Pin hypothesis to latest version 3.56.3. [pyup-bot]
-
Pin pytest-xdist to latest version 1.22.2. [pyup-bot]
-
Pin pytest to latest version 3.5.0. [pyup-bot]
-
Removing outdated ros content. has already been moved to examples or pyros interface. [AlexV]
-
Adding pyup badges. [AlexV]
-
Cleaning up Readmes. added gitchangelog and pyup configuration. [AlexV]
-
Updating sphinx config. [AlexV]
-
Fixing dependencies to latest pyros. [AlexV]
-
Reverting to latest tox. [AlexV]
-
Reviewing dependencies and ROS packages versions. [AlexV]
-
Cleaning up travis matrix in yml. fixing travis-env in tox.ini. [AlexV]
-
Pinning tox to 2.9.1 for travis testing. [AlexV]
-
Quick fix to install python-catkin-pip on travis (doesn't get automatically pulled by rosdep apparently) [alexv]
-
Adding pyros dependency. [AlexV]
-
Fixing imports for new pyros_04. forcing PyrosROS node. removed unused server module. cleaning up instance config file. [alexv]
-
Migrating to latest catkin_pip. [AlexV]
-
Readme file command correction. [Thomas]
Fixed the command to Install and setup the virtualenvwrapper
-
Not upgrading tox on travis just yet. [AlexV]
-
Fixing tox params. [AlexV]
-
Removing tox options for hypothesis. [AlexV]
-
Removing ROS specific files. adding tox and requirements. [AlexV]
-
Fixing python-flask-restful dependency. [AlexV]
-
Adding kinetic travis checks. [AlexV]
-
Preventing switch to tornado 5 for now (breaking install on lder systems). [AlexV]
-
Making dependency on backports.ssl-mach-hostname system version dependent. [AlexV]
-
Adding python install dependency on backports.ssl-match-hostname on python <=3.4. [AlexV]
-
Now travis install current package in venv before running tests to make sure we retrieve dependencies. [AlexV]
-
Removing submodules from setup.py packages_dir. they re gone. [AlexV]
-
Default config exposes everything. Better for ease of use for now... [AlexV]
-
Commenting useless stuff. [AlexV]
-
Getting flask restful resource to work. [AlexV]
-
Getting ROS interface by defaut. better for now. [AlexV]
File truncated at 100 lines see the full file
Wiki Tutorials
Package Dependencies
Deps | Name |
---|---|
catkin_pip | |
roslint | |
rostest | |
catkin | |
rosunit | |
pyros | |
pyros_interfaces_ros | |
click | |
webargs | |
flask_cors | |
flask_reverse_proxy | |
tblib | |
rospy |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged rostful at Robotics Stack Exchange
Third-Party Package
This third-party package's source repository does not contain a package manifest. Instead, its package manifest is stored in its release repository. In order to build this package from source in a Catkin workspace, please download its package manifest.Package Summary
Tags | No category tags. |
Version | 0.2.1 |
License | BSD |
Build type | CATKIN |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/asmodehn/rostful.git |
VCS Type | git |
VCS Version | 0.2.1 |
Last Updated | 2018-04-22 |
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) |
Package Description
Additional Links
Maintainers
- AlexV
Authors
- Ben Kehoe
ROSTful
ROStful - A REST API for ROS.
We follow a feature branching workflow
Rostful is intended to be the outside layer of ROS (and eventualy any multiprocess system). Meaning it will interface ROS with other systems, over the internet, via HTTP and through a REST API. As such, this should be used as any python program, from a virtual environment. We also need to install the specific pyros interface for the system we want to expose.
` $ mkvirtualenv rostful (rostful)$ pip install rostful pyros[ros] (rostful)$ python -m rostful flask
`
A ROS package is provided as a third party release, for ease of deployment within a ROS system. However it is heavily recommended to do development the "python way", dynamically, using virtual environments, with quick iterations. The rostful PyPI package is released more often than the ROS package, and will have latest updates available for use.
PYTHON VIRTUALENV SETUP
How to setup your python virtual environment on Ubuntu (tested on Xenial
16.04) * Install and Setup virtualenvwrapper if needed
` sudo apt install virtualenvwrapper
[ * Create your virtual
environment for your project ]{.title-ref}$ mkvirtualenv myproject
[ *
Populate it to use rostful. The catkin dependency is temporarily needed
to be able to use the setup.py currently provided in rostful.
]{.title-ref}(myproject)$ pip install rostful pyros[ros] (myproject)$ pip install rostful
`
Try it now
Go check the examples
Overview
ROStful is a lightweight web server for making ROS services, topics, and actions available as RESTful web services.
ROStful web services primarily use the rosbridge JSON mapping for ROS messages. However, binary serialized ROS messages can be used to increase performance.
The purpose of ROStful is different from rosbridge: rosbridge provides an API for ROS through JSON using web sockets. ROStful allows specific services, topics, and actions to be provided as web services (using plain get and post requests) without exposing underlying ROS concepts. The ROStful client, however, additionally provides a modicum of multi-master functionality. The client proxy is a node that connects to a ROStful web service and exposes the services, topics, and actions locally over ROS.
The ROStful server has no dependencies on 3rd party libraries, and is WSGI-compatible and can therefore be used with most web servers like Apache and IIS.
ROStful web services
A ROStful web service is a web service that uses ROS data structures for input and output. These include services, topics, and actions.
Service methods accept as input a ROS message over HTTP POST and return a ROS message in the response. The input and output cannot be defined directly with ROS messages; it must use a ROS service definition.
Methods denoted as topics may use any ROS message, but are limited to accepting that message via HTTP POST or returning it, taking no input, via HTTP GET. Topic methods do not need to allow both methods. A topic method allowing POST is described as a “subscribing” method, and one that allows GET is a “publishing” method.
Methods denoted as actions consist of a set of subsidiary topic methods,
the subscribing-only goal
and cancel
methods, and the
publishing-only status
, result
, and feedback
methods. These
methods are located at the url <action method url>/<suffix>
, where
the suffix is the subsidiary method name.
The ROStful server
The ROStful server can provide services, topics, and actions that are locally available over ROS as ROStful web services. Topics may be specified as publishing, subscribing, or both.
ROStful uses the rosbridge JSON mapping by default, but binary
serialized ROS messages can be sent with the Content-Header
set to
application/vnd.ros.msg
. Giving this MIME type in the Accept
header
File truncated at 100 lines see the full file
Changelog
0.2.1 (2018-04-22)
- Now storing log in ROS_HOME when running on ROS as installed package. cosmetics. [AlexV]
0.2.0 (2018-04-21)
-
V0.2.0. [AlexV]
-
Integrated release commands to setup.py. [AlexV]
-
Cleaning up param interface to only keep a working minimum view. [AlexV]
-
Fixing getting param value. [AlexV]
-
Removing unused scripts. __main__ is now the entrypoint. [AlexV]
-
Pin numpy to latest version 1.14.2. [pyup-bot]
-
Pin hypothesis to latest version 3.56.3. [pyup-bot]
-
Pin pytest-xdist to latest version 1.22.2. [pyup-bot]
-
Pin pytest to latest version 3.5.0. [pyup-bot]
-
Removing outdated ros content. has already been moved to examples or pyros interface. [AlexV]
-
Adding pyup badges. [AlexV]
-
Cleaning up Readmes. added gitchangelog and pyup configuration. [AlexV]
-
Updating sphinx config. [AlexV]
-
Fixing dependencies to latest pyros. [AlexV]
-
Reverting to latest tox. [AlexV]
-
Reviewing dependencies and ROS packages versions. [AlexV]
-
Cleaning up travis matrix in yml. fixing travis-env in tox.ini. [AlexV]
-
Pinning tox to 2.9.1 for travis testing. [AlexV]
-
Quick fix to install python-catkin-pip on travis (doesn't get automatically pulled by rosdep apparently) [alexv]
-
Adding pyros dependency. [AlexV]
-
Fixing imports for new pyros_04. forcing PyrosROS node. removed unused server module. cleaning up instance config file. [alexv]
-
Migrating to latest catkin_pip. [AlexV]
-
Readme file command correction. [Thomas]
Fixed the command to Install and setup the virtualenvwrapper
-
Not upgrading tox on travis just yet. [AlexV]
-
Fixing tox params. [AlexV]
-
Removing tox options for hypothesis. [AlexV]
-
Removing ROS specific files. adding tox and requirements. [AlexV]
-
Fixing python-flask-restful dependency. [AlexV]
-
Adding kinetic travis checks. [AlexV]
-
Preventing switch to tornado 5 for now (breaking install on lder systems). [AlexV]
-
Making dependency on backports.ssl-mach-hostname system version dependent. [AlexV]
-
Adding python install dependency on backports.ssl-match-hostname on python <=3.4. [AlexV]
-
Now travis install current package in venv before running tests to make sure we retrieve dependencies. [AlexV]
-
Removing submodules from setup.py packages_dir. they re gone. [AlexV]
-
Default config exposes everything. Better for ease of use for now... [AlexV]
-
Commenting useless stuff. [AlexV]
-
Getting flask restful resource to work. [AlexV]
-
Getting ROS interface by defaut. better for now. [AlexV]
File truncated at 100 lines see the full file
Wiki Tutorials
Package Dependencies
Deps | Name |
---|---|
catkin_pip | |
roslint | |
rostest | |
catkin | |
rosunit | |
pyros | |
pyros_interfaces_ros | |
click | |
webargs | |
flask_cors | |
flask_reverse_proxy | |
tblib | |
rospy |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged rostful at Robotics Stack Exchange
Package Summary
Tags | No category tags. |
Version | 0.2.1 |
License | BSD |
Build type | CATKIN |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/asmodehn/rostful.git |
VCS Type | git |
VCS Version | 0.2.1 |
Last Updated | 2018-04-22 |
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) |
Package Description
Additional Links
Maintainers
- AlexV
Authors
- Ben Kehoe
ROSTful
ROStful - A REST API for ROS.
We follow a feature branching workflow
Rostful is intended to be the outside layer of ROS (and eventualy any multiprocess system). Meaning it will interface ROS with other systems, over the internet, via HTTP and through a REST API. As such, this should be used as any python program, from a virtual environment. We also need to install the specific pyros interface for the system we want to expose.
` $ mkvirtualenv rostful (rostful)$ pip install rostful pyros[ros] (rostful)$ python -m rostful flask
`
A ROS package is provided as a third party release, for ease of deployment within a ROS system. However it is heavily recommended to do development the "python way", dynamically, using virtual environments, with quick iterations. The rostful PyPI package is released more often than the ROS package, and will have latest updates available for use.
PYTHON VIRTUALENV SETUP
How to setup your python virtual environment on Ubuntu (tested on Xenial
16.04) * Install and Setup virtualenvwrapper if needed
` sudo apt install virtualenvwrapper
[ * Create your virtual
environment for your project ]{.title-ref}$ mkvirtualenv myproject
[ *
Populate it to use rostful. The catkin dependency is temporarily needed
to be able to use the setup.py currently provided in rostful.
]{.title-ref}(myproject)$ pip install rostful pyros[ros] (myproject)$ pip install rostful
`
Try it now
Go check the examples
Overview
ROStful is a lightweight web server for making ROS services, topics, and actions available as RESTful web services.
ROStful web services primarily use the rosbridge JSON mapping for ROS messages. However, binary serialized ROS messages can be used to increase performance.
The purpose of ROStful is different from rosbridge: rosbridge provides an API for ROS through JSON using web sockets. ROStful allows specific services, topics, and actions to be provided as web services (using plain get and post requests) without exposing underlying ROS concepts. The ROStful client, however, additionally provides a modicum of multi-master functionality. The client proxy is a node that connects to a ROStful web service and exposes the services, topics, and actions locally over ROS.
The ROStful server has no dependencies on 3rd party libraries, and is WSGI-compatible and can therefore be used with most web servers like Apache and IIS.
ROStful web services
A ROStful web service is a web service that uses ROS data structures for input and output. These include services, topics, and actions.
Service methods accept as input a ROS message over HTTP POST and return a ROS message in the response. The input and output cannot be defined directly with ROS messages; it must use a ROS service definition.
Methods denoted as topics may use any ROS message, but are limited to accepting that message via HTTP POST or returning it, taking no input, via HTTP GET. Topic methods do not need to allow both methods. A topic method allowing POST is described as a “subscribing” method, and one that allows GET is a “publishing” method.
Methods denoted as actions consist of a set of subsidiary topic methods,
the subscribing-only goal
and cancel
methods, and the
publishing-only status
, result
, and feedback
methods. These
methods are located at the url <action method url>/<suffix>
, where
the suffix is the subsidiary method name.
The ROStful server
The ROStful server can provide services, topics, and actions that are locally available over ROS as ROStful web services. Topics may be specified as publishing, subscribing, or both.
ROStful uses the rosbridge JSON mapping by default, but binary
serialized ROS messages can be sent with the Content-Header
set to
application/vnd.ros.msg
. Giving this MIME type in the Accept
header
File truncated at 100 lines see the full file
Changelog
0.2.1 (2018-04-22)
- Now storing log in ROS_HOME when running on ROS as installed package. cosmetics. [AlexV]
0.2.0 (2018-04-21)
-
V0.2.0. [AlexV]
-
Integrated release commands to setup.py. [AlexV]
-
Cleaning up param interface to only keep a working minimum view. [AlexV]
-
Fixing getting param value. [AlexV]
-
Removing unused scripts. __main__ is now the entrypoint. [AlexV]
-
Pin numpy to latest version 1.14.2. [pyup-bot]
-
Pin hypothesis to latest version 3.56.3. [pyup-bot]
-
Pin pytest-xdist to latest version 1.22.2. [pyup-bot]
-
Pin pytest to latest version 3.5.0. [pyup-bot]
-
Removing outdated ros content. has already been moved to examples or pyros interface. [AlexV]
-
Adding pyup badges. [AlexV]
-
Cleaning up Readmes. added gitchangelog and pyup configuration. [AlexV]
-
Updating sphinx config. [AlexV]
-
Fixing dependencies to latest pyros. [AlexV]
-
Reverting to latest tox. [AlexV]
-
Reviewing dependencies and ROS packages versions. [AlexV]
-
Cleaning up travis matrix in yml. fixing travis-env in tox.ini. [AlexV]
-
Pinning tox to 2.9.1 for travis testing. [AlexV]
-
Quick fix to install python-catkin-pip on travis (doesn't get automatically pulled by rosdep apparently) [alexv]
-
Adding pyros dependency. [AlexV]
-
Fixing imports for new pyros_04. forcing PyrosROS node. removed unused server module. cleaning up instance config file. [alexv]
-
Migrating to latest catkin_pip. [AlexV]
-
Readme file command correction. [Thomas]
Fixed the command to Install and setup the virtualenvwrapper
-
Not upgrading tox on travis just yet. [AlexV]
-
Fixing tox params. [AlexV]
-
Removing tox options for hypothesis. [AlexV]
-
Removing ROS specific files. adding tox and requirements. [AlexV]
-
Fixing python-flask-restful dependency. [AlexV]
-
Adding kinetic travis checks. [AlexV]
-
Preventing switch to tornado 5 for now (breaking install on lder systems). [AlexV]
-
Making dependency on backports.ssl-mach-hostname system version dependent. [AlexV]
-
Adding python install dependency on backports.ssl-match-hostname on python <=3.4. [AlexV]
-
Now travis install current package in venv before running tests to make sure we retrieve dependencies. [AlexV]
-
Removing submodules from setup.py packages_dir. they re gone. [AlexV]
-
Default config exposes everything. Better for ease of use for now... [AlexV]
-
Commenting useless stuff. [AlexV]
-
Getting flask restful resource to work. [AlexV]
-
Getting ROS interface by defaut. better for now. [AlexV]
File truncated at 100 lines see the full file
Wiki Tutorials
Package Dependencies
Deps | Name |
---|---|
catkin_pip | |
roslint | |
rostest | |
catkin | |
rosunit | |
pyros | |
pyros_interfaces_ros | |
click | |
webargs | |
flask_cors | |
flask_reverse_proxy | |
tblib | |
rospy |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged rostful at Robotics Stack Exchange
Package Summary
Tags | No category tags. |
Version | 0.2.1 |
License | BSD |
Build type | CATKIN |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/asmodehn/rostful.git |
VCS Type | git |
VCS Version | 0.2.1 |
Last Updated | 2018-04-22 |
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) |
Package Description
Additional Links
Maintainers
- AlexV
Authors
- Ben Kehoe
ROSTful
ROStful - A REST API for ROS.
We follow a feature branching workflow
Rostful is intended to be the outside layer of ROS (and eventualy any multiprocess system). Meaning it will interface ROS with other systems, over the internet, via HTTP and through a REST API. As such, this should be used as any python program, from a virtual environment. We also need to install the specific pyros interface for the system we want to expose.
` $ mkvirtualenv rostful (rostful)$ pip install rostful pyros[ros] (rostful)$ python -m rostful flask
`
A ROS package is provided as a third party release, for ease of deployment within a ROS system. However it is heavily recommended to do development the "python way", dynamically, using virtual environments, with quick iterations. The rostful PyPI package is released more often than the ROS package, and will have latest updates available for use.
PYTHON VIRTUALENV SETUP
How to setup your python virtual environment on Ubuntu (tested on Xenial
16.04) * Install and Setup virtualenvwrapper if needed
` sudo apt install virtualenvwrapper
[ * Create your virtual
environment for your project ]{.title-ref}$ mkvirtualenv myproject
[ *
Populate it to use rostful. The catkin dependency is temporarily needed
to be able to use the setup.py currently provided in rostful.
]{.title-ref}(myproject)$ pip install rostful pyros[ros] (myproject)$ pip install rostful
`
Try it now
Go check the examples
Overview
ROStful is a lightweight web server for making ROS services, topics, and actions available as RESTful web services.
ROStful web services primarily use the rosbridge JSON mapping for ROS messages. However, binary serialized ROS messages can be used to increase performance.
The purpose of ROStful is different from rosbridge: rosbridge provides an API for ROS through JSON using web sockets. ROStful allows specific services, topics, and actions to be provided as web services (using plain get and post requests) without exposing underlying ROS concepts. The ROStful client, however, additionally provides a modicum of multi-master functionality. The client proxy is a node that connects to a ROStful web service and exposes the services, topics, and actions locally over ROS.
The ROStful server has no dependencies on 3rd party libraries, and is WSGI-compatible and can therefore be used with most web servers like Apache and IIS.
ROStful web services
A ROStful web service is a web service that uses ROS data structures for input and output. These include services, topics, and actions.
Service methods accept as input a ROS message over HTTP POST and return a ROS message in the response. The input and output cannot be defined directly with ROS messages; it must use a ROS service definition.
Methods denoted as topics may use any ROS message, but are limited to accepting that message via HTTP POST or returning it, taking no input, via HTTP GET. Topic methods do not need to allow both methods. A topic method allowing POST is described as a “subscribing” method, and one that allows GET is a “publishing” method.
Methods denoted as actions consist of a set of subsidiary topic methods,
the subscribing-only goal
and cancel
methods, and the
publishing-only status
, result
, and feedback
methods. These
methods are located at the url <action method url>/<suffix>
, where
the suffix is the subsidiary method name.
The ROStful server
The ROStful server can provide services, topics, and actions that are locally available over ROS as ROStful web services. Topics may be specified as publishing, subscribing, or both.
ROStful uses the rosbridge JSON mapping by default, but binary
serialized ROS messages can be sent with the Content-Header
set to
application/vnd.ros.msg
. Giving this MIME type in the Accept
header
File truncated at 100 lines see the full file
Changelog
0.2.1 (2018-04-22)
- Now storing log in ROS_HOME when running on ROS as installed package. cosmetics. [AlexV]
0.2.0 (2018-04-21)
-
V0.2.0. [AlexV]
-
Integrated release commands to setup.py. [AlexV]
-
Cleaning up param interface to only keep a working minimum view. [AlexV]
-
Fixing getting param value. [AlexV]
-
Removing unused scripts. __main__ is now the entrypoint. [AlexV]
-
Pin numpy to latest version 1.14.2. [pyup-bot]
-
Pin hypothesis to latest version 3.56.3. [pyup-bot]
-
Pin pytest-xdist to latest version 1.22.2. [pyup-bot]
-
Pin pytest to latest version 3.5.0. [pyup-bot]
-
Removing outdated ros content. has already been moved to examples or pyros interface. [AlexV]
-
Adding pyup badges. [AlexV]
-
Cleaning up Readmes. added gitchangelog and pyup configuration. [AlexV]
-
Updating sphinx config. [AlexV]
-
Fixing dependencies to latest pyros. [AlexV]
-
Reverting to latest tox. [AlexV]
-
Reviewing dependencies and ROS packages versions. [AlexV]
-
Cleaning up travis matrix in yml. fixing travis-env in tox.ini. [AlexV]
-
Pinning tox to 2.9.1 for travis testing. [AlexV]
-
Quick fix to install python-catkin-pip on travis (doesn't get automatically pulled by rosdep apparently) [alexv]
-
Adding pyros dependency. [AlexV]
-
Fixing imports for new pyros_04. forcing PyrosROS node. removed unused server module. cleaning up instance config file. [alexv]
-
Migrating to latest catkin_pip. [AlexV]
-
Readme file command correction. [Thomas]
Fixed the command to Install and setup the virtualenvwrapper
-
Not upgrading tox on travis just yet. [AlexV]
-
Fixing tox params. [AlexV]
-
Removing tox options for hypothesis. [AlexV]
-
Removing ROS specific files. adding tox and requirements. [AlexV]
-
Fixing python-flask-restful dependency. [AlexV]
-
Adding kinetic travis checks. [AlexV]
-
Preventing switch to tornado 5 for now (breaking install on lder systems). [AlexV]
-
Making dependency on backports.ssl-mach-hostname system version dependent. [AlexV]
-
Adding python install dependency on backports.ssl-match-hostname on python <=3.4. [AlexV]
-
Now travis install current package in venv before running tests to make sure we retrieve dependencies. [AlexV]
-
Removing submodules from setup.py packages_dir. they re gone. [AlexV]
-
Default config exposes everything. Better for ease of use for now... [AlexV]
-
Commenting useless stuff. [AlexV]
-
Getting flask restful resource to work. [AlexV]
-
Getting ROS interface by defaut. better for now. [AlexV]
File truncated at 100 lines see the full file
Wiki Tutorials
Package Dependencies
Deps | Name |
---|---|
catkin_pip | |
roslint | |
rostest | |
catkin | |
rosunit | |
pyros | |
pyros_interfaces_ros | |
click | |
webargs | |
flask_cors | |
flask_reverse_proxy | |
tblib | |
rospy |