# ROS installation and usage of nmea_navsat_driver for GPS receiver? [closed]

Hello, I'm currently trying to set up a GPS receiver and base station my boss purchased to work in ROS. It is a trimble Ag GPS 542 GNSS receiver ( http://ssmgps.com/pdf/AGPB_AgGPS542_B... ). It looks like the deivce can work in NMEA-0183 sentences, and thus that it should be compatible with the nmea_navsat_driver ROS package, found here: http://wiki.ros.org/nmea_navsat_driver , but I am encountering some installation issues.

First off, the package is in python, which I've never worked with in ros before (just C++ before now). Is it a problem to have one node in a project with several different nodes be written in python, while the others are in C++? And if not, what's the general installation procedure for python packages? I git cloned the source into my catkin_ws, and then ran the lines

python setup.py build
python setup.py install


without issue. However, when I now to try to test out the package with

rosrun nmea_navsat_driver nmea_serial_driver _port:=/dev/ttyUSB0 _baud:=38400


I get the error

[rospack] Error: stack/package nmea_navsat_driver not found


no matter where I am in the file tree. This makes me think I have goofed up the installation somehow.

edit retag reopen merge delete

### Closed for the following reason the question is answered, right answer was accepted by randylewis7 close date 2014-08-14 14:00:13.085665

Inside the driver go to this folder :

roscd nmea_navsat_driver/scripts/


and then make all the files executable by

chmod +x *

( 2017-06-16 12:45:20 -0600 )edit

Sort by » oldest newest most voted

Turns out I needed to extract the package into catkin_ws/src rather than just catkin_ws, because the latter is not in my ROS_PACKAGE_PATH.

Although upon doing this I have now encountered new errors, which I made another question for here:

http://answers.ros.org/question/190264/trouble-installing-nmea_navsat_driver-package/

more

You may use any combination of C++ and python nodes in ROS.

Python packages are added to your workspace and built exactly the same as with C++ packages - simply add them to your workspace and build with catkin_make.

(The setup.py should not be invoked directly, and generally contains explicit warnings against doing so)

more

Cool, so I removed the package (to avoid any problems I may have caused by invoking the setup.py directly), and then reinstalled with git clone https://github.com/ros-drivers/nmea_n... . However, I checked out the CMakeLists, and am a little confused because I don't see it adding/linking any executables (such as nmea_serial_driver, which I'm trying to use). In addition, I don't even see where the CMakeLists invokes the setup.py file. Then, when I run catkin_make, the terminal compiles my workspace as if nothing is different (it takes only a fraction of a second, and doesn't include any reference to the nmea package.

Do I need to modify the CMakeLists? I just cloned the repository into catkin_ws, do I need to put it somewhere else? Or am I doing something else wrong? Tring to run the nmea_serial_driver still produces the same stack/package not found error.

( 2014-08-13 15:21:53 -0600 )edit

The CMakeLists.txt in the nmea_navsat_driver is calling catkin_python_setup(), which invokes the setup.py through catkin with the appropriate arguments.

( 2014-08-13 18:33:39 -0600 )edit

Oh I see. And then is the setup.py file supposed to be the one that actually creates the executables I want to use? Either way thiough, any idea why these executables still aren't being created? Or just what I'm doing wrong in general? I just want to be able to use the nodes within this package, but have not yet figured out how to do so.

( 2014-08-14 11:30:25 -0600 )edit