Open jihoonl opened 10 years ago
While composing the teleop service, I tried to start android teleop app with "android/virtual_joystick/cmd_vel" to "/robot_teleop/cmd_vel" remapping rule. However, it didn't remap and still "android/virtual_joystick/cmd_vel" was provided.
(written in rapp launch file) teleop_velocity_smoother/raw_cmd_vel -> android/virtual_joystick/cmd_vel
(passed as /start_app arguement) android/virtual_joystick/cmd_vel -> /robot_teleop/cmd_vel
It ignored the remap rule which is passed as /start_app arguement and only applied first one.
This is node remapping configuration
[u'teleop_velocity_smoother/raw_cmd_vel', u'android/virtual_joystick/cmd_vel'],[u'teleop_velocity_smoother/smooth_cmd_vel', u'/cmd_vel_mux/input/teleop'], [u'teleop_velocity_smoother/odometry', u'/odom'], [u'teleop_velocity_smoother/robot_cmd_vel', u'/mobile_base/commands/velocity'], ('camera/rgb/image_color/compressed_throttle', '/robot_teleop/image_color/compressed_throttle'), ('android/virtual_joystick/cmd_vel', '/robot_teleop/cmd_vel')
It seems like roslaunch does not handle the chained remapping rule. So there should be a logic to handle chained remapping rule in rapp.py
To be clear, need a logic to handle
A -> B -> C ---------> A -> C
Note that the patch does not find root of the chain. Also triple chained topic would not get resolved. It requires smarter solution.
Just recursing the function should do the trick no?
recursive function would work with proper terminate condition.
have not seen this issue more than 6 month. reopen if necessary.
The logic problem is still there right?
@jihoonl bump
https://github.com/robotics-in-concert/rocon_app_platform/blob/develop/rocon_app_manager/src/rocon_app_manager/rapp.py#L168 and https://github.com/robotics-in-concert/rocon_app_platform/blob/develop/rocon_app_manager/src/rocon_app_manager/utils.py#L106-L129
should have resolved most of chain remapping problems. The corner cases like chain of chain of chain of chains aren't tested though.
detail will come soon