Rospack Caching Failure
I'm trying to run a custom version of move_base
on our PR2. The code works fine elsewhere. When running move_base
with a launch file or rosrun, however, it runs the standard version and not my version.
$ echo $ROS_PACKAGE_PATH
/home/dlu/ros:/opt/ros/electric/stacks
$ rospack find move_base
/home/dlu/ros/nav_experimental/move_base
I put a custom ROS_INFO message into the move_base
code. And running the code directly from the directory works fine.
$ bin/move_base
[ INFO] [1330639556.246247279]: Subscribed to Topics: base_scan_marking base_scan tilt_scan ground_object_cloud
[ INFO] [1330639556.266441874]: Subscribe Now!
[ INFO] [1330639556.267763437]: Requesting the map...
However, running using a launch file and/or rosrun does not work (instead running the old version).
$ rosrun move_base move_base
[ INFO] [1330639542.607175443]: Subscribed to Topics: base_scan_marking base_scan tilt_scan ground_object_cloud
[ INFO] [1330639542.626603667]: Requesting the map...
Edit: rosrun move_base move_base
works if the package is properly set in ~/.ros/rospack_cache
, however, roslaunch
resets the value in rospack_cache
to the standard electric version.
Edit 2: I believe the problem lies in the fact that my launch file includes pr2.machine
, which includes this line:
<machine name="c1" address="c1" ros-root="$(env ROS_ROOT)" ros-package-path="$(env ROS_PACKAGE_PATH)" default="true" />
I don't think my ROS_PACKAGE_PATH is being set in the correct place, thus explaining this problem and the tab-complete problem described below. I currently export it (with my modification) in .bashrc right after sourcing setup.bash. Is there a better place to set it?
Update here: http://answers.ros.org/question/38038/c1-vs-c2-pr2-filesystem-organization/