efc-robot / Explore-Bench

71 stars 11 forks source link

graythree_node problem #18

Open winnk123 opened 1 month ago

winnk123 commented 1 month ago

Hi, I'm really appreciate your work. However, when I run the single_robot.launch file. I encountered the following bug. Could you please give me some instructions? Thanks a lot.

process[robot1/move_base-1]: started with pid [31899] process[robot1/cartographer_node-2]: started with pid [31900] process[robot1/cartographer_occupancy_grid_node-3]: started with pid [31901] process[robot1/map_merge-4]: started with pid [31907] ERROR: cannot launch node of type [graythree/graythree_node]: Cannot locate node of type [graythree_node] in package [graythree]. Make sure file exists in package path and permission is set to executable (chmod +x) process[robot1/flat_world_imu_node-6]: started with pid [31909] process[robot1/ImuChange_node-7]: started with pid [31910] [ INFO] [1726477175.417765306]: I0916 16:59:35.000000 31900 configuration_file_resolver.cc:41] Found '/home/chenyue001/CARTO_CATKIN_WS/src/Explore-Bench/sim_env/config/turtlebot3_robot1.lua' for 'turtlebot3_robot1.lua'. [ INFO] [1726477175.420409697]: I0916 16:59:35.000000 31900 configuration_file_resolver.cc:41] Found '/home/chenyue001/CARTO_CATKIN_WS/install_isolated/share/cartographer/configuration_files/map_builder.lua' for 'map_builder.lua'. [ INFO] [1726477175.420465249]: I0916 16:59:35.000000 31900 configuration_file_resolver.cc:41] Found '/home/chenyue001/CARTO_CATKIN_WS/install_isolated/share/cartographer/configuration_files/map_builder.lua' for 'map_builder.lua'. [ INFO] [1726477175.421192435]: I0916 16:59:35.000000 31900 configuration_file_resolver.cc:41] Found '/home/chenyue001/CARTO_CATKIN_WS/install_isolated/share/cartographer/configuration_files/pose_graph.lua' for 'pose_graph.lua'. [ INFO] [1726477175.421253077]: I0916 16:59:35.000000 31900 configuration_file_resolver.cc:41] Found '/home/chenyue001/CARTO_CATKIN_WS/install_isolated/share/cartographer/configuration_files/pose_graph.lua' for 'pose_graph.lua'. [ INFO] [1726477175.421631910]: I0916 16:59:35.000000 31900 configuration_file_resolver.cc:41] Found '/home/chenyue001/CARTO_CATKIN_WS/install_isolated/share/cartographer/configuration_files/trajectory_builder.lua' for 'trajectory_builder.lua'. [ INFO] [1726477175.421703725]: I0916 16:59:35.000000 31900 configuration_file_resolver.cc:41] Found '/home/chenyue001/CARTO_CATKIN_WS/install_isolated/share/cartographer/configuration_files/trajectory_builder.lua' for 'trajectory_builder.lua'. [ INFO] [1726477175.422064624]: I0916 16:59:35.000000 31900 configuration_file_resolver.cc:41] Found '/home/chenyue001/CARTO_CATKIN_WS/install_isolated/share/cartographer/configuration_files/trajectory_builder_2d.lua' for 'trajectory_builder_2d.lua'. [ INFO] [1726477175.422139554]: I0916 16:59:35.000000 31900 configuration_file_resolver.cc:41] Found '/home/chenyue001/CARTO_CATKIN_WS/install_isolated/share/cartographer/configuration_files/trajectory_builder_2d.lua' for 'trajectory_builder_2d.lua'. [ INFO] [1726477175.422502834]: I0916 16:59:35.000000 31900 configuration_file_resolver.cc:41] Found '/home/chenyue001/CARTO_CATKIN_WS/install_isolated/share/cartographer/configuration_files/trajectory_builder_3d.lua' for 'trajectory_builder_3d.lua'. [ INFO] [1726477175.422569728]: I0916 16:59:35.000000 31900 configuration_file_resolver.cc:41] Found '/home/chenyue001/CARTO_CATKIN_WS/install_isolated/share/cartographer/configuration_files/trajectory_builder_3d.lua' for 'trajectory_builder_3d.lua'. [ INFO] [1726477175.430557855]: I0916 16:59:35.000000 31900 map_builder_bridge.cc:136] Added trajectory with ID '0'. [ WARN] [1726477175.575582588, 241.339000000]: Timed out waiting for transform from robot1/base_footprint to robot1/map to become available before running costmap, tf error: canTransform: target_frame robot1/map does not exist.. canTransform returned after 241.339 timeout was 0.1. [ WARN] [1726477178.436809785, 244.197000000]: W0916 16:59:38.000000 31900 node.cc:857] Expected topic "scan" (trajectory 0) (resolved topic "/robot1/scan") but no publisher is currently active.

