No version for distro humble showing noetic. Known supported distros are highlighted in the buttons above.
Package symbol

ess_imu_driver package from ess_imu_driver repo

ess_imu_driver

ROS Distro
noetic

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

ROS package for Epson IMU based on C++ wrapper of Linux C driver

Additional Links

Maintainers

  • Raymond Chow

Authors

No additional authors.

README for Epson IMU Driver for ROS1 Node

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
  • 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)
  • Changes to IMU settings should be made by editing the .launch files located in the launch/ folder instead of modifying the src/ source files

How do I use the driver if usleep() is not supported for time delays?

  • NOTE: In the hcl_linux.c or hcl_rpi.c, there are seDelayMS() and seDelayMicroSecs() 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() and delayMicroseconds(), 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# or DRDY 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 IMU EXT pin must be connected to the 1PPS.

File truncated at 100 lines see the full file

CHANGELOG

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

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Package Dependencies

System Dependencies

No direct system dependencies.

Dependant Packages

No known dependants.

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged ess_imu_driver at Robotics Stack Exchange

No version for distro jazzy showing noetic. Known supported distros are highlighted in the buttons above.
Package symbol

ess_imu_driver package from ess_imu_driver repo

ess_imu_driver

ROS Distro
noetic

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

ROS package for Epson IMU based on C++ wrapper of Linux C driver

Additional Links

Maintainers

  • Raymond Chow

Authors

No additional authors.

README for Epson IMU Driver for ROS1 Node

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
  • 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)
  • Changes to IMU settings should be made by editing the .launch files located in the launch/ folder instead of modifying the src/ source files

How do I use the driver if usleep() is not supported for time delays?

  • NOTE: In the hcl_linux.c or hcl_rpi.c, there are seDelayMS() and seDelayMicroSecs() 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() and delayMicroseconds(), 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# or DRDY 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 IMU EXT pin must be connected to the 1PPS.

File truncated at 100 lines see the full file

CHANGELOG

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

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Package Dependencies

System Dependencies

No direct system dependencies.

Dependant Packages

No known dependants.

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged ess_imu_driver at Robotics Stack Exchange

No version for distro kilted showing noetic. Known supported distros are highlighted in the buttons above.
Package symbol

ess_imu_driver package from ess_imu_driver repo

ess_imu_driver

ROS Distro
noetic

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

ROS package for Epson IMU based on C++ wrapper of Linux C driver

Additional Links

Maintainers

  • Raymond Chow

Authors

No additional authors.

README for Epson IMU Driver for ROS1 Node

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
  • 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)
  • Changes to IMU settings should be made by editing the .launch files located in the launch/ folder instead of modifying the src/ source files

How do I use the driver if usleep() is not supported for time delays?

  • NOTE: In the hcl_linux.c or hcl_rpi.c, there are seDelayMS() and seDelayMicroSecs() 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() and delayMicroseconds(), 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# or DRDY 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 IMU EXT pin must be connected to the 1PPS.

File truncated at 100 lines see the full file

CHANGELOG

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

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Package Dependencies

System Dependencies

No direct system dependencies.

Dependant Packages

No known dependants.

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged ess_imu_driver at Robotics Stack Exchange

No version for distro rolling showing noetic. Known supported distros are highlighted in the buttons above.
Package symbol

ess_imu_driver package from ess_imu_driver repo

ess_imu_driver

ROS Distro
noetic

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

ROS package for Epson IMU based on C++ wrapper of Linux C driver

Additional Links

Maintainers

  • Raymond Chow

Authors

No additional authors.

README for Epson IMU Driver for ROS1 Node

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
  • 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)
  • Changes to IMU settings should be made by editing the .launch files located in the launch/ folder instead of modifying the src/ source files

How do I use the driver if usleep() is not supported for time delays?

  • NOTE: In the hcl_linux.c or hcl_rpi.c, there are seDelayMS() and seDelayMicroSecs() 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() and delayMicroseconds(), 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# or DRDY 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 IMU EXT pin must be connected to the 1PPS.

