robotics-in-concert / rocon_app_platform

Robotics in concert app framework
8 stars 18 forks source link

Recursive remapping rules when roslaunching #104

Open jihoonl opened 10 years ago

jihoonl commented 10 years ago

detail will come soon

jihoonl commented 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.

jihoonl commented 10 years ago

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')

jihoonl commented 10 years ago

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

jihoonl commented 10 years ago

Note that the patch does not find root of the chain. Also triple chained topic would not get resolved. It requires smarter solution.

stonier commented 10 years ago

Just recursing the function should do the trick no?

jihoonl commented 10 years ago

recursive function would work with proper terminate condition.

jihoonl commented 10 years ago

have not seen this issue more than 6 month. reopen if necessary.

stonier commented 10 years ago

The logic problem is still there right?

stonier commented 9 years ago

@jihoonl bump

jihoonl commented 9 years ago

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.