start-jsk / rtmros_hironx

hironx controller and applications using rtmros packages
http://wiki.ros.org/rtmros_hironx
10 stars 27 forks source link

[hironx_ros_bridge] Enable to run CollisionDetector RTC by setting conf (Robot.conf) #535

Closed pazeshun closed 4 years ago

pazeshun commented 4 years ago

Includes #537

In our lab's HIRONX, CollisionDetector RTC (co.rtc) can run thanks to https://github.com/fkanehiro/hrpsys-base/pull/1283. Previously, we just comment in here to run that RTC. However, this cannot be merged to original repository, so some efforts are required for maintenance.

This PR solves that situation. If you add the following line to /opt/jsk/etc/HIRONX/hrprtc/Robot.conf (inside the robot), hironx.py brings up CollisionDetector RTC:

# RTC disable/enable settings which will be loaded via RobotHardware
CollisionDetector.enable: YES

If that section doesn't exist (common users' case), the behavior of hironx.py doesn't change.

Also, this PR supports disabling other RTCs from the conf file:

ServoController.enable: NO

In addition, this PR includes test to check those features (#537).

Memo: Another solution is to load all executable RTCs (CollisionDetector in default HIRONX isn't compiled and executable), but if taking that solution, simulated robot will load CollisionDetector (because it's compiled in local PC).

pazeshun commented 4 years ago

Travis failed. e.g. ROS_DISTRO=indigo ROSWS=wstool BUILDER=catkin USE_DEB=true ROS_REPOSITORY_PATH=http://packages.ros.org/ros/ubuntu:

++ rosdep install -r -n --from-paths src --ignore-src --rosdistro indigo -y
ERROR: the following packages/stacks could not have their rosdep keys resolved
to system dependencies:
hironx_ros_bridge: Cannot locate rosdep definition for [tf]
hironx_calibration: Cannot locate rosdep definition for [orocos_kdl]
hironx_moveit_config: Cannot locate rosdep definition for [rostest]
rtmros_hironx: Cannot locate rosdep definition for [catkin]
++ catkin_make
-- The C compiler identification is GNU 4.8.4
-- The CXX compiler identification is unknown
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
CMake Error: your CXX compiler: "CMAKE_CXX_COMPILER-NOTFOUND" was not found.   Please set CMAKE_CXX_COMPILER to a valid compiler path or name.
-- Could not find the required component 'hrpsys_ros_bridge'. The following CMake error indicates that you either need to install the package with the same name or change your environment so that it can be found.
CMake Error at /opt/ros/indigo/share/catkin/cmake/catkinConfig.cmake:83 (find_package):
  Could not find a package configuration file provided by "hrpsys_ros_bridge"
  with any of the following names:

    hrpsys_ros_bridgeConfig.cmake
    hrpsys_ros_bridge-config.cmake

  Add the installation prefix of "hrpsys_ros_bridge" to CMAKE_PREFIX_PATH or
  set "hrpsys_ros_bridge_DIR" to a directory containing one of the above
  files.  If "hrpsys_ros_bridge" provides a separate development package or
  SDK, be sure it has been installed.
Call Stack (most recent call first):
  rtmros_hironx/hironx_ros_bridge/CMakeLists.txt:4 (find_package)
pazeshun commented 4 years ago

@k-okada Travis test of #537 (including tests only) failed, and came to succeed in this PR. This test checks if CollisionDetector is disabled in normal conf. This test checks if disabling/enabling RTCs from conf works. Could you review this PR?

pazeshun commented 4 years ago

@k-okada Kindly ping. Is this PR in the correct direction?

pazeshun commented 4 years ago

@k-okada kindly ping