Need help with eagleye?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

MapIV
174 Stars 37 Forks BSD 3-Clause "New" or "Revised" License 236 Commits 1 Opened issues

Description

Precise localization based on GNSS and IMU.

Services available

!
?

Need anything else?

Contributors list

(Alpha version)

CircleCI

Demo Video

What is Eagleye

Eagleye is an open-source software for vehicle localization utilizing GNSS and IMU[1]. Eagleye provides highly accurate and stable vehicle position and orientation by using GNSS Doppler[2][3][4][5][6]. The flowchart of the algorithm is shown in the figure below. The algorithms in this software are based on the outcome of the research undertaken by Machinery Information Systems Lab (Meguro Lab) in Meijo University.

Flowchart of Eagleye

Getting started

Recommended Sensors

GNSS receiver * Ublox NEO-M8T / EVK-M8T * Ublox ZED-F9P / C099-F9P

GNSS Antenna

IMU * Tamagawa Seiki TAG300 Series * ANALOG DEVICES ADIS16475

Wheel speed sensor

Eagleye uses vehicle speed acquired from CAN bus.

When eagleye's GNSS input is single point positioning (spp)

Prerequisites in the case of spp

  1. Clone and Build MapIV's fork of RTKLIB. You can find more details about RTKLIB here.

    sudo apt-get install gfortran
    cd $HOME
    git clone -b rtklib_ros_bridge https://github.com/MapIV/RTKLIB.git
    cd $HOME/RTKLIB/lib/iers/gcc/
    make
    cd $HOME/RTKLIB/app
    make 
    
  2. Clone and build rtklibrosbridge.

    cd $HOME/catkin_ws/src
    git clone https://github.com/MapIV/rtklib_ros_bridge.git
    cd ..
    catkin_make -DCMAKE_BUILD_TYPE=Release
    
  3. Clone and build nmea_comms.

    cd $HOME/catkin_ws/src
    git clone https://github.com/MapIV/nmea_comms.git
    cd ..
    catkin_make -DCMAKE_BUILD_TYPE=Release
    
  4. Installing dependent packages

In the case of Ubuntu18.04 melodic.

    sudo apt-get install ros-melodic-geodesy 
    sudo apt-get install ros-melodic-can-msgs

In the case of Ubuntu16.04 kinetic.

    sudo apt-get install ros-kinetic-geodesy
    sudo apt-get install ros-kinetic-can-msgs
  1. Clone and build eagleye.

    cd $HOME/catkin_ws/src
    git clone https://github.com/MapIV/eagleye.git
    cd ..
    catkin_make -DCMAKE_BUILD_TYPE=Release
    
  2. RTKLIB settings.

Change

inpstr1-path
of
$HOME/RTKLIB/app/rtkrcv/conf/rtklib_ros_bridge_single.conf
according to the serial device you use.

ie)

inpstr1-path =/serial/by-id/usb-u-bloxAG-www.u-blox.comu-bloxGNSSreceiver-if00:230400:8:n:1:off

  1. nmea_comms settings.

Change

arg name="port"
of
$HOME/catkin_ws/src/nmea_comms/launch/f9p_nmea_sentence.launch
according to the serial device you use.

ie)

<arg name="port" default="/dev/serial/by-id/usb-FTDIFT232RUSBUARTAG0JNPDS-if00-port0" />

  1. GNSS receiver settings. Configure the receiver settings using u-center.
  • UART1(Connect to RTKLIB) Enable UBX message (output rate 5Hz, baudrate 230400) ※ Set to output only RAWX and SFRBX
  • UART2(Connect to nmea_comms) Enable NMEA message (output rate 1Hz, baudrate 115200) ※ Set to output only GGA and RMC

This file (eagleyef9pconf.txt) is a sample configuration file for F9P.
Open u-center.
Tools/Receiver Configuration.../Load configuration "Transfer file -> GNSS"

To load the configuration, change the ublox FW version to 1.10.

  1. IMU settings.
  • Output rate 50Hz
  1. Check the rotation direction of z axis of IMU being used. If you look from the top of the vehicle, if the left turn is positive, set "reverseimu" to

    true
    in `eagleye/eagleyert/config/eagleye_config.yaml`.

     reverse_imu: true
    

