![]() |
ess_imu_driver package from ess_imu_driver repoess_imu_driver |
ROS Distro
|
Package Summary
Tags | No category tags. |
Version | 2.0.2 |
License | BSD-3 |
Build type | CATKIN |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/cubicleguy/ess_imu_driver.git |
VCS Type | git |
VCS Version | noetic |
Last Updated | 2024-12-09 |
Dev Status | MAINTAINED |
CI status | Continuous Integration : 0 / 0 |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
Additional Links
Maintainers
- Raymond Chow
Authors
README for Epson IMU Driver for ROS1 Node
-
README for Epson IMU Driver for ROS1 node
- What is this repository for?
- What kind of hardware or software will I likely need?
- How do I use the driver?
- How do I use the driver if usleep() is not supported for time delays?
- How do I use the driver with GPIOs to control IMU RESET#, DRDY, EXT pins?
- How do I build, install, run this package?
- What does this ROS IMU Node publish as messages?
- Why am I seeing inaccurate ROS timestamps, high latencies, or slower than expected IMU data rates?
- Package Contents
- References
What is this repository for?
- This code is a ROS1 package for demonstrating a ROS node that configures and publishes IMU messages from a supported Epson IMU.
- This code provides software communication between Epson IMU and ROS using the either the UART or SPI interface.
- For the UART connection, this code uses the standard Unix Terminal I/O library (termios) for communicating either direct or by USB-serial converter such as FTDI USB-UART bridge ICs.
- For the SPI connection, this code uses the Unofficial wiringPi library for accessing GPIO and SPI functions on the Raspberry Pi platform running Ubuntu Linux distro.
- This ROS1 node demonstration software is a ROS C++ wrapper around the Linux C driver software:
- src/epson_imu_uart_ros_node.cpp is for the UART interface
- src/epson_imu_spi_ros_node.cpp is for the SPI interface
- The other source files in
src/
are based on the Linux C driver originally released and can be found here: Linux C driver and logger example for EPSON IMU - Information about ROS, and tutorials can be found: ROS.org
What kind of hardware or software will I likely need?
- Epson IMU Epson IMU models
- At the time software release:
- G320PDG0, G320PDGN, G354PDH0, G364PDCA, G364PDC0
- G365PDC1, G365PDF1, G370PDF1, G370PDS0
- G330PDG0, G366PDG0, G370PDG0, G370PDT0
- G570PR20
- At the time software release:
- ROS Noetic (via download) ROS.org
- This software was developed and tested on the following:
ROS1: Noetic
Description: Ubuntu 20.04 LTS
Hardware Platform: Core i7 PC, Raspberry Pi 3B+, RaspberryPi 4
For the UART Interface:
- Epson USB evaluation board or equivalent FTDI USB-Serial interface connecting the Epson IMU to ROS host (tty/serial) See M-G32EV041
- Alternatively, a direct connection from the Epson IMU to the ROS platform supporting a 3.3V CMOS compatible UART interface See M-G32EV031.
For the SPI Interface:
- NOTE: This software is intended for an embedded Linux host system with 3.3V I/O compatible SPI interface (SCLK, MISO, MOSI) and 3 GPIOs (CS#, RST#, DRDY).
- For Raspberry Pi, if not enabled already the SPI interface can be enabled using
raspi-config
or equivalent. - This code uses a separate GPIO to manually control CS# chipselect instead of the chipselect assigned to by the RapsberryPi SPI interface.
- The chipselect assigned by the HW SPI interface should also work, but has not been thoroughly tested.
- Epson Breakout evaluation board or some equivalent is required to connect to the 3.3V CMOS compatible pins of the ROS host (SPI & GPIOs) See M-G32EV031
How do I use the driver?
-
This code assumes that the user is familiar with building ROS packages using the
catkin_make
build process. -
This README is NOT detailed step by step instructions on how to build and install ROS software.
-
Please refer to the ROS.org website for more detailed instructions on the ROS package build process. ROS.org
-
NOTE: At a bare minimum, the user must re-build the package with catkin_make after modifying the
CMakeLists.txt
to configure any of the following:- serial interface type,
INTERFACE=
(UART or SPI) - host platform type,
PLATFORM=
(RPI or NONE=PC)
- serial interface type,
-
Changes to IMU settings should be made by editing the
.launch
files located in thelaunch/
folder instead of modifying thesrc/
source files
How do I use the driver if usleep() is not supported for time delays?
-
NOTE: In the
hcl_linux.c
orhcl_rpi.c
, there areseDelayMS()
andseDelayMicroSecs()
wrapper functions for time delays in millisecond and microseconds, respectively. - On embedded Linux platforms, the user may need to modify and redirect to platform specific delay routines if
usleep()
is not supported. - For example on RaspberryPi, the time delay functions for millisecond and microseconds are redirected to WiringPi library
delay()
anddelayMicroseconds()
, respectively. - If a hardware delay is not available from a library, then a software delay loop is possible but not preferred.
How do I use the driver with GPIOs to control IMU RESET#, DRDY, EXT pins?
- When connecting the IMU using the UART interface, the use of GPIO pins for connecting to the IMU
RESET#
orDRDY
is optional, but can be useful on an embedded Linux platforms (such as RapsberryPi). - When connecting the IMU using the SPI interface, the use of GPIO pins for connecting to the IMU
DRDY
is mandatory (RESET#
is recommended,EXT
is optional). - When using the
time_correction
function for accurate time stamping with an external 3.3V GNSS 1PPS signal, the IMUEXT
pin must be connected to the 1PPS.
File truncated at 100 lines see the full file
Changelog for package ess_imu_driver
2.0.2 (2024-11-29)
- bugfix with TimeCorrection class for PPS input
2.0.1 (2024-10-02)
- updated launch files, add new .h files for uart & spi
- port changes from imu_linux_example (auto-detect/initialize IMU model)
1.0.1 (2023-11-30)
- version bump from bloom, no code change
1.0.0 (2023-11-29)
- support UART or SPI in same package
- add publisher for temperature sensor data
Wiki Tutorials
Package Dependencies
Deps | Name |
---|---|
roscpp | |
sensor_msgs | |
std_msgs | |
geometry_msgs | |
tf2 | |
catkin |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged ess_imu_driver at Robotics Stack Exchange
![]() |
ess_imu_driver package from ess_imu_driver repoess_imu_driver |
ROS Distro
|
Package Summary
Tags | No category tags. |
Version | 2.0.2 |
License | BSD-3 |
Build type | CATKIN |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/cubicleguy/ess_imu_driver.git |
VCS Type | git |
VCS Version | noetic |
Last Updated | 2024-12-09 |
Dev Status | MAINTAINED |
CI status | Continuous Integration : 0 / 0 |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
Additional Links
Maintainers
- Raymond Chow
Authors
README for Epson IMU Driver for ROS1 Node
-
README for Epson IMU Driver for ROS1 node
- What is this repository for?
- What kind of hardware or software will I likely need?
- How do I use the driver?
- How do I use the driver if usleep() is not supported for time delays?
- How do I use the driver with GPIOs to control IMU RESET#, DRDY, EXT pins?
- How do I build, install, run this package?
- What does this ROS IMU Node publish as messages?
- Why am I seeing inaccurate ROS timestamps, high latencies, or slower than expected IMU data rates?
- Package Contents
- References
What is this repository for?
- This code is a ROS1 package for demonstrating a ROS node that configures and publishes IMU messages from a supported Epson IMU.
- This code provides software communication between Epson IMU and ROS using the either the UART or SPI interface.
- For the UART connection, this code uses the standard Unix Terminal I/O library (termios) for communicating either direct or by USB-serial converter such as FTDI USB-UART bridge ICs.
- For the SPI connection, this code uses the Unofficial wiringPi library for accessing GPIO and SPI functions on the Raspberry Pi platform running Ubuntu Linux distro.
- This ROS1 node demonstration software is a ROS C++ wrapper around the Linux C driver software:
- src/epson_imu_uart_ros_node.cpp is for the UART interface
- src/epson_imu_spi_ros_node.cpp is for the SPI interface
- The other source files in
src/
are based on the Linux C driver originally released and can be found here: Linux C driver and logger example for EPSON IMU - Information about ROS, and tutorials can be found: ROS.org
What kind of hardware or software will I likely need?
- Epson IMU Epson IMU models
- At the time software release:
- G320PDG0, G320PDGN, G354PDH0, G364PDCA, G364PDC0
- G365PDC1, G365PDF1, G370PDF1, G370PDS0
- G330PDG0, G366PDG0, G370PDG0, G370PDT0
- G570PR20
- At the time software release:
- ROS Noetic (via download) ROS.org
- This software was developed and tested on the following:
ROS1: Noetic
Description: Ubuntu 20.04 LTS
Hardware Platform: Core i7 PC, Raspberry Pi 3B+, RaspberryPi 4
For the UART Interface:
- Epson USB evaluation board or equivalent FTDI USB-Serial interface connecting the Epson IMU to ROS host (tty/serial) See M-G32EV041
- Alternatively, a direct connection from the Epson IMU to the ROS platform supporting a 3.3V CMOS compatible UART interface See M-G32EV031.
For the SPI Interface:
- NOTE: This software is intended for an embedded Linux host system with 3.3V I/O compatible SPI interface (SCLK, MISO, MOSI) and 3 GPIOs (CS#, RST#, DRDY).
- For Raspberry Pi, if not enabled already the SPI interface can be enabled using
raspi-config
or equivalent. - This code uses a separate GPIO to manually control CS# chipselect instead of the chipselect assigned to by the RapsberryPi SPI interface.
- The chipselect assigned by the HW SPI interface should also work, but has not been thoroughly tested.
- Epson Breakout evaluation board or some equivalent is required to connect to the 3.3V CMOS compatible pins of the ROS host (SPI & GPIOs) See M-G32EV031
How do I use the driver?
-
This code assumes that the user is familiar with building ROS packages using the
catkin_make
build process. -
This README is NOT detailed step by step instructions on how to build and install ROS software.
-
Please refer to the ROS.org website for more detailed instructions on the ROS package build process. ROS.org
-
NOTE: At a bare minimum, the user must re-build the package with catkin_make after modifying the
CMakeLists.txt
to configure any of the following:- serial interface type,
INTERFACE=
(UART or SPI) - host platform type,
PLATFORM=
(RPI or NONE=PC)
- serial interface type,
-
Changes to IMU settings should be made by editing the
.launch
files located in thelaunch/
folder instead of modifying thesrc/
source files
How do I use the driver if usleep() is not supported for time delays?
-
NOTE: In the
hcl_linux.c
orhcl_rpi.c
, there areseDelayMS()
andseDelayMicroSecs()
wrapper functions for time delays in millisecond and microseconds, respectively. - On embedded Linux platforms, the user may need to modify and redirect to platform specific delay routines if
usleep()
is not supported. - For example on RaspberryPi, the time delay functions for millisecond and microseconds are redirected to WiringPi library
delay()
anddelayMicroseconds()
, respectively. - If a hardware delay is not available from a library, then a software delay loop is possible but not preferred.
How do I use the driver with GPIOs to control IMU RESET#, DRDY, EXT pins?
- When connecting the IMU using the UART interface, the use of GPIO pins for connecting to the IMU
RESET#
orDRDY
is optional, but can be useful on an embedded Linux platforms (such as RapsberryPi). - When connecting the IMU using the SPI interface, the use of GPIO pins for connecting to the IMU
DRDY
is mandatory (RESET#
is recommended,EXT
is optional). - When using the
time_correction
function for accurate time stamping with an external 3.3V GNSS 1PPS signal, the IMUEXT
pin must be connected to the 1PPS.
File truncated at 100 lines see the full file
Changelog for package ess_imu_driver
2.0.2 (2024-11-29)
- bugfix with TimeCorrection class for PPS input
2.0.1 (2024-10-02)
- updated launch files, add new .h files for uart & spi
- port changes from imu_linux_example (auto-detect/initialize IMU model)
1.0.1 (2023-11-30)
- version bump from bloom, no code change
1.0.0 (2023-11-29)
- support UART or SPI in same package
- add publisher for temperature sensor data
Wiki Tutorials
Package Dependencies
Deps | Name |
---|---|
roscpp | |
sensor_msgs | |
std_msgs | |
geometry_msgs | |
tf2 | |
catkin |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged ess_imu_driver at Robotics Stack Exchange
![]() |
ess_imu_driver package from ess_imu_driver repoess_imu_driver |
ROS Distro
|
Package Summary
Tags | No category tags. |
Version | 2.0.2 |
License | BSD-3 |
Build type | CATKIN |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/cubicleguy/ess_imu_driver.git |
VCS Type | git |
VCS Version | noetic |
Last Updated | 2024-12-09 |
Dev Status | MAINTAINED |
CI status | Continuous Integration : 0 / 0 |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
Additional Links
Maintainers
- Raymond Chow
Authors
README for Epson IMU Driver for ROS1 Node
-
README for Epson IMU Driver for ROS1 node
- What is this repository for?
- What kind of hardware or software will I likely need?
- How do I use the driver?
- How do I use the driver if usleep() is not supported for time delays?
- How do I use the driver with GPIOs to control IMU RESET#, DRDY, EXT pins?
- How do I build, install, run this package?
- What does this ROS IMU Node publish as messages?
- Why am I seeing inaccurate ROS timestamps, high latencies, or slower than expected IMU data rates?
- Package Contents
- References
What is this repository for?
- This code is a ROS1 package for demonstrating a ROS node that configures and publishes IMU messages from a supported Epson IMU.
- This code provides software communication between Epson IMU and ROS using the either the UART or SPI interface.
- For the UART connection, this code uses the standard Unix Terminal I/O library (termios) for communicating either direct or by USB-serial converter such as FTDI USB-UART bridge ICs.
- For the SPI connection, this code uses the Unofficial wiringPi library for accessing GPIO and SPI functions on the Raspberry Pi platform running Ubuntu Linux distro.
- This ROS1 node demonstration software is a ROS C++ wrapper around the Linux C driver software:
- src/epson_imu_uart_ros_node.cpp is for the UART interface
- src/epson_imu_spi_ros_node.cpp is for the SPI interface
- The other source files in
src/
are based on the Linux C driver originally released and can be found here: Linux C driver and logger example for EPSON IMU - Information about ROS, and tutorials can be found: ROS.org
What kind of hardware or software will I likely need?
- Epson IMU Epson IMU models
- At the time software release:
- G320PDG0, G320PDGN, G354PDH0, G364PDCA, G364PDC0
- G365PDC1, G365PDF1, G370PDF1, G370PDS0
- G330PDG0, G366PDG0, G370PDG0, G370PDT0
- G570PR20
- At the time software release:
- ROS Noetic (via download) ROS.org
- This software was developed and tested on the following:
ROS1: Noetic
Description: Ubuntu 20.04 LTS
Hardware Platform: Core i7 PC, Raspberry Pi 3B+, RaspberryPi 4
For the UART Interface:
- Epson USB evaluation board or equivalent FTDI USB-Serial interface connecting the Epson IMU to ROS host (tty/serial) See M-G32EV041
- Alternatively, a direct connection from the Epson IMU to the ROS platform supporting a 3.3V CMOS compatible UART interface See M-G32EV031.
For the SPI Interface:
- NOTE: This software is intended for an embedded Linux host system with 3.3V I/O compatible SPI interface (SCLK, MISO, MOSI) and 3 GPIOs (CS#, RST#, DRDY).
- For Raspberry Pi, if not enabled already the SPI interface can be enabled using
raspi-config
or equivalent. - This code uses a separate GPIO to manually control CS# chipselect instead of the chipselect assigned to by the RapsberryPi SPI interface.
- The chipselect assigned by the HW SPI interface should also work, but has not been thoroughly tested.
- Epson Breakout evaluation board or some equivalent is required to connect to the 3.3V CMOS compatible pins of the ROS host (SPI & GPIOs) See M-G32EV031
How do I use the driver?
-
This code assumes that the user is familiar with building ROS packages using the
catkin_make
build process. -
This README is NOT detailed step by step instructions on how to build and install ROS software.
-
Please refer to the ROS.org website for more detailed instructions on the ROS package build process. ROS.org
-
NOTE: At a bare minimum, the user must re-build the package with catkin_make after modifying the
CMakeLists.txt
to configure any of the following:- serial interface type,
INTERFACE=
(UART or SPI) - host platform type,
PLATFORM=
(RPI or NONE=PC)
- serial interface type,
-
Changes to IMU settings should be made by editing the
.launch
files located in thelaunch/
folder instead of modifying thesrc/
source files
How do I use the driver if usleep() is not supported for time delays?
-
NOTE: In the
hcl_linux.c
orhcl_rpi.c
, there areseDelayMS()
andseDelayMicroSecs()
wrapper functions for time delays in millisecond and microseconds, respectively. - On embedded Linux platforms, the user may need to modify and redirect to platform specific delay routines if
usleep()
is not supported. - For example on RaspberryPi, the time delay functions for millisecond and microseconds are redirected to WiringPi library
delay()
anddelayMicroseconds()
, respectively. - If a hardware delay is not available from a library, then a software delay loop is possible but not preferred.
How do I use the driver with GPIOs to control IMU RESET#, DRDY, EXT pins?
- When connecting the IMU using the UART interface, the use of GPIO pins for connecting to the IMU
RESET#
orDRDY
is optional, but can be useful on an embedded Linux platforms (such as RapsberryPi). - When connecting the IMU using the SPI interface, the use of GPIO pins for connecting to the IMU
DRDY
is mandatory (RESET#
is recommended,EXT
is optional). - When using the
time_correction
function for accurate time stamping with an external 3.3V GNSS 1PPS signal, the IMUEXT
pin must be connected to the 1PPS.
File truncated at 100 lines see the full file
Changelog for package ess_imu_driver
2.0.2 (2024-11-29)
- bugfix with TimeCorrection class for PPS input
2.0.1 (2024-10-02)
- updated launch files, add new .h files for uart & spi
- port changes from imu_linux_example (auto-detect/initialize IMU model)
1.0.1 (2023-11-30)
- version bump from bloom, no code change
1.0.0 (2023-11-29)
- support UART or SPI in same package
- add publisher for temperature sensor data
Wiki Tutorials
Package Dependencies
Deps | Name |
---|---|
roscpp | |
sensor_msgs | |
std_msgs | |
geometry_msgs | |
tf2 | |
catkin |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged ess_imu_driver at Robotics Stack Exchange
![]() |
ess_imu_driver package from ess_imu_driver repoess_imu_driver |
ROS Distro
|
Package Summary
Tags | No category tags. |
Version | 2.0.2 |
License | BSD-3 |
Build type | CATKIN |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/cubicleguy/ess_imu_driver.git |
VCS Type | git |
VCS Version | noetic |
Last Updated | 2024-12-09 |
Dev Status | MAINTAINED |
CI status | Continuous Integration : 0 / 0 |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
Additional Links
Maintainers
- Raymond Chow
Authors
README for Epson IMU Driver for ROS1 Node
-
README for Epson IMU Driver for ROS1 node
- What is this repository for?
- What kind of hardware or software will I likely need?
- How do I use the driver?
- How do I use the driver if usleep() is not supported for time delays?
- How do I use the driver with GPIOs to control IMU RESET#, DRDY, EXT pins?
- How do I build, install, run this package?
- What does this ROS IMU Node publish as messages?
- Why am I seeing inaccurate ROS timestamps, high latencies, or slower than expected IMU data rates?
- Package Contents
- References
What is this repository for?
- This code is a ROS1 package for demonstrating a ROS node that configures and publishes IMU messages from a supported Epson IMU.
- This code provides software communication between Epson IMU and ROS using the either the UART or SPI interface.
- For the UART connection, this code uses the standard Unix Terminal I/O library (termios) for communicating either direct or by USB-serial converter such as FTDI USB-UART bridge ICs.
- For the SPI connection, this code uses the Unofficial wiringPi library for accessing GPIO and SPI functions on the Raspberry Pi platform running Ubuntu Linux distro.
- This ROS1 node demonstration software is a ROS C++ wrapper around the Linux C driver software:
- src/epson_imu_uart_ros_node.cpp is for the UART interface
- src/epson_imu_spi_ros_node.cpp is for the SPI interface
- The other source files in
src/
are based on the Linux C driver originally released and can be found here: Linux C driver and logger example for EPSON IMU - Information about ROS, and tutorials can be found: ROS.org
What kind of hardware or software will I likely need?
- Epson IMU Epson IMU models
- At the time software release:
- G320PDG0, G320PDGN, G354PDH0, G364PDCA, G364PDC0
- G365PDC1, G365PDF1, G370PDF1, G370PDS0
- G330PDG0, G366PDG0, G370PDG0, G370PDT0
- G570PR20
- At the time software release:
- ROS Noetic (via download) ROS.org
- This software was developed and tested on the following:
ROS1: Noetic
Description: Ubuntu 20.04 LTS
Hardware Platform: Core i7 PC, Raspberry Pi 3B+, RaspberryPi 4
For the UART Interface:
- Epson USB evaluation board or equivalent FTDI USB-Serial interface connecting the Epson IMU to ROS host (tty/serial) See M-G32EV041
- Alternatively, a direct connection from the Epson IMU to the ROS platform supporting a 3.3V CMOS compatible UART interface See M-G32EV031.
For the SPI Interface:
- NOTE: This software is intended for an embedded Linux host system with 3.3V I/O compatible SPI interface (SCLK, MISO, MOSI) and 3 GPIOs (CS#, RST#, DRDY).
- For Raspberry Pi, if not enabled already the SPI interface can be enabled using
raspi-config
or equivalent. - This code uses a separate GPIO to manually control CS# chipselect instead of the chipselect assigned to by the RapsberryPi SPI interface.
- The chipselect assigned by the HW SPI interface should also work, but has not been thoroughly tested.
- Epson Breakout evaluation board or some equivalent is required to connect to the 3.3V CMOS compatible pins of the ROS host (SPI & GPIOs) See M-G32EV031
How do I use the driver?
-
This code assumes that the user is familiar with building ROS packages using the
catkin_make
build process. -
This README is NOT detailed step by step instructions on how to build and install ROS software.
-
Please refer to the ROS.org website for more detailed instructions on the ROS package build process. ROS.org
-
NOTE: At a bare minimum, the user must re-build the package with catkin_make after modifying the
CMakeLists.txt
to configure any of the following:- serial interface type,
INTERFACE=
(UART or SPI) - host platform type,
PLATFORM=
(RPI or NONE=PC)
- serial interface type,
-
Changes to IMU settings should be made by editing the
.launch
files located in thelaunch/
folder instead of modifying thesrc/
source files
How do I use the driver if usleep() is not supported for time delays?
-
NOTE: In the
hcl_linux.c
orhcl_rpi.c
, there areseDelayMS()
andseDelayMicroSecs()
wrapper functions for time delays in millisecond and microseconds, respectively. - On embedded Linux platforms, the user may need to modify and redirect to platform specific delay routines if
usleep()
is not supported. - For example on RaspberryPi, the time delay functions for millisecond and microseconds are redirected to WiringPi library
delay()
anddelayMicroseconds()
, respectively. - If a hardware delay is not available from a library, then a software delay loop is possible but not preferred.
How do I use the driver with GPIOs to control IMU RESET#, DRDY, EXT pins?
- When connecting the IMU using the UART interface, the use of GPIO pins for connecting to the IMU
RESET#
orDRDY
is optional, but can be useful on an embedded Linux platforms (such as RapsberryPi). - When connecting the IMU using the SPI interface, the use of GPIO pins for connecting to the IMU
DRDY
is mandatory (RESET#
is recommended,EXT
is optional). - When using the
time_correction
function for accurate time stamping with an external 3.3V GNSS 1PPS signal, the IMUEXT
pin must be connected to the 1PPS.
File truncated at 100 lines see the full file
Changelog for package ess_imu_driver
2.0.2 (2024-11-29)
- bugfix with TimeCorrection class for PPS input
2.0.1 (2024-10-02)
- updated launch files, add new .h files for uart & spi
- port changes from imu_linux_example (auto-detect/initialize IMU model)
1.0.1 (2023-11-30)
- version bump from bloom, no code change
1.0.0 (2023-11-29)
- support UART or SPI in same package
- add publisher for temperature sensor data
Wiki Tutorials
Package Dependencies
Deps | Name |
---|---|
roscpp | |
sensor_msgs | |
std_msgs | |
geometry_msgs | |
tf2 | |
catkin |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged ess_imu_driver at Robotics Stack Exchange
![]() |
ess_imu_driver package from ess_imu_driver repoess_imu_driver |
ROS Distro
|
Package Summary
Tags | No category tags. |
Version | 2.0.2 |
License | BSD-3 |
Build type | CATKIN |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/cubicleguy/ess_imu_driver.git |
VCS Type | git |
VCS Version | noetic |
Last Updated | 2024-12-09 |
Dev Status | MAINTAINED |
CI status | Continuous Integration : 0 / 0 |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
Additional Links
Maintainers
- Raymond Chow
Authors
README for Epson IMU Driver for ROS1 Node
-
README for Epson IMU Driver for ROS1 node
- What is this repository for?
- What kind of hardware or software will I likely need?
- How do I use the driver?
- How do I use the driver if usleep() is not supported for time delays?
- How do I use the driver with GPIOs to control IMU RESET#, DRDY, EXT pins?
- How do I build, install, run this package?
- What does this ROS IMU Node publish as messages?
- Why am I seeing inaccurate ROS timestamps, high latencies, or slower than expected IMU data rates?
- Package Contents
- References
What is this repository for?
- This code is a ROS1 package for demonstrating a ROS node that configures and publishes IMU messages from a supported Epson IMU.
- This code provides software communication between Epson IMU and ROS using the either the UART or SPI interface.
- For the UART connection, this code uses the standard Unix Terminal I/O library (termios) for communicating either direct or by USB-serial converter such as FTDI USB-UART bridge ICs.
- For the SPI connection, this code uses the Unofficial wiringPi library for accessing GPIO and SPI functions on the Raspberry Pi platform running Ubuntu Linux distro.
- This ROS1 node demonstration software is a ROS C++ wrapper around the Linux C driver software:
- src/epson_imu_uart_ros_node.cpp is for the UART interface
- src/epson_imu_spi_ros_node.cpp is for the SPI interface
- The other source files in
src/
are based on the Linux C driver originally released and can be found here: Linux C driver and logger example for EPSON IMU - Information about ROS, and tutorials can be found: ROS.org
What kind of hardware or software will I likely need?
- Epson IMU Epson IMU models
- At the time software release:
- G320PDG0, G320PDGN, G354PDH0, G364PDCA, G364PDC0
- G365PDC1, G365PDF1, G370PDF1, G370PDS0
- G330PDG0, G366PDG0, G370PDG0, G370PDT0
- G570PR20
- At the time software release:
- ROS Noetic (via download) ROS.org
- This software was developed and tested on the following:
ROS1: Noetic
Description: Ubuntu 20.04 LTS
Hardware Platform: Core i7 PC, Raspberry Pi 3B+, RaspberryPi 4
For the UART Interface:
- Epson USB evaluation board or equivalent FTDI USB-Serial interface connecting the Epson IMU to ROS host (tty/serial) See M-G32EV041
- Alternatively, a direct connection from the Epson IMU to the ROS platform supporting a 3.3V CMOS compatible UART interface See M-G32EV031.
For the SPI Interface:
- NOTE: This software is intended for an embedded Linux host system with 3.3V I/O compatible SPI interface (SCLK, MISO, MOSI) and 3 GPIOs (CS#, RST#, DRDY).
- For Raspberry Pi, if not enabled already the SPI interface can be enabled using
raspi-config
or equivalent. - This code uses a separate GPIO to manually control CS# chipselect instead of the chipselect assigned to by the RapsberryPi SPI interface.
- The chipselect assigned by the HW SPI interface should also work, but has not been thoroughly tested.
- Epson Breakout evaluation board or some equivalent is required to connect to the 3.3V CMOS compatible pins of the ROS host (SPI & GPIOs) See M-G32EV031
How do I use the driver?
-
This code assumes that the user is familiar with building ROS packages using the
catkin_make
build process. -
This README is NOT detailed step by step instructions on how to build and install ROS software.
-
Please refer to the ROS.org website for more detailed instructions on the ROS package build process. ROS.org
-
NOTE: At a bare minimum, the user must re-build the package with catkin_make after modifying the
CMakeLists.txt
to configure any of the following:- serial interface type,
INTERFACE=
(UART or SPI) - host platform type,
PLATFORM=
(RPI or NONE=PC)
- serial interface type,
-
Changes to IMU settings should be made by editing the
.launch
files located in thelaunch/
folder instead of modifying thesrc/
source files
How do I use the driver if usleep() is not supported for time delays?
-
NOTE: In the
hcl_linux.c
orhcl_rpi.c
, there areseDelayMS()
andseDelayMicroSecs()
wrapper functions for time delays in millisecond and microseconds, respectively. - On embedded Linux platforms, the user may need to modify and redirect to platform specific delay routines if
usleep()
is not supported. - For example on RaspberryPi, the time delay functions for millisecond and microseconds are redirected to WiringPi library
delay()
anddelayMicroseconds()
, respectively. - If a hardware delay is not available from a library, then a software delay loop is possible but not preferred.
How do I use the driver with GPIOs to control IMU RESET#, DRDY, EXT pins?
- When connecting the IMU using the UART interface, the use of GPIO pins for connecting to the IMU
RESET#
orDRDY
is optional, but can be useful on an embedded Linux platforms (such as RapsberryPi). - When connecting the IMU using the SPI interface, the use of GPIO pins for connecting to the IMU
DRDY
is mandatory (RESET#
is recommended,EXT
is optional). - When using the
time_correction
function for accurate time stamping with an external 3.3V GNSS 1PPS signal, the IMUEXT
pin must be connected to the 1PPS.
File truncated at 100 lines see the full file
Changelog for package ess_imu_driver
2.0.2 (2024-11-29)
- bugfix with TimeCorrection class for PPS input
2.0.1 (2024-10-02)
- updated launch files, add new .h files for uart & spi
- port changes from imu_linux_example (auto-detect/initialize IMU model)
1.0.1 (2023-11-30)
- version bump from bloom, no code change
1.0.0 (2023-11-29)
- support UART or SPI in same package
- add publisher for temperature sensor data
Wiki Tutorials
Package Dependencies
Deps | Name |
---|---|
roscpp | |
sensor_msgs | |
std_msgs | |
geometry_msgs | |
tf2 | |
catkin |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged ess_imu_driver at Robotics Stack Exchange
![]() |
ess_imu_driver package from ess_imu_driver repoess_imu_driver |
ROS Distro
|
Package Summary
Tags | No category tags. |
Version | 2.0.2 |
License | BSD-3 |
Build type | CATKIN |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/cubicleguy/ess_imu_driver.git |
VCS Type | git |
VCS Version | noetic |
Last Updated | 2024-12-09 |
Dev Status | MAINTAINED |
CI status | Continuous Integration : 0 / 0 |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
Additional Links
Maintainers
- Raymond Chow
Authors
README for Epson IMU Driver for ROS1 Node
-
README for Epson IMU Driver for ROS1 node
- What is this repository for?
- What kind of hardware or software will I likely need?
- How do I use the driver?
- How do I use the driver if usleep() is not supported for time delays?
- How do I use the driver with GPIOs to control IMU RESET#, DRDY, EXT pins?
- How do I build, install, run this package?
- What does this ROS IMU Node publish as messages?
- Why am I seeing inaccurate ROS timestamps, high latencies, or slower than expected IMU data rates?
- Package Contents
- References
What is this repository for?
- This code is a ROS1 package for demonstrating a ROS node that configures and publishes IMU messages from a supported Epson IMU.
- This code provides software communication between Epson IMU and ROS using the either the UART or SPI interface.
- For the UART connection, this code uses the standard Unix Terminal I/O library (termios) for communicating either direct or by USB-serial converter such as FTDI USB-UART bridge ICs.
- For the SPI connection, this code uses the Unofficial wiringPi library for accessing GPIO and SPI functions on the Raspberry Pi platform running Ubuntu Linux distro.
- This ROS1 node demonstration software is a ROS C++ wrapper around the Linux C driver software:
- src/epson_imu_uart_ros_node.cpp is for the UART interface
- src/epson_imu_spi_ros_node.cpp is for the SPI interface
- The other source files in
src/
are based on the Linux C driver originally released and can be found here: Linux C driver and logger example for EPSON IMU - Information about ROS, and tutorials can be found: ROS.org
What kind of hardware or software will I likely need?
- Epson IMU Epson IMU models
- At the time software release:
- G320PDG0, G320PDGN, G354PDH0, G364PDCA, G364PDC0
- G365PDC1, G365PDF1, G370PDF1, G370PDS0
- G330PDG0, G366PDG0, G370PDG0, G370PDT0
- G570PR20
- At the time software release:
- ROS Noetic (via download) ROS.org
- This software was developed and tested on the following:
ROS1: Noetic
Description: Ubuntu 20.04 LTS
Hardware Platform: Core i7 PC, Raspberry Pi 3B+, RaspberryPi 4
For the UART Interface:
- Epson USB evaluation board or equivalent FTDI USB-Serial interface connecting the Epson IMU to ROS host (tty/serial) See M-G32EV041
- Alternatively, a direct connection from the Epson IMU to the ROS platform supporting a 3.3V CMOS compatible UART interface See M-G32EV031.
For the SPI Interface:
- NOTE: This software is intended for an embedded Linux host system with 3.3V I/O compatible SPI interface (SCLK, MISO, MOSI) and 3 GPIOs (CS#, RST#, DRDY).
- For Raspberry Pi, if not enabled already the SPI interface can be enabled using
raspi-config
or equivalent. - This code uses a separate GPIO to manually control CS# chipselect instead of the chipselect assigned to by the RapsberryPi SPI interface.
- The chipselect assigned by the HW SPI interface should also work, but has not been thoroughly tested.
- Epson Breakout evaluation board or some equivalent is required to connect to the 3.3V CMOS compatible pins of the ROS host (SPI & GPIOs) See M-G32EV031
How do I use the driver?
-
This code assumes that the user is familiar with building ROS packages using the
catkin_make
build process. -
This README is NOT detailed step by step instructions on how to build and install ROS software.
-
Please refer to the ROS.org website for more detailed instructions on the ROS package build process. ROS.org
-
NOTE: At a bare minimum, the user must re-build the package with catkin_make after modifying the
CMakeLists.txt
to configure any of the following:- serial interface type,
INTERFACE=
(UART or SPI) - host platform type,
PLATFORM=
(RPI or NONE=PC)
- serial interface type,
-
Changes to IMU settings should be made by editing the
.launch
files located in thelaunch/
folder instead of modifying thesrc/
source files
How do I use the driver if usleep() is not supported for time delays?
-
NOTE: In the
hcl_linux.c
orhcl_rpi.c
, there areseDelayMS()
andseDelayMicroSecs()
wrapper functions for time delays in millisecond and microseconds, respectively. - On embedded Linux platforms, the user may need to modify and redirect to platform specific delay routines if
usleep()
is not supported. - For example on RaspberryPi, the time delay functions for millisecond and microseconds are redirected to WiringPi library
delay()
anddelayMicroseconds()
, respectively. - If a hardware delay is not available from a library, then a software delay loop is possible but not preferred.
How do I use the driver with GPIOs to control IMU RESET#, DRDY, EXT pins?
- When connecting the IMU using the UART interface, the use of GPIO pins for connecting to the IMU
RESET#
orDRDY
is optional, but can be useful on an embedded Linux platforms (such as RapsberryPi). - When connecting the IMU using the SPI interface, the use of GPIO pins for connecting to the IMU
DRDY
is mandatory (RESET#
is recommended,EXT
is optional). - When using the
time_correction
function for accurate time stamping with an external 3.3V GNSS 1PPS signal, the IMUEXT
pin must be connected to the 1PPS.
File truncated at 100 lines see the full file
Changelog for package ess_imu_driver
2.0.2 (2024-11-29)
- bugfix with TimeCorrection class for PPS input
2.0.1 (2024-10-02)
- updated launch files, add new .h files for uart & spi
- port changes from imu_linux_example (auto-detect/initialize IMU model)
1.0.1 (2023-11-30)
- version bump from bloom, no code change
1.0.0 (2023-11-29)
- support UART or SPI in same package
- add publisher for temperature sensor data
Wiki Tutorials
Package Dependencies
Deps | Name |
---|---|
roscpp | |
sensor_msgs | |
std_msgs | |
geometry_msgs | |
tf2 | |
catkin |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged ess_imu_driver at Robotics Stack Exchange
![]() |
ess_imu_driver package from ess_imu_driver repoess_imu_driver |
ROS Distro
|
Package Summary
Tags | No category tags. |
Version | 2.0.2 |
License | BSD-3 |
Build type | CATKIN |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/cubicleguy/ess_imu_driver.git |
VCS Type | git |
VCS Version | noetic |
Last Updated | 2024-12-09 |
Dev Status | MAINTAINED |
CI status | Continuous Integration : 0 / 0 |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
Additional Links
Maintainers
- Raymond Chow
Authors
README for Epson IMU Driver for ROS1 Node
-
README for Epson IMU Driver for ROS1 node
- What is this repository for?
- What kind of hardware or software will I likely need?
- How do I use the driver?
- How do I use the driver if usleep() is not supported for time delays?
- How do I use the driver with GPIOs to control IMU RESET#, DRDY, EXT pins?
- How do I build, install, run this package?
- What does this ROS IMU Node publish as messages?
- Why am I seeing inaccurate ROS timestamps, high latencies, or slower than expected IMU data rates?
- Package Contents
- References
What is this repository for?
- This code is a ROS1 package for demonstrating a ROS node that configures and publishes IMU messages from a supported Epson IMU.
- This code provides software communication between Epson IMU and ROS using the either the UART or SPI interface.
- For the UART connection, this code uses the standard Unix Terminal I/O library (termios) for communicating either direct or by USB-serial converter such as FTDI USB-UART bridge ICs.
- For the SPI connection, this code uses the Unofficial wiringPi library for accessing GPIO and SPI functions on the Raspberry Pi platform running Ubuntu Linux distro.
- This ROS1 node demonstration software is a ROS C++ wrapper around the Linux C driver software:
- src/epson_imu_uart_ros_node.cpp is for the UART interface
- src/epson_imu_spi_ros_node.cpp is for the SPI interface
- The other source files in
src/
are based on the Linux C driver originally released and can be found here: Linux C driver and logger example for EPSON IMU - Information about ROS, and tutorials can be found: ROS.org
What kind of hardware or software will I likely need?
- Epson IMU Epson IMU models
- At the time software release:
- G320PDG0, G320PDGN, G354PDH0, G364PDCA, G364PDC0
- G365PDC1, G365PDF1, G370PDF1, G370PDS0
- G330PDG0, G366PDG0, G370PDG0, G370PDT0
- G570PR20
- At the time software release:
- ROS Noetic (via download) ROS.org
- This software was developed and tested on the following:
ROS1: Noetic
Description: Ubuntu 20.04 LTS
Hardware Platform: Core i7 PC, Raspberry Pi 3B+, RaspberryPi 4
For the UART Interface:
- Epson USB evaluation board or equivalent FTDI USB-Serial interface connecting the Epson IMU to ROS host (tty/serial) See M-G32EV041
- Alternatively, a direct connection from the Epson IMU to the ROS platform supporting a 3.3V CMOS compatible UART interface See M-G32EV031.
For the SPI Interface:
- NOTE: This software is intended for an embedded Linux host system with 3.3V I/O compatible SPI interface (SCLK, MISO, MOSI) and 3 GPIOs (CS#, RST#, DRDY).
- For Raspberry Pi, if not enabled already the SPI interface can be enabled using
raspi-config
or equivalent. - This code uses a separate GPIO to manually control CS# chipselect instead of the chipselect assigned to by the RapsberryPi SPI interface.
- The chipselect assigned by the HW SPI interface should also work, but has not been thoroughly tested.
- Epson Breakout evaluation board or some equivalent is required to connect to the 3.3V CMOS compatible pins of the ROS host (SPI & GPIOs) See M-G32EV031
How do I use the driver?
-
This code assumes that the user is familiar with building ROS packages using the
catkin_make
build process. -
This README is NOT detailed step by step instructions on how to build and install ROS software.
-
Please refer to the ROS.org website for more detailed instructions on the ROS package build process. ROS.org
-
NOTE: At a bare minimum, the user must re-build the package with catkin_make after modifying the
CMakeLists.txt
to configure any of the following:- serial interface type,
INTERFACE=
(UART or SPI) - host platform type,
PLATFORM=
(RPI or NONE=PC)
- serial interface type,
-
Changes to IMU settings should be made by editing the
.launch
files located in thelaunch/
folder instead of modifying thesrc/
source files
How do I use the driver if usleep() is not supported for time delays?
-
NOTE: In the
hcl_linux.c
orhcl_rpi.c
, there areseDelayMS()
andseDelayMicroSecs()
wrapper functions for time delays in millisecond and microseconds, respectively. - On embedded Linux platforms, the user may need to modify and redirect to platform specific delay routines if
usleep()
is not supported. - For example on RaspberryPi, the time delay functions for millisecond and microseconds are redirected to WiringPi library
delay()
anddelayMicroseconds()
, respectively. - If a hardware delay is not available from a library, then a software delay loop is possible but not preferred.
How do I use the driver with GPIOs to control IMU RESET#, DRDY, EXT pins?
- When connecting the IMU using the UART interface, the use of GPIO pins for connecting to the IMU
RESET#
orDRDY
is optional, but can be useful on an embedded Linux platforms (such as RapsberryPi). - When connecting the IMU using the SPI interface, the use of GPIO pins for connecting to the IMU
DRDY
is mandatory (RESET#
is recommended,EXT
is optional). - When using the
time_correction
function for accurate time stamping with an external 3.3V GNSS 1PPS signal, the IMUEXT
pin must be connected to the 1PPS.
File truncated at 100 lines see the full file
Changelog for package ess_imu_driver
2.0.2 (2024-11-29)
- bugfix with TimeCorrection class for PPS input
2.0.1 (2024-10-02)
- updated launch files, add new .h files for uart & spi
- port changes from imu_linux_example (auto-detect/initialize IMU model)
1.0.1 (2023-11-30)
- version bump from bloom, no code change
1.0.0 (2023-11-29)
- support UART or SPI in same package
- add publisher for temperature sensor data
Wiki Tutorials
Package Dependencies
Deps | Name |
---|---|
roscpp | |
sensor_msgs | |
std_msgs | |
geometry_msgs | |
tf2 | |
catkin |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged ess_imu_driver at Robotics Stack Exchange
![]() |
ess_imu_driver package from ess_imu_driver repoess_imu_driver |
ROS Distro
|
Package Summary
Tags | No category tags. |
Version | 2.0.2 |
License | BSD-3 |
Build type | CATKIN |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/cubicleguy/ess_imu_driver.git |
VCS Type | git |
VCS Version | noetic |
Last Updated | 2024-12-09 |
Dev Status | MAINTAINED |
CI status | Continuous Integration : 0 / 0 |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
Additional Links
Maintainers
- Raymond Chow
Authors
README for Epson IMU Driver for ROS1 Node
-
README for Epson IMU Driver for ROS1 node
- What is this repository for?
- What kind of hardware or software will I likely need?
- How do I use the driver?
- How do I use the driver if usleep() is not supported for time delays?
- How do I use the driver with GPIOs to control IMU RESET#, DRDY, EXT pins?
- How do I build, install, run this package?
- What does this ROS IMU Node publish as messages?
- Why am I seeing inaccurate ROS timestamps, high latencies, or slower than expected IMU data rates?
- Package Contents
- References
What is this repository for?
- This code is a ROS1 package for demonstrating a ROS node that configures and publishes IMU messages from a supported Epson IMU.
- This code provides software communication between Epson IMU and ROS using the either the UART or SPI interface.
- For the UART connection, this code uses the standard Unix Terminal I/O library (termios) for communicating either direct or by USB-serial converter such as FTDI USB-UART bridge ICs.
- For the SPI connection, this code uses the Unofficial wiringPi library for accessing GPIO and SPI functions on the Raspberry Pi platform running Ubuntu Linux distro.
- This ROS1 node demonstration software is a ROS C++ wrapper around the Linux C driver software:
- src/epson_imu_uart_ros_node.cpp is for the UART interface
- src/epson_imu_spi_ros_node.cpp is for the SPI interface
- The other source files in
src/
are based on the Linux C driver originally released and can be found here: Linux C driver and logger example for EPSON IMU - Information about ROS, and tutorials can be found: ROS.org
What kind of hardware or software will I likely need?
- Epson IMU Epson IMU models
- At the time software release:
- G320PDG0, G320PDGN, G354PDH0, G364PDCA, G364PDC0
- G365PDC1, G365PDF1, G370PDF1, G370PDS0
- G330PDG0, G366PDG0, G370PDG0, G370PDT0
- G570PR20
- At the time software release:
- ROS Noetic (via download) ROS.org
- This software was developed and tested on the following:
ROS1: Noetic
Description: Ubuntu 20.04 LTS
Hardware Platform: Core i7 PC, Raspberry Pi 3B+, RaspberryPi 4
For the UART Interface:
- Epson USB evaluation board or equivalent FTDI USB-Serial interface connecting the Epson IMU to ROS host (tty/serial) See M-G32EV041
- Alternatively, a direct connection from the Epson IMU to the ROS platform supporting a 3.3V CMOS compatible UART interface See M-G32EV031.
For the SPI Interface:
- NOTE: This software is intended for an embedded Linux host system with 3.3V I/O compatible SPI interface (SCLK, MISO, MOSI) and 3 GPIOs (CS#, RST#, DRDY).
- For Raspberry Pi, if not enabled already the SPI interface can be enabled using
raspi-config
or equivalent. - This code uses a separate GPIO to manually control CS# chipselect instead of the chipselect assigned to by the RapsberryPi SPI interface.
- The chipselect assigned by the HW SPI interface should also work, but has not been thoroughly tested.
- Epson Breakout evaluation board or some equivalent is required to connect to the 3.3V CMOS compatible pins of the ROS host (SPI & GPIOs) See M-G32EV031
How do I use the driver?
-
This code assumes that the user is familiar with building ROS packages using the
catkin_make
build process. -
This README is NOT detailed step by step instructions on how to build and install ROS software.
-
Please refer to the ROS.org website for more detailed instructions on the ROS package build process. ROS.org
-
NOTE: At a bare minimum, the user must re-build the package with catkin_make after modifying the
CMakeLists.txt
to configure any of the following:- serial interface type,
INTERFACE=
(UART or SPI) - host platform type,
PLATFORM=
(RPI or NONE=PC)
- serial interface type,
-
Changes to IMU settings should be made by editing the
.launch
files located in thelaunch/
folder instead of modifying thesrc/
source files
How do I use the driver if usleep() is not supported for time delays?
-
NOTE: In the
hcl_linux.c
orhcl_rpi.c
, there areseDelayMS()
andseDelayMicroSecs()
wrapper functions for time delays in millisecond and microseconds, respectively. - On embedded Linux platforms, the user may need to modify and redirect to platform specific delay routines if
usleep()
is not supported. - For example on RaspberryPi, the time delay functions for millisecond and microseconds are redirected to WiringPi library
delay()
anddelayMicroseconds()
, respectively. - If a hardware delay is not available from a library, then a software delay loop is possible but not preferred.
How do I use the driver with GPIOs to control IMU RESET#, DRDY, EXT pins?
- When connecting the IMU using the UART interface, the use of GPIO pins for connecting to the IMU
RESET#
orDRDY
is optional, but can be useful on an embedded Linux platforms (such as RapsberryPi). - When connecting the IMU using the SPI interface, the use of GPIO pins for connecting to the IMU
DRDY
is mandatory (RESET#
is recommended,EXT
is optional). - When using the
time_correction
function for accurate time stamping with an external 3.3V GNSS 1PPS signal, the IMUEXT
pin must be connected to the 1PPS.
File truncated at 100 lines see the full file
Changelog for package ess_imu_driver
2.0.2 (2024-11-29)
- bugfix with TimeCorrection class for PPS input
2.0.1 (2024-10-02)
- updated launch files, add new .h files for uart & spi
- port changes from imu_linux_example (auto-detect/initialize IMU model)
1.0.1 (2023-11-30)
- version bump from bloom, no code change
1.0.0 (2023-11-29)
- support UART or SPI in same package
- add publisher for temperature sensor data
Wiki Tutorials
Package Dependencies
Deps | Name |
---|---|
roscpp | |
sensor_msgs | |
std_msgs | |
geometry_msgs | |
tf2 | |
catkin |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged ess_imu_driver at Robotics Stack Exchange
![]() |
ess_imu_driver package from ess_imu_driver repoess_imu_driver |
ROS Distro
|
Package Summary
Tags | No category tags. |
Version | 2.0.2 |
License | BSD-3 |
Build type | CATKIN |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/cubicleguy/ess_imu_driver.git |
VCS Type | git |
VCS Version | noetic |
Last Updated | 2024-12-09 |
Dev Status | MAINTAINED |
CI status | Continuous Integration : 0 / 0 |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
Additional Links
Maintainers
- Raymond Chow
Authors
README for Epson IMU Driver for ROS1 Node
-
README for Epson IMU Driver for ROS1 node
- What is this repository for?
- What kind of hardware or software will I likely need?
- How do I use the driver?
- How do I use the driver if usleep() is not supported for time delays?
- How do I use the driver with GPIOs to control IMU RESET#, DRDY, EXT pins?
- How do I build, install, run this package?
- What does this ROS IMU Node publish as messages?
- Why am I seeing inaccurate ROS timestamps, high latencies, or slower than expected IMU data rates?
- Package Contents
- References
What is this repository for?
- This code is a ROS1 package for demonstrating a ROS node that configures and publishes IMU messages from a supported Epson IMU.
- This code provides software communication between Epson IMU and ROS using the either the UART or SPI interface.
- For the UART connection, this code uses the standard Unix Terminal I/O library (termios) for communicating either direct or by USB-serial converter such as FTDI USB-UART bridge ICs.
- For the SPI connection, this code uses the Unofficial wiringPi library for accessing GPIO and SPI functions on the Raspberry Pi platform running Ubuntu Linux distro.
- This ROS1 node demonstration software is a ROS C++ wrapper around the Linux C driver software:
- src/epson_imu_uart_ros_node.cpp is for the UART interface
- src/epson_imu_spi_ros_node.cpp is for the SPI interface
- The other source files in
src/
are based on the Linux C driver originally released and can be found here: Linux C driver and logger example for EPSON IMU - Information about ROS, and tutorials can be found: ROS.org
What kind of hardware or software will I likely need?
- Epson IMU Epson IMU models
- At the time software release:
- G320PDG0, G320PDGN, G354PDH0, G364PDCA, G364PDC0
- G365PDC1, G365PDF1, G370PDF1, G370PDS0
- G330PDG0, G366PDG0, G370PDG0, G370PDT0
- G570PR20
- At the time software release:
- ROS Noetic (via download) ROS.org
- This software was developed and tested on the following:
ROS1: Noetic
Description: Ubuntu 20.04 LTS
Hardware Platform: Core i7 PC, Raspberry Pi 3B+, RaspberryPi 4
For the UART Interface:
- Epson USB evaluation board or equivalent FTDI USB-Serial interface connecting the Epson IMU to ROS host (tty/serial) See M-G32EV041
- Alternatively, a direct connection from the Epson IMU to the ROS platform supporting a 3.3V CMOS compatible UART interface See M-G32EV031.
For the SPI Interface:
- NOTE: This software is intended for an embedded Linux host system with 3.3V I/O compatible SPI interface (SCLK, MISO, MOSI) and 3 GPIOs (CS#, RST#, DRDY).
- For Raspberry Pi, if not enabled already the SPI interface can be enabled using
raspi-config
or equivalent. - This code uses a separate GPIO to manually control CS# chipselect instead of the chipselect assigned to by the RapsberryPi SPI interface.
- The chipselect assigned by the HW SPI interface should also work, but has not been thoroughly tested.
- Epson Breakout evaluation board or some equivalent is required to connect to the 3.3V CMOS compatible pins of the ROS host (SPI & GPIOs) See M-G32EV031
How do I use the driver?
-
This code assumes that the user is familiar with building ROS packages using the
catkin_make
build process. -
This README is NOT detailed step by step instructions on how to build and install ROS software.
-
Please refer to the ROS.org website for more detailed instructions on the ROS package build process. ROS.org
-
NOTE: At a bare minimum, the user must re-build the package with catkin_make after modifying the
CMakeLists.txt
to configure any of the following:- serial interface type,
INTERFACE=
(UART or SPI) - host platform type,
PLATFORM=
(RPI or NONE=PC)
- serial interface type,
-
Changes to IMU settings should be made by editing the
.launch
files located in thelaunch/
folder instead of modifying thesrc/
source files
How do I use the driver if usleep() is not supported for time delays?
-
NOTE: In the
hcl_linux.c
orhcl_rpi.c
, there areseDelayMS()
andseDelayMicroSecs()
wrapper functions for time delays in millisecond and microseconds, respectively. - On embedded Linux platforms, the user may need to modify and redirect to platform specific delay routines if
usleep()
is not supported. - For example on RaspberryPi, the time delay functions for millisecond and microseconds are redirected to WiringPi library
delay()
anddelayMicroseconds()
, respectively. - If a hardware delay is not available from a library, then a software delay loop is possible but not preferred.
How do I use the driver with GPIOs to control IMU RESET#, DRDY, EXT pins?
- When connecting the IMU using the UART interface, the use of GPIO pins for connecting to the IMU
RESET#
orDRDY
is optional, but can be useful on an embedded Linux platforms (such as RapsberryPi). - When connecting the IMU using the SPI interface, the use of GPIO pins for connecting to the IMU
DRDY
is mandatory (RESET#
is recommended,EXT
is optional). - When using the
time_correction
function for accurate time stamping with an external 3.3V GNSS 1PPS signal, the IMUEXT
pin must be connected to the 1PPS.
File truncated at 100 lines see the full file
Changelog for package ess_imu_driver
2.0.2 (2024-11-29)
- bugfix with TimeCorrection class for PPS input
2.0.1 (2024-10-02)
- updated launch files, add new .h files for uart & spi
- port changes from imu_linux_example (auto-detect/initialize IMU model)
1.0.1 (2023-11-30)
- version bump from bloom, no code change
1.0.0 (2023-11-29)
- support UART or SPI in same package
- add publisher for temperature sensor data
Wiki Tutorials
Package Dependencies
Deps | Name |
---|---|
roscpp | |
sensor_msgs | |
std_msgs | |
geometry_msgs | |
tf2 | |
catkin |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged ess_imu_driver at Robotics Stack Exchange
![]() |
ess_imu_driver package from ess_imu_driver repoess_imu_driver |
ROS Distro
|
Package Summary
Tags | No category tags. |
Version | 2.0.2 |
License | BSD-3 |
Build type | CATKIN |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/cubicleguy/ess_imu_driver.git |
VCS Type | git |
VCS Version | noetic |
Last Updated | 2024-12-09 |
Dev Status | MAINTAINED |
CI status | Continuous Integration : 0 / 0 |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
Additional Links
Maintainers
- Raymond Chow
Authors
README for Epson IMU Driver for ROS1 Node
-
README for Epson IMU Driver for ROS1 node
- What is this repository for?
- What kind of hardware or software will I likely need?
- How do I use the driver?
- How do I use the driver if usleep() is not supported for time delays?
- How do I use the driver with GPIOs to control IMU RESET#, DRDY, EXT pins?
- How do I build, install, run this package?
- What does this ROS IMU Node publish as messages?
- Why am I seeing inaccurate ROS timestamps, high latencies, or slower than expected IMU data rates?
- Package Contents
- References
What is this repository for?
- This code is a ROS1 package for demonstrating a ROS node that configures and publishes IMU messages from a supported Epson IMU.
- This code provides software communication between Epson IMU and ROS using the either the UART or SPI interface.
- For the UART connection, this code uses the standard Unix Terminal I/O library (termios) for communicating either direct or by USB-serial converter such as FTDI USB-UART bridge ICs.
- For the SPI connection, this code uses the Unofficial wiringPi library for accessing GPIO and SPI functions on the Raspberry Pi platform running Ubuntu Linux distro.
- This ROS1 node demonstration software is a ROS C++ wrapper around the Linux C driver software:
- src/epson_imu_uart_ros_node.cpp is for the UART interface
- src/epson_imu_spi_ros_node.cpp is for the SPI interface
- The other source files in
src/
are based on the Linux C driver originally released and can be found here: Linux C driver and logger example for EPSON IMU - Information about ROS, and tutorials can be found: ROS.org
What kind of hardware or software will I likely need?
- Epson IMU Epson IMU models
- At the time software release:
- G320PDG0, G320PDGN, G354PDH0, G364PDCA, G364PDC0
- G365PDC1, G365PDF1, G370PDF1, G370PDS0
- G330PDG0, G366PDG0, G370PDG0, G370PDT0
- G570PR20
- At the time software release:
- ROS Noetic (via download) ROS.org
- This software was developed and tested on the following:
ROS1: Noetic
Description: Ubuntu 20.04 LTS
Hardware Platform: Core i7 PC, Raspberry Pi 3B+, RaspberryPi 4
For the UART Interface:
- Epson USB evaluation board or equivalent FTDI USB-Serial interface connecting the Epson IMU to ROS host (tty/serial) See M-G32EV041
- Alternatively, a direct connection from the Epson IMU to the ROS platform supporting a 3.3V CMOS compatible UART interface See M-G32EV031.
For the SPI Interface:
- NOTE: This software is intended for an embedded Linux host system with 3.3V I/O compatible SPI interface (SCLK, MISO, MOSI) and 3 GPIOs (CS#, RST#, DRDY).
- For Raspberry Pi, if not enabled already the SPI interface can be enabled using
raspi-config
or equivalent. - This code uses a separate GPIO to manually control CS# chipselect instead of the chipselect assigned to by the RapsberryPi SPI interface.
- The chipselect assigned by the HW SPI interface should also work, but has not been thoroughly tested.
- Epson Breakout evaluation board or some equivalent is required to connect to the 3.3V CMOS compatible pins of the ROS host (SPI & GPIOs) See M-G32EV031
How do I use the driver?
-
This code assumes that the user is familiar with building ROS packages using the
catkin_make
build process. -
This README is NOT detailed step by step instructions on how to build and install ROS software.
-
Please refer to the ROS.org website for more detailed instructions on the ROS package build process. ROS.org
-
NOTE: At a bare minimum, the user must re-build the package with catkin_make after modifying the
CMakeLists.txt
to configure any of the following:- serial interface type,
INTERFACE=
(UART or SPI) - host platform type,
PLATFORM=
(RPI or NONE=PC)
- serial interface type,
-
Changes to IMU settings should be made by editing the
.launch
files located in thelaunch/
folder instead of modifying thesrc/
source files
How do I use the driver if usleep() is not supported for time delays?
-
NOTE: In the
hcl_linux.c
orhcl_rpi.c
, there areseDelayMS()
andseDelayMicroSecs()
wrapper functions for time delays in millisecond and microseconds, respectively. - On embedded Linux platforms, the user may need to modify and redirect to platform specific delay routines if
usleep()
is not supported. - For example on RaspberryPi, the time delay functions for millisecond and microseconds are redirected to WiringPi library
delay()
anddelayMicroseconds()
, respectively. - If a hardware delay is not available from a library, then a software delay loop is possible but not preferred.
How do I use the driver with GPIOs to control IMU RESET#, DRDY, EXT pins?
- When connecting the IMU using the UART interface, the use of GPIO pins for connecting to the IMU
RESET#
orDRDY
is optional, but can be useful on an embedded Linux platforms (such as RapsberryPi). - When connecting the IMU using the SPI interface, the use of GPIO pins for connecting to the IMU
DRDY
is mandatory (RESET#
is recommended,EXT
is optional). - When using the
time_correction
function for accurate time stamping with an external 3.3V GNSS 1PPS signal, the IMUEXT
pin must be connected to the 1PPS.
File truncated at 100 lines see the full file
Changelog for package ess_imu_driver
2.0.2 (2024-11-29)
- bugfix with TimeCorrection class for PPS input
2.0.1 (2024-10-02)
- updated launch files, add new .h files for uart & spi
- port changes from imu_linux_example (auto-detect/initialize IMU model)
1.0.1 (2023-11-30)
- version bump from bloom, no code change
1.0.0 (2023-11-29)
- support UART or SPI in same package
- add publisher for temperature sensor data
Wiki Tutorials
Package Dependencies
Deps | Name |
---|---|
roscpp | |
sensor_msgs | |
std_msgs | |
geometry_msgs | |
tf2 | |
catkin |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged ess_imu_driver at Robotics Stack Exchange
![]() |
ess_imu_driver package from ess_imu_driver repoess_imu_driver |
ROS Distro
|
Package Summary
Tags | No category tags. |
Version | 2.0.2 |
License | BSD-3 |
Build type | CATKIN |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/cubicleguy/ess_imu_driver.git |
VCS Type | git |
VCS Version | noetic |
Last Updated | 2024-12-09 |
Dev Status | MAINTAINED |
CI status | Continuous Integration : 0 / 0 |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
Additional Links
Maintainers
- Raymond Chow
Authors
README for Epson IMU Driver for ROS1 Node
-
README for Epson IMU Driver for ROS1 node
- What is this repository for?
- What kind of hardware or software will I likely need?
- How do I use the driver?
- How do I use the driver if usleep() is not supported for time delays?
- How do I use the driver with GPIOs to control IMU RESET#, DRDY, EXT pins?
- How do I build, install, run this package?
- What does this ROS IMU Node publish as messages?
- Why am I seeing inaccurate ROS timestamps, high latencies, or slower than expected IMU data rates?
- Package Contents
- References
What is this repository for?
- This code is a ROS1 package for demonstrating a ROS node that configures and publishes IMU messages from a supported Epson IMU.
- This code provides software communication between Epson IMU and ROS using the either the UART or SPI interface.
- For the UART connection, this code uses the standard Unix Terminal I/O library (termios) for communicating either direct or by USB-serial converter such as FTDI USB-UART bridge ICs.
- For the SPI connection, this code uses the Unofficial wiringPi library for accessing GPIO and SPI functions on the Raspberry Pi platform running Ubuntu Linux distro.
- This ROS1 node demonstration software is a ROS C++ wrapper around the Linux C driver software:
- src/epson_imu_uart_ros_node.cpp is for the UART interface
- src/epson_imu_spi_ros_node.cpp is for the SPI interface
- The other source files in
src/
are based on the Linux C driver originally released and can be found here: Linux C driver and logger example for EPSON IMU - Information about ROS, and tutorials can be found: ROS.org
What kind of hardware or software will I likely need?
- Epson IMU Epson IMU models
- At the time software release:
- G320PDG0, G320PDGN, G354PDH0, G364PDCA, G364PDC0
- G365PDC1, G365PDF1, G370PDF1, G370PDS0
- G330PDG0, G366PDG0, G370PDG0, G370PDT0
- G570PR20
- At the time software release:
- ROS Noetic (via download) ROS.org
- This software was developed and tested on the following:
ROS1: Noetic
Description: Ubuntu 20.04 LTS
Hardware Platform: Core i7 PC, Raspberry Pi 3B+, RaspberryPi 4
For the UART Interface:
- Epson USB evaluation board or equivalent FTDI USB-Serial interface connecting the Epson IMU to ROS host (tty/serial) See M-G32EV041
- Alternatively, a direct connection from the Epson IMU to the ROS platform supporting a 3.3V CMOS compatible UART interface See M-G32EV031.
For the SPI Interface:
- NOTE: This software is intended for an embedded Linux host system with 3.3V I/O compatible SPI interface (SCLK, MISO, MOSI) and 3 GPIOs (CS#, RST#, DRDY).
- For Raspberry Pi, if not enabled already the SPI interface can be enabled using
raspi-config
or equivalent. - This code uses a separate GPIO to manually control CS# chipselect instead of the chipselect assigned to by the RapsberryPi SPI interface.
- The chipselect assigned by the HW SPI interface should also work, but has not been thoroughly tested.
- Epson Breakout evaluation board or some equivalent is required to connect to the 3.3V CMOS compatible pins of the ROS host (SPI & GPIOs) See M-G32EV031
How do I use the driver?
-
This code assumes that the user is familiar with building ROS packages using the
catkin_make
build process. -
This README is NOT detailed step by step instructions on how to build and install ROS software.
-
Please refer to the ROS.org website for more detailed instructions on the ROS package build process. ROS.org
-
NOTE: At a bare minimum, the user must re-build the package with catkin_make after modifying the
CMakeLists.txt
to configure any of the following:- serial interface type,
INTERFACE=
(UART or SPI) - host platform type,
PLATFORM=
(RPI or NONE=PC)
- serial interface type,
-
Changes to IMU settings should be made by editing the
.launch
files located in thelaunch/
folder instead of modifying thesrc/
source files
How do I use the driver if usleep() is not supported for time delays?
-
NOTE: In the
hcl_linux.c
orhcl_rpi.c
, there areseDelayMS()
andseDelayMicroSecs()
wrapper functions for time delays in millisecond and microseconds, respectively. - On embedded Linux platforms, the user may need to modify and redirect to platform specific delay routines if
usleep()
is not supported. - For example on RaspberryPi, the time delay functions for millisecond and microseconds are redirected to WiringPi library
delay()
anddelayMicroseconds()
, respectively. - If a hardware delay is not available from a library, then a software delay loop is possible but not preferred.
How do I use the driver with GPIOs to control IMU RESET#, DRDY, EXT pins?
- When connecting the IMU using the UART interface, the use of GPIO pins for connecting to the IMU
RESET#
orDRDY
is optional, but can be useful on an embedded Linux platforms (such as RapsberryPi). - When connecting the IMU using the SPI interface, the use of GPIO pins for connecting to the IMU
DRDY
is mandatory (RESET#
is recommended,EXT
is optional). - When using the
time_correction
function for accurate time stamping with an external 3.3V GNSS 1PPS signal, the IMUEXT
pin must be connected to the 1PPS.
File truncated at 100 lines see the full file
Changelog for package ess_imu_driver
2.0.2 (2024-11-29)
- bugfix with TimeCorrection class for PPS input
2.0.1 (2024-10-02)
- updated launch files, add new .h files for uart & spi
- port changes from imu_linux_example (auto-detect/initialize IMU model)
1.0.1 (2023-11-30)
- version bump from bloom, no code change
1.0.0 (2023-11-29)
- support UART or SPI in same package
- add publisher for temperature sensor data
Wiki Tutorials
Package Dependencies
Deps | Name |
---|---|
roscpp | |
sensor_msgs | |
std_msgs | |
geometry_msgs | |
tf2 | |
catkin |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged ess_imu_driver at Robotics Stack Exchange
![]() |
ess_imu_driver package from ess_imu_driver repoess_imu_driver |
ROS Distro
|
Package Summary
Tags | No category tags. |
Version | 2.0.2 |
License | BSD-3 |
Build type | CATKIN |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/cubicleguy/ess_imu_driver.git |
VCS Type | git |
VCS Version | noetic |
Last Updated | 2024-12-09 |
Dev Status | MAINTAINED |
CI status | Continuous Integration : 0 / 0 |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
Additional Links
Maintainers
- Raymond Chow
Authors
README for Epson IMU Driver for ROS1 Node
-
README for Epson IMU Driver for ROS1 node
- What is this repository for?
- What kind of hardware or software will I likely need?
- How do I use the driver?
- How do I use the driver if usleep() is not supported for time delays?
- How do I use the driver with GPIOs to control IMU RESET#, DRDY, EXT pins?
- How do I build, install, run this package?
- What does this ROS IMU Node publish as messages?
- Why am I seeing inaccurate ROS timestamps, high latencies, or slower than expected IMU data rates?
- Package Contents
- References
What is this repository for?
- This code is a ROS1 package for demonstrating a ROS node that configures and publishes IMU messages from a supported Epson IMU.
- This code provides software communication between Epson IMU and ROS using the either the UART or SPI interface.
- For the UART connection, this code uses the standard Unix Terminal I/O library (termios) for communicating either direct or by USB-serial converter such as FTDI USB-UART bridge ICs.
- For the SPI connection, this code uses the Unofficial wiringPi library for accessing GPIO and SPI functions on the Raspberry Pi platform running Ubuntu Linux distro.
- This ROS1 node demonstration software is a ROS C++ wrapper around the Linux C driver software:
- src/epson_imu_uart_ros_node.cpp is for the UART interface
- src/epson_imu_spi_ros_node.cpp is for the SPI interface
- The other source files in
src/
are based on the Linux C driver originally released and can be found here: Linux C driver and logger example for EPSON IMU - Information about ROS, and tutorials can be found: ROS.org
What kind of hardware or software will I likely need?
- Epson IMU Epson IMU models
- At the time software release:
- G320PDG0, G320PDGN, G354PDH0, G364PDCA, G364PDC0
- G365PDC1, G365PDF1, G370PDF1, G370PDS0
- G330PDG0, G366PDG0, G370PDG0, G370PDT0
- G570PR20
- At the time software release:
- ROS Noetic (via download) ROS.org
- This software was developed and tested on the following:
ROS1: Noetic
Description: Ubuntu 20.04 LTS
Hardware Platform: Core i7 PC, Raspberry Pi 3B+, RaspberryPi 4
For the UART Interface:
- Epson USB evaluation board or equivalent FTDI USB-Serial interface connecting the Epson IMU to ROS host (tty/serial) See M-G32EV041
- Alternatively, a direct connection from the Epson IMU to the ROS platform supporting a 3.3V CMOS compatible UART interface See M-G32EV031.
For the SPI Interface:
- NOTE: This software is intended for an embedded Linux host system with 3.3V I/O compatible SPI interface (SCLK, MISO, MOSI) and 3 GPIOs (CS#, RST#, DRDY).
- For Raspberry Pi, if not enabled already the SPI interface can be enabled using
raspi-config
or equivalent. - This code uses a separate GPIO to manually control CS# chipselect instead of the chipselect assigned to by the RapsberryPi SPI interface.
- The chipselect assigned by the HW SPI interface should also work, but has not been thoroughly tested.
- Epson Breakout evaluation board or some equivalent is required to connect to the 3.3V CMOS compatible pins of the ROS host (SPI & GPIOs) See M-G32EV031
How do I use the driver?
-
This code assumes that the user is familiar with building ROS packages using the
catkin_make
build process. -
This README is NOT detailed step by step instructions on how to build and install ROS software.
-
Please refer to the ROS.org website for more detailed instructions on the ROS package build process. ROS.org
-
NOTE: At a bare minimum, the user must re-build the package with catkin_make after modifying the
CMakeLists.txt
to configure any of the following:- serial interface type,
INTERFACE=
(UART or SPI) - host platform type,
PLATFORM=
(RPI or NONE=PC)
- serial interface type,
-
Changes to IMU settings should be made by editing the
.launch
files located in thelaunch/
folder instead of modifying thesrc/
source files
How do I use the driver if usleep() is not supported for time delays?
-
NOTE: In the
hcl_linux.c
orhcl_rpi.c
, there areseDelayMS()
andseDelayMicroSecs()
wrapper functions for time delays in millisecond and microseconds, respectively. - On embedded Linux platforms, the user may need to modify and redirect to platform specific delay routines if
usleep()
is not supported. - For example on RaspberryPi, the time delay functions for millisecond and microseconds are redirected to WiringPi library
delay()
anddelayMicroseconds()
, respectively. - If a hardware delay is not available from a library, then a software delay loop is possible but not preferred.
How do I use the driver with GPIOs to control IMU RESET#, DRDY, EXT pins?
- When connecting the IMU using the UART interface, the use of GPIO pins for connecting to the IMU
RESET#
orDRDY
is optional, but can be useful on an embedded Linux platforms (such as RapsberryPi). - When connecting the IMU using the SPI interface, the use of GPIO pins for connecting to the IMU
DRDY
is mandatory (RESET#
is recommended,EXT
is optional). - When using the
time_correction
function for accurate time stamping with an external 3.3V GNSS 1PPS signal, the IMUEXT
pin must be connected to the 1PPS.
File truncated at 100 lines see the full file
Changelog for package ess_imu_driver
2.0.2 (2024-11-29)
- bugfix with TimeCorrection class for PPS input
2.0.1 (2024-10-02)
- updated launch files, add new .h files for uart & spi
- port changes from imu_linux_example (auto-detect/initialize IMU model)
1.0.1 (2023-11-30)
- version bump from bloom, no code change
1.0.0 (2023-11-29)
- support UART or SPI in same package
- add publisher for temperature sensor data
Wiki Tutorials
Package Dependencies
Deps | Name |
---|---|
roscpp | |
sensor_msgs | |
std_msgs | |
geometry_msgs | |
tf2 | |
catkin |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged ess_imu_driver at Robotics Stack Exchange
![]() |
ess_imu_driver package from ess_imu_driver repoess_imu_driver |
ROS Distro
|
Package Summary
Tags | No category tags. |
Version | 2.0.2 |
License | BSD-3 |
Build type | CATKIN |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/cubicleguy/ess_imu_driver.git |
VCS Type | git |
VCS Version | noetic |
Last Updated | 2024-12-09 |
Dev Status | MAINTAINED |
CI status | Continuous Integration : 0 / 0 |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
Additional Links
Maintainers
- Raymond Chow
Authors
README for Epson IMU Driver for ROS1 Node
-
README for Epson IMU Driver for ROS1 node
- What is this repository for?
- What kind of hardware or software will I likely need?
- How do I use the driver?
- How do I use the driver if usleep() is not supported for time delays?
- How do I use the driver with GPIOs to control IMU RESET#, DRDY, EXT pins?
- How do I build, install, run this package?
- What does this ROS IMU Node publish as messages?
- Why am I seeing inaccurate ROS timestamps, high latencies, or slower than expected IMU data rates?
- Package Contents
- References
What is this repository for?
- This code is a ROS1 package for demonstrating a ROS node that configures and publishes IMU messages from a supported Epson IMU.
- This code provides software communication between Epson IMU and ROS using the either the UART or SPI interface.
- For the UART connection, this code uses the standard Unix Terminal I/O library (termios) for communicating either direct or by USB-serial converter such as FTDI USB-UART bridge ICs.
- For the SPI connection, this code uses the Unofficial wiringPi library for accessing GPIO and SPI functions on the Raspberry Pi platform running Ubuntu Linux distro.
- This ROS1 node demonstration software is a ROS C++ wrapper around the Linux C driver software:
- src/epson_imu_uart_ros_node.cpp is for the UART interface
- src/epson_imu_spi_ros_node.cpp is for the SPI interface
- The other source files in
src/
are based on the Linux C driver originally released and can be found here: Linux C driver and logger example for EPSON IMU - Information about ROS, and tutorials can be found: ROS.org
What kind of hardware or software will I likely need?
- Epson IMU Epson IMU models
- At the time software release:
- G320PDG0, G320PDGN, G354PDH0, G364PDCA, G364PDC0
- G365PDC1, G365PDF1, G370PDF1, G370PDS0
- G330PDG0, G366PDG0, G370PDG0, G370PDT0
- G570PR20
- At the time software release:
- ROS Noetic (via download) ROS.org
- This software was developed and tested on the following:
ROS1: Noetic
Description: Ubuntu 20.04 LTS
Hardware Platform: Core i7 PC, Raspberry Pi 3B+, RaspberryPi 4
For the UART Interface:
- Epson USB evaluation board or equivalent FTDI USB-Serial interface connecting the Epson IMU to ROS host (tty/serial) See M-G32EV041
- Alternatively, a direct connection from the Epson IMU to the ROS platform supporting a 3.3V CMOS compatible UART interface See M-G32EV031.
For the SPI Interface:
- NOTE: This software is intended for an embedded Linux host system with 3.3V I/O compatible SPI interface (SCLK, MISO, MOSI) and 3 GPIOs (CS#, RST#, DRDY).
- For Raspberry Pi, if not enabled already the SPI interface can be enabled using
raspi-config
or equivalent. - This code uses a separate GPIO to manually control CS# chipselect instead of the chipselect assigned to by the RapsberryPi SPI interface.
- The chipselect assigned by the HW SPI interface should also work, but has not been thoroughly tested.
- Epson Breakout evaluation board or some equivalent is required to connect to the 3.3V CMOS compatible pins of the ROS host (SPI & GPIOs) See M-G32EV031
How do I use the driver?
-
This code assumes that the user is familiar with building ROS packages using the
catkin_make
build process. -
This README is NOT detailed step by step instructions on how to build and install ROS software.
-
Please refer to the ROS.org website for more detailed instructions on the ROS package build process. ROS.org
-
NOTE: At a bare minimum, the user must re-build the package with catkin_make after modifying the
CMakeLists.txt
to configure any of the following:- serial interface type,
INTERFACE=
(UART or SPI) - host platform type,
PLATFORM=
(RPI or NONE=PC)
- serial interface type,
-
Changes to IMU settings should be made by editing the
.launch
files located in thelaunch/
folder instead of modifying thesrc/
source files
How do I use the driver if usleep() is not supported for time delays?
-
NOTE: In the
hcl_linux.c
orhcl_rpi.c
, there areseDelayMS()
andseDelayMicroSecs()
wrapper functions for time delays in millisecond and microseconds, respectively. - On embedded Linux platforms, the user may need to modify and redirect to platform specific delay routines if
usleep()
is not supported. - For example on RaspberryPi, the time delay functions for millisecond and microseconds are redirected to WiringPi library
delay()
anddelayMicroseconds()
, respectively. - If a hardware delay is not available from a library, then a software delay loop is possible but not preferred.
How do I use the driver with GPIOs to control IMU RESET#, DRDY, EXT pins?
- When connecting the IMU using the UART interface, the use of GPIO pins for connecting to the IMU
RESET#
orDRDY
is optional, but can be useful on an embedded Linux platforms (such as RapsberryPi). - When connecting the IMU using the SPI interface, the use of GPIO pins for connecting to the IMU
DRDY
is mandatory (RESET#
is recommended,EXT
is optional). - When using the
time_correction
function for accurate time stamping with an external 3.3V GNSS 1PPS signal, the IMUEXT
pin must be connected to the 1PPS.
File truncated at 100 lines see the full file
Changelog for package ess_imu_driver
2.0.2 (2024-11-29)
- bugfix with TimeCorrection class for PPS input
2.0.1 (2024-10-02)
- updated launch files, add new .h files for uart & spi
- port changes from imu_linux_example (auto-detect/initialize IMU model)
1.0.1 (2023-11-30)
- version bump from bloom, no code change
1.0.0 (2023-11-29)
- support UART or SPI in same package
- add publisher for temperature sensor data
Wiki Tutorials
Package Dependencies
Deps | Name |
---|---|
roscpp | |
sensor_msgs | |
std_msgs | |
geometry_msgs | |
tf2 | |
catkin |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged ess_imu_driver at Robotics Stack Exchange
![]() |
ess_imu_driver package from ess_imu_driver repoess_imu_driver |
ROS Distro
|
Package Summary
Tags | No category tags. |
Version | 2.0.2 |
License | BSD-3 |
Build type | CATKIN |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/cubicleguy/ess_imu_driver.git |
VCS Type | git |
VCS Version | noetic |
Last Updated | 2024-12-09 |
Dev Status | MAINTAINED |
CI status | Continuous Integration : 0 / 0 |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
Additional Links
Maintainers
- Raymond Chow
Authors
README for Epson IMU Driver for ROS1 Node
-
README for Epson IMU Driver for ROS1 node
- What is this repository for?
- What kind of hardware or software will I likely need?
- How do I use the driver?
- How do I use the driver if usleep() is not supported for time delays?
- How do I use the driver with GPIOs to control IMU RESET#, DRDY, EXT pins?
- How do I build, install, run this package?
- What does this ROS IMU Node publish as messages?
- Why am I seeing inaccurate ROS timestamps, high latencies, or slower than expected IMU data rates?
- Package Contents
- References
What is this repository for?
- This code is a ROS1 package for demonstrating a ROS node that configures and publishes IMU messages from a supported Epson IMU.
- This code provides software communication between Epson IMU and ROS using the either the UART or SPI interface.
- For the UART connection, this code uses the standard Unix Terminal I/O library (termios) for communicating either direct or by USB-serial converter such as FTDI USB-UART bridge ICs.
- For the SPI connection, this code uses the Unofficial wiringPi library for accessing GPIO and SPI functions on the Raspberry Pi platform running Ubuntu Linux distro.
- This ROS1 node demonstration software is a ROS C++ wrapper around the Linux C driver software:
- src/epson_imu_uart_ros_node.cpp is for the UART interface
- src/epson_imu_spi_ros_node.cpp is for the SPI interface
- The other source files in
src/
are based on the Linux C driver originally released and can be found here: Linux C driver and logger example for EPSON IMU - Information about ROS, and tutorials can be found: ROS.org
What kind of hardware or software will I likely need?
- Epson IMU Epson IMU models
- At the time software release:
- G320PDG0, G320PDGN, G354PDH0, G364PDCA, G364PDC0
- G365PDC1, G365PDF1, G370PDF1, G370PDS0
- G330PDG0, G366PDG0, G370PDG0, G370PDT0
- G570PR20
- At the time software release:
- ROS Noetic (via download) ROS.org
- This software was developed and tested on the following:
ROS1: Noetic
Description: Ubuntu 20.04 LTS
Hardware Platform: Core i7 PC, Raspberry Pi 3B+, RaspberryPi 4
For the UART Interface:
- Epson USB evaluation board or equivalent FTDI USB-Serial interface connecting the Epson IMU to ROS host (tty/serial) See M-G32EV041
- Alternatively, a direct connection from the Epson IMU to the ROS platform supporting a 3.3V CMOS compatible UART interface See M-G32EV031.
For the SPI Interface:
- NOTE: This software is intended for an embedded Linux host system with 3.3V I/O compatible SPI interface (SCLK, MISO, MOSI) and 3 GPIOs (CS#, RST#, DRDY).
- For Raspberry Pi, if not enabled already the SPI interface can be enabled using
raspi-config
or equivalent. - This code uses a separate GPIO to manually control CS# chipselect instead of the chipselect assigned to by the RapsberryPi SPI interface.
- The chipselect assigned by the HW SPI interface should also work, but has not been thoroughly tested.
- Epson Breakout evaluation board or some equivalent is required to connect to the 3.3V CMOS compatible pins of the ROS host (SPI & GPIOs) See M-G32EV031
How do I use the driver?
-
This code assumes that the user is familiar with building ROS packages using the
catkin_make
build process. -
This README is NOT detailed step by step instructions on how to build and install ROS software.
-
Please refer to the ROS.org website for more detailed instructions on the ROS package build process. ROS.org
-
NOTE: At a bare minimum, the user must re-build the package with catkin_make after modifying the
CMakeLists.txt
to configure any of the following:- serial interface type,
INTERFACE=
(UART or SPI) - host platform type,
PLATFORM=
(RPI or NONE=PC)
- serial interface type,
-
Changes to IMU settings should be made by editing the
.launch
files located in thelaunch/
folder instead of modifying thesrc/
source files
How do I use the driver if usleep() is not supported for time delays?
-
NOTE: In the
hcl_linux.c
orhcl_rpi.c
, there areseDelayMS()
andseDelayMicroSecs()
wrapper functions for time delays in millisecond and microseconds, respectively. - On embedded Linux platforms, the user may need to modify and redirect to platform specific delay routines if
usleep()
is not supported. - For example on RaspberryPi, the time delay functions for millisecond and microseconds are redirected to WiringPi library
delay()
anddelayMicroseconds()
, respectively. - If a hardware delay is not available from a library, then a software delay loop is possible but not preferred.
How do I use the driver with GPIOs to control IMU RESET#, DRDY, EXT pins?
- When connecting the IMU using the UART interface, the use of GPIO pins for connecting to the IMU
RESET#
orDRDY
is optional, but can be useful on an embedded Linux platforms (such as RapsberryPi). - When connecting the IMU using the SPI interface, the use of GPIO pins for connecting to the IMU
DRDY
is mandatory (RESET#
is recommended,EXT
is optional). - When using the
time_correction
function for accurate time stamping with an external 3.3V GNSS 1PPS signal, the IMUEXT
pin must be connected to the 1PPS.
File truncated at 100 lines see the full file
Changelog for package ess_imu_driver
2.0.2 (2024-11-29)
- bugfix with TimeCorrection class for PPS input
2.0.1 (2024-10-02)
- updated launch files, add new .h files for uart & spi
- port changes from imu_linux_example (auto-detect/initialize IMU model)
1.0.1 (2023-11-30)
- version bump from bloom, no code change
1.0.0 (2023-11-29)
- support UART or SPI in same package
- add publisher for temperature sensor data
Wiki Tutorials
Package Dependencies
Deps | Name |
---|---|
roscpp | |
sensor_msgs | |
std_msgs | |
geometry_msgs | |
tf2 | |
catkin |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged ess_imu_driver at Robotics Stack Exchange
![]() |
ess_imu_driver package from ess_imu_driver repoess_imu_driver |
ROS Distro
|
Package Summary
Tags | No category tags. |
Version | 2.0.2 |
License | BSD-3 |
Build type | CATKIN |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/cubicleguy/ess_imu_driver.git |
VCS Type | git |
VCS Version | noetic |
Last Updated | 2024-12-09 |
Dev Status | MAINTAINED |
CI status | Continuous Integration : 0 / 0 |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
Additional Links
Maintainers
- Raymond Chow
Authors
README for Epson IMU Driver for ROS1 Node
-
README for Epson IMU Driver for ROS1 node
- What is this repository for?
- What kind of hardware or software will I likely need?
- How do I use the driver?
- How do I use the driver if usleep() is not supported for time delays?
- How do I use the driver with GPIOs to control IMU RESET#, DRDY, EXT pins?
- How do I build, install, run this package?
- What does this ROS IMU Node publish as messages?
- Why am I seeing inaccurate ROS timestamps, high latencies, or slower than expected IMU data rates?
- Package Contents
- References
What is this repository for?
- This code is a ROS1 package for demonstrating a ROS node that configures and publishes IMU messages from a supported Epson IMU.
- This code provides software communication between Epson IMU and ROS using the either the UART or SPI interface.
- For the UART connection, this code uses the standard Unix Terminal I/O library (termios) for communicating either direct or by USB-serial converter such as FTDI USB-UART bridge ICs.
- For the SPI connection, this code uses the Unofficial wiringPi library for accessing GPIO and SPI functions on the Raspberry Pi platform running Ubuntu Linux distro.
- This ROS1 node demonstration software is a ROS C++ wrapper around the Linux C driver software:
- src/epson_imu_uart_ros_node.cpp is for the UART interface
- src/epson_imu_spi_ros_node.cpp is for the SPI interface
- The other source files in
src/
are based on the Linux C driver originally released and can be found here: Linux C driver and logger example for EPSON IMU - Information about ROS, and tutorials can be found: ROS.org
What kind of hardware or software will I likely need?
- Epson IMU Epson IMU models
- At the time software release:
- G320PDG0, G320PDGN, G354PDH0, G364PDCA, G364PDC0
- G365PDC1, G365PDF1, G370PDF1, G370PDS0
- G330PDG0, G366PDG0, G370PDG0, G370PDT0
- G570PR20
- At the time software release:
- ROS Noetic (via download) ROS.org
- This software was developed and tested on the following:
ROS1: Noetic
Description: Ubuntu 20.04 LTS
Hardware Platform: Core i7 PC, Raspberry Pi 3B+, RaspberryPi 4
For the UART Interface:
- Epson USB evaluation board or equivalent FTDI USB-Serial interface connecting the Epson IMU to ROS host (tty/serial) See M-G32EV041
- Alternatively, a direct connection from the Epson IMU to the ROS platform supporting a 3.3V CMOS compatible UART interface See M-G32EV031.
For the SPI Interface:
- NOTE: This software is intended for an embedded Linux host system with 3.3V I/O compatible SPI interface (SCLK, MISO, MOSI) and 3 GPIOs (CS#, RST#, DRDY).
- For Raspberry Pi, if not enabled already the SPI interface can be enabled using
raspi-config
or equivalent. - This code uses a separate GPIO to manually control CS# chipselect instead of the chipselect assigned to by the RapsberryPi SPI interface.
- The chipselect assigned by the HW SPI interface should also work, but has not been thoroughly tested.
- Epson Breakout evaluation board or some equivalent is required to connect to the 3.3V CMOS compatible pins of the ROS host (SPI & GPIOs) See M-G32EV031
How do I use the driver?
-
This code assumes that the user is familiar with building ROS packages using the
catkin_make
build process. -
This README is NOT detailed step by step instructions on how to build and install ROS software.
-
Please refer to the ROS.org website for more detailed instructions on the ROS package build process. ROS.org
-
NOTE: At a bare minimum, the user must re-build the package with catkin_make after modifying the
CMakeLists.txt
to configure any of the following:- serial interface type,
INTERFACE=
(UART or SPI) - host platform type,
PLATFORM=
(RPI or NONE=PC)
- serial interface type,
-
Changes to IMU settings should be made by editing the
.launch
files located in thelaunch/
folder instead of modifying thesrc/
source files
How do I use the driver if usleep() is not supported for time delays?
-
NOTE: In the
hcl_linux.c
orhcl_rpi.c
, there areseDelayMS()
andseDelayMicroSecs()
wrapper functions for time delays in millisecond and microseconds, respectively. - On embedded Linux platforms, the user may need to modify and redirect to platform specific delay routines if
usleep()
is not supported. - For example on RaspberryPi, the time delay functions for millisecond and microseconds are redirected to WiringPi library
delay()
anddelayMicroseconds()
, respectively. - If a hardware delay is not available from a library, then a software delay loop is possible but not preferred.
How do I use the driver with GPIOs to control IMU RESET#, DRDY, EXT pins?
- When connecting the IMU using the UART interface, the use of GPIO pins for connecting to the IMU
RESET#
orDRDY
is optional, but can be useful on an embedded Linux platforms (such as RapsberryPi). - When connecting the IMU using the SPI interface, the use of GPIO pins for connecting to the IMU
DRDY
is mandatory (RESET#
is recommended,EXT
is optional). - When using the
time_correction
function for accurate time stamping with an external 3.3V GNSS 1PPS signal, the IMUEXT
pin must be connected to the 1PPS.
File truncated at 100 lines see the full file
Changelog for package ess_imu_driver
2.0.2 (2024-11-29)
- bugfix with TimeCorrection class for PPS input
2.0.1 (2024-10-02)
- updated launch files, add new .h files for uart & spi
- port changes from imu_linux_example (auto-detect/initialize IMU model)
1.0.1 (2023-11-30)
- version bump from bloom, no code change
1.0.0 (2023-11-29)
- support UART or SPI in same package
- add publisher for temperature sensor data
Wiki Tutorials
Package Dependencies
Deps | Name |
---|---|
roscpp | |
sensor_msgs | |
std_msgs | |
geometry_msgs | |
tf2 | |
catkin |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged ess_imu_driver at Robotics Stack Exchange
![]() |
ess_imu_driver package from ess_imu_driver repoess_imu_driver |
ROS Distro
|
Package Summary
Tags | No category tags. |
Version | 2.0.2 |
License | BSD-3 |
Build type | CATKIN |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/cubicleguy/ess_imu_driver.git |
VCS Type | git |
VCS Version | noetic |
Last Updated | 2024-12-09 |
Dev Status | MAINTAINED |
CI status | Continuous Integration : 0 / 0 |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
Additional Links
Maintainers
- Raymond Chow
Authors
README for Epson IMU Driver for ROS1 Node
-
README for Epson IMU Driver for ROS1 node
- What is this repository for?
- What kind of hardware or software will I likely need?
- How do I use the driver?
- How do I use the driver if usleep() is not supported for time delays?
- How do I use the driver with GPIOs to control IMU RESET#, DRDY, EXT pins?
- How do I build, install, run this package?
- What does this ROS IMU Node publish as messages?
- Why am I seeing inaccurate ROS timestamps, high latencies, or slower than expected IMU data rates?
- Package Contents
- References
What is this repository for?
- This code is a ROS1 package for demonstrating a ROS node that configures and publishes IMU messages from a supported Epson IMU.
- This code provides software communication between Epson IMU and ROS using the either the UART or SPI interface.
- For the UART connection, this code uses the standard Unix Terminal I/O library (termios) for communicating either direct or by USB-serial converter such as FTDI USB-UART bridge ICs.
- For the SPI connection, this code uses the Unofficial wiringPi library for accessing GPIO and SPI functions on the Raspberry Pi platform running Ubuntu Linux distro.
- This ROS1 node demonstration software is a ROS C++ wrapper around the Linux C driver software:
- src/epson_imu_uart_ros_node.cpp is for the UART interface
- src/epson_imu_spi_ros_node.cpp is for the SPI interface
- The other source files in
src/
are based on the Linux C driver originally released and can be found here: Linux C driver and logger example for EPSON IMU - Information about ROS, and tutorials can be found: ROS.org
What kind of hardware or software will I likely need?
- Epson IMU Epson IMU models
- At the time software release:
- G320PDG0, G320PDGN, G354PDH0, G364PDCA, G364PDC0
- G365PDC1, G365PDF1, G370PDF1, G370PDS0
- G330PDG0, G366PDG0, G370PDG0, G370PDT0
- G570PR20
- At the time software release:
- ROS Noetic (via download) ROS.org
- This software was developed and tested on the following:
ROS1: Noetic
Description: Ubuntu 20.04 LTS
Hardware Platform: Core i7 PC, Raspberry Pi 3B+, RaspberryPi 4
For the UART Interface:
- Epson USB evaluation board or equivalent FTDI USB-Serial interface connecting the Epson IMU to ROS host (tty/serial) See M-G32EV041
- Alternatively, a direct connection from the Epson IMU to the ROS platform supporting a 3.3V CMOS compatible UART interface See M-G32EV031.
For the SPI Interface:
- NOTE: This software is intended for an embedded Linux host system with 3.3V I/O compatible SPI interface (SCLK, MISO, MOSI) and 3 GPIOs (CS#, RST#, DRDY).
- For Raspberry Pi, if not enabled already the SPI interface can be enabled using
raspi-config
or equivalent. - This code uses a separate GPIO to manually control CS# chipselect instead of the chipselect assigned to by the RapsberryPi SPI interface.
- The chipselect assigned by the HW SPI interface should also work, but has not been thoroughly tested.
- Epson Breakout evaluation board or some equivalent is required to connect to the 3.3V CMOS compatible pins of the ROS host (SPI & GPIOs) See M-G32EV031
How do I use the driver?
-
This code assumes that the user is familiar with building ROS packages using the
catkin_make
build process. -
This README is NOT detailed step by step instructions on how to build and install ROS software.
-
Please refer to the ROS.org website for more detailed instructions on the ROS package build process. ROS.org
-
NOTE: At a bare minimum, the user must re-build the package with catkin_make after modifying the
CMakeLists.txt
to configure any of the following:- serial interface type,
INTERFACE=
(UART or SPI) - host platform type,
PLATFORM=
(RPI or NONE=PC)
- serial interface type,
-
Changes to IMU settings should be made by editing the
.launch
files located in thelaunch/
folder instead of modifying thesrc/
source files
How do I use the driver if usleep() is not supported for time delays?
-
NOTE: In the
hcl_linux.c
orhcl_rpi.c
, there areseDelayMS()
andseDelayMicroSecs()
wrapper functions for time delays in millisecond and microseconds, respectively. - On embedded Linux platforms, the user may need to modify and redirect to platform specific delay routines if
usleep()
is not supported. - For example on RaspberryPi, the time delay functions for millisecond and microseconds are redirected to WiringPi library
delay()
anddelayMicroseconds()
, respectively. - If a hardware delay is not available from a library, then a software delay loop is possible but not preferred.
How do I use the driver with GPIOs to control IMU RESET#, DRDY, EXT pins?
- When connecting the IMU using the UART interface, the use of GPIO pins for connecting to the IMU
RESET#
orDRDY
is optional, but can be useful on an embedded Linux platforms (such as RapsberryPi). - When connecting the IMU using the SPI interface, the use of GPIO pins for connecting to the IMU
DRDY
is mandatory (RESET#
is recommended,EXT
is optional). - When using the
time_correction
function for accurate time stamping with an external 3.3V GNSS 1PPS signal, the IMUEXT
pin must be connected to the 1PPS.
File truncated at 100 lines see the full file
Changelog for package ess_imu_driver
2.0.2 (2024-11-29)
- bugfix with TimeCorrection class for PPS input
2.0.1 (2024-10-02)
- updated launch files, add new .h files for uart & spi
- port changes from imu_linux_example (auto-detect/initialize IMU model)
1.0.1 (2023-11-30)
- version bump from bloom, no code change
1.0.0 (2023-11-29)
- support UART or SPI in same package
- add publisher for temperature sensor data
Wiki Tutorials
Package Dependencies
Deps | Name |
---|---|
roscpp | |
sensor_msgs | |
std_msgs | |
geometry_msgs | |
tf2 | |
catkin |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged ess_imu_driver at Robotics Stack Exchange
![]() |
ess_imu_driver package from ess_imu_driver repoess_imu_driver |
ROS Distro
|
Package Summary
Tags | No category tags. |
Version | 2.0.2 |
License | BSD-3 |
Build type | CATKIN |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/cubicleguy/ess_imu_driver.git |
VCS Type | git |
VCS Version | noetic |
Last Updated | 2024-12-09 |
Dev Status | MAINTAINED |
CI status | Continuous Integration : 0 / 0 |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
Additional Links
Maintainers
- Raymond Chow
Authors
README for Epson IMU Driver for ROS1 Node
-
README for Epson IMU Driver for ROS1 node
- What is this repository for?
- What kind of hardware or software will I likely need?
- How do I use the driver?
- How do I use the driver if usleep() is not supported for time delays?
- How do I use the driver with GPIOs to control IMU RESET#, DRDY, EXT pins?
- How do I build, install, run this package?
- What does this ROS IMU Node publish as messages?
- Why am I seeing inaccurate ROS timestamps, high latencies, or slower than expected IMU data rates?
- Package Contents
- References
What is this repository for?
- This code is a ROS1 package for demonstrating a ROS node that configures and publishes IMU messages from a supported Epson IMU.
- This code provides software communication between Epson IMU and ROS using the either the UART or SPI interface.
- For the UART connection, this code uses the standard Unix Terminal I/O library (termios) for communicating either direct or by USB-serial converter such as FTDI USB-UART bridge ICs.
- For the SPI connection, this code uses the Unofficial wiringPi library for accessing GPIO and SPI functions on the Raspberry Pi platform running Ubuntu Linux distro.
- This ROS1 node demonstration software is a ROS C++ wrapper around the Linux C driver software:
- src/epson_imu_uart_ros_node.cpp is for the UART interface
- src/epson_imu_spi_ros_node.cpp is for the SPI interface
- The other source files in
src/
are based on the Linux C driver originally released and can be found here: Linux C driver and logger example for EPSON IMU - Information about ROS, and tutorials can be found: ROS.org
What kind of hardware or software will I likely need?
- Epson IMU Epson IMU models
- At the time software release:
- G320PDG0, G320PDGN, G354PDH0, G364PDCA, G364PDC0
- G365PDC1, G365PDF1, G370PDF1, G370PDS0
- G330PDG0, G366PDG0, G370PDG0, G370PDT0
- G570PR20
- At the time software release:
- ROS Noetic (via download) ROS.org
- This software was developed and tested on the following:
ROS1: Noetic
Description: Ubuntu 20.04 LTS
Hardware Platform: Core i7 PC, Raspberry Pi 3B+, RaspberryPi 4
For the UART Interface:
- Epson USB evaluation board or equivalent FTDI USB-Serial interface connecting the Epson IMU to ROS host (tty/serial) See M-G32EV041
- Alternatively, a direct connection from the Epson IMU to the ROS platform supporting a 3.3V CMOS compatible UART interface See M-G32EV031.
For the SPI Interface:
- NOTE: This software is intended for an embedded Linux host system with 3.3V I/O compatible SPI interface (SCLK, MISO, MOSI) and 3 GPIOs (CS#, RST#, DRDY).
- For Raspberry Pi, if not enabled already the SPI interface can be enabled using
raspi-config
or equivalent. - This code uses a separate GPIO to manually control CS# chipselect instead of the chipselect assigned to by the RapsberryPi SPI interface.
- The chipselect assigned by the HW SPI interface should also work, but has not been thoroughly tested.
- Epson Breakout evaluation board or some equivalent is required to connect to the 3.3V CMOS compatible pins of the ROS host (SPI & GPIOs) See M-G32EV031
How do I use the driver?
-
This code assumes that the user is familiar with building ROS packages using the
catkin_make
build process. -
This README is NOT detailed step by step instructions on how to build and install ROS software.
-
Please refer to the ROS.org website for more detailed instructions on the ROS package build process. ROS.org
-
NOTE: At a bare minimum, the user must re-build the package with catkin_make after modifying the
CMakeLists.txt
to configure any of the following:- serial interface type,
INTERFACE=
(UART or SPI) - host platform type,
PLATFORM=
(RPI or NONE=PC)
- serial interface type,
-
Changes to IMU settings should be made by editing the
.launch
files located in thelaunch/
folder instead of modifying thesrc/
source files
How do I use the driver if usleep() is not supported for time delays?
-
NOTE: In the
hcl_linux.c
orhcl_rpi.c
, there areseDelayMS()
andseDelayMicroSecs()
wrapper functions for time delays in millisecond and microseconds, respectively. - On embedded Linux platforms, the user may need to modify and redirect to platform specific delay routines if
usleep()
is not supported. - For example on RaspberryPi, the time delay functions for millisecond and microseconds are redirected to WiringPi library
delay()
anddelayMicroseconds()
, respectively. - If a hardware delay is not available from a library, then a software delay loop is possible but not preferred.
How do I use the driver with GPIOs to control IMU RESET#, DRDY, EXT pins?
- When connecting the IMU using the UART interface, the use of GPIO pins for connecting to the IMU
RESET#
orDRDY
is optional, but can be useful on an embedded Linux platforms (such as RapsberryPi). - When connecting the IMU using the SPI interface, the use of GPIO pins for connecting to the IMU
DRDY
is mandatory (RESET#
is recommended,EXT
is optional). - When using the
time_correction
function for accurate time stamping with an external 3.3V GNSS 1PPS signal, the IMUEXT
pin must be connected to the 1PPS.
File truncated at 100 lines see the full file
Changelog for package ess_imu_driver
2.0.2 (2024-11-29)
- bugfix with TimeCorrection class for PPS input
2.0.1 (2024-10-02)
- updated launch files, add new .h files for uart & spi
- port changes from imu_linux_example (auto-detect/initialize IMU model)
1.0.1 (2023-11-30)
- version bump from bloom, no code change
1.0.0 (2023-11-29)
- support UART or SPI in same package
- add publisher for temperature sensor data
Wiki Tutorials
Package Dependencies
Deps | Name |
---|---|
roscpp | |
sensor_msgs | |
std_msgs | |
geometry_msgs | |
tf2 | |
catkin |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged ess_imu_driver at Robotics Stack Exchange
![]() |
ess_imu_driver package from ess_imu_driver repoess_imu_driver |
ROS Distro
|
Package Summary
Tags | No category tags. |
Version | 2.0.2 |
License | BSD-3 |
Build type | CATKIN |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/cubicleguy/ess_imu_driver.git |
VCS Type | git |
VCS Version | noetic |
Last Updated | 2024-12-09 |
Dev Status | MAINTAINED |
CI status | Continuous Integration : 0 / 0 |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
Additional Links
Maintainers
- Raymond Chow
Authors
README for Epson IMU Driver for ROS1 Node
-
README for Epson IMU Driver for ROS1 node
- What is this repository for?
- What kind of hardware or software will I likely need?
- How do I use the driver?
- How do I use the driver if usleep() is not supported for time delays?
- How do I use the driver with GPIOs to control IMU RESET#, DRDY, EXT pins?
- How do I build, install, run this package?
- What does this ROS IMU Node publish as messages?
- Why am I seeing inaccurate ROS timestamps, high latencies, or slower than expected IMU data rates?
- Package Contents
- References
What is this repository for?
- This code is a ROS1 package for demonstrating a ROS node that configures and publishes IMU messages from a supported Epson IMU.
- This code provides software communication between Epson IMU and ROS using the either the UART or SPI interface.
- For the UART connection, this code uses the standard Unix Terminal I/O library (termios) for communicating either direct or by USB-serial converter such as FTDI USB-UART bridge ICs.
- For the SPI connection, this code uses the Unofficial wiringPi library for accessing GPIO and SPI functions on the Raspberry Pi platform running Ubuntu Linux distro.
- This ROS1 node demonstration software is a ROS C++ wrapper around the Linux C driver software:
- src/epson_imu_uart_ros_node.cpp is for the UART interface
- src/epson_imu_spi_ros_node.cpp is for the SPI interface
- The other source files in
src/
are based on the Linux C driver originally released and can be found here: Linux C driver and logger example for EPSON IMU - Information about ROS, and tutorials can be found: ROS.org
What kind of hardware or software will I likely need?
- Epson IMU Epson IMU models
- At the time software release:
- G320PDG0, G320PDGN, G354PDH0, G364PDCA, G364PDC0
- G365PDC1, G365PDF1, G370PDF1, G370PDS0
- G330PDG0, G366PDG0, G370PDG0, G370PDT0
- G570PR20
- At the time software release:
- ROS Noetic (via download) ROS.org
- This software was developed and tested on the following:
ROS1: Noetic
Description: Ubuntu 20.04 LTS
Hardware Platform: Core i7 PC, Raspberry Pi 3B+, RaspberryPi 4
For the UART Interface:
- Epson USB evaluation board or equivalent FTDI USB-Serial interface connecting the Epson IMU to ROS host (tty/serial) See M-G32EV041
- Alternatively, a direct connection from the Epson IMU to the ROS platform supporting a 3.3V CMOS compatible UART interface See M-G32EV031.
For the SPI Interface:
- NOTE: This software is intended for an embedded Linux host system with 3.3V I/O compatible SPI interface (SCLK, MISO, MOSI) and 3 GPIOs (CS#, RST#, DRDY).
- For Raspberry Pi, if not enabled already the SPI interface can be enabled using
raspi-config
or equivalent. - This code uses a separate GPIO to manually control CS# chipselect instead of the chipselect assigned to by the RapsberryPi SPI interface.
- The chipselect assigned by the HW SPI interface should also work, but has not been thoroughly tested.
- Epson Breakout evaluation board or some equivalent is required to connect to the 3.3V CMOS compatible pins of the ROS host (SPI & GPIOs) See M-G32EV031
How do I use the driver?
-
This code assumes that the user is familiar with building ROS packages using the
catkin_make
build process. -
This README is NOT detailed step by step instructions on how to build and install ROS software.
-
Please refer to the ROS.org website for more detailed instructions on the ROS package build process. ROS.org
-
NOTE: At a bare minimum, the user must re-build the package with catkin_make after modifying the
CMakeLists.txt
to configure any of the following:- serial interface type,
INTERFACE=
(UART or SPI) - host platform type,
PLATFORM=
(RPI or NONE=PC)
- serial interface type,
-
Changes to IMU settings should be made by editing the
.launch
files located in thelaunch/
folder instead of modifying thesrc/
source files
How do I use the driver if usleep() is not supported for time delays?
-
NOTE: In the
hcl_linux.c
orhcl_rpi.c
, there areseDelayMS()
andseDelayMicroSecs()
wrapper functions for time delays in millisecond and microseconds, respectively. - On embedded Linux platforms, the user may need to modify and redirect to platform specific delay routines if
usleep()
is not supported. - For example on RaspberryPi, the time delay functions for millisecond and microseconds are redirected to WiringPi library
delay()
anddelayMicroseconds()
, respectively. - If a hardware delay is not available from a library, then a software delay loop is possible but not preferred.
How do I use the driver with GPIOs to control IMU RESET#, DRDY, EXT pins?
- When connecting the IMU using the UART interface, the use of GPIO pins for connecting to the IMU
RESET#
orDRDY
is optional, but can be useful on an embedded Linux platforms (such as RapsberryPi). - When connecting the IMU using the SPI interface, the use of GPIO pins for connecting to the IMU
DRDY
is mandatory (RESET#
is recommended,EXT
is optional). - When using the
time_correction
function for accurate time stamping with an external 3.3V GNSS 1PPS signal, the IMUEXT
pin must be connected to the 1PPS.
File truncated at 100 lines see the full file
Changelog for package ess_imu_driver
2.0.2 (2024-11-29)
- bugfix with TimeCorrection class for PPS input
2.0.1 (2024-10-02)
- updated launch files, add new .h files for uart & spi
- port changes from imu_linux_example (auto-detect/initialize IMU model)
1.0.1 (2023-11-30)
- version bump from bloom, no code change
1.0.0 (2023-11-29)
- support UART or SPI in same package
- add publisher for temperature sensor data
Wiki Tutorials
Package Dependencies
Deps | Name |
---|---|
roscpp | |
sensor_msgs | |
std_msgs | |
geometry_msgs | |
tf2 | |
catkin |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged ess_imu_driver at Robotics Stack Exchange
![]() |
ess_imu_driver package from ess_imu_driver repoess_imu_driver |
ROS Distro
|
Package Summary
Tags | No category tags. |
Version | 2.0.2 |
License | BSD-3 |
Build type | CATKIN |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/cubicleguy/ess_imu_driver.git |
VCS Type | git |
VCS Version | noetic |
Last Updated | 2024-12-09 |
Dev Status | MAINTAINED |
CI status | Continuous Integration : 0 / 0 |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
Additional Links
Maintainers
- Raymond Chow
Authors
README for Epson IMU Driver for ROS1 Node
-
README for Epson IMU Driver for ROS1 node
- What is this repository for?
- What kind of hardware or software will I likely need?
- How do I use the driver?
- How do I use the driver if usleep() is not supported for time delays?
- How do I use the driver with GPIOs to control IMU RESET#, DRDY, EXT pins?
- How do I build, install, run this package?
- What does this ROS IMU Node publish as messages?
- Why am I seeing inaccurate ROS timestamps, high latencies, or slower than expected IMU data rates?
- Package Contents
- References
What is this repository for?
- This code is a ROS1 package for demonstrating a ROS node that configures and publishes IMU messages from a supported Epson IMU.
- This code provides software communication between Epson IMU and ROS using the either the UART or SPI interface.
- For the UART connection, this code uses the standard Unix Terminal I/O library (termios) for communicating either direct or by USB-serial converter such as FTDI USB-UART bridge ICs.
- For the SPI connection, this code uses the Unofficial wiringPi library for accessing GPIO and SPI functions on the Raspberry Pi platform running Ubuntu Linux distro.
- This ROS1 node demonstration software is a ROS C++ wrapper around the Linux C driver software:
- src/epson_imu_uart_ros_node.cpp is for the UART interface
- src/epson_imu_spi_ros_node.cpp is for the SPI interface
- The other source files in
src/
are based on the Linux C driver originally released and can be found here: Linux C driver and logger example for EPSON IMU - Information about ROS, and tutorials can be found: ROS.org
What kind of hardware or software will I likely need?
- Epson IMU Epson IMU models
- At the time software release:
- G320PDG0, G320PDGN, G354PDH0, G364PDCA, G364PDC0
- G365PDC1, G365PDF1, G370PDF1, G370PDS0
- G330PDG0, G366PDG0, G370PDG0, G370PDT0
- G570PR20
- At the time software release:
- ROS Noetic (via download) ROS.org
- This software was developed and tested on the following:
ROS1: Noetic
Description: Ubuntu 20.04 LTS
Hardware Platform: Core i7 PC, Raspberry Pi 3B+, RaspberryPi 4
For the UART Interface:
- Epson USB evaluation board or equivalent FTDI USB-Serial interface connecting the Epson IMU to ROS host (tty/serial) See M-G32EV041
- Alternatively, a direct connection from the Epson IMU to the ROS platform supporting a 3.3V CMOS compatible UART interface See M-G32EV031.
For the SPI Interface:
- NOTE: This software is intended for an embedded Linux host system with 3.3V I/O compatible SPI interface (SCLK, MISO, MOSI) and 3 GPIOs (CS#, RST#, DRDY).
- For Raspberry Pi, if not enabled already the SPI interface can be enabled using
raspi-config
or equivalent. - This code uses a separate GPIO to manually control CS# chipselect instead of the chipselect assigned to by the RapsberryPi SPI interface.
- The chipselect assigned by the HW SPI interface should also work, but has not been thoroughly tested.
- Epson Breakout evaluation board or some equivalent is required to connect to the 3.3V CMOS compatible pins of the ROS host (SPI & GPIOs) See M-G32EV031
How do I use the driver?
-
This code assumes that the user is familiar with building ROS packages using the
catkin_make
build process. -
This README is NOT detailed step by step instructions on how to build and install ROS software.
-
Please refer to the ROS.org website for more detailed instructions on the ROS package build process. ROS.org
-
NOTE: At a bare minimum, the user must re-build the package with catkin_make after modifying the
CMakeLists.txt
to configure any of the following:- serial interface type,
INTERFACE=
(UART or SPI) - host platform type,
PLATFORM=
(RPI or NONE=PC)
- serial interface type,
-
Changes to IMU settings should be made by editing the
.launch
files located in thelaunch/
folder instead of modifying thesrc/
source files
How do I use the driver if usleep() is not supported for time delays?
-
NOTE: In the
hcl_linux.c
orhcl_rpi.c
, there areseDelayMS()
andseDelayMicroSecs()
wrapper functions for time delays in millisecond and microseconds, respectively. - On embedded Linux platforms, the user may need to modify and redirect to platform specific delay routines if
usleep()
is not supported. - For example on RaspberryPi, the time delay functions for millisecond and microseconds are redirected to WiringPi library
delay()
anddelayMicroseconds()
, respectively. - If a hardware delay is not available from a library, then a software delay loop is possible but not preferred.
How do I use the driver with GPIOs to control IMU RESET#, DRDY, EXT pins?
- When connecting the IMU using the UART interface, the use of GPIO pins for connecting to the IMU
RESET#
orDRDY
is optional, but can be useful on an embedded Linux platforms (such as RapsberryPi). - When connecting the IMU using the SPI interface, the use of GPIO pins for connecting to the IMU
DRDY
is mandatory (RESET#
is recommended,EXT
is optional). - When using the
time_correction
function for accurate time stamping with an external 3.3V GNSS 1PPS signal, the IMUEXT
pin must be connected to the 1PPS.
File truncated at 100 lines see the full file
Changelog for package ess_imu_driver
2.0.2 (2024-11-29)
- bugfix with TimeCorrection class for PPS input
2.0.1 (2024-10-02)
- updated launch files, add new .h files for uart & spi
- port changes from imu_linux_example (auto-detect/initialize IMU model)
1.0.1 (2023-11-30)
- version bump from bloom, no code change
1.0.0 (2023-11-29)
- support UART or SPI in same package
- add publisher for temperature sensor data
Wiki Tutorials
Package Dependencies
Deps | Name |
---|---|
roscpp | |
sensor_msgs | |
std_msgs | |
geometry_msgs | |
tf2 | |
catkin |