Hector SLAM on Rosbot Pro 2.0

Hi All,

I am working on a project which requires me to execute Hector SLAM on Rosbot Pro 2.0.
I installed Hector SLAM package using following commands

cd ros_workspace/src
git clone https://github.com/tu-darmstadt-ros-pkg/hector_slam
cd ..
source devel/setup.bash
catkin_make --pkg hector_mapping

After Successful compiling of workspace, I wrote test.launch file as below

<arg name="use_rosbot" default="true"/>
<arg name="use_gazebo" default="false"/>

<include if="$(arg use_gazebo)" file="$(find rosbot_gazebo)/launch/maze_world.launch"/>
<include if="$(arg use_gazebo)" file="$(find rosbot_gazebo)/launch/rosbot.launch"/>

<node if="$(arg use_rosbot)" pkg="rplidar_ros" type="rplidarNode" name="rplidar">
    <param name="angle_compensate" type="bool" value="true"/>
<param name="serial_baudrate" type="int" value="256000"/>
</node>

<node if="$(arg use_rosbot)" pkg="tutorial_pkg" type="drive_controller_node" name="drive_controller"/>

<node pkg="tf" type="static_transform_publisher" name="laser_broadcaster" args="0 0 0 3.14 0 0 base_link laser_frame 100" />

<node pkg="teleop_twist_keyboard" type="teleop_twist_keyboard.py" name="teleop_twist_keyboard" output="screen"/>

<node pkg="rviz" type="rviz" name="rviz"
args="-d $(find hector_slam_launch)/rviz_cfg/mapping_demo.rviz"/>

<arg name="geotiff_map_file_path" default="$(find hector_geotiff)/maps"/>
<param name="/use_sim_time" value="true"/>

While i execute this file I am running SLAM tutorial file on core 2 as shown below

/opt/husarion/tools/rpi-linux/ros-core2-client /dev/ttyCORE2

The error I am getting is as follows

ERROR: cannot launch node of type [hector_trajectory_server/hector_trajectory_server]: can't locate node [hector_trajectory_server] in package [hector_trajectory_server]
ERROR: cannot launch node of type [hector_geotiff/geotiff_node]: can't locate node [geotiff_node] in package [hector_geotiff]

How to resolve this error ?

Hello Pradeep_BV,

Package hector_slam is a metapackage containing other ROS packages.
When you build workspace with catkin_make --pkg hector_mapping it causes only hector_mapping to be build.

Solution is to build workspace without --pkg hector_mapping option, use only:

catkin_make

Regards,
Łukasz

Hi Lukasz,

I tried

Catkin_make

The output is as follows

Base path: /home/husarion/ros_workspace
Source space: /home/husarion/ros_workspace/src
Build space: /home/husarion/ros_workspace/build
Devel space: /home/husarion/ros_workspace/devel
Install space: /home/husarion/ros_workspace/install
####
#### Running command: "make cmake_check_build_system" in "/home/husarion/ros_workspace/build"
####
####
#### Running command: "make -j4 -l4" in "/home/husarion/ros_workspace/build"
####
Scanning dependencies of target std_msgs_generate_messages_py
Scanning dependencies of target _hector_nav_msgs_generate_messages_check_deps_GetSearchPosition
CMake Error: Cannot open file for write: /home/husarion/ros_workspace/build/hector_slam/hector_map_tools/CMakeFiles/std_msgs_generate_messages_py.dir/depend.make.tmpCMake Error: Cannot open file for write: /home/husarion/ros_workspace/build/hector_slam/hector_nav_msgs/CMakeFiles/_hector_nav_msgs_generate_messages_check_deps_GetSearchPosition.dir/depend.make.tmp

CMake Error: : System Error: Permission deniedCMake Error: : System Error: Permission denied