Running eagleye node in the case of spp

  1. Check if wheel speed (vehicle speed) is published in
    /can_twist
    topic.
  • Topic name: /can_twist
  • Message type: geometry_msgs/TwistStamped twist.liner.x
  1. Check if the IMU data is published in

    /imu/data_raw
    topic.
  2. Start RTKLIB.

    cd $HOME/RTKLIB
    bash rtklib_ros_bridge_single.sh
    
  3. Check if RTKLIB is working by execute the following command in the terminal. If the RTKLIB is working correctly, positioning information is appeared continuously in the terminal.

    status 0.1  
    
  4. Start rtklibrosbridge.

    roslaunch rtklib_bridge rtklib_bridge.launch   
    
  5. Start nmea_comms and nmea2fix.

    roslaunch nmea_comms f9p_nmea_sentence.launch
    roslaunch nmea2fix nmea2fix.launch
    
  6. Start eagleye.

    roslaunch eagleye_rt eagleye_rt.launch
    

To visualize the eagleye output location /eagleye/fix, for example, use the following command

rosrun fix2kml fix2kml

When eagleye's GNSS input is RTK

Prerequisites in the case of RTK

When inputting RTK results from the F9P into the Eagleye, two F9Ps are used as follows.
(1) A receiver that outputs NMEA (RTK results from the F9P internal engine)
(2) A receiver that measures RAW data through RTKLIB and outputs Doppler velocity.

  1. Clone and Build MapIV's fork of RTKLIB. You can find more details about RTKLIB here.

    sudo apt-get install gfortran
    cd $HOME
    git clone -b rtklib_ros_bridge https://github.com/MapIV/RTKLIB.git
    cd $HOME/RTKLIB/lib/iers/gcc/
    make
    cd $HOME/RTKLIB/app
    make
    
  2. Clone and build rtklibrosbridge.

    cd $HOME/catkin_ws/src
    git clone https://github.com/MapIV/rtklib_ros_bridge.git
    cd ..
    catkin_make -DCMAKE_BUILD_TYPE=Release
    
  3. Clone and build nmea_comms.

    cd $HOME/catkin_ws/src
    git clone https://github.com/MapIV/nmea_comms.git
    cd ..
    catkin_make -DCMAKE_BUILD_TYPE=Release
    
  4. Installing dependent packages

In the case of Ubuntu18.04 melodic.

    sudo apt-get install ros-melodic-geodesy
    sudo apt-get install ros-melodic-can-msgs

In the case of Ubuntu16.04 kinetic.

    sudo apt-get install ros-kinetic-geodesy
    sudo apt-get install ros-kinetic-can-msgs
  1. Clone and build eagleye.

    cd $HOME/catkin_ws/src
    git clone https://github.com/MapIV/eagleye.git
    cd ..
    catkin_make -DCMAKE_BUILD_TYPE=Release
    
  2. RTKLIB settings.

Change

inpstr1-path
,
inpstr2-path
,
inpstr2-format
, and
ant2-postype
of
$HOME/RTKLIB/app/rtkrcv/conf/rtklib_ros_bridge_meijo_rtk.conf
according to the serial device you use.

ie)

inpstr1-path =/serial/by-id/usb-u-bloxAG-www.u-blox.comu-bloxGNSSreceiver-if00:230400:8:n:1:off
inpstr2-path =:@rtk2go.com:2101/Meijo-Ublox
inpstr2-format =ubx
ant2-postype =llh # (0:llh,1:xyz,2:single,3:posfile,4:rinexhead,5:rtcm,6:raw)
ant2-pos1 =35.1348599331534 # (deg|m) If ant2-postype is llh or xyz, the position of the reference station must be specified by ant2-pos1, ant2-pos2, and ant2-pos3.
ant2-pos2 =136.973613158051 # (deg|m)
ant2-pos3 =102.502548295454 # (m|m)

  1. nmea_comms settings.

Change

arg name="port"
of
$HOME/catkin_ws/src/nmea_comms/launch/f9p_nmea_sentence.launch
according to the serial device you use.

ie)

<arg name="port" default="/dev/serial/by-id/usb-FTDIFT232RUSBUARTAG0JNPDS-if00-port0" />

  1. GNSS receiver settings. Configure the receiver settings using u-center.

The following is a sample configuration file for F9P.