File truncated at 100 lines see the full file

CHANGELOG

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

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Package Dependencies

System Dependencies

No direct system dependencies.

Dependant Packages

No known dependants.

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged ess_imu_driver at Robotics Stack Exchange

No version for distro ardent showing noetic. Known supported distros are highlighted in the buttons above.
Package symbol

ess_imu_driver package from ess_imu_driver repo

ess_imu_driver

ROS Distro
noetic

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

ROS package for Epson IMU based on C++ wrapper of Linux C driver

Additional Links

Maintainers

  • Raymond Chow

Authors

No additional authors.

README for Epson IMU Driver for ROS1 Node

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
  • 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)
  • Changes to IMU settings should be made by editing the .launch files located in the launch/ folder instead of modifying the src/ source files

How do I use the driver if usleep() is not supported for time delays?

  • NOTE: In the hcl_linux.c or hcl_rpi.c, there are seDelayMS() and seDelayMicroSecs() 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() and delayMicroseconds(), 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# or DRDY 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 IMU EXT pin must be connected to the 1PPS.

File truncated at 100 lines see the full file

CHANGELOG

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

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Package Dependencies

System Dependencies

No direct system dependencies.

Dependant Packages

No known dependants.

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged ess_imu_driver at Robotics Stack Exchange

No version for distro bouncy showing noetic. Known supported distros are highlighted in the buttons above.
Package symbol

ess_imu_driver package from ess_imu_driver repo

ess_imu_driver

ROS Distro
noetic

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

ROS package for Epson IMU based on C++ wrapper of Linux C driver

Additional Links

Maintainers

  • Raymond Chow

Authors

No additional authors.

README for Epson IMU Driver for ROS1 Node

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
  • 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)
  • Changes to IMU settings should be made by editing the .launch files located in the launch/ folder instead of modifying the src/ source files

How do I use the driver if usleep() is not supported for time delays?

  • NOTE: In the hcl_linux.c or hcl_rpi.c, there are seDelayMS() and seDelayMicroSecs() 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() and delayMicroseconds(), 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# or DRDY 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 IMU EXT pin must be connected to the 1PPS.

File truncated at 100 lines see the full file

CHANGELOG

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

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Package Dependencies

System Dependencies

No direct system dependencies.

Dependant Packages

No known dependants.

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged ess_imu_driver at Robotics Stack Exchange

No version for distro crystal showing noetic. Known supported distros are highlighted in the buttons above.
Package symbol

ess_imu_driver package from ess_imu_driver repo

ess_imu_driver

ROS Distro
noetic

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

ROS package for Epson IMU based on C++ wrapper of Linux C driver

Additional Links

Maintainers

  • Raymond Chow

Authors

No additional authors.

README for Epson IMU Driver for ROS1 Node

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
  • 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)
  • Changes to IMU settings should be made by editing the .launch files located in the launch/ folder instead of modifying the src/ source files

How do I use the driver if usleep() is not supported for time delays?

  • NOTE: In the hcl_linux.c or hcl_rpi.c, there are seDelayMS() and seDelayMicroSecs() 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() and delayMicroseconds(), 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# or DRDY 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 IMU EXT pin must be connected to the 1PPS.

File truncated at 100 lines see the full file

CHANGELOG

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

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Package Dependencies

System Dependencies

No direct system dependencies.

Dependant Packages

No known dependants.

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged ess_imu_driver at Robotics Stack Exchange

No version for distro eloquent showing noetic. Known supported distros are highlighted in the buttons above.
Package symbol

ess_imu_driver package from ess_imu_driver repo

ess_imu_driver

ROS Distro
noetic

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

ROS package for Epson IMU based on C++ wrapper of Linux C driver

Additional Links

Maintainers

  • Raymond Chow

Authors

No additional authors.

README for Epson IMU Driver for ROS1 Node

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
  • 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)
  • Changes to IMU settings should be made by editing the .launch files located in the launch/ folder instead of modifying the src/ source files

