Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merge branch v4.3 #16

Merged
merged 47 commits into from Apr 12, 2019
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
47 commits
Select commit Hold shift + click to select a range
5875b8a
updated sbgECom library
May 2, 2017
a270ad1
modified launch file
May 2, 2017
9eca629
use private namespace
May 2, 2017
0519f41
add extra debug messages
May 2, 2017
844aa0b
use gps log message for NavSatFix message
May 5, 2017
67754bd
Update README.md
lfdebrux May 9, 2017
752c9d9
refactoring
May 23, 2017
3d6469c
Made it compile
goldbattle May 27, 2017
9d744be
Increased rates
goldbattle May 27, 2017
fa720df
Refactor and added new publishers
goldbattle May 28, 2017
99dab6e
Added - Start of heading code
goldbattle May 28, 2017
e7cef38
Moved the logging function into the class
goldbattle May 28, 2017
00708f4
Merge pull request #2 from rpng/master
ThomasLeMezo Jun 16, 2017
ff4c2a4
Update README
ThomasLeMezo Oct 6, 2017
f506a92
Revert "1.0.7"
ThomasLeMezo Oct 30, 2017
f92a65a
Merge branch 'master' of https://github.com/ENSTABretagneRobotics/sbg…
ThomasLeMezo Mar 11, 2018
22d000f
[Merge]
ThomasLeMezo Mar 11, 2018
b0da4ab
[lib] Update the library sbgECom version after merging from devel
ThomasLeMezo Mar 11, 2018
78edfca
[merge] Finalize merge from devel branch (master divergence issue)
ThomasLeMezo Mar 11, 2018
ea114cb
[src] Correction of small bugs + add publisher only on activated log
ThomasLeMezo Mar 11, 2018
80a72b7
[xml] Update version number
ThomasLeMezo Mar 11, 2018
0114e7e
[CMake] Correction of message dependency
ThomasLeMezo Mar 12, 2018
01e15e5
[Changelog] Update
ThomasLeMezo Mar 12, 2018
c71d60f
[test] Changelog
ThomasLeMezo Mar 12, 2018
e641325
[Changelog] Test
ThomasLeMezo Mar 12, 2018
606a0f7
[ChangeLog] Update
ThomasLeMezo Mar 12, 2018
e398c41
[ChangeLog] Update
ThomasLeMezo Mar 12, 2018
d46868c
[ChangeLog] Update
ThomasLeMezo Mar 12, 2018
8a8c8e8
[ChangeLog] Remove
ThomasLeMezo Mar 12, 2018
d9ad5da
1.1.2
ThomasLeMezo Mar 12, 2018
671f140
Update dependencies to std_srvs
ThomasLeMezo Mar 12, 2018
e020638
1.1.3
ThomasLeMezo Mar 12, 2018
cac1ab7
[src] Update library + Correction bugs
ThomasLeMezo Mar 12, 2018
24b53a8
[catkin] Update install launch & config
ThomasLeMezo Mar 12, 2018
9a94392
1.1.4
ThomasLeMezo Mar 12, 2018
4802ede
[src] Update mag calibration
ThomasLeMezo Mar 12, 2018
37bac77
1.1.5
ThomasLeMezo Mar 12, 2018
1c1c1f3
[build] Add include for debian jessie arm64 build issue
ThomasLeMezo Mar 12, 2018
edae9e7
[config, src] Update default port for gps aiding (Ellipse-E) + add sa…
ThomasLeMezo Mar 13, 2018
80cd543
1.1.6
ThomasLeMezo Mar 18, 2018
f56ede1
[src] Move .h to include folder + test new method for time saving in …
ThomasLeMezo Jun 10, 2018
c1e318d
[src] Change SbgEkfEuler comments
ThomasLeMezo Jun 28, 2018
e49f864
1.1.7
ThomasLeMezo Jul 19, 2018
7ea946b
[msg] Remove non ascii characters
ThomasLeMezo Oct 31, 2018
b2c4583
[conf]Removed non-ASCII characters, fixes issue #8
nicolaje Jan 25, 2019
4afaccd
Merge pull request #13 from nicolaje/remove-non-ascii-char
ThomasLeMezo Jan 25, 2019
4a39a63
[src] Update SDK version + add LogE support
ThomasLeMezo Mar 11, 2019
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
41 changes: 41 additions & 0 deletions .gitignore
@@ -0,0 +1,41 @@
# Jetbrains IDEs
cmake-build-debug
.idea

# Build folders
Build
build

# Prerequisites
*.d

# Compiled Object files
*.slo
*.lo
*.o
*.obj

# Precompiled Headers
*.gch
*.pch