(1) Settings for receivers that output aircraft that output NMEA (positioning results RTK'd by the F9P internal engine)
eagleyef9pnmeaconf.txt
https://www.dropbox.com/s/3viqyqutipn5dpj/eagleye
f9pnmeaconf.txt?dl=0
(2) Settings for receivers that measure RAW data through RTKLIB and output Doppler velocity.
eagleyef9prawconf.txt
https://www.dropbox.com/s/acz98v30rtgbmsx/eagleye
f9prawconf.txt?dl=0
Open u-center.
Tools/Receiver Configuration.../Load configuration "Transfer file -> GNSS"

To load the configuration, change the ublox FW version to 1.10.

  1. IMU settings.
  • Output rate 50Hz
  1. Check the rotation direction of z axis of IMU being used. If you look from the top of the vehicle, if the left turn is positive, set "reverseimu" to

    true
    in `eagleye/eagleyert/config/eagleye_config.yaml`.

     reverse_imu: true
    

Running eagleye node in the case of RTK

  1. Check if wheel speed (vehicle speed) is published in
    /can_twist
    topic.
  • Topic name: /can_twist
  • Message type: geometry_msgs/TwistStamped twist.liner.x
  1. Check if the IMU data is published in

    /imu/data_raw
    topic.
  2. Start RTKLIB.

    cd $HOME/RTKLIB
    bash rtklib_ros_bridge_meijo_rtk.sh
    
  3. Check if RTKLIB is working by execute the following command in the terminal. If the RTKLIB is working correctly, positioning information is appeared continuously in the terminal.

    status 0.1
    
  4. Start rtklibrosbridge.

    roslaunch rtklib_bridge rtklib_bridge.launch
    
  5. Start nmea_comms and nmea2fix.

    roslaunch nmea_comms f9p_nmea_sentence.launch
    roslaunch nmea2fix nmea2fix.launch
    
  6. Start RTKLIB str2str to send the correction information to the receiver that outputs NMEA.

    $HOME/RTKLIB/app/str2str/gcc/str2str -b 1 -in  -out 
    
  7. Start eagleye.

    roslaunch eagleye_rt eagleye_rt.launch
    

To visualize the eagleye output location /eagleye/fix, for example, use the following command

rosrun fix2kml fix2kml

Sample data

ROSBAG

| No. | Date | Place | Sensors | Link | |-----|------|-------|---------| ---- | |1|2020/01/27|Moriyama, Nagoya
route|GNSS: Ublox F9P
IMU: Tamagawa AU7684
LiDAR: Velodyne HDL-32E|Download| |2|2020/07/15|Moriyama, Nagoya
route|GNSS: Ublox F9P with RTK
IMU: Tamagawa AU7684
LiDAR: Velodyne VLP-32C|Download

Maps

The 3D maps (point cloud and vector data) of the route is also available from Autoware sample data.

How to try the sample data

  1. Play the sample data.

    rosparam set use_sim_time true
    rosbag play --clock eagleye_sample.bag
    
  2. Launch eagleye.

    roslaunch eagleye_rt eagleye_rt.launch
    

The estimated results will be output about 100 seconds after playing the rosbag. This is because we need to wait for the data to accumulate for estimation.

Research Papers for Citation

  1. J Meguro, T Arakawa, S Mizutani, A Takanose, "Low-cost Lane-level Positioning in Urban Area Using Optimized Long Time Series GNSS and IMU Data", International Conference on Intelligent Transportation Systems(ITSC), 2018 Link

  2. Takeyama Kojiro, Kojima Yoshiko, Meguro Jun-ichi, Iwase Tatsuya, Teramoto Eiji, "Trajectory Estimation Based on Tightly Coupled Integration of GPS Doppler and INS" -Improvement of Trajectory Estimation in Urban Area-, Transactions of Society of Automotive Engineers of Japan 44(1) 199-204, 2013 Link

  3. Junichi Meguro, Yoshiko Kojima, Noriyoshi Suzuki, Teramoto Eiji, "Positioning Technique Based on Vehicle Trajectory Using GPS Raw Data and Low-cost IMU", International Journal of Automotive Engineering 3(2) 75-80, 2012 Link

  4. K Takeyama, Y Kojima, E Teramoto, "Trajectory estimation improvement based on time-series constraint of GPS Doppler and INS in urban areas", IEEE/ION Position, Location and Navigation Symposium(PLANS), 2012 Link

  5. Junichi Meguro, Yoshiko Kojima, Noriyoshi Suzuki, Eiji Teramoto, "Automotive Positioning Based on Bundle Adjustment of GPS Raw Data and Vehicle Trajectory", International Technical Meeting of the Satellite Division of the Institute of Navigation (ION), 2011 Link

  6. Yoshiko Kojima, et., al., "Precise Localization using Tightly Coupled Integration based on Trajectory estimated from GPS Doppler", International Symposium on Advanced Vehicle Control(AVEC), 2010 Link

License

Eagleye is provided under the BSD 3-Clause License.

Contacts

If you have further question, email to [email protected]

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.