[Documentation] [TitleIndex] [WordIndex

API review

Proposer: your name here

Present at review:

Question / concerns / comments

Melonee

The tutorials seems good. Although I might have people bring up the pr2_dashboard and look at the controllers in the diagnostics. I have john add a diagnostics aggregator to the sim for that reason.

Bhaskara

Overall pretty clear.

Conor

Would suggest the sample does not use the controller namespace Typo:Controller initialization in non-relatime API question - if we can get a controller we can call public methods to start, stop and update - correct? Which of these are actually safe? In the last step, saw alot of rospack warnings, although the controller plugin looked properly registered: [rospack] warning: couldn't find dependency [roslisp] of [hierarchical] [rospack] warning: couldn't find dependency [opencv2] of [image_segmentation] [rospack] warning: couldn't find dependency [cv_bridge] of [image_segmentation] [rospack] warning: couldn't find dependency [opencv2] of [cv_mech_turk] [rospack] warning: couldn't find dependency [roscpp_sessions] of [openraveros] [rospack] warning: couldn't find dependency [rosoct] of [openraveros] [rospack] warning: couldn't find dependency [image_cb_detector] of [pr2_calibration_executive] [rospack] warning: couldn't find dependency [image_cb_detector] of [pr2_calibration_launch] [rospack] warning: couldn't find dependency [rosoct] of [laser_camera_calibration] [rospack] warning: couldn't find dependency [opencv2] of [person_data] [rospack] warning: couldn't find dependency [cv_bridge] of [person_data] [rospack] warning: couldn't find dependency [pr_msgs] of [web_object_menu] [rospack] warning: couldn't find dependency [rosclj] of [hierarchical_planning] [rospack] warning: couldn't find dependency [rosclj] of [clj_pr2] [rospack] warning: couldn't find dependency [roslisp] of [rosout_db] [rospack] warning: couldn't find dependency [roslisp] of [people_aware_nav] [rospack] warning: couldn't find dependency [turtlesim] of [turtle_teleop] [rospack] warning: couldn't find dependency [turtlesim] of [turtle_tf] [rospack] warning: couldn't find dependency [rosoct] of [iir_filters] my_controller_pkg /u/mcgann/ros/ros-pkg/wg-ros-pkg/my_controller_pkg/controller_plugins.xml robot_mechanism_controllers /u/mcgann/ros/ros-pkg/wg-ros-pkg/controllers/robot_mechanism_controllers/controller_plugins.xml pr2_mechanism_controllers /u/mcgann/ros/ros-pkg/wg-ros-pkg/controllers/pr2_mechanism_controllers/controller_plugins.xml ethercat_trigger_controllers /u/mcgann/ros/ros-pkg/wg-ros-pkg/controllers/ethercat_trigger_controllers/controller_plugins.xml experimental_controllers /u/mcgann/ros/ros-pkg/wg-ros-pkg/sandbox/experimental_controllers/controller_plugins.xml trajectory_controllers /u/mcgann/ros/ros-pkg/wg-ros-pkg/sandbox/trajectory_controllers/controller_plugins.xml dmp_motion_controller /u/mcgann/ros/ros-pkg/wg-ros-pkg/sandbox/dmp_motion_controller/controller_plugins.xml joint_qualification_controllers /u/mcgann/ros/ros-pkg/wg-ros-pkg/sandbox/qualification_controllers/joint_qualification_controllers/controller_plugins.xml

Flawless. Cool to see the arm move :-)

On compilation:

woah! on line 2 of float64 amplitude

each line needs to have two tokens: the first is the type and the second is the variable name.

Problem turned out to be that copy/paste of srv code included leading spaces which broke the srv generation. The gen_srv should be more robust to this problem. Absent that, the tutorial should get rid of the spaces as a new user might struggle with this.

When trying to run:

mcgann@adw:/wg/adw/mcgann/ros/ros-pkg/wg-ros-pkg/my_controller_pkg$ rosservice call /my_tutorial_controller/set_amplitude 0.1 Unknown service [/my_tutorial_controller/set_amplitude] ERROR: Service [/my_tutorial_controller/set_amplitude] is not available. mcgann@adw:/wg/adw/mcgann/ros/ros-pkg/wg-ros-pkg/my_controller_pkg$

The controller is definitely running as the arm was moving. I observe the following console output from thr running controller: core service [/rosout] found deleting parameter [/my_tutorial_controller/] setting parameter [/my_tutorial_controller/joint_name] setting parameter [/my_tutorial_controller/type] process[my_controller_spawner-1]: started with pid [26358] Failed to handle inbound connection due to socket error: timed out Failed to handle inbound connection due to socket error: timed out Failed to handle inbound connection due to socket error: timed out Failed to handle inbound connection due to socket error: timed out Failed to handle inbound connection due to socket error: timed out

I had not restarted Gazebo prior to doing this as I though the controller had been stopped, and unloaded. But apparently I had to redo from scratch. Granted, the instructions state to do that but I think that either you require the system to not be running or you make it so that the controller has actually been correctly unlaoded such that the new library will be loaded the next time around (prefereable).

Meeting agenda

To be filled out by proposer based on comments gathered during API review period

Conclusion

Stack status change mark change manifest)



2023-10-28 12:53