Projects
Eulaceura:Factory
actionlib
_service:obs_scm:README.en.md
Sign Up
Log In
Username
Password
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File _service:obs_scm:README.en.md of Package actionlib
# actionlib #### Description In any large ROS based system, there are cases when someone would like to send a request to a node to perform some task, and also receive a reply to the request. This can currently be achieved via ROS services. In some cases, however, if the service takes a long time to execute, the user might want the ability to cancel the request during execution or get periodic feedback about how the request is progressing. The actionlib package provides tools to create servers that execute long-running goals that can be preempted. It also provides a client interface in order to send requests to the server. The ActionClient and ActionServer communicate via a "ROS Action Protocol", which is built on top of ROS messages. The client and server then provide a simple API for users to request goals (on the client side) or to execute goals (on the server side) via function calls and callbacks. ![Image text](https://gitee.com/gongjie7788/actionlib/raw/master/image/client_server_interaction.png) #### Software Architecture Software architecture description In order for the client and server to communicate, we need to define a few messages on which they communicate. This is with an action specification. This defines the Goal, Feedback, and Result messages with which clients and servers communicate: `Goal`<br> To accomplish tasks using actions, we introduce the notion of a goal that can be sent to an ActionServer by an ActionClient. In the case of moving the base, the goal would be a PoseStamped message that contains information about where the robot should move to in the world. For controlling the tilting laser scanner, the goal would contain the scan parameters (min angle, max angle, speed, etc). `Feedback`<br> Feedback provides server implementers a way to tell an ActionClient about the incremental progress of a goal. For moving the base, this might be the robot's current pose along the path. For controlling the tilting laser scanner, this might be the time left until the scan completes. `Result`<br> A result is sent from the ActionServer to the ActionClient upon completion of the goal. This is different than feedback, since it is sent exactly once. This is extremely useful when the purpose of the action is to provide some sort of information. For move base, the result isn't very important, but it might contain the final pose of the robot. For controlling the tilting laser scanner, the result might contain a point cloud generated from the requested scan. input: ``` actionlib/ ├── action ├── actionlib ├── CHANGELOG.rst ├── CMakeLists.txt ├── docs ├── include ├── mainpage.dox ├── package.xml ├── setup.py ├── src └── test ``` #### Installation 1. Download RPM aarch64: wget https://117.78.1.88/build/home:davidhan:branches:openEuler:22.03:LTS/standard_aarch64/aarch64/ros-noetic-ros-actionlib/ros-noetic-ros-actionlib-1.13.2-3.oe2203.aarch64.rpm x86_64: wget https://117.78.1.88/build/home:davidhan:branches:openEuler:22.03:LTS/standard_x86_64/x86_64/ros-noetic-ros-actionlib/ros-noetic-ros-actionlib-1.13.2-3.oe2203.x86_64.rpm 2. Install RPM aarch64: sudo rpm -ivh ros-noetic-ros-actionlib-1.13.2-3.oe2203.aarch64.rpm --nodeps --force x86_64: sudo rpm -ivh ros-noetic-ros-actionlib-1.13.2-3.oe2203.x86_64.rpm --nodeps --force #### Instructions Dependence installation sh /opt/ros/noetic/install_dependence.sh Exit the following output file under the /opt/ros/noetic/ directory , Prove that the software installation is successful ``` actionlib ├── cmake.lock ├── env.sh ├── include │ └── actionlib │ ├── TestActionFeedback.h │ ├── TestActionGoal.h │ ├── TestAction.h │ ├── TestActionResult.h │ ├── TestFeedback.h │ ├── TestGoal.h │ ├── TestRequestActionFeedback.h │ ├── TestRequestActionGoal.h │ ├── TestRequestAction.h │ ├── TestRequestActionResult.h │ ├── TestRequestFeedback.h │ ├── TestRequestGoal.h │ ├── TestRequestResult.h │ ├── TestResult.h │ ├── TwoIntsActionFeedback.h │ ├── TwoIntsActionGoal.h │ ├── TwoIntsAction.h │ ├── TwoIntsActionResult.h │ ├── TwoIntsFeedback.h │ ├── TwoIntsGoal.h │ └── TwoIntsResult.h ├── lib │ ├── actionlib │ ├── libactionlib.so │ ├── pkgconfig │ │ └── actionlib.pc │ └── python2.7 │ └── dist-packages ├── local_setup.bash ├── local_setup.sh ├── local_setup.zsh ├── setup.bash ├── setup.sh ├── _setup_util.py ├── setup.zsh └── share ├── actionlib │ ├── cmake │ └── msg ├── common-lisp │ └── ros ├── gennodejs │ └── ros └── roseus └── ros ``` #### Contribution 1. Fork the repository 2. Create Feat_xxx branch 3. Commit your code 4. Create Pull Request #### Gitee Feature 1. You can use Readme\_XXX.md to support different languages, such as Readme\_en.md, Readme\_zh.md 2. Gitee blog [blog.gitee.com](https://blog.gitee.com) 3. Explore open source project [https://gitee.com/explore](https://gitee.com/explore) 4. The most valuable open source project [GVP](https://gitee.com/gvp) 5. The manual of Gitee [https://gitee.com/help](https://gitee.com/help) 6. The most popular members [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/)
Locations
Projects
Search
Status Monitor
Help
Open Build Service
OBS Manuals
API Documentation
OBS Portal
Reporting a Bug
Contact
Mailing List
Forums
Chat (IRC)
Twitter
Open Build Service (OBS)
is an
openSUSE project
.
浙ICP备2022010568号-2