How do I use the driver if usleep() is not supported for time delays?

  • NOTE: In the hcl_linux.c or hcl_rpi.c, there are seDelayMS() and seDelayMicroSecs() 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() and delayMicroseconds(), 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# or DRDY 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 IMU EXT pin must be connected to the 1PPS.

File truncated at 100 lines see the full file

CHANGELOG

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

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Package Dependencies

System Dependencies

No direct system dependencies.

Dependant Packages

No known dependants.

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged ess_imu_driver at Robotics Stack Exchange

No version for distro dashing showing noetic. Known supported distros are highlighted in the buttons above.
Package symbol

ess_imu_driver package from ess_imu_driver repo

ess_imu_driver

ROS Distro
noetic

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

ROS package for Epson IMU based on C++ wrapper of Linux C driver

Additional Links

Maintainers

  • Raymond Chow

Authors

No additional authors.

README for Epson IMU Driver for ROS1 Node

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
  • 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)
  • Changes to IMU settings should be made by editing the .launch files located in the launch/ folder instead of modifying the src/ source files

How do I use the driver if usleep() is not supported for time delays?

  • NOTE: In the hcl_linux.c or hcl_rpi.c, there are seDelayMS() and seDelayMicroSecs() 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() and delayMicroseconds(), 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# or DRDY 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 IMU EXT pin must be connected to the 1PPS.

File truncated at 100 lines see the full file

CHANGELOG

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

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Package Dependencies

System Dependencies

No direct system dependencies.

Dependant Packages

No known dependants.

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged ess_imu_driver at Robotics Stack Exchange

No version for distro galactic showing noetic. Known supported distros are highlighted in the buttons above.
Package symbol

ess_imu_driver package from ess_imu_driver repo

ess_imu_driver

ROS Distro
noetic

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

ROS package for Epson IMU based on C++ wrapper of Linux C driver

Additional Links

Maintainers

  • Raymond Chow

Authors

No additional authors.

README for Epson IMU Driver for ROS1 Node

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
  • 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)
  • Changes to IMU settings should be made by editing the .launch files located in the launch/ folder instead of modifying the src/ source files

How do I use the driver if usleep() is not supported for time delays?

  • NOTE: In the hcl_linux.c or hcl_rpi.c, there are seDelayMS() and seDelayMicroSecs() 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() and delayMicroseconds(), 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# or DRDY 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 IMU EXT pin must be connected to the 1PPS.

File truncated at 100 lines see the full file

CHANGELOG

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

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Package Dependencies

System Dependencies

No direct system dependencies.

Dependant Packages

No known dependants.

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged ess_imu_driver at Robotics Stack Exchange

No version for distro foxy showing noetic. Known supported distros are highlighted in the buttons above.
Package symbol

ess_imu_driver package from ess_imu_driver repo

ess_imu_driver

ROS Distro
noetic

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

ROS package for Epson IMU based on C++ wrapper of Linux C driver

Additional Links

Maintainers

  • Raymond Chow

Authors

No additional authors.

README for Epson IMU Driver for ROS1 Node

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
  • 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)
  • Changes to IMU settings should be made by editing the .launch files located in the launch/ folder instead of modifying the src/ source files

How do I use the driver if usleep() is not supported for time delays?

  • NOTE: In the hcl_linux.c or hcl_rpi.c, there are seDelayMS() and seDelayMicroSecs() 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() and delayMicroseconds(), 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# or DRDY 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 IMU EXT pin must be connected to the 1PPS.

File truncated at 100 lines see the full file

CHANGELOG

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

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Package Dependencies

System Dependencies

No direct system dependencies.

Dependant Packages

No known dependants.

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged ess_imu_driver at Robotics Stack Exchange

No version for distro iron showing noetic. Known supported distros are highlighted in the buttons above.
Package symbol

ess_imu_driver package from ess_imu_driver repo

ess_imu_driver

ROS Distro
noetic

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

ROS package for Epson IMU based on C++ wrapper of Linux C driver

Additional Links

Maintainers

  • Raymond Chow

Authors

No additional authors.