FarawaySail commented 1 month ago

ERROR: cannot launch node of type [graythree/graythree_node]: Cannot locate node of type [graythree_node] in package [graythree]. Make sure file exists in package path and permission is set to executable (chmod +x) It seems that this package (graythree) was not compiled correctly or the environment variables during runtime are incorrect. From the logs, you seem to put the Explore-Bench and Cartographer both in one workspace and compile them together. But in our process, we first compile Cartographer in one workspace using catkin_make_isolate and then compile Explore-Bench in another workspace using catkin_make.

winnk123 commented 1 month ago

Thank you very much. I have solved that problem. But I was faced with another problem when I try to run single robot.launch. The robot don't move. Could you give me some help. Thanks a lot.

image

[ WARN] [1726482616.732769951, 17.356000000]: Timed out waiting for transform from robot1/base_footprint to robot1/map to become available before running costmap, tf error: canTransform: target_frame robot1/map does not exist.. canTransform returned after 17.356 timeout was 0.1. [ WARN] [1726482619.540922079, 20.169000000]: W0916 18:30:19.000000 1551 node.cc:857] Expected topic "scan" (trajectory 0) (resolved topic "/robot1/scan") but no publisher is currently active. [ WARN] [1726482619.541161314, 20.169000000]: W0916 18:30:19.000000 1551 node.cc:857] Expected topic "odom" (trajectory 0) (resolved topic "/robot1/odom") but no publisher is currently active. [ WARN] [1726482619.541238719, 20.169000000]: W0916 18:30:19.000000 1551 node.cc:866] Currently available topics are: /tf,/robot1/cmd_vel,/robot1/scan_matched_points2,/robot1/move_base/current_goal,/robot1/submap_list,/robot1/trajectory_node_list,/robot1/move_base/goal,/robot1/flat_imu_in,/robot1/cartographer_discrete_map,/tf_static,/gazebo/parameter_descriptions,/rosout,/robot1/constraint_list,/rosout_agg,/robot1/cartographerMap,/robot1/map,/robot1/flat_imu,/gazebo/link_states,/gazebo/model_states,/clock,/robot1/landmark_poses_list,/gazebo/parameter_updates, [ WARN] [1726482621.741571006, 22.365000000]: Timed out waiting for transform from robot1/base_footprint to robot1/map to become available before running costmap, tf error: canTransform: target_frame robot1/map does not exist.. canTransform returned after 0.1 timeout was 0.1. [ WARN] [1726482626.752479294, 27.369000000]: Timed out waiting for transform from robot1/base_footprint to robot1/map to become available before running costmap, tf error: canTransform: target_frame robot1/map does not exist.. canTransform returned after 0.1 timeout was 0.1. [ WARN] [1726482631.768727713, 32.379000000]: Timed out waiting for transform from robot1/base_footprint to robot1/map to become available before running costmap, tf error: canTransform: target_frame robot1/map does not exist.. canTransform returned after 0.1 timeout was 0.1. [ WARN] [1726482636.784015553, 37.386000000]: Timed out waiting for transform from robot1/base_footprint to robot1/map to become available before running costmap, tf error: canTransform: target_frame robot1/map does not exist.. canTransform returned after 0.101 timeout was 0.1. [ WARN] [1726482641.797078801, 42.393000000]: Timed out waiting for transform from robot1/base_footprint to robot1/map to become available before running costmap, tf error: canTransform: target_frame robot1/map does not exist.. canTransform returned after 0.1 timeout was 0.1. [ WARN] [1726482646.809326511, 47.397000000]: Timed out waiting for transform from robot1/base_footprint to robot1/map to become available before running costmap, tf error: canTransform: target_frame robot1/map does not exist.. canTransform returned after 0.1 timeout was 0.1. [ WARN] [1726482651.854730737, 52.407000000]: Timed out waiting for transform from robot1/base_footprint to robot1/map to become available before running costmap, tf error: canTransform: target_frame robot1/map does not exist.. canTransform returned after 0.1 timeout was 0.1. [ WARN] [1726482656.874153458, 57.415000000]: Timed out waiting for transform from robot1/base_footprint to robot1/map to become available before running costmap, tf error: canTransform: target_frame robot1/map does not exist.. canTransform returned after 0.1 timeout was 0.1. [ WARN] [1726482661.897567263, 62.420000000]: Timed out waiting for transform from robot1/base_footprint to robot1/map to become available before running costmap, tf error: canTransform: target_frame robot1/map does not exist.. canTransform returned after 0.1 timeout was 0.1. [ WARN] [1726482666.925180840, 67.431000000]: Timed out waiting for transform from robot1/base_footprint to robot1/map to become available before running costmap, tf error: canTransform: target_frame robot1/map does not exist.. canTransform returned after 0.1 timeout was 0.1. [ WARN] [1726482671.956843779, 72.438000000]: Timed out waiting for transform from robot1/base_footprint to robot1/map to become available before running costmap, tf error: canTransform: target_frame robot1/map does not exist.. canTransform returned after 0.101 timeout was 0.1. [ WARN] [1726482676.980477995, 77.442000000]: Timed out waiting for transform from robot1/base_footprint to robot1/map to become available before running costmap, tf error: canTransform: target_frame robot1/map does not exist.. canTransform returned after 0.1 timeout was 0.1. [ WARN] [1726482682.001875483, 82.451000000]: Timed out waiting for transform from robot1/base_footprint to robot1/map to become available before running costmap, tf error: canTransform: target_frame robot1/map does not exist.. canTransform returned after 0.1 timeout was 0.1. [ WARN] [1726482687.027566033, 87.461000000]: Timed out waiting for transform from robot1/base_footprint to robot1/map to become available before running costmap, tf error: canTransform: target_frame robot1/map does not exist.. canTransform returned after 0.1 timeout was 0.1. [ WARN] [1726482692.050721383, 92.467000000]: Timed out waiting for transform from robot1/base_footprint to robot1/map to become available before running costmap, tf error: canTransform: target_frame robot1/map does not exist.. canTransform returned after 0.1 timeout was 0.1. [ WARN] [1726482697.089706475, 97.480000000]: Timed out waiting for transform from robot1/base_footprint to robot1/map to become available before running costmap, tf error: canTransform: target_frame robot1/map does not exist.. canTransform returned after 0.1 timeout was 0.1. [ WARN] [1726482702.120985338, 102.490000000]: Timed out waiting for transform from robot1/base_footprint to robot1/map to become available before running costmap, tf error: canTransform: target_frame robot1/map does not exist.. canTransform returned after 0.1 timeout was 0.1. [ WARN] [1726482707.138083754, 107.498000000]: Timed out waiting for transform from robot1/base_footprint to robot1/map to become available before running costmap, tf error: canTransform: target_frame robot1/map does not exist.. canTransform returned after 0.1 timeout was 0.1. [ WARN] [1726482712.169291919, 112.509000000]: Timed out waiting for transform from robot1/base_footprint to robot1/map to become available before running costmap, tf error: canTransform: target_frame robot1/map does not exist.. canTransform returned after 0.1 timeout was 0.1. [ WARN] [1726482717.205840951, 117.524000000]: Timed out waiting for transform from robot1/base_footprint to robot1/map to become available before running costmap, tf error: canTransform: target_frame robot1/map does not exist.. canTransform returned after 0.101 timeout was 0.1. [ WARN] [1726482722.224515831, 122.529000000]: Timed out waiting for transform from robot1/base_footprint to robot1/map to become available before running costmap, tf error: canTransform: target_frame robot1/map does not exist.. canTransform returned after 0.1 timeout was 0.1.

