ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question
0

gps_common installation

asked 2013-08-28 11:32:57 -0600

Pino gravatar image

updated 2013-08-28 14:30:13 -0600

Hello,

I', trying to plot GPS coordinates into a plot with meters unit. This answer suggested to use the gps_common package for this, but I haven't been able to install it. What I've tried: clone the package: $ git clone https://github.com/ktossell/gps_umd.git gps_umd Then cd to the gps_common folder and tried $ rosmake This outputs:

$ rosmake

[ rosmake ] rosmake starting...                                                 
[ rosmake ] No package specified.  Building ['gps_common']                      
[ rosmake ] Packages requested are: ['gps_common']                              
[ rosmake ] Logging to directory /home/user/.ros/rosmake/rosmake_output-20130828-172332
[ rosmake ] Expanded args ['gps_common'] to:
['gps_common']                     
[rosmake-0] Starting >>> std_msgs [ make ]                                      
[rosmake-1] Starting >>> gps_common [ make ]                                    
[rosmake-0] Finished <<< std_msgs  No Makefile in package std_msgs              
[rosmake-1] Finished <<< gps_common ROS_NOBUILD in package gps_common
 No Makefile in package gps_common
[ rosmake ] Results:                                                            
[ rosmake ] Built 2 packages with 0 failures.                                   
[ rosmake ] Summary output to directory                                         
[ rosmake ] /home/user/.ros/rosmake/rosmake_output-20130828-172332

But no folder with the nodes appear. I have also tried to cd to the gps_common folder and:

$ mkdir build

$ cd build

$ cmake ..

Which outputs:

$ cmake ..
-- The CXX compiler identification is GNU
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Found PythonInterp: /usr/bin/python (found version "2.7.3")
-- Looking for include files CMAKE_HAVE_PTHREAD_H
CMake Error at /usr/share/cmake-2.8/Modules/CheckIncludeFiles.cmake:48 (TRY_COMPILE):
  Unknown extension ".c" for file

    /home/user/fuerte_workspace/sandbox/gps_umd/gps_common/build/CMakeFiles/CMakeTmp/CheckIncludeFiles.c

  try_compile() works only for enabled languages.  Currently these are:

    CXX

  See project() command to enable other languages.
Call Stack (most recent call first):
  /usr/share/cmake-2.8/Modules/FindThreads.cmake:38 (CHECK_INCLUDE_FILES)
  /opt/ros/fuerte/share/catkin/cmake/tools/threads.cmake:30 (find_package)
  /opt/ros/fuerte/share/catkin/cmake/all.cmake:53 (include)
  /opt/ros/fuerte/share/catkin/cmake/catkin-config.cmake:6 (include)
  CMakeLists.txt:8 (find_package)


-- Looking for include files CMAKE_HAVE_PTHREAD_H - not found.
-- Could NOT find Threads (missing:  Threads_FOUND) 
INFOBuilding GTest from source.
-- The C compiler identification is GNU
-- Check for working C compiler: /usr/bin/gcc
-- Check for working C compiler: /usr/bin/gcc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Could NOT find Threads (missing:  Threads_FOUND) 
TODO: implement add_roslaunch_check() in rostest-extras.cmake.
CMake Error at CMakeLists.txt:21 (add_message_files):
  Unknown CMake command "add_message_files".


-- Configuring incomplete, errors occurred!

Then I modified the CMakeLists.txt line: project(gps_common CXX) -> project(gps_common C CXX) Removed the build directory and tried cmake .. again, this outputs:

$ cmake ..
-- The C compiler identification is GNU
-- The CXX compiler identification is GNU
-- Check for working C compiler: /usr/bin/gcc
-- Check for working C compiler: /usr/bin/gcc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Found PythonInterp: /usr/bin/python (found version "2.7.3")
-- Looking for include files CMAKE_HAVE_PTHREAD_H
-- Looking for include files CMAKE_HAVE_PTHREAD_H - found
-- Looking ...
(more)
edit retag flag offensive close merge delete