README for Epson IMU Driver for ROS1 Node

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
  • 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)
  • Changes to IMU settings should be made by editing the .launch files located in the launch/ folder instead of modifying the src/ source files

How do I use the driver if usleep() is not supported for time delays?

  • NOTE: In the hcl_linux.c or hcl_rpi.c, there are seDelayMS() and seDelayMicroSecs() 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() and delayMicroseconds(), 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# or DRDY 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 IMU EXT pin must be connected to the 1PPS.

File truncated at 100 lines see the full file

CHANGELOG

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

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Package Dependencies

System Dependencies

No direct system dependencies.

Dependant Packages

No known dependants.

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged ess_imu_driver at Robotics Stack Exchange

No version for distro lunar showing noetic. Known supported distros are highlighted in the buttons above.
Package symbol

ess_imu_driver package from ess_imu_driver repo

ess_imu_driver

ROS Distro
noetic

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

ROS package for Epson IMU based on C++ wrapper of Linux C driver

Additional Links

Maintainers

  • Raymond Chow

Authors

No additional authors.

README for Epson IMU Driver for ROS1 Node

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
  • 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)
  • Changes to IMU settings should be made by editing the .launch files located in the launch/ folder instead of modifying the src/ source files

How do I use the driver if usleep() is not supported for time delays?

  • NOTE: In the hcl_linux.c or hcl_rpi.c, there are seDelayMS() and seDelayMicroSecs() 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() and delayMicroseconds(), 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# or DRDY 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 IMU EXT pin must be connected to the 1PPS.

File truncated at 100 lines see the full file

CHANGELOG

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

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Package Dependencies

System Dependencies

No direct system dependencies.

Dependant Packages

No known dependants.

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged ess_imu_driver at Robotics Stack Exchange

No version for distro jade showing noetic. Known supported distros are highlighted in the buttons above.
Package symbol

ess_imu_driver package from ess_imu_driver repo

ess_imu_driver

ROS Distro
noetic

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

ROS package for Epson IMU based on C++ wrapper of Linux C driver

Additional Links

Maintainers

  • Raymond Chow

Authors

No additional authors.

README for Epson IMU Driver for ROS1 Node

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
  • 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)
  • Changes to IMU settings should be made by editing the .launch files located in the launch/ folder instead of modifying the src/ source files

How do I use the driver if usleep() is not supported for time delays?

  • NOTE: In the hcl_linux.c or hcl_rpi.c, there are seDelayMS() and seDelayMicroSecs() 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() and delayMicroseconds(), 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# or DRDY 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 IMU EXT pin must be connected to the 1PPS.

File truncated at 100 lines see the full file

CHANGELOG

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

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Package Dependencies

System Dependencies

No direct system dependencies.

Dependant Packages

No known dependants.

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged ess_imu_driver at Robotics Stack Exchange

No version for distro indigo showing noetic. Known supported distros are highlighted in the buttons above.
Package symbol

ess_imu_driver package from ess_imu_driver repo

ess_imu_driver

ROS Distro
noetic

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

ROS package for Epson IMU based on C++ wrapper of Linux C driver

Additional Links

Maintainers

  • Raymond Chow

Authors

No additional authors.

README for Epson IMU Driver for ROS1 Node

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
  • 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)
  • Changes to IMU settings should be made by editing the .launch files located in the launch/ folder instead of modifying the src/ source files

How do I use the driver if usleep() is not supported for time delays?

  • NOTE: In the hcl_linux.c or hcl_rpi.c, there are seDelayMS() and seDelayMicroSecs() 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() and delayMicroseconds(), 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# or DRDY 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 IMU EXT pin must be connected to the 1PPS.

File truncated at 100 lines see the full file

CHANGELOG

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

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Package Dependencies

System Dependencies

No direct system dependencies.

Dependant Packages

No known dependants.

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged ess_imu_driver at Robotics Stack Exchange

No version for distro hydro showing noetic. Known supported distros are highlighted in the buttons above.
Package symbol

ess_imu_driver package from ess_imu_driver repo