FarawaySail commented 1 month ago

You should check the tf tree, like rosrun rqt_tf_tree rqt_tf_tree. In the correct tf tree, the robot1/map, robot1/odom, and robot1/base_footprint should be connected.

winnk123 commented 1 month ago

Hi, I followed your instruction and opened the tf tree. Should I add robot1/map, robot1/odom, and robot1/base_footprint in the file that is responsible for tf transformation? Thank you for your help. 屏幕截图 2024-09-16 205106

image
FarawaySail commented 1 month ago

No, you don't need to add these tf transformations manually. The robot1/odom-to-robot1/base_footprint transformation is provided by Gazebo simulation, and the robot1/map-to-robot1/odom transformation is provided by cartographer. For example, in turtlebot3_burger.gazebo.xacro, the Gazebo plugin libgazebo_ros_diff_drive.so provide the robot1/odom-to-robot1/base_footprint transformation. Thus you should check whether these ros nodes run normally.

winnk123 commented 1 month ago

Hi, I have printed all the rostopic and rosnode. And should I check all of them like the way in P1? May be there is something wrong because I installed and catkin_make(isolated) the cartograpgher and explore bench under the conda environment marl? 屏幕截图 2024-09-16 215044 屏幕截图 2024-09-16 213522

FarawaySail commented 1 month ago