hector_slam/hector_nav_msgs/CMakeFiles/_hector_nav_msgs_generate_messages_check_deps_GetSearchPosition.dir/build.make:74: recipe for target 'hector_slam/hector_nav_msgs/CMakeFiles/_hector_nav_msgs_generate_messages_check_deps_GetSearchPosition.dir/depend' failed
hector_slam/hector_map_tools/CMakeFiles/std_msgs_generate_messages_py.dir/build.make:70: recipe for target 'hector_slam/hector_map_tools/CMakeFiles/std_msgs_generate_messages_py.dir/depend' failed
make[2]: *** [hector_slam/hector_map_tools/CMakeFiles/std_msgs_generate_messages_py.dir/depend] Error 2
make[2]: *** [hector_slam/hector_nav_msgs/CMakeFiles/_hector_nav_msgs_generate_messages_check_deps_GetSearchPosition.dir/depend] Error 2
CMakeFiles/Makefile2:595: recipe for target 'hector_slam/hector_map_tools/CMakeFiles/std_msgs_generate_messages_py.dir/all' failed
make[1]: *** [hector_slam/hector_map_tools/CMakeFiles/std_msgs_generate_messages_py.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....
CMakeFiles/Makefile2:1248: recipe for target 'hector_slam/hector_nav_msgs/CMakeFiles/_hector_nav_msgs_generate_messages_check_deps_GetSearchPosition.dir/all' failed
make[1]: *** [hector_slam/hector_nav_msgs/CMakeFiles/_hector_nav_msgs_generate_messages_check_deps_GetSearchPosition.dir/all] Error 2
Scanning dependencies of target nav_msgs_generate_messages_py
CMake Error: Cannot open file for write: /home/husarion/ros_workspace/build/hector_slam/hector_map_tools/CMakeFiles/nav_msgs_generate_messages_py.dir/depend.make.tmp
CMake Error: : System Error: Permission denied
Scanning dependencies of target _hector_nav_msgs_generate_messages_check_deps_GetDistanceToObstacle
hector_slam/hector_map_tools/CMakeFiles/nav_msgs_generate_messages_py.dir/build.make:70: recipe for target 'hector_slam/hector_map_tools/CMakeFiles/nav_msgs_generate_messages_py.dir/depend' failed
CMake Error: Cannot open file for write: /home/husarion/ros_workspace/build/hector_slam/hector_nav_msgs/CMakeFiles/_hector_nav_msgs_generate_messages_check_deps_GetDistanceToObstacle.dir/depend.make.tmpmake[2]: *** [hector_slam/hector_map_tools/CMakeFiles/nav_msgs_generate_messages_py.dir/depend] Error 2

CMake Error: : System Error: Permission denied
CMakeFiles/Makefile2:1107: recipe for target 'hector_slam/hector_map_tools/CMakeFiles/nav_msgs_generate_messages_py.dir/all' failed
make[1]: *** [hector_slam/hector_map_tools/CMakeFiles/nav_msgs_generate_messages_py.dir/all] Error 2
hector_slam/hector_nav_msgs/CMakeFiles/_hector_nav_msgs_generate_messages_check_deps_GetDistanceToObstacle.dir/build.make:74: recipe for target 'hector_slam/hector_nav_msgs/CMakeFiles/_hector_nav_msgs_generate_messages_check_deps_GetDistanceToObstacle.dir/depend' failed
make[2]: *** [hector_slam/hector_nav_msgs/CMakeFiles/_hector_nav_msgs_generate_messages_check_deps_GetDistanceToObstacle.dir/depend] Error 2
CMakeFiles/Makefile2:1659: recipe for target 'hector_slam/hector_nav_msgs/CMakeFiles/_hector_nav_msgs_generate_messages_check_deps_GetDistanceToObstacle.dir/all' failed
make[1]: *** [hector_slam/hector_nav_msgs/CMakeFiles/_hector_nav_msgs_generate_messages_check_deps_GetDistanceToObstacle.dir/all] Error 2
Makefile:138: recipe for target 'all' failed
make: *** [all] Error 2
Invoking "make -j4 -l4" failed

I gave edit permissions to all source folder files using

chmod 777 -R src

I also tried to install ros dependencies using

rosdep install --from-paths src --ignore-src -r -y

The output is as follows

#All required rosdeps installed successfully

What is the cause of the error ?

Hello Pradeep_BV,

Try to clear all workspace and build again:

cd /home/husarion/ros_workspace
rm -rf build/ devel/
catkin_make

Why are you trying to build hector_slam from source? It is possible to install it from Ubuntu packages:

sudo apt install ros-kinetic-hector-slam

Regards,
Łukasz