ess_imu_driver

ROS Distro
noetic

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

ROS package for Epson IMU based on C++ wrapper of Linux C driver

Additional Links

Maintainers

  • Raymond Chow

Authors

No additional authors.

README for Epson IMU Driver for ROS1 Node

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
  • 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)
  • Changes to IMU settings should be made by editing the .launch files located in the launch/ folder instead of modifying the src/ source files

How do I use the driver if usleep() is not supported for time delays?

  • NOTE: In the hcl_linux.c or hcl_rpi.c, there are seDelayMS() and seDelayMicroSecs() 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() and delayMicroseconds(), 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# or DRDY 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 IMU EXT pin must be connected to the 1PPS.

File truncated at 100 lines see the full file

CHANGELOG

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

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Package Dependencies

System Dependencies

No direct system dependencies.

Dependant Packages

No known dependants.

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged ess_imu_driver at Robotics Stack Exchange

No version for distro kinetic showing noetic. Known supported distros are highlighted in the buttons above.
Package symbol

ess_imu_driver package from ess_imu_driver repo

ess_imu_driver

ROS Distro
noetic

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

ROS package for Epson IMU based on C++ wrapper of Linux C driver

Additional Links

Maintainers

  • Raymond Chow

Authors

No additional authors.

README for Epson IMU Driver for ROS1 Node

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
  • 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)
  • Changes to IMU settings should be made by editing the .launch files located in the launch/ folder instead of modifying the src/ source files

How do I use the driver if usleep() is not supported for time delays?

  • NOTE: In the hcl_linux.c or hcl_rpi.c, there are seDelayMS() and seDelayMicroSecs() 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() and delayMicroseconds(), 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# or DRDY 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 IMU EXT pin must be connected to the 1PPS.

File truncated at 100 lines see the full file

CHANGELOG

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

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Package Dependencies

System Dependencies

No direct system dependencies.

Dependant Packages

No known dependants.

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged ess_imu_driver at Robotics Stack Exchange

No version for distro melodic showing noetic. Known supported distros are highlighted in the buttons above.
Package symbol

ess_imu_driver package from ess_imu_driver repo

ess_imu_driver

ROS Distro
noetic

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

ROS package for Epson IMU based on C++ wrapper of Linux C driver

Additional Links

Maintainers

  • Raymond Chow

Authors

No additional authors.

README for Epson IMU Driver for ROS1 Node

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
  • 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)
  • Changes to IMU settings should be made by editing the .launch files located in the launch/ folder instead of modifying the src/ source files

How do I use the driver if usleep() is not supported for time delays?

  • NOTE: In the hcl_linux.c or hcl_rpi.c, there are seDelayMS() and seDelayMicroSecs() 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() and delayMicroseconds(), 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# or DRDY 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 IMU EXT pin must be connected to the 1PPS.

File truncated at 100 lines see the full file

CHANGELOG

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

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Package Dependencies

System Dependencies

No direct system dependencies.

Dependant Packages

No known dependants.

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged ess_imu_driver at Robotics Stack Exchange

Package symbol

ess_imu_driver package from ess_imu_driver repo

ess_imu_driver

ROS Distro
noetic

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

ROS package for Epson IMU based on C++ wrapper of Linux C driver

Additional Links

Maintainers

  • Raymond Chow

Authors

No additional authors.

README for Epson IMU Driver for ROS1 Node

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
  • 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)
  • Changes to IMU settings should be made by editing the .launch files located in the launch/ folder instead of modifying the src/ source files

How do I use the driver if usleep() is not supported for time delays?

  • NOTE: In the hcl_linux.c or hcl_rpi.c, there are seDelayMS() and seDelayMicroSecs() 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() and delayMicroseconds(), 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# or DRDY 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 IMU EXT pin must be connected to the 1PPS.

File truncated at 100 lines see the full file

CHANGELOG

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

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Package Dependencies

System Dependencies

No direct system dependencies.

Dependant Packages

No known dependants.

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged ess_imu_driver at Robotics Stack Exchange