# Compiled Dynamic libraries
*.so
*.dylib
*.dll

# Fortran module files
*.mod
*.smod

# Compiled Static libraries
*.lai
*.la
*.a
*.lib

# Executables
*.exe
*.out
*.app

15 changes: 0 additions & 15 deletions CHANGELOG.rst
@@ -1,15 +0,0 @@
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Changelog for package sbg_ros_driver
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

1.0.6 (2017-03-31)
------------------
* Add launch example
* Improve message type & data provided
* Contributors: Thomas Le Mézo

1.0.1 (2016-11-16)
------------------
* First realease of SBG ROS Driver
* Publish sensor_msgs::NavSatFix and sensor_msgs::Imu messages at 25Hz
* Contributors: Thomas Le Mézo
27 changes: 16 additions & 11 deletions CMakeLists.txt
Expand Up @@ -7,6 +7,7 @@ find_package(catkin REQUIRED COMPONENTS
roscpp
sensor_msgs
std_msgs
std_srvs
geometry_msgs
message_generation
)
Expand Down Expand Up @@ -132,7 +133,7 @@ catkin_package(
add_subdirectory(sbgECom)
include_directories(
${catkin_INCLUDE_DIRS}
${PROJECT_SOURCE_DIR}/src
${PROJECT_SOURCE_DIR}/include
${PROJECT_SOURCE_DIR}/sbgECom/common
${PROJECT_SOURCE_DIR}/sbgECom/src
)
Expand All @@ -154,14 +155,17 @@ add_executable(ellipse
src/ellipse_msg.cpp
)

add_executable(mag_calibration_ellipse
add_executable(ellipse_mag
src/ellipse_mag.cpp
src/ellipse.cpp
src/ellipse_msg.cpp
)

add_dependencies(ellipse ${sbg_driver_EXPORTED_TARGETS})
add_dependencies(ellipse_mag ${sbg_driver_EXPORTED_TARGETS})

target_compile_options(ellipse PRIVATE -fpermissive)
target_compile_options(mag_calibration_ellipse PRIVATE -fpermissive)
target_compile_options(ellipse_mag PRIVATE -fpermissive)

## Add cmake target dependencies of the executable
## same as for the library above
Expand All @@ -174,7 +178,7 @@ target_link_libraries(ellipse
sbgECom
)

target_link_libraries(mag_calibration_ellipse
target_link_libraries(ellipse_mag
${catkin_LIBRARIES}
sbgECom
)
Expand All @@ -194,7 +198,7 @@ target_link_libraries(mag_calibration_ellipse
# )

## Mark executables and/or libraries for installation
install(TARGETS ellipse mag_calibration_ellipse
install(TARGETS ellipse ellipse_mag
# ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
# LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
RUNTIME DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
Expand All @@ -209,12 +213,13 @@ target_link_libraries(mag_calibration_ellipse
)

# Mark other files for installation (e.g. launch and bag files, etc.)
install(FILES
launch/calibration_sbg_ellipse.launch
launch/sbg_ellipse.launch
config/ellipse_E_default.yaml
DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}
)
install(DIRECTORY launch/
DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}/launch
PATTERN ".git" EXCLUDE)

install(DIRECTORY config/
DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}/config
PATTERN ".git" EXCLUDE)

#############
## Testing ##
Expand Down
261 changes: 261 additions & 0 deletions config/ellipse_A_default.yaml
@@ -0,0 +1,261 @@
# Configuration file for SBG Ellipse
# YAML

# Ellipse-A - Magnetic-based
# Ellipse-E - External GNSS
# Ellipse-N - GNSS-based
# Ellipse-D - Dual-antenna GNSS

uartConf:
# Port Name
portName: "/dev/ttyUSB0"

# Baude rate (4800 ,9600 ,19200 ,38400 ,115200 [default],230400 ,460800 ,921600)
baudRate: 115200

# Port Id
# 0 PORT_A: Main communication interface. Full duplex.
# 1 PORT_B: Auxiliary input interface for RTCM
# 2 PORT_C: Auxiliary communication interface. Full duplex.
# 3 PORT_D: Auxiliary input interface
# 4 PORT_E: Auxiliary input/output interface
portID: 0

# Sensor Parameters
sensorParameters:
# Initial latitude (°)
initLat: 48.419727
# Initial longitude (°)
initLong: -4.472119
# Initial altitude (above WGS84 ellipsoid) (m)
initAlt: 100.0
# Year at startup
year: 2018
# month in year at startup
month: 03
# day in month at startup
day: 10

# Montion profile ID
# 1 GENERAL_PURPOSE Should be used as a default when other profiles do not apply
# 2 AUTOMOTIVE Dedicated to car applications
# 3 MARINE Used in marine and underwater applications
# 4 AIRPLANE For fixed wings aircraft
# 5 HELICOPTER For rotary wing aircraft
motionProfie: 1

# IMU_ALIGNMENT_LEVER_ARM
imuAlignementLeverArm:
# IMU X axis direction in vehicle frame
# 0 ALIGNMENT_FORWARD IMU Axis is turned in vehicle's forward direction
# 1 ALIGNMENT_BACKWARD IMU Axis is turned in vehicle's backward direction
# 2 ALIGNMENT_LEFT IMU Axis is turned in vehicle's left direction
# 3 ALIGNMENT_RIGHT IMU Axis is turned in vehicle's right direction
# 4 ALIGNMENT_UP IMU Axis is turned in vehicle's up direction
# 5 ALIGNMENT_DOWN IMU Axis is turned in vehicle's down direction
axisDirectionX: 0
# IMU Y axis direction in vehicle frame
# 0 ALIGNMENT_FORWARD IMU Axis is turned in vehicle's forward direction
# 1 ALIGNMENT_BACKWARD IMU Axis is turned in vehicle's backward direction
# 2 ALIGNMENT_LEFT IMU Axis is turned in vehicle's left direction
# 3 ALIGNMENT_RIGHT IMU Axis is turned in vehicle's right direction
# 4 ALIGNMENT_UP IMU Axis is turned in vehicle's up direction
# 5 ALIGNMENT_DOWN IMU Axis is turned in vehicle's down direction
axisDirectionY: 3
# Residual roll error after axis alignment rad
misRoll: 0
# Residual pitch error after axis alignment rad
misPitch: 0
# Residual yaw error after axis alignment rad
misYaw: 0
# X Primary lever arm in IMU X axis (once IMU alignment is applied) m
leverArmX: 0
# Y Primary lever arm in IMU Y axis (once IMU alignment is applied) m
leverArmY: 0
# Z Primary lever arm in IMU Z axis (once IMU alignment is applied) m
leverArmZ: 0

# AIDING_ASSIGNMENT
# Note: GNSS1 module configuration can only be set to an external port on Ellipse-E version.
# Ellipse-N users must set this module to MODULE_INTERNAL. On the other hand, rtcmModule is only
# available for Ellipse-N users. This module must be set to MODULE_DISABLED for other users.
aidingAssignment:
# GNSS module port assignment:
# 255 Module is disabled
# 1 Module connected on PORT_B
# 2 Module connected on PORT_C
# 3 Module connected on PORT_D
# 5 Module is connected internally
gnss1ModulePortAssignment: 255
# GNSS module sync assignment:
# 0 Module is disabled
# 1 Synchronization is done using SYNC_IN_A pin
# 2 Synchronization is done using SYNC_IN_B pin
# 3 Synchronization is done using SYNC_IN_C pin
# 4 Synchronization is done using SYNC_IN_D pin
# 5 Synchronization is internal
# 6 Synchronization is done using SYNC_OUT_A pin
# 7 Synchronization is done using SYNC_OUT_B pin
gnss1ModuleSyncAssignment: 0
# RTCM input port assignment for Ellipse-N DGPS
rtcmPortAssignment: 255
# Odometer module pin assignment
# 0 Odometer is disabled
# 1 Odometer connected only to ODO_A (unidirectional).
# 2 Odometer connected to both ODO_A (signal A) and ODO_B (Signal B or direction) for bidirectional odometer.
odometerPinAssignment: 0



magnetometer:
# Magnetometer model ID
# 201 Should be used in most applications
# 202 Should be used in disturbed magnetic environment
magnetometerModel: 201
# Magnetometer rejection mode
# 0 Measurement is not taken into account
# 1 Measurement is rejected if inconsistent with current estimate (depending on error model)
# 2 Measurement is always accepted
magnetometerRejectMode: 1

# Theses parameters are only used for a calibration run
calibration:
# 1 2D Tell the device that the magnetic calibration will be performed with limited motions.
# This calibration mode is only designed to be used when roll and pitch motions are less than ± 5°.
# To work correctly, the device should be rotated through at least a full circle.
# 2 3D Tell the device to start a full 3D magnetic calibration procedure. The 3D magnetic calibration offers the best accuracy
mode: 2

# 0 LOW_BW Use this parameter in case of strong magnetic noise during calibration.
# Motion during calibration is then limited to slow rotations.
# 1 MEDIUM_BW Tell the device that medium dynamics will be observed during the magnetic calibration process.
# It can be used in case of medium magnetic noise during calibration process. Medium dynamics are used during calibration.
# 2 HIGH_BW This parameter is suitable to most applications. It can be used when the dynamics during calibration are relatively high.
bandwidth: 2


# GNSS configuration
# Note: Pitch and Yaw offsets as well as antenna distance parameters should only be considered in
# case of dual antenna GNSS receiver. It can be left to 0 otherwise.
gnss:
# Gnss Model Id
# 101 Used on Ellipse-N to setup the internal GNSS in GPS+GLONASS
# 102 Default mode for Ellipse-E connection to external GNSS
# 103 Used on Ellipse-N to setup the internal GNSS in GPS+BEIDOU
# 104 Used on Ellipse-E to setup a connection to ublox in read only mode.
# 106 Used on Ellipse-E to setup a connection to Novatel receiver in read only mode.
# 107 Used on Ellipse-D by default
gnss_model_id: 102

#GNSS antenna lever arm in IMU X axis (m)
leverArmX: 0
#GNSS antenna lever arm in IMU Y axis (m)
leverArmY: 0
#GNSS antenna lever arm in IMU Z axis (m)
leverArmZ: 0
#Pitch offset for dual antenna GNSS (rad)
pitchOffset: 0
#Yaw offset for dual antenna GNSS (rad)
yawOffset: 0
#Distance between two GNSS antennas (m)
antennaDistance: 0

# Rejection mode for position
# 0 Measurement is not taken into account
# 1 Measurement is rejected if inconsistent with current estimate (depending on error model)
# 2 Measurement is always accepted
posRejectMode: 1
# Rejection mode for velocity (see posRejectMode values)
velRejectMode: 1
# Rejection mode for true heading (see posRejectMode values)
hdtRejectMode: 1

# Odometer configuration
odom:
# Odometer's gain Pulses/m
gain: 4800
# User gain average error (%)
gain_error: 0.1
# Odometer's direction
# 0: positive
# 1: negative
direction: 0

# Odometer lever arm in IMU X axis (m)
leverArmX: 0
# Odometer lever arm in IMU Y axis (m)
leverArmY: 0
# Odometer lever arm in IMU Z axis (m)
leverArmZ: 0

# Odometer rejection mode
# 0 Measurement is not taken into account
# 1 Measurement is rejected if inconsistent with current estimate (depending on error model)
# 2 Measurement is always accepted
rejectMode: 1

# ToDo: event & CAN configuration

############################### Output configuration ###############################
# 0 Output is disabled
# 1 Output is generated at 200Hz
# 2 Output is generated at 100Hz
# 4 Output is generated at 50Hz
# 8 Output is generated at 25Hz
# 10 Output is generated at 20Hz
# 20 Output is generated at 10Hz
# 40 Output is generated at 5Hz
# 200 Output is generated at 1Hz
# 10000 Pulse Per Second. Same mode as above.
# 10001 Output sent when a new data is available.
# 10002 Output is generated when a new virtual odometer event occurs
# 10003 Output is generated on a Sync In A event
# 10004 Output is generated on a Sync In B event
# 10005 Output is generated on a Sync In C event
# 10006 Output is generated on a Sync In D event
output:
# Time Reference
# 0 No external time reference is used. Internal clock is used instead.
# 1 The system will be synchronized on the clock input observed at SYNC_IN_A pin.
# 2 The system will be synchronized GPS PPS signal, (see GPS module assignment)
timeReference: 0

# Status general, clock, com aiding, solution, heave
log_status: 8
# Includes IMU status, acc., gyro, temp delta speeds and delta angles values
log_imu_data: 8
# Includes roll, pitch, yaw and their accuracies on each axis
log_ekf_euler: 8
# Includes the 4 quaternions values
log_ekf_quat: 0
# Position and velocities in NED coordinates with the accuracies on each axis
log_ekf_nav: 0
# Heave, surge and sway and accelerations on each axis for up to 4 points
log_ship_motion: 8
# Provides UTC time reference
log_utc_time: 8
# Magnetic data with associated accelerometer on each axis
log_mag: 8
# Magnetometer calibration data (raw buffer)
log_mag_calib: 0
# GPS velocities from primary or secondary GPS receiver
log_gps1_vel: 0
# GPS positions from primary or secondary GPS receiver
log_gps1_pos: 0
# GPS true heading from dual antenna system
log_gps1_hdt: 0
# GPS 1 raw data for post processing.
log_gps1_raw: 0
# Provides odometer velocity
log_odo_vel: 0
# Event A/B/C/D Event markers sent when events are detected on a sync in pin
log_event_a: 0
log_event_b: 0
log_event_c: 0
log_event_d: 0
# Barometric altimeter output
log_pressure: 0

# Node frequency (Hz) (if set to 0, the node will decide the most appropriate frequency to run)
frequency: 0