2 Answers

Sort by » oldest newest most voted
1

answered 2013-08-29 06:35:29 -0600

updated 2013-08-29 06:38:55 -0600

The stack has been catkinized recently and repository default branch is for Hydro. So you attempting to build catkin package with rosbuild.

Not sure why are you trying to compile the package from source, but to make it work you need to checkout appropriate branch.

So either do:

$ cd ~/fuerte_workspace/sandbox

$ git clone -b fuerte_released <a href="https://github.com/ktossell/gps_umd.git">https://github.com/ktossell/gps_umd.git</a>

$ rosstack profile && rospack profile
$ rosmake gps_umd

or if already cloned:

$ cd ~/fuerte_workspace/sandbox/gps_umd

$ git checkout fuerte_released

$ rosstack profile && rospack profile
$ rosmake gps_umd

If you are on Ubuntu the stack is available in binaries:

$ sudo apt-get install ros-fuerte-gps-umd

Hope it helps.

P.S. The URL suppose to be without HTML tags, AskBot seems to be broken and add <a href> automatically.

edit flag offensive delete link more

Comments

This worked, thanks! Where is this information specified? Or is this a standard procedure?

Pino gravatar image Pino  ( 2013-08-29 17:37:50 -0600 )edit

Usually, there is a clear distinction between dry (rosbuild) and wet (catkin) packages and stacks. Former has `manifest.xml` and `stack.xml` files, the latter has only `package.xml` files (there are no stacks in catkin, but meta-packages only).

Boris gravatar image Boris  ( 2013-08-29 18:20:38 -0600 )edit

See more details [here](http://wiki.ros.osuosl.org/catkin_or_rosbuild). Regarding the Git repositories - yes it is a common way to organize different versions in different branches of same repository. Usually you do not need to build packages from source, but if you do there may be some problems.

Boris gravatar image Boris  ( 2013-08-29 18:24:39 -0600 )edit

If you go to https://github.com/ktossell/gps_umd repository you will see a drop-down list of branches. By going through them you can find necessary version and then clone and checkout it on your system.

Boris gravatar image Boris  ( 2013-08-29 18:28:57 -0600 )edit

Also there is an awesome online book about Git - http://git-scm.com/book First couple of chapters will give an idea on common workflows.

Boris gravatar image Boris  ( 2013-08-29 18:35:12 -0600 )edit

Great, thank you, how about the "$ sudo apt-get install ros-fuerte-gps-umd" alternative? how can I know if this is available for other packages as installation method? (seems a lot more simple)

Pino gravatar image Pino  ( 2013-09-01 13:40:16 -0600 )edit

The quickest way is simply try. Use tab-completion in terminal - type in "sudo apt-get install ros-fuerte-" then press Tab twice and it will list all the packages available (it will be quite a lot though!). Also you may try this page http://www.ros.org/debbuild/fuerte.html

Boris gravatar image Boris  ( 2013-09-01 22:07:54 -0600 )edit
0

answered 2013-08-29 03:27:11 -0600

Hi— unfortunately, gps_common is pretty out of date. The GPS driver functionality has been taken over by nmea_navsat_driver, which will publish a NavSatFix msg. You can feed that into the enu_from_fix node to obtain Odometry, which is the input to robot_pose_ekf.

Outdoor navigation can be a bit tricky to set up in ROS. We (Clearpath) are hoping to publish a getting started article on it in the next little while.

edit flag offensive delete link more

Comments

Thank you. This appears to only be supported for Hydro, do you know any Fuerte compatible options?

Pino gravatar image Pino  ( 2013-08-29 03:39:04 -0600 )edit

Question Tools

1 follower

Stats

Asked: 2013-08-28 11:32:57 -0600

Seen: 4,462 times

Last updated: Aug 29 '13