pr2_etherCAT/Reviews/2010-01-13 Doc Review
Reviewer: Rob Wheeler
Instructions for doing a doc review
See DocReviewProcess for more instructions
- Does the documentation define the Users of your Package, i.e. for the expected usages of your Stack, which APIs will users engage with?
- Are all of these APIs documented?
- Do relevant usages have associated tutorials? (you can ignore this if a Stack-level tutorial covers the relevant usage), and are the indexed in the right places?
- If there are hardware dependencies of the Package, are these documented?
- Is it clear to an outside user what the roadmap is for the Package?
- Is it clear to an outside user what the stability is for the Package?
- Are concepts introduced by the Package well illustrated?
- Is the research related to the Package referenced properly? i.e. can users easily get to relevant papers?
- Are any mathematical formulas in the Package not covered by papers properly documented?
For each launch file in a Package
- Is it clear how to run that launch file?
- Does the launch file start up with no errors when run correctly?
- Do the Nodes in that launch file correctly use ROS_ERROR/ROS_WARN/ROS_INFO logging levels?
Concerns / issues
The documentation mentions that superuser is required. This is no longer strictly true. The old code used to actually check for a UID of 0, but that check has been removed. What is actually required for running pr2_etherCAT is the following "capabilities"
CAP_IPC_LOCK Lock memory (mlockall())
CAP_SYS_NICE Set real-time scheduling policies
CAP_NET_RAW Use raw sockets (for EtherCAT communications)
Superuser has these capabilities, but they can also be granted to another executable by setting file system attributes on the executable file. The pr2_grant program is a setuid-root program which copies pr2_etherCAT to a part of the filesystem where attributes can be set (/var/tmp), and then grants the necessary capabilities to be able to run pr2_etherCAT.
I had completely forgotten about the shutdown service call until I saw it documented here. That call is no longer used and should probably be removed from both the code and the docs.
Fixed (I removed it from the docs, and Rob removed it from the code).