May be there is something wrong because I installed and catkin_make(isolated) the cartograpgher and explore bench under the conda environment marl?

Perhaps.

I suggest that you can check your environment step by step. First, you can only launch the simulation environment: roslaunch sim_env room_env_single_robot.launch. If everything is right, you can see that the robot1/odom and robot1/base_footprint are connected in tf_tree. Second, you can launch the mapping process: roslaunch sim_env single_robot.launch. If everything is right, you can see that the robot1/map and robot1/odom are connected in tf_tree.

winnk123 commented 1 month ago

Hi, I have followed your instruction. I launched the simulation environment: roslaunch sim_env room_env_single_robot.launch. And I used the command rosrun rqt_tf_tree rqt_tf_tree. The result is shown in the following. There is no robot1/odom.

image

Then I launched the mapping process: roslaunch sim_env single_robot.launch. There is no robot1/map and robot1/odom

image
FarawaySail commented 1 month ago

If you don't find the robot1/odom after roslaunch sim_env room_env_single_robot.launch, the node "spawn_urdf$(arg robot_name)" may not run normally. It's in the file Explore-Bench/sim_env/launch/includes/robot.launch.xml: <node name="spawn_urdf$(arg robot_name)" pkg="gazebo_ros" type="spawn_model" args="-urdf -model turtlebot3$(arg robot_name) $(arg init_pose) -param robot_description" /> You should check the reason why the node didn't work.

winnk123 commented 1 month ago

Hi, thanks for your suggestion. I have solved the problem that the odom doesn't launch through sudo apt-get install ros-melodic-gazebo-plugins

But the robot1/map still don't launch when I try roslaunch sim_env single_robot.launch. May be I should reinstall my ros-melodic?

image image image image
FarawaySail commented 1 month ago

I think that you don't need to reinstall all packages, and you just need to figure out whether there are other missing packages. At least so far, you have identified that there is something wrong with your mapping node. Then you should check the relevant parts next. For example, check the mapping inputs robot1/scan, robot1/imu, etc.

winnk123 commented 1 month ago

Hi, I have successfully run your code about single robot. And I find an error in your .sh file.

image

It should be "exp", not "exp1". Before I run this command bash run_single_robot.sh, should I publish a point in rviz to make it start exploration?