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

ess_imu_ros1_uart_driver package from ess_imu_ros1_uart_driver repo

ess_imu_ros1_uart_driver

ROS Distro
melodic

Package Summary

Tags No category tags.
Version 1.4.0
License BSD
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/cubicleguy/ess_imu_ros1_uart_driver.git
VCS Type git
VCS Version main
Last Updated 2023-11-30
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

ROS1 package for Epson IMU using UART interface based on C++ wrapper of Linux C driver

Additional Links

Maintainers

  • Raymond Chow

Authors

No additional authors.

** This repo is deprecated and read-only **

** Please use ess_imu_driver instead **

README for Epson IMU Driver using UART interface for ROS

What is this repository for?

  • This code provides interface between Epson IMU and ROS using the UART interface.
  • The UART connection can be either direct or by USB-serial converter such as FTDI bridge ICs.
  • The src/epson_imu_uart_driver_node.cpp is the ROS C++ wrapper used to communicate with ROS
  • The other source files in src/ are based on the Linux C driver originally released by Epson: Epson IMU UART-only Linux User-space Driver Example
  • Information about ROS, ROS packages, and tutorials can be found: ROS.org

What kind of hardware or software will I likely need?

This will likely require the following:

  • Epson USB evaluation board or equivalent FTDI USB-Serial interface to connect to ROS host (tty/serial) See Evaluation Boards
  • Epson IMU (G320/G330/G354/G364/G365/G366/G370/V340) IMU models
  • ROS Indigo or later (via download) ROS.org

How do I use the driver?

  • This code assumes that the user is familiar with building ROS packages using the catkin build process.
  • NOTE: This is NOT detailed instructions describing step by step procedures on how to build and install this ROS driver.
  • Please refer to the ROS.org website for more detailed instructions on configuring the ROS environment & the ROS package build process. ROS.org
  • NOTE: At bare minimum, you must modify the CMakeLists.txt, or any time you change to a different IMU model, then build this package running “catkin_make”.
  • If the IMU model is unchanged, then subsequent changes to IMU settings can be done by instead editing the IMU model specific .launch file located in the launch/ folder.
  • The IMU model specific launch file should only be used in conjunction with the same catkin-built executable of the same matching the IMU model.
  • NOTE: Do not just switch .launch files without modifying the CMakeList.txt & rebuilding the executable to match the IMU model. Do not mix IMU model launch files without the matching IMU model catkin built binaries.

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

  • NOTE: In the hcl_linux.c, there are empty functions for time delays in millisecond and microseconds using seDelayMS() and seDelayMicroSecs(), respectively.
  • On embedded Linux platforms, the user may need 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 can be 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?

  • Because this driver connects to the IMU using the UART interface, the use of GPIO pins for connecting to the IMU RESET#, EXT, or DRDY is purely optional, and mainly intended for embedded Linux platforms (non-PC based).
  • When possible, connecting the RESET# is recommended to force Hardware Reset during every IMU initialization, for better robustness.
  • Although this code does not implement GPIO functions, this code is structured for the user to easily redirect GPIO control to low-level hardware GPIO function calls for ease of implementation.
  • There is no standard method to implement GPIO connections on embedded Linux platform, but the following files typically need changes:
  src/hcl_linux.c
  src/hcl_gpio.c
  src/hcl_gpio.h

  • Typically, an external library needs to be invoked to initialize & enable GPIO HW functions on the user’s embedded platform.

  • This typically requires changes to hcl_linux.c

    • add #include to external library near the top of hcl_linux.c
    • add the initialization call inside the seInit() function in hcl_linux.c

For example on an Raspberry Pi, the following changes can be made to hcl_linux.c:

``` …

#include #include #include // <== Added external library

int seInit(void) { // Initialize wiringPi libraries // <== Added printf(“\r\nInitializing libraries…”); // <== Added if(wiringPiSetupGpio() != 0) { // <== Added external library initialization printf(“\r\nError: could not initialize wiringPI libraries. Exiting…\r\n”); // <== Added

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package ess_imu_ros1_uart_driver

1.4.0 (2023-05-24)

  • adds support for G330PDG0, G366PDG0, G370PDS0, G370PDG0, G370PDT0, remove G325, G365PDx0, G370PDF0
  • adds output message at start of execution to display the device model that the executable is built for
  • adds output message to read the device model and warn if there is a mismatch with executable build

1.3.2 (2022-08-03)

  • update cmake_minimum_required to avoid unstable build on buildfarm due to CMP0048 warning
  • update README.md for name change in package.xml, CMakeLists.txt
  • add dependency geometry_msgs and tf2
  • fix for name change in package.xml, CMakeLists.txt, launch files
  • Cleanup description of applicable licensing for files BSD-3 and Public Domain

1.3.1 (2022-07-19)

  • release 1st time
  • renamed from package from epson_imu_uart_driver

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_ros1_uart_driver at Robotics Stack Exchange

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

ess_imu_ros1_uart_driver package from ess_imu_ros1_uart_driver repo

ess_imu_ros1_uart_driver

ROS Distro
melodic

Package Summary

Tags No category tags.
Version 1.4.0
License BSD
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/cubicleguy/ess_imu_ros1_uart_driver.git
VCS Type git
VCS Version main
Last Updated 2023-11-30
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

ROS1 package for Epson IMU using UART interface based on C++ wrapper of Linux C driver

Additional Links

Maintainers

  • Raymond Chow

Authors

No additional authors.

** This repo is deprecated and read-only **

** Please use ess_imu_driver instead **

README for Epson IMU Driver using UART interface for ROS

What is this repository for?

  • This code provides interface between Epson IMU and ROS using the UART interface.
  • The UART connection can be either direct or by USB-serial converter such as FTDI bridge ICs.
  • The src/epson_imu_uart_driver_node.cpp is the ROS C++ wrapper used to communicate with ROS
  • The other source files in src/ are based on the Linux C driver originally released by Epson: Epson IMU UART-only Linux User-space Driver Example
  • Information about ROS, ROS packages, and tutorials can be found: ROS.org

What kind of hardware or software will I likely need?

This will likely require the following:

  • Epson USB evaluation board or equivalent FTDI USB-Serial interface to connect to ROS host (tty/serial) See Evaluation Boards
  • Epson IMU (G320/G330/G354/G364/G365/G366/G370/V340) IMU models
  • ROS Indigo or later (via download) ROS.org

How do I use the driver?

  • This code assumes that the user is familiar with building ROS packages using the catkin build process.
  • NOTE: This is NOT detailed instructions describing step by step procedures on how to build and install this ROS driver.
  • Please refer to the ROS.org website for more detailed instructions on configuring the ROS environment & the ROS package build process. ROS.org
  • NOTE: At bare minimum, you must modify the CMakeLists.txt, or any time you change to a different IMU model, then build this package running “catkin_make”.
  • If the IMU model is unchanged, then subsequent changes to IMU settings can be done by instead editing the IMU model specific .launch file located in the launch/ folder.
  • The IMU model specific launch file should only be used in conjunction with the same catkin-built executable of the same matching the IMU model.
  • NOTE: Do not just switch .launch files without modifying the CMakeList.txt & rebuilding the executable to match the IMU model. Do not mix IMU model launch files without the matching IMU model catkin built binaries.

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

  • NOTE: In the hcl_linux.c, there are empty functions for time delays in millisecond and microseconds using seDelayMS() and seDelayMicroSecs(), respectively.
  • On embedded Linux platforms, the user may need 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 can be 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?

  • Because this driver connects to the IMU using the UART interface, the use of GPIO pins for connecting to the IMU RESET#, EXT, or DRDY is purely optional, and mainly intended for embedded Linux platforms (non-PC based).
  • When possible, connecting the RESET# is recommended to force Hardware Reset during every IMU initialization, for better robustness.
  • Although this code does not implement GPIO functions, this code is structured for the user to easily redirect GPIO control to low-level hardware GPIO function calls for ease of implementation.
  • There is no standard method to implement GPIO connections on embedded Linux platform, but the following files typically need changes:
  src/hcl_linux.c
  src/hcl_gpio.c
  src/hcl_gpio.h

  • Typically, an external library needs to be invoked to initialize & enable GPIO HW functions on the user’s embedded platform.

  • This typically requires changes to hcl_linux.c

    • add #include to external library near the top of hcl_linux.c
    • add the initialization call inside the seInit() function in hcl_linux.c

For example on an Raspberry Pi, the following changes can be made to hcl_linux.c:

``` …

#include #include #include // <== Added external library

int seInit(void) { // Initialize wiringPi libraries // <== Added printf(“\r\nInitializing libraries…”); // <== Added if(wiringPiSetupGpio() != 0) { // <== Added external library initialization printf(“\r\nError: could not initialize wiringPI libraries. Exiting…\r\n”); // <== Added

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package ess_imu_ros1_uart_driver

1.4.0 (2023-05-24)

  • adds support for G330PDG0, G366PDG0, G370PDS0, G370PDG0, G370PDT0, remove G325, G365PDx0, G370PDF0
  • adds output message at start of execution to display the device model that the executable is built for
  • adds output message to read the device model and warn if there is a mismatch with executable build

1.3.2 (2022-08-03)

  • update cmake_minimum_required to avoid unstable build on buildfarm due to CMP0048 warning
  • update README.md for name change in package.xml, CMakeLists.txt
  • add dependency geometry_msgs and tf2
  • fix for name change in package.xml, CMakeLists.txt, launch files
  • Cleanup description of applicable licensing for files BSD-3 and Public Domain

1.3.1 (2022-07-19)

  • release 1st time
  • renamed from package from epson_imu_uart_driver

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_ros1_uart_driver at Robotics Stack Exchange

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

ess_imu_ros1_uart_driver package from ess_imu_ros1_uart_driver repo

ess_imu_ros1_uart_driver

ROS Distro
melodic

Package Summary

Tags No category tags.
Version 1.4.0
License BSD
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/cubicleguy/ess_imu_ros1_uart_driver.git
VCS Type git
VCS Version main
Last Updated 2023-11-30
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

ROS1 package for Epson IMU using UART interface based on C++ wrapper of Linux C driver

Additional Links

Maintainers

  • Raymond Chow

Authors

No additional authors.

** This repo is deprecated and read-only **

** Please use ess_imu_driver instead **

README for Epson IMU Driver using UART interface for ROS

What is this repository for?

  • This code provides interface between Epson IMU and ROS using the UART interface.
  • The UART connection can be either direct or by USB-serial converter such as FTDI bridge ICs.
  • The src/epson_imu_uart_driver_node.cpp is the ROS C++ wrapper used to communicate with ROS
  • The other source files in src/ are based on the Linux C driver originally released by Epson: Epson IMU UART-only Linux User-space Driver Example
  • Information about ROS, ROS packages, and tutorials can be found: ROS.org

What kind of hardware or software will I likely need?

This will likely require the following:

  • Epson USB evaluation board or equivalent FTDI USB-Serial interface to connect to ROS host (tty/serial) See Evaluation Boards
  • Epson IMU (G320/G330/G354/G364/G365/G366/G370/V340) IMU models
  • ROS Indigo or later (via download) ROS.org

How do I use the driver?

  • This code assumes that the user is familiar with building ROS packages using the catkin build process.
  • NOTE: This is NOT detailed instructions describing step by step procedures on how to build and install this ROS driver.
  • Please refer to the ROS.org website for more detailed instructions on configuring the ROS environment & the ROS package build process. ROS.org
  • NOTE: At bare minimum, you must modify the CMakeLists.txt, or any time you change to a different IMU model, then build this package running “catkin_make”.
  • If the IMU model is unchanged, then subsequent changes to IMU settings can be done by instead editing the IMU model specific .launch file located in the launch/ folder.
  • The IMU model specific launch file should only be used in conjunction with the same catkin-built executable of the same matching the IMU model.
  • NOTE: Do not just switch .launch files without modifying the CMakeList.txt & rebuilding the executable to match the IMU model. Do not mix IMU model launch files without the matching IMU model catkin built binaries.

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

  • NOTE: In the hcl_linux.c, there are empty functions for time delays in millisecond and microseconds using seDelayMS() and seDelayMicroSecs(), respectively.
  • On embedded Linux platforms, the user may need 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 can be 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?

  • Because this driver connects to the IMU using the UART interface, the use of GPIO pins for connecting to the IMU RESET#, EXT, or DRDY is purely optional, and mainly intended for embedded Linux platforms (non-PC based).
  • When possible, connecting the RESET# is recommended to force Hardware Reset during every IMU initialization, for better robustness.
  • Although this code does not implement GPIO functions, this code is structured for the user to easily redirect GPIO control to low-level hardware GPIO function calls for ease of implementation.
  • There is no standard method to implement GPIO connections on embedded Linux platform, but the following files typically need changes:
  src/hcl_linux.c
  src/hcl_gpio.c
  src/hcl_gpio.h

  • Typically, an external library needs to be invoked to initialize & enable GPIO HW functions on the user’s embedded platform.

  • This typically requires changes to hcl_linux.c

    • add #include to external library near the top of hcl_linux.c
    • add the initialization call inside the seInit() function in hcl_linux.c

For example on an Raspberry Pi, the following changes can be made to hcl_linux.c:

``` …

#include #include #include // <== Added external library

int seInit(void) { // Initialize wiringPi libraries // <== Added printf(“\r\nInitializing libraries…”); // <== Added if(wiringPiSetupGpio() != 0) { // <== Added external library initialization printf(“\r\nError: could not initialize wiringPI libraries. Exiting…\r\n”); // <== Added

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package ess_imu_ros1_uart_driver

1.4.0 (2023-05-24)

  • adds support for G330PDG0, G366PDG0, G370PDS0, G370PDG0, G370PDT0, remove G325, G365PDx0, G370PDF0
  • adds output message at start of execution to display the device model that the executable is built for
  • adds output message to read the device model and warn if there is a mismatch with executable build

1.3.2 (2022-08-03)

  • update cmake_minimum_required to avoid unstable build on buildfarm due to CMP0048 warning
  • update README.md for name change in package.xml, CMakeLists.txt
  • add dependency geometry_msgs and tf2
  • fix for name change in package.xml, CMakeLists.txt, launch files
  • Cleanup description of applicable licensing for files BSD-3 and Public Domain

1.3.1 (2022-07-19)

  • release 1st time
  • renamed from package from epson_imu_uart_driver

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_ros1_uart_driver at Robotics Stack Exchange

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

ess_imu_ros1_uart_driver package from ess_imu_ros1_uart_driver repo

ess_imu_ros1_uart_driver

ROS Distro
melodic

Package Summary

Tags No category tags.
Version 1.4.0
License BSD
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/cubicleguy/ess_imu_ros1_uart_driver.git
VCS Type git
VCS Version main
Last Updated 2023-11-30
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

ROS1 package for Epson IMU using UART interface based on C++ wrapper of Linux C driver

Additional Links

Maintainers

  • Raymond Chow

Authors

No additional authors.

** This repo is deprecated and read-only **

** Please use ess_imu_driver instead **

README for Epson IMU Driver using UART interface for ROS

What is this repository for?

  • This code provides interface between Epson IMU and ROS using the UART interface.
  • The UART connection can be either direct or by USB-serial converter such as FTDI bridge ICs.
  • The src/epson_imu_uart_driver_node.cpp is the ROS C++ wrapper used to communicate with ROS
  • The other source files in src/ are based on the Linux C driver originally released by Epson: Epson IMU UART-only Linux User-space Driver Example
  • Information about ROS, ROS packages, and tutorials can be found: ROS.org

What kind of hardware or software will I likely need?

This will likely require the following:

  • Epson USB evaluation board or equivalent FTDI USB-Serial interface to connect to ROS host (tty/serial) See Evaluation Boards
  • Epson IMU (G320/G330/G354/G364/G365/G366/G370/V340) IMU models
  • ROS Indigo or later (via download) ROS.org

How do I use the driver?

  • This code assumes that the user is familiar with building ROS packages using the catkin build process.
  • NOTE: This is NOT detailed instructions describing step by step procedures on how to build and install this ROS driver.
  • Please refer to the ROS.org website for more detailed instructions on configuring the ROS environment & the ROS package build process. ROS.org
  • NOTE: At bare minimum, you must modify the CMakeLists.txt, or any time you change to a different IMU model, then build this package running “catkin_make”.
  • If the IMU model is unchanged, then subsequent changes to IMU settings can be done by instead editing the IMU model specific .launch file located in the launch/ folder.
  • The IMU model specific launch file should only be used in conjunction with the same catkin-built executable of the same matching the IMU model.
  • NOTE: Do not just switch .launch files without modifying the CMakeList.txt & rebuilding the executable to match the IMU model. Do not mix IMU model launch files without the matching IMU model catkin built binaries.

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

  • NOTE: In the hcl_linux.c, there are empty functions for time delays in millisecond and microseconds using seDelayMS() and seDelayMicroSecs(), respectively.
  • On embedded Linux platforms, the user may need 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 can be 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?

  • Because this driver connects to the IMU using the UART interface, the use of GPIO pins for connecting to the IMU RESET#, EXT, or DRDY is purely optional, and mainly intended for embedded Linux platforms (non-PC based).
  • When possible, connecting the RESET# is recommended to force Hardware Reset during every IMU initialization, for better robustness.
  • Although this code does not implement GPIO functions, this code is structured for the user to easily redirect GPIO control to low-level hardware GPIO function calls for ease of implementation.
  • There is no standard method to implement GPIO connections on embedded Linux platform, but the following files typically need changes:
  src/hcl_linux.c
  src/hcl_gpio.c
  src/hcl_gpio.h

  • Typically, an external library needs to be invoked to initialize & enable GPIO HW functions on the user’s embedded platform.

  • This typically requires changes to hcl_linux.c

    • add #include to external library near the top of hcl_linux.c
    • add the initialization call inside the seInit() function in hcl_linux.c

For example on an Raspberry Pi, the following changes can be made to hcl_linux.c:

``` …

#include #include #include // <== Added external library

int seInit(void) { // Initialize wiringPi libraries // <== Added printf(“\r\nInitializing libraries…”); // <== Added if(wiringPiSetupGpio() != 0) { // <== Added external library initialization printf(“\r\nError: could not initialize wiringPI libraries. Exiting…\r\n”); // <== Added

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package ess_imu_ros1_uart_driver

1.4.0 (2023-05-24)

  • adds support for G330PDG0, G366PDG0, G370PDS0, G370PDG0, G370PDT0, remove G325, G365PDx0, G370PDF0
  • adds output message at start of execution to display the device model that the executable is built for
  • adds output message to read the device model and warn if there is a mismatch with executable build

1.3.2 (2022-08-03)

  • update cmake_minimum_required to avoid unstable build on buildfarm due to CMP0048 warning
  • update README.md for name change in package.xml, CMakeLists.txt
  • add dependency geometry_msgs and tf2
  • fix for name change in package.xml, CMakeLists.txt, launch files
  • Cleanup description of applicable licensing for files BSD-3 and Public Domain

1.3.1 (2022-07-19)

  • release 1st time
  • renamed from package from epson_imu_uart_driver

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_ros1_uart_driver at Robotics Stack Exchange

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

ess_imu_ros1_uart_driver package from ess_imu_ros1_uart_driver repo

ess_imu_ros1_uart_driver

ROS Distro
melodic

Package Summary

Tags No category tags.
Version 1.4.0
License BSD
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/cubicleguy/ess_imu_ros1_uart_driver.git
VCS Type git
VCS Version main
Last Updated 2023-11-30
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

ROS1 package for Epson IMU using UART interface based on C++ wrapper of Linux C driver

Additional Links

Maintainers

  • Raymond Chow

Authors

No additional authors.

** This repo is deprecated and read-only **

** Please use ess_imu_driver instead **

README for Epson IMU Driver using UART interface for ROS

What is this repository for?

  • This code provides interface between Epson IMU and ROS using the UART interface.
  • The UART connection can be either direct or by USB-serial converter such as FTDI bridge ICs.
  • The src/epson_imu_uart_driver_node.cpp is the ROS C++ wrapper used to communicate with ROS
  • The other source files in src/ are based on the Linux C driver originally released by Epson: Epson IMU UART-only Linux User-space Driver Example
  • Information about ROS, ROS packages, and tutorials can be found: ROS.org

What kind of hardware or software will I likely need?

This will likely require the following:

  • Epson USB evaluation board or equivalent FTDI USB-Serial interface to connect to ROS host (tty/serial) See Evaluation Boards
  • Epson IMU (G320/G330/G354/G364/G365/G366/G370/V340) IMU models
  • ROS Indigo or later (via download) ROS.org

How do I use the driver?

  • This code assumes that the user is familiar with building ROS packages using the catkin build process.
  • NOTE: This is NOT detailed instructions describing step by step procedures on how to build and install this ROS driver.
  • Please refer to the ROS.org website for more detailed instructions on configuring the ROS environment & the ROS package build process. ROS.org
  • NOTE: At bare minimum, you must modify the CMakeLists.txt, or any time you change to a different IMU model, then build this package running “catkin_make”.
  • If the IMU model is unchanged, then subsequent changes to IMU settings can be done by instead editing the IMU model specific .launch file located in the launch/ folder.
  • The IMU model specific launch file should only be used in conjunction with the same catkin-built executable of the same matching the IMU model.
  • NOTE: Do not just switch .launch files without modifying the CMakeList.txt & rebuilding the executable to match the IMU model. Do not mix IMU model launch files without the matching IMU model catkin built binaries.

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

  • NOTE: In the hcl_linux.c, there are empty functions for time delays in millisecond and microseconds using seDelayMS() and seDelayMicroSecs(), respectively.
  • On embedded Linux platforms, the user may need 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 can be 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?

  • Because this driver connects to the IMU using the UART interface, the use of GPIO pins for connecting to the IMU RESET#, EXT, or DRDY is purely optional, and mainly intended for embedded Linux platforms (non-PC based).
  • When possible, connecting the RESET# is recommended to force Hardware Reset during every IMU initialization, for better robustness.
  • Although this code does not implement GPIO functions, this code is structured for the user to easily redirect GPIO control to low-level hardware GPIO function calls for ease of implementation.
  • There is no standard method to implement GPIO connections on embedded Linux platform, but the following files typically need changes:
  src/hcl_linux.c
  src/hcl_gpio.c
  src/hcl_gpio.h

  • Typically, an external library needs to be invoked to initialize & enable GPIO HW functions on the user’s embedded platform.

  • This typically requires changes to hcl_linux.c

    • add #include to external library near the top of hcl_linux.c
    • add the initialization call inside the seInit() function in hcl_linux.c

For example on an Raspberry Pi, the following changes can be made to hcl_linux.c:

``` …

#include #include #include // <== Added external library

int seInit(void) { // Initialize wiringPi libraries // <== Added printf(“\r\nInitializing libraries…”); // <== Added if(wiringPiSetupGpio() != 0) { // <== Added external library initialization printf(“\r\nError: could not initialize wiringPI libraries. Exiting…\r\n”); // <== Added

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package ess_imu_ros1_uart_driver

1.4.0 (2023-05-24)

  • adds support for G330PDG0, G366PDG0, G370PDS0, G370PDG0, G370PDT0, remove G325, G365PDx0, G370PDF0
  • adds output message at start of execution to display the device model that the executable is built for
  • adds output message to read the device model and warn if there is a mismatch with executable build

1.3.2 (2022-08-03)

  • update cmake_minimum_required to avoid unstable build on buildfarm due to CMP0048 warning
  • update README.md for name change in package.xml, CMakeLists.txt
  • add dependency geometry_msgs and tf2
  • fix for name change in package.xml, CMakeLists.txt, launch files
  • Cleanup description of applicable licensing for files BSD-3 and Public Domain

1.3.1 (2022-07-19)

  • release 1st time
  • renamed from package from epson_imu_uart_driver

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_ros1_uart_driver at Robotics Stack Exchange

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

ess_imu_ros1_uart_driver package from ess_imu_ros1_uart_driver repo

ess_imu_ros1_uart_driver

ROS Distro
melodic

Package Summary

Tags No category tags.
Version 1.4.0
License BSD
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/cubicleguy/ess_imu_ros1_uart_driver.git
VCS Type git
VCS Version main
Last Updated 2023-11-30
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

ROS1 package for Epson IMU using UART interface based on C++ wrapper of Linux C driver

Additional Links

Maintainers

  • Raymond Chow

Authors

No additional authors.

** This repo is deprecated and read-only **

** Please use ess_imu_driver instead **

README for Epson IMU Driver using UART interface for ROS

What is this repository for?

  • This code provides interface between Epson IMU and ROS using the UART interface.
  • The UART connection can be either direct or by USB-serial converter such as FTDI bridge ICs.
  • The src/epson_imu_uart_driver_node.cpp is the ROS C++ wrapper used to communicate with ROS
  • The other source files in src/ are based on the Linux C driver originally released by Epson: Epson IMU UART-only Linux User-space Driver Example
  • Information about ROS, ROS packages, and tutorials can be found: ROS.org

What kind of hardware or software will I likely need?

This will likely require the following:

  • Epson USB evaluation board or equivalent FTDI USB-Serial interface to connect to ROS host (tty/serial) See Evaluation Boards
  • Epson IMU (G320/G330/G354/G364/G365/G366/G370/V340) IMU models
  • ROS Indigo or later (via download) ROS.org

How do I use the driver?

  • This code assumes that the user is familiar with building ROS packages using the catkin build process.
  • NOTE: This is NOT detailed instructions describing step by step procedures on how to build and install this ROS driver.
  • Please refer to the ROS.org website for more detailed instructions on configuring the ROS environment & the ROS package build process. ROS.org
  • NOTE: At bare minimum, you must modify the CMakeLists.txt, or any time you change to a different IMU model, then build this package running “catkin_make”.
  • If the IMU model is unchanged, then subsequent changes to IMU settings can be done by instead editing the IMU model specific .launch file located in the launch/ folder.
  • The IMU model specific launch file should only be used in conjunction with the same catkin-built executable of the same matching the IMU model.
  • NOTE: Do not just switch .launch files without modifying the CMakeList.txt & rebuilding the executable to match the IMU model. Do not mix IMU model launch files without the matching IMU model catkin built binaries.

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

  • NOTE: In the hcl_linux.c, there are empty functions for time delays in millisecond and microseconds using seDelayMS() and seDelayMicroSecs(), respectively.
  • On embedded Linux platforms, the user may need 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 can be 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?

  • Because this driver connects to the IMU using the UART interface, the use of GPIO pins for connecting to the IMU RESET#, EXT, or DRDY is purely optional, and mainly intended for embedded Linux platforms (non-PC based).
  • When possible, connecting the RESET# is recommended to force Hardware Reset during every IMU initialization, for better robustness.
  • Although this code does not implement GPIO functions, this code is structured for the user to easily redirect GPIO control to low-level hardware GPIO function calls for ease of implementation.
  • There is no standard method to implement GPIO connections on embedded Linux platform, but the following files typically need changes:
  src/hcl_linux.c
  src/hcl_gpio.c
  src/hcl_gpio.h

  • Typically, an external library needs to be invoked to initialize & enable GPIO HW functions on the user’s embedded platform.

  • This typically requires changes to hcl_linux.c

    • add #include to external library near the top of hcl_linux.c
    • add the initialization call inside the seInit() function in hcl_linux.c

For example on an Raspberry Pi, the following changes can be made to hcl_linux.c:

``` …

#include #include #include // <== Added external library

int seInit(void) { // Initialize wiringPi libraries // <== Added printf(“\r\nInitializing libraries…”); // <== Added if(wiringPiSetupGpio() != 0) { // <== Added external library initialization printf(“\r\nError: could not initialize wiringPI libraries. Exiting…\r\n”); // <== Added

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package ess_imu_ros1_uart_driver

1.4.0 (2023-05-24)

  • adds support for G330PDG0, G366PDG0, G370PDS0, G370PDG0, G370PDT0, remove G325, G365PDx0, G370PDF0
  • adds output message at start of execution to display the device model that the executable is built for
  • adds output message to read the device model and warn if there is a mismatch with executable build

1.3.2 (2022-08-03)

  • update cmake_minimum_required to avoid unstable build on buildfarm due to CMP0048 warning
  • update README.md for name change in package.xml, CMakeLists.txt
  • add dependency geometry_msgs and tf2
  • fix for name change in package.xml, CMakeLists.txt, launch files
  • Cleanup description of applicable licensing for files BSD-3 and Public Domain

1.3.1 (2022-07-19)

  • release 1st time
  • renamed from package from epson_imu_uart_driver

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_ros1_uart_driver at Robotics Stack Exchange

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

ess_imu_ros1_uart_driver package from ess_imu_ros1_uart_driver repo

ess_imu_ros1_uart_driver

ROS Distro
melodic

Package Summary

Tags No category tags.
Version 1.4.0
License BSD
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/cubicleguy/ess_imu_ros1_uart_driver.git
VCS Type git
VCS Version main
Last Updated 2023-11-30
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

ROS1 package for Epson IMU using UART interface based on C++ wrapper of Linux C driver

Additional Links

Maintainers

  • Raymond Chow

Authors

No additional authors.

** This repo is deprecated and read-only **

** Please use ess_imu_driver instead **

README for Epson IMU Driver using UART interface for ROS

What is this repository for?

  • This code provides interface between Epson IMU and ROS using the UART interface.
  • The UART connection can be either direct or by USB-serial converter such as FTDI bridge ICs.
  • The src/epson_imu_uart_driver_node.cpp is the ROS C++ wrapper used to communicate with ROS
  • The other source files in src/ are based on the Linux C driver originally released by Epson: Epson IMU UART-only Linux User-space Driver Example
  • Information about ROS, ROS packages, and tutorials can be found: ROS.org

What kind of hardware or software will I likely need?

This will likely require the following:

  • Epson USB evaluation board or equivalent FTDI USB-Serial interface to connect to ROS host (tty/serial) See Evaluation Boards
  • Epson IMU (G320/G330/G354/G364/G365/G366/G370/V340) IMU models
  • ROS Indigo or later (via download) ROS.org

How do I use the driver?

  • This code assumes that the user is familiar with building ROS packages using the catkin build process.
  • NOTE: This is NOT detailed instructions describing step by step procedures on how to build and install this ROS driver.
  • Please refer to the ROS.org website for more detailed instructions on configuring the ROS environment & the ROS package build process. ROS.org
  • NOTE: At bare minimum, you must modify the CMakeLists.txt, or any time you change to a different IMU model, then build this package running “catkin_make”.
  • If the IMU model is unchanged, then subsequent changes to IMU settings can be done by instead editing the IMU model specific .launch file located in the launch/ folder.
  • The IMU model specific launch file should only be used in conjunction with the same catkin-built executable of the same matching the IMU model.
  • NOTE: Do not just switch .launch files without modifying the CMakeList.txt & rebuilding the executable to match the IMU model. Do not mix IMU model launch files without the matching IMU model catkin built binaries.

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

  • NOTE: In the hcl_linux.c, there are empty functions for time delays in millisecond and microseconds using seDelayMS() and seDelayMicroSecs(), respectively.
  • On embedded Linux platforms, the user may need 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 can be 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?

  • Because this driver connects to the IMU using the UART interface, the use of GPIO pins for connecting to the IMU RESET#, EXT, or DRDY is purely optional, and mainly intended for embedded Linux platforms (non-PC based).
  • When possible, connecting the RESET# is recommended to force Hardware Reset during every IMU initialization, for better robustness.
  • Although this code does not implement GPIO functions, this code is structured for the user to easily redirect GPIO control to low-level hardware GPIO function calls for ease of implementation.
  • There is no standard method to implement GPIO connections on embedded Linux platform, but the following files typically need changes:
  src/hcl_linux.c
  src/hcl_gpio.c
  src/hcl_gpio.h

  • Typically, an external library needs to be invoked to initialize & enable GPIO HW functions on the user’s embedded platform.

  • This typically requires changes to hcl_linux.c

    • add #include to external library near the top of hcl_linux.c
    • add the initialization call inside the seInit() function in hcl_linux.c

For example on an Raspberry Pi, the following changes can be made to hcl_linux.c:

``` …

#include #include #include // <== Added external library

int seInit(void) { // Initialize wiringPi libraries // <== Added printf(“\r\nInitializing libraries…”); // <== Added if(wiringPiSetupGpio() != 0) { // <== Added external library initialization printf(“\r\nError: could not initialize wiringPI libraries. Exiting…\r\n”); // <== Added

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package ess_imu_ros1_uart_driver

1.4.0 (2023-05-24)

  • adds support for G330PDG0, G366PDG0, G370PDS0, G370PDG0, G370PDT0, remove G325, G365PDx0, G370PDF0
  • adds output message at start of execution to display the device model that the executable is built for
  • adds output message to read the device model and warn if there is a mismatch with executable build

1.3.2 (2022-08-03)

  • update cmake_minimum_required to avoid unstable build on buildfarm due to CMP0048 warning
  • update README.md for name change in package.xml, CMakeLists.txt
  • add dependency geometry_msgs and tf2
  • fix for name change in package.xml, CMakeLists.txt, launch files
  • Cleanup description of applicable licensing for files BSD-3 and Public Domain

1.3.1 (2022-07-19)

  • release 1st time
  • renamed from package from epson_imu_uart_driver

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_ros1_uart_driver at Robotics Stack Exchange

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

ess_imu_ros1_uart_driver package from ess_imu_ros1_uart_driver repo

ess_imu_ros1_uart_driver

ROS Distro
melodic

Package Summary

Tags No category tags.
Version 1.4.0
License BSD
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/cubicleguy/ess_imu_ros1_uart_driver.git
VCS Type git
VCS Version main
Last Updated 2023-11-30
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

ROS1 package for Epson IMU using UART interface based on C++ wrapper of Linux C driver

Additional Links

Maintainers

  • Raymond Chow

Authors

No additional authors.

** This repo is deprecated and read-only **

** Please use ess_imu_driver instead **

README for Epson IMU Driver using UART interface for ROS

What is this repository for?

  • This code provides interface between Epson IMU and ROS using the UART interface.
  • The UART connection can be either direct or by USB-serial converter such as FTDI bridge ICs.
  • The src/epson_imu_uart_driver_node.cpp is the ROS C++ wrapper used to communicate with ROS
  • The other source files in src/ are based on the Linux C driver originally released by Epson: Epson IMU UART-only Linux User-space Driver Example
  • Information about ROS, ROS packages, and tutorials can be found: ROS.org

What kind of hardware or software will I likely need?

This will likely require the following:

  • Epson USB evaluation board or equivalent FTDI USB-Serial interface to connect to ROS host (tty/serial) See Evaluation Boards
  • Epson IMU (G320/G330/G354/G364/G365/G366/G370/V340) IMU models
  • ROS Indigo or later (via download) ROS.org

How do I use the driver?

  • This code assumes that the user is familiar with building ROS packages using the catkin build process.
  • NOTE: This is NOT detailed instructions describing step by step procedures on how to build and install this ROS driver.
  • Please refer to the ROS.org website for more detailed instructions on configuring the ROS environment & the ROS package build process. ROS.org
  • NOTE: At bare minimum, you must modify the CMakeLists.txt, or any time you change to a different IMU model, then build this package running “catkin_make”.
  • If the IMU model is unchanged, then subsequent changes to IMU settings can be done by instead editing the IMU model specific .launch file located in the launch/ folder.
  • The IMU model specific launch file should only be used in conjunction with the same catkin-built executable of the same matching the IMU model.
  • NOTE: Do not just switch .launch files without modifying the CMakeList.txt & rebuilding the executable to match the IMU model. Do not mix IMU model launch files without the matching IMU model catkin built binaries.

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

  • NOTE: In the hcl_linux.c, there are empty functions for time delays in millisecond and microseconds using seDelayMS() and seDelayMicroSecs(), respectively.
  • On embedded Linux platforms, the user may need 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 can be 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?

  • Because this driver connects to the IMU using the UART interface, the use of GPIO pins for connecting to the IMU RESET#, EXT, or DRDY is purely optional, and mainly intended for embedded Linux platforms (non-PC based).
  • When possible, connecting the RESET# is recommended to force Hardware Reset during every IMU initialization, for better robustness.
  • Although this code does not implement GPIO functions, this code is structured for the user to easily redirect GPIO control to low-level hardware GPIO function calls for ease of implementation.
  • There is no standard method to implement GPIO connections on embedded Linux platform, but the following files typically need changes:
  src/hcl_linux.c
  src/hcl_gpio.c
  src/hcl_gpio.h

  • Typically, an external library needs to be invoked to initialize & enable GPIO HW functions on the user’s embedded platform.

  • This typically requires changes to hcl_linux.c

    • add #include to external library near the top of hcl_linux.c
    • add the initialization call inside the seInit() function in hcl_linux.c

For example on an Raspberry Pi, the following changes can be made to hcl_linux.c:

``` …

#include #include #include // <== Added external library

int seInit(void) { // Initialize wiringPi libraries // <== Added printf(“\r\nInitializing libraries…”); // <== Added if(wiringPiSetupGpio() != 0) { // <== Added external library initialization printf(“\r\nError: could not initialize wiringPI libraries. Exiting…\r\n”); // <== Added

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package ess_imu_ros1_uart_driver

1.4.0 (2023-05-24)

  • adds support for G330PDG0, G366PDG0, G370PDS0, G370PDG0, G370PDT0, remove G325, G365PDx0, G370PDF0
  • adds output message at start of execution to display the device model that the executable is built for
  • adds output message to read the device model and warn if there is a mismatch with executable build

1.3.2 (2022-08-03)

  • update cmake_minimum_required to avoid unstable build on buildfarm due to CMP0048 warning
  • update README.md for name change in package.xml, CMakeLists.txt
  • add dependency geometry_msgs and tf2
  • fix for name change in package.xml, CMakeLists.txt, launch files
  • Cleanup description of applicable licensing for files BSD-3 and Public Domain

1.3.1 (2022-07-19)

  • release 1st time
  • renamed from package from epson_imu_uart_driver

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_ros1_uart_driver at Robotics Stack Exchange

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

ess_imu_ros1_uart_driver package from ess_imu_ros1_uart_driver repo

ess_imu_ros1_uart_driver

ROS Distro
melodic

Package Summary

Tags No category tags.
Version 1.4.0
License BSD
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/cubicleguy/ess_imu_ros1_uart_driver.git
VCS Type git
VCS Version main
Last Updated 2023-11-30
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

ROS1 package for Epson IMU using UART interface based on C++ wrapper of Linux C driver

Additional Links

Maintainers

  • Raymond Chow

Authors

No additional authors.

** This repo is deprecated and read-only **

** Please use ess_imu_driver instead **

README for Epson IMU Driver using UART interface for ROS

What is this repository for?

  • This code provides interface between Epson IMU and ROS using the UART interface.
  • The UART connection can be either direct or by USB-serial converter such as FTDI bridge ICs.
  • The src/epson_imu_uart_driver_node.cpp is the ROS C++ wrapper used to communicate with ROS
  • The other source files in src/ are based on the Linux C driver originally released by Epson: Epson IMU UART-only Linux User-space Driver Example
  • Information about ROS, ROS packages, and tutorials can be found: ROS.org

What kind of hardware or software will I likely need?

This will likely require the following:

  • Epson USB evaluation board or equivalent FTDI USB-Serial interface to connect to ROS host (tty/serial) See Evaluation Boards
  • Epson IMU (G320/G330/G354/G364/G365/G366/G370/V340) IMU models
  • ROS Indigo or later (via download) ROS.org

How do I use the driver?

  • This code assumes that the user is familiar with building ROS packages using the catkin build process.
  • NOTE: This is NOT detailed instructions describing step by step procedures on how to build and install this ROS driver.
  • Please refer to the ROS.org website for more detailed instructions on configuring the ROS environment & the ROS package build process. ROS.org
  • NOTE: At bare minimum, you must modify the CMakeLists.txt, or any time you change to a different IMU model, then build this package running “catkin_make”.
  • If the IMU model is unchanged, then subsequent changes to IMU settings can be done by instead editing the IMU model specific .launch file located in the launch/ folder.
  • The IMU model specific launch file should only be used in conjunction with the same catkin-built executable of the same matching the IMU model.
  • NOTE: Do not just switch .launch files without modifying the CMakeList.txt & rebuilding the executable to match the IMU model. Do not mix IMU model launch files without the matching IMU model catkin built binaries.

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

  • NOTE: In the hcl_linux.c, there are empty functions for time delays in millisecond and microseconds using seDelayMS() and seDelayMicroSecs(), respectively.
  • On embedded Linux platforms, the user may need 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 can be 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?

  • Because this driver connects to the IMU using the UART interface, the use of GPIO pins for connecting to the IMU RESET#, EXT, or DRDY is purely optional, and mainly intended for embedded Linux platforms (non-PC based).
  • When possible, connecting the RESET# is recommended to force Hardware Reset during every IMU initialization, for better robustness.
  • Although this code does not implement GPIO functions, this code is structured for the user to easily redirect GPIO control to low-level hardware GPIO function calls for ease of implementation.
  • There is no standard method to implement GPIO connections on embedded Linux platform, but the following files typically need changes:
  src/hcl_linux.c
  src/hcl_gpio.c
  src/hcl_gpio.h

  • Typically, an external library needs to be invoked to initialize & enable GPIO HW functions on the user’s embedded platform.

  • This typically requires changes to hcl_linux.c

    • add #include to external library near the top of hcl_linux.c
    • add the initialization call inside the seInit() function in hcl_linux.c

For example on an Raspberry Pi, the following changes can be made to hcl_linux.c:

``` …

#include #include #include // <== Added external library

int seInit(void) { // Initialize wiringPi libraries // <== Added printf(“\r\nInitializing libraries…”); // <== Added if(wiringPiSetupGpio() != 0) { // <== Added external library initialization printf(“\r\nError: could not initialize wiringPI libraries. Exiting…\r\n”); // <== Added

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package ess_imu_ros1_uart_driver

1.4.0 (2023-05-24)

  • adds support for G330PDG0, G366PDG0, G370PDS0, G370PDG0, G370PDT0, remove G325, G365PDx0, G370PDF0
  • adds output message at start of execution to display the device model that the executable is built for
  • adds output message to read the device model and warn if there is a mismatch with executable build

1.3.2 (2022-08-03)

  • update cmake_minimum_required to avoid unstable build on buildfarm due to CMP0048 warning
  • update README.md for name change in package.xml, CMakeLists.txt
  • add dependency geometry_msgs and tf2
  • fix for name change in package.xml, CMakeLists.txt, launch files
  • Cleanup description of applicable licensing for files BSD-3 and Public Domain

1.3.1 (2022-07-19)

  • release 1st time
  • renamed from package from epson_imu_uart_driver

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_ros1_uart_driver at Robotics Stack Exchange

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

ess_imu_ros1_uart_driver package from ess_imu_ros1_uart_driver repo

ess_imu_ros1_uart_driver

ROS Distro
melodic

Package Summary

Tags No category tags.
Version 1.4.0
License BSD
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/cubicleguy/ess_imu_ros1_uart_driver.git
VCS Type git
VCS Version main
Last Updated 2023-11-30
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

ROS1 package for Epson IMU using UART interface based on C++ wrapper of Linux C driver

Additional Links

Maintainers

  • Raymond Chow

Authors

No additional authors.

** This repo is deprecated and read-only **

** Please use ess_imu_driver instead **

README for Epson IMU Driver using UART interface for ROS

What is this repository for?

  • This code provides interface between Epson IMU and ROS using the UART interface.
  • The UART connection can be either direct or by USB-serial converter such as FTDI bridge ICs.
  • The src/epson_imu_uart_driver_node.cpp is the ROS C++ wrapper used to communicate with ROS
  • The other source files in src/ are based on the Linux C driver originally released by Epson: Epson IMU UART-only Linux User-space Driver Example
  • Information about ROS, ROS packages, and tutorials can be found: ROS.org

What kind of hardware or software will I likely need?

This will likely require the following:

  • Epson USB evaluation board or equivalent FTDI USB-Serial interface to connect to ROS host (tty/serial) See Evaluation Boards
  • Epson IMU (G320/G330/G354/G364/G365/G366/G370/V340) IMU models
  • ROS Indigo or later (via download) ROS.org

How do I use the driver?

  • This code assumes that the user is familiar with building ROS packages using the catkin build process.
  • NOTE: This is NOT detailed instructions describing step by step procedures on how to build and install this ROS driver.
  • Please refer to the ROS.org website for more detailed instructions on configuring the ROS environment & the ROS package build process. ROS.org
  • NOTE: At bare minimum, you must modify the CMakeLists.txt, or any time you change to a different IMU model, then build this package running “catkin_make”.
  • If the IMU model is unchanged, then subsequent changes to IMU settings can be done by instead editing the IMU model specific .launch file located in the launch/ folder.
  • The IMU model specific launch file should only be used in conjunction with the same catkin-built executable of the same matching the IMU model.
  • NOTE: Do not just switch .launch files without modifying the CMakeList.txt & rebuilding the executable to match the IMU model. Do not mix IMU model launch files without the matching IMU model catkin built binaries.

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

  • NOTE: In the hcl_linux.c, there are empty functions for time delays in millisecond and microseconds using seDelayMS() and seDelayMicroSecs(), respectively.
  • On embedded Linux platforms, the user may need 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 can be 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?

  • Because this driver connects to the IMU using the UART interface, the use of GPIO pins for connecting to the IMU RESET#, EXT, or DRDY is purely optional, and mainly intended for embedded Linux platforms (non-PC based).
  • When possible, connecting the RESET# is recommended to force Hardware Reset during every IMU initialization, for better robustness.
  • Although this code does not implement GPIO functions, this code is structured for the user to easily redirect GPIO control to low-level hardware GPIO function calls for ease of implementation.
  • There is no standard method to implement GPIO connections on embedded Linux platform, but the following files typically need changes:
  src/hcl_linux.c
  src/hcl_gpio.c
  src/hcl_gpio.h

  • Typically, an external library needs to be invoked to initialize & enable GPIO HW functions on the user’s embedded platform.

  • This typically requires changes to hcl_linux.c

    • add #include to external library near the top of hcl_linux.c
    • add the initialization call inside the seInit() function in hcl_linux.c

For example on an Raspberry Pi, the following changes can be made to hcl_linux.c:

``` …

#include #include #include // <== Added external library

int seInit(void) { // Initialize wiringPi libraries // <== Added printf(“\r\nInitializing libraries…”); // <== Added if(wiringPiSetupGpio() != 0) { // <== Added external library initialization printf(“\r\nError: could not initialize wiringPI libraries. Exiting…\r\n”); // <== Added

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package ess_imu_ros1_uart_driver

1.4.0 (2023-05-24)

  • adds support for G330PDG0, G366PDG0, G370PDS0, G370PDG0, G370PDT0, remove G325, G365PDx0, G370PDF0
  • adds output message at start of execution to display the device model that the executable is built for
  • adds output message to read the device model and warn if there is a mismatch with executable build

1.3.2 (2022-08-03)

  • update cmake_minimum_required to avoid unstable build on buildfarm due to CMP0048 warning
  • update README.md for name change in package.xml, CMakeLists.txt
  • add dependency geometry_msgs and tf2
  • fix for name change in package.xml, CMakeLists.txt, launch files
  • Cleanup description of applicable licensing for files BSD-3 and Public Domain

1.3.1 (2022-07-19)

  • release 1st time
  • renamed from package from epson_imu_uart_driver

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_ros1_uart_driver at Robotics Stack Exchange

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

ess_imu_ros1_uart_driver package from ess_imu_ros1_uart_driver repo

ess_imu_ros1_uart_driver

ROS Distro
melodic

Package Summary

Tags No category tags.
Version 1.4.0
License BSD
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/cubicleguy/ess_imu_ros1_uart_driver.git
VCS Type git
VCS Version main
Last Updated 2023-11-30
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

ROS1 package for Epson IMU using UART interface based on C++ wrapper of Linux C driver

Additional Links

Maintainers

  • Raymond Chow

Authors

No additional authors.

** This repo is deprecated and read-only **

** Please use ess_imu_driver instead **

README for Epson IMU Driver using UART interface for ROS

What is this repository for?

  • This code provides interface between Epson IMU and ROS using the UART interface.
  • The UART connection can be either direct or by USB-serial converter such as FTDI bridge ICs.
  • The src/epson_imu_uart_driver_node.cpp is the ROS C++ wrapper used to communicate with ROS
  • The other source files in src/ are based on the Linux C driver originally released by Epson: Epson IMU UART-only Linux User-space Driver Example
  • Information about ROS, ROS packages, and tutorials can be found: ROS.org

What kind of hardware or software will I likely need?

This will likely require the following:

  • Epson USB evaluation board or equivalent FTDI USB-Serial interface to connect to ROS host (tty/serial) See Evaluation Boards
  • Epson IMU (G320/G330/G354/G364/G365/G366/G370/V340) IMU models
  • ROS Indigo or later (via download) ROS.org

How do I use the driver?

  • This code assumes that the user is familiar with building ROS packages using the catkin build process.
  • NOTE: This is NOT detailed instructions describing step by step procedures on how to build and install this ROS driver.
  • Please refer to the ROS.org website for more detailed instructions on configuring the ROS environment & the ROS package build process. ROS.org
  • NOTE: At bare minimum, you must modify the CMakeLists.txt, or any time you change to a different IMU model, then build this package running “catkin_make”.
  • If the IMU model is unchanged, then subsequent changes to IMU settings can be done by instead editing the IMU model specific .launch file located in the launch/ folder.
  • The IMU model specific launch file should only be used in conjunction with the same catkin-built executable of the same matching the IMU model.
  • NOTE: Do not just switch .launch files without modifying the CMakeList.txt & rebuilding the executable to match the IMU model. Do not mix IMU model launch files without the matching IMU model catkin built binaries.

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

  • NOTE: In the hcl_linux.c, there are empty functions for time delays in millisecond and microseconds using seDelayMS() and seDelayMicroSecs(), respectively.
  • On embedded Linux platforms, the user may need 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 can be 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?

  • Because this driver connects to the IMU using the UART interface, the use of GPIO pins for connecting to the IMU RESET#, EXT, or DRDY is purely optional, and mainly intended for embedded Linux platforms (non-PC based).
  • When possible, connecting the RESET# is recommended to force Hardware Reset during every IMU initialization, for better robustness.
  • Although this code does not implement GPIO functions, this code is structured for the user to easily redirect GPIO control to low-level hardware GPIO function calls for ease of implementation.
  • There is no standard method to implement GPIO connections on embedded Linux platform, but the following files typically need changes:
  src/hcl_linux.c
  src/hcl_gpio.c
  src/hcl_gpio.h

  • Typically, an external library needs to be invoked to initialize & enable GPIO HW functions on the user’s embedded platform.

  • This typically requires changes to hcl_linux.c

    • add #include to external library near the top of hcl_linux.c
    • add the initialization call inside the seInit() function in hcl_linux.c

For example on an Raspberry Pi, the following changes can be made to hcl_linux.c:

``` …

#include #include #include // <== Added external library

int seInit(void) { // Initialize wiringPi libraries // <== Added printf(“\r\nInitializing libraries…”); // <== Added if(wiringPiSetupGpio() != 0) { // <== Added external library initialization printf(“\r\nError: could not initialize wiringPI libraries. Exiting…\r\n”); // <== Added

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package ess_imu_ros1_uart_driver

1.4.0 (2023-05-24)

  • adds support for G330PDG0, G366PDG0, G370PDS0, G370PDG0, G370PDT0, remove G325, G365PDx0, G370PDF0
  • adds output message at start of execution to display the device model that the executable is built for
  • adds output message to read the device model and warn if there is a mismatch with executable build

1.3.2 (2022-08-03)

  • update cmake_minimum_required to avoid unstable build on buildfarm due to CMP0048 warning
  • update README.md for name change in package.xml, CMakeLists.txt
  • add dependency geometry_msgs and tf2
  • fix for name change in package.xml, CMakeLists.txt, launch files
  • Cleanup description of applicable licensing for files BSD-3 and Public Domain

1.3.1 (2022-07-19)

  • release 1st time
  • renamed from package from epson_imu_uart_driver

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_ros1_uart_driver at Robotics Stack Exchange

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

ess_imu_ros1_uart_driver package from ess_imu_ros1_uart_driver repo

ess_imu_ros1_uart_driver

ROS Distro
melodic

Package Summary

Tags No category tags.
Version 1.4.0
License BSD
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/cubicleguy/ess_imu_ros1_uart_driver.git
VCS Type git
VCS Version main
Last Updated 2023-11-30
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

ROS1 package for Epson IMU using UART interface based on C++ wrapper of Linux C driver

Additional Links

Maintainers

  • Raymond Chow

Authors

No additional authors.

** This repo is deprecated and read-only **

** Please use ess_imu_driver instead **

README for Epson IMU Driver using UART interface for ROS

What is this repository for?

  • This code provides interface between Epson IMU and ROS using the UART interface.
  • The UART connection can be either direct or by USB-serial converter such as FTDI bridge ICs.
  • The src/epson_imu_uart_driver_node.cpp is the ROS C++ wrapper used to communicate with ROS
  • The other source files in src/ are based on the Linux C driver originally released by Epson: Epson IMU UART-only Linux User-space Driver Example
  • Information about ROS, ROS packages, and tutorials can be found: ROS.org

What kind of hardware or software will I likely need?

This will likely require the following:

  • Epson USB evaluation board or equivalent FTDI USB-Serial interface to connect to ROS host (tty/serial) See Evaluation Boards
  • Epson IMU (G320/G330/G354/G364/G365/G366/G370/V340) IMU models
  • ROS Indigo or later (via download) ROS.org

How do I use the driver?

  • This code assumes that the user is familiar with building ROS packages using the catkin build process.
  • NOTE: This is NOT detailed instructions describing step by step procedures on how to build and install this ROS driver.
  • Please refer to the ROS.org website for more detailed instructions on configuring the ROS environment & the ROS package build process. ROS.org
  • NOTE: At bare minimum, you must modify the CMakeLists.txt, or any time you change to a different IMU model, then build this package running “catkin_make”.
  • If the IMU model is unchanged, then subsequent changes to IMU settings can be done by instead editing the IMU model specific .launch file located in the launch/ folder.
  • The IMU model specific launch file should only be used in conjunction with the same catkin-built executable of the same matching the IMU model.
  • NOTE: Do not just switch .launch files without modifying the CMakeList.txt & rebuilding the executable to match the IMU model. Do not mix IMU model launch files without the matching IMU model catkin built binaries.

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

  • NOTE: In the hcl_linux.c, there are empty functions for time delays in millisecond and microseconds using seDelayMS() and seDelayMicroSecs(), respectively.
  • On embedded Linux platforms, the user may need 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 can be 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?

  • Because this driver connects to the IMU using the UART interface, the use of GPIO pins for connecting to the IMU RESET#, EXT, or DRDY is purely optional, and mainly intended for embedded Linux platforms (non-PC based).
  • When possible, connecting the RESET# is recommended to force Hardware Reset during every IMU initialization, for better robustness.
  • Although this code does not implement GPIO functions, this code is structured for the user to easily redirect GPIO control to low-level hardware GPIO function calls for ease of implementation.
  • There is no standard method to implement GPIO connections on embedded Linux platform, but the following files typically need changes:
  src/hcl_linux.c
  src/hcl_gpio.c
  src/hcl_gpio.h

  • Typically, an external library needs to be invoked to initialize & enable GPIO HW functions on the user’s embedded platform.

  • This typically requires changes to hcl_linux.c

    • add #include to external library near the top of hcl_linux.c
    • add the initialization call inside the seInit() function in hcl_linux.c

For example on an Raspberry Pi, the following changes can be made to hcl_linux.c:

``` …

#include #include #include // <== Added external library

int seInit(void) { // Initialize wiringPi libraries // <== Added printf(“\r\nInitializing libraries…”); // <== Added if(wiringPiSetupGpio() != 0) { // <== Added external library initialization printf(“\r\nError: could not initialize wiringPI libraries. Exiting…\r\n”); // <== Added

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package ess_imu_ros1_uart_driver

1.4.0 (2023-05-24)

  • adds support for G330PDG0, G366PDG0, G370PDS0, G370PDG0, G370PDT0, remove G325, G365PDx0, G370PDF0
  • adds output message at start of execution to display the device model that the executable is built for
  • adds output message to read the device model and warn if there is a mismatch with executable build

1.3.2 (2022-08-03)

  • update cmake_minimum_required to avoid unstable build on buildfarm due to CMP0048 warning
  • update README.md for name change in package.xml, CMakeLists.txt
  • add dependency geometry_msgs and tf2
  • fix for name change in package.xml, CMakeLists.txt, launch files
  • Cleanup description of applicable licensing for files BSD-3 and Public Domain

1.3.1 (2022-07-19)

  • release 1st time
  • renamed from package from epson_imu_uart_driver

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_ros1_uart_driver at Robotics Stack Exchange

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

ess_imu_ros1_uart_driver package from ess_imu_ros1_uart_driver repo

ess_imu_ros1_uart_driver

ROS Distro
melodic

Package Summary

Tags No category tags.
Version 1.4.0
License BSD
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/cubicleguy/ess_imu_ros1_uart_driver.git
VCS Type git
VCS Version main
Last Updated 2023-11-30
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

ROS1 package for Epson IMU using UART interface based on C++ wrapper of Linux C driver

Additional Links

Maintainers

  • Raymond Chow

Authors

No additional authors.

** This repo is deprecated and read-only **

** Please use ess_imu_driver instead **

README for Epson IMU Driver using UART interface for ROS

What is this repository for?

  • This code provides interface between Epson IMU and ROS using the UART interface.
  • The UART connection can be either direct or by USB-serial converter such as FTDI bridge ICs.
  • The src/epson_imu_uart_driver_node.cpp is the ROS C++ wrapper used to communicate with ROS
  • The other source files in src/ are based on the Linux C driver originally released by Epson: Epson IMU UART-only Linux User-space Driver Example
  • Information about ROS, ROS packages, and tutorials can be found: ROS.org

What kind of hardware or software will I likely need?

This will likely require the following:

  • Epson USB evaluation board or equivalent FTDI USB-Serial interface to connect to ROS host (tty/serial) See Evaluation Boards
  • Epson IMU (G320/G330/G354/G364/G365/G366/G370/V340) IMU models
  • ROS Indigo or later (via download) ROS.org

How do I use the driver?

  • This code assumes that the user is familiar with building ROS packages using the catkin build process.
  • NOTE: This is NOT detailed instructions describing step by step procedures on how to build and install this ROS driver.
  • Please refer to the ROS.org website for more detailed instructions on configuring the ROS environment & the ROS package build process. ROS.org
  • NOTE: At bare minimum, you must modify the CMakeLists.txt, or any time you change to a different IMU model, then build this package running “catkin_make”.
  • If the IMU model is unchanged, then subsequent changes to IMU settings can be done by instead editing the IMU model specific .launch file located in the launch/ folder.
  • The IMU model specific launch file should only be used in conjunction with the same catkin-built executable of the same matching the IMU model.
  • NOTE: Do not just switch .launch files without modifying the CMakeList.txt & rebuilding the executable to match the IMU model. Do not mix IMU model launch files without the matching IMU model catkin built binaries.

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

  • NOTE: In the hcl_linux.c, there are empty functions for time delays in millisecond and microseconds using seDelayMS() and seDelayMicroSecs(), respectively.
  • On embedded Linux platforms, the user may need 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 can be 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?

  • Because this driver connects to the IMU using the UART interface, the use of GPIO pins for connecting to the IMU RESET#, EXT, or DRDY is purely optional, and mainly intended for embedded Linux platforms (non-PC based).
  • When possible, connecting the RESET# is recommended to force Hardware Reset during every IMU initialization, for better robustness.
  • Although this code does not implement GPIO functions, this code is structured for the user to easily redirect GPIO control to low-level hardware GPIO function calls for ease of implementation.
  • There is no standard method to implement GPIO connections on embedded Linux platform, but the following files typically need changes:
  src/hcl_linux.c
  src/hcl_gpio.c
  src/hcl_gpio.h

  • Typically, an external library needs to be invoked to initialize & enable GPIO HW functions on the user’s embedded platform.

  • This typically requires changes to hcl_linux.c

    • add #include to external library near the top of hcl_linux.c
    • add the initialization call inside the seInit() function in hcl_linux.c

For example on an Raspberry Pi, the following changes can be made to hcl_linux.c:

``` …

#include #include #include // <== Added external library

int seInit(void) { // Initialize wiringPi libraries // <== Added printf(“\r\nInitializing libraries…”); // <== Added if(wiringPiSetupGpio() != 0) { // <== Added external library initialization printf(“\r\nError: could not initialize wiringPI libraries. Exiting…\r\n”); // <== Added

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package ess_imu_ros1_uart_driver

1.4.0 (2023-05-24)

  • adds support for G330PDG0, G366PDG0, G370PDS0, G370PDG0, G370PDT0, remove G325, G365PDx0, G370PDF0
  • adds output message at start of execution to display the device model that the executable is built for
  • adds output message to read the device model and warn if there is a mismatch with executable build

1.3.2 (2022-08-03)

  • update cmake_minimum_required to avoid unstable build on buildfarm due to CMP0048 warning
  • update README.md for name change in package.xml, CMakeLists.txt
  • add dependency geometry_msgs and tf2
  • fix for name change in package.xml, CMakeLists.txt, launch files
  • Cleanup description of applicable licensing for files BSD-3 and Public Domain

1.3.1 (2022-07-19)

  • release 1st time
  • renamed from package from epson_imu_uart_driver

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_ros1_uart_driver at Robotics Stack Exchange

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

ess_imu_ros1_uart_driver package from ess_imu_ros1_uart_driver repo

ess_imu_ros1_uart_driver

ROS Distro
melodic

Package Summary

Tags No category tags.
Version 1.4.0
License BSD
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/cubicleguy/ess_imu_ros1_uart_driver.git
VCS Type git
VCS Version main
Last Updated 2023-11-30
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

ROS1 package for Epson IMU using UART interface based on C++ wrapper of Linux C driver

Additional Links

Maintainers

  • Raymond Chow

Authors

No additional authors.

** This repo is deprecated and read-only **

** Please use ess_imu_driver instead **

README for Epson IMU Driver using UART interface for ROS

What is this repository for?

  • This code provides interface between Epson IMU and ROS using the UART interface.
  • The UART connection can be either direct or by USB-serial converter such as FTDI bridge ICs.
  • The src/epson_imu_uart_driver_node.cpp is the ROS C++ wrapper used to communicate with ROS
  • The other source files in src/ are based on the Linux C driver originally released by Epson: Epson IMU UART-only Linux User-space Driver Example
  • Information about ROS, ROS packages, and tutorials can be found: ROS.org

What kind of hardware or software will I likely need?

This will likely require the following:

  • Epson USB evaluation board or equivalent FTDI USB-Serial interface to connect to ROS host (tty/serial) See Evaluation Boards
  • Epson IMU (G320/G330/G354/G364/G365/G366/G370/V340) IMU models
  • ROS Indigo or later (via download) ROS.org

How do I use the driver?

  • This code assumes that the user is familiar with building ROS packages using the catkin build process.
  • NOTE: This is NOT detailed instructions describing step by step procedures on how to build and install this ROS driver.
  • Please refer to the ROS.org website for more detailed instructions on configuring the ROS environment & the ROS package build process. ROS.org
  • NOTE: At bare minimum, you must modify the CMakeLists.txt, or any time you change to a different IMU model, then build this package running “catkin_make”.
  • If the IMU model is unchanged, then subsequent changes to IMU settings can be done by instead editing the IMU model specific .launch file located in the launch/ folder.
  • The IMU model specific launch file should only be used in conjunction with the same catkin-built executable of the same matching the IMU model.
  • NOTE: Do not just switch .launch files without modifying the CMakeList.txt & rebuilding the executable to match the IMU model. Do not mix IMU model launch files without the matching IMU model catkin built binaries.

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

  • NOTE: In the hcl_linux.c, there are empty functions for time delays in millisecond and microseconds using seDelayMS() and seDelayMicroSecs(), respectively.
  • On embedded Linux platforms, the user may need 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 can be 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?

  • Because this driver connects to the IMU using the UART interface, the use of GPIO pins for connecting to the IMU RESET#, EXT, or DRDY is purely optional, and mainly intended for embedded Linux platforms (non-PC based).
  • When possible, connecting the RESET# is recommended to force Hardware Reset during every IMU initialization, for better robustness.
  • Although this code does not implement GPIO functions, this code is structured for the user to easily redirect GPIO control to low-level hardware GPIO function calls for ease of implementation.
  • There is no standard method to implement GPIO connections on embedded Linux platform, but the following files typically need changes:
  src/hcl_linux.c
  src/hcl_gpio.c
  src/hcl_gpio.h

  • Typically, an external library needs to be invoked to initialize & enable GPIO HW functions on the user’s embedded platform.

  • This typically requires changes to hcl_linux.c

    • add #include to external library near the top of hcl_linux.c
    • add the initialization call inside the seInit() function in hcl_linux.c

For example on an Raspberry Pi, the following changes can be made to hcl_linux.c:

``` …

#include #include #include // <== Added external library

int seInit(void) { // Initialize wiringPi libraries // <== Added printf(“\r\nInitializing libraries…”); // <== Added if(wiringPiSetupGpio() != 0) { // <== Added external library initialization printf(“\r\nError: could not initialize wiringPI libraries. Exiting…\r\n”); // <== Added

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package ess_imu_ros1_uart_driver

1.4.0 (2023-05-24)

  • adds support for G330PDG0, G366PDG0, G370PDS0, G370PDG0, G370PDT0, remove G325, G365PDx0, G370PDF0
  • adds output message at start of execution to display the device model that the executable is built for
  • adds output message to read the device model and warn if there is a mismatch with executable build

1.3.2 (2022-08-03)

  • update cmake_minimum_required to avoid unstable build on buildfarm due to CMP0048 warning
  • update README.md for name change in package.xml, CMakeLists.txt
  • add dependency geometry_msgs and tf2
  • fix for name change in package.xml, CMakeLists.txt, launch files
  • Cleanup description of applicable licensing for files BSD-3 and Public Domain

1.3.1 (2022-07-19)

  • release 1st time
  • renamed from package from epson_imu_uart_driver

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_ros1_uart_driver at Robotics Stack Exchange

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

ess_imu_ros1_uart_driver package from ess_imu_ros1_uart_driver repo

ess_imu_ros1_uart_driver

ROS Distro
melodic

Package Summary

Tags No category tags.
Version 1.4.0
License BSD
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/cubicleguy/ess_imu_ros1_uart_driver.git
VCS Type git
VCS Version main
Last Updated 2023-11-30
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

ROS1 package for Epson IMU using UART interface based on C++ wrapper of Linux C driver

Additional Links

Maintainers

  • Raymond Chow

Authors

No additional authors.

** This repo is deprecated and read-only **

** Please use ess_imu_driver instead **

README for Epson IMU Driver using UART interface for ROS

What is this repository for?

  • This code provides interface between Epson IMU and ROS using the UART interface.
  • The UART connection can be either direct or by USB-serial converter such as FTDI bridge ICs.
  • The src/epson_imu_uart_driver_node.cpp is the ROS C++ wrapper used to communicate with ROS
  • The other source files in src/ are based on the Linux C driver originally released by Epson: Epson IMU UART-only Linux User-space Driver Example
  • Information about ROS, ROS packages, and tutorials can be found: ROS.org

What kind of hardware or software will I likely need?

This will likely require the following:

  • Epson USB evaluation board or equivalent FTDI USB-Serial interface to connect to ROS host (tty/serial) See Evaluation Boards
  • Epson IMU (G320/G330/G354/G364/G365/G366/G370/V340) IMU models
  • ROS Indigo or later (via download) ROS.org

How do I use the driver?

  • This code assumes that the user is familiar with building ROS packages using the catkin build process.
  • NOTE: This is NOT detailed instructions describing step by step procedures on how to build and install this ROS driver.
  • Please refer to the ROS.org website for more detailed instructions on configuring the ROS environment & the ROS package build process. ROS.org
  • NOTE: At bare minimum, you must modify the CMakeLists.txt, or any time you change to a different IMU model, then build this package running “catkin_make”.
  • If the IMU model is unchanged, then subsequent changes to IMU settings can be done by instead editing the IMU model specific .launch file located in the launch/ folder.
  • The IMU model specific launch file should only be used in conjunction with the same catkin-built executable of the same matching the IMU model.
  • NOTE: Do not just switch .launch files without modifying the CMakeList.txt & rebuilding the executable to match the IMU model. Do not mix IMU model launch files without the matching IMU model catkin built binaries.

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

  • NOTE: In the hcl_linux.c, there are empty functions for time delays in millisecond and microseconds using seDelayMS() and seDelayMicroSecs(), respectively.
  • On embedded Linux platforms, the user may need 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 can be 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?

  • Because this driver connects to the IMU using the UART interface, the use of GPIO pins for connecting to the IMU RESET#, EXT, or DRDY is purely optional, and mainly intended for embedded Linux platforms (non-PC based).
  • When possible, connecting the RESET# is recommended to force Hardware Reset during every IMU initialization, for better robustness.
  • Although this code does not implement GPIO functions, this code is structured for the user to easily redirect GPIO control to low-level hardware GPIO function calls for ease of implementation.
  • There is no standard method to implement GPIO connections on embedded Linux platform, but the following files typically need changes:
  src/hcl_linux.c
  src/hcl_gpio.c
  src/hcl_gpio.h

  • Typically, an external library needs to be invoked to initialize & enable GPIO HW functions on the user’s embedded platform.

  • This typically requires changes to hcl_linux.c

    • add #include to external library near the top of hcl_linux.c
    • add the initialization call inside the seInit() function in hcl_linux.c

For example on an Raspberry Pi, the following changes can be made to hcl_linux.c:

``` …

#include #include #include // <== Added external library

int seInit(void) { // Initialize wiringPi libraries // <== Added printf(“\r\nInitializing libraries…”); // <== Added if(wiringPiSetupGpio() != 0) { // <== Added external library initialization printf(“\r\nError: could not initialize wiringPI libraries. Exiting…\r\n”); // <== Added

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package ess_imu_ros1_uart_driver

1.4.0 (2023-05-24)

  • adds support for G330PDG0, G366PDG0, G370PDS0, G370PDG0, G370PDT0, remove G325, G365PDx0, G370PDF0
  • adds output message at start of execution to display the device model that the executable is built for
  • adds output message to read the device model and warn if there is a mismatch with executable build

1.3.2 (2022-08-03)

  • update cmake_minimum_required to avoid unstable build on buildfarm due to CMP0048 warning
  • update README.md for name change in package.xml, CMakeLists.txt
  • add dependency geometry_msgs and tf2
  • fix for name change in package.xml, CMakeLists.txt, launch files
  • Cleanup description of applicable licensing for files BSD-3 and Public Domain

1.3.1 (2022-07-19)

  • release 1st time
  • renamed from package from epson_imu_uart_driver

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_ros1_uart_driver at Robotics Stack Exchange

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

ess_imu_ros1_uart_driver package from ess_imu_ros1_uart_driver repo

ess_imu_ros1_uart_driver

ROS Distro
melodic

Package Summary

Tags No category tags.
Version 1.4.0
License BSD
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/cubicleguy/ess_imu_ros1_uart_driver.git
VCS Type git
VCS Version main
Last Updated 2023-11-30
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

ROS1 package for Epson IMU using UART interface based on C++ wrapper of Linux C driver

Additional Links

Maintainers

  • Raymond Chow

Authors

No additional authors.

** This repo is deprecated and read-only **

** Please use ess_imu_driver instead **

README for Epson IMU Driver using UART interface for ROS

What is this repository for?

  • This code provides interface between Epson IMU and ROS using the UART interface.
  • The UART connection can be either direct or by USB-serial converter such as FTDI bridge ICs.
  • The src/epson_imu_uart_driver_node.cpp is the ROS C++ wrapper used to communicate with ROS
  • The other source files in src/ are based on the Linux C driver originally released by Epson: Epson IMU UART-only Linux User-space Driver Example
  • Information about ROS, ROS packages, and tutorials can be found: ROS.org

What kind of hardware or software will I likely need?

This will likely require the following:

  • Epson USB evaluation board or equivalent FTDI USB-Serial interface to connect to ROS host (tty/serial) See Evaluation Boards
  • Epson IMU (G320/G330/G354/G364/G365/G366/G370/V340) IMU models
  • ROS Indigo or later (via download) ROS.org

How do I use the driver?

  • This code assumes that the user is familiar with building ROS packages using the catkin build process.
  • NOTE: This is NOT detailed instructions describing step by step procedures on how to build and install this ROS driver.
  • Please refer to the ROS.org website for more detailed instructions on configuring the ROS environment & the ROS package build process. ROS.org
  • NOTE: At bare minimum, you must modify the CMakeLists.txt, or any time you change to a different IMU model, then build this package running “catkin_make”.
  • If the IMU model is unchanged, then subsequent changes to IMU settings can be done by instead editing the IMU model specific .launch file located in the launch/ folder.
  • The IMU model specific launch file should only be used in conjunction with the same catkin-built executable of the same matching the IMU model.
  • NOTE: Do not just switch .launch files without modifying the CMakeList.txt & rebuilding the executable to match the IMU model. Do not mix IMU model launch files without the matching IMU model catkin built binaries.

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

  • NOTE: In the hcl_linux.c, there are empty functions for time delays in millisecond and microseconds using seDelayMS() and seDelayMicroSecs(), respectively.
  • On embedded Linux platforms, the user may need 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 can be 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?

  • Because this driver connects to the IMU using the UART interface, the use of GPIO pins for connecting to the IMU RESET#, EXT, or DRDY is purely optional, and mainly intended for embedded Linux platforms (non-PC based).
  • When possible, connecting the RESET# is recommended to force Hardware Reset during every IMU initialization, for better robustness.
  • Although this code does not implement GPIO functions, this code is structured for the user to easily redirect GPIO control to low-level hardware GPIO function calls for ease of implementation.
  • There is no standard method to implement GPIO connections on embedded Linux platform, but the following files typically need changes:
  src/hcl_linux.c
  src/hcl_gpio.c
  src/hcl_gpio.h

  • Typically, an external library needs to be invoked to initialize & enable GPIO HW functions on the user’s embedded platform.

  • This typically requires changes to hcl_linux.c

    • add #include to external library near the top of hcl_linux.c
    • add the initialization call inside the seInit() function in hcl_linux.c

For example on an Raspberry Pi, the following changes can be made to hcl_linux.c:

``` …

#include #include #include // <== Added external library

int seInit(void) { // Initialize wiringPi libraries // <== Added printf(“\r\nInitializing libraries…”); // <== Added if(wiringPiSetupGpio() != 0) { // <== Added external library initialization printf(“\r\nError: could not initialize wiringPI libraries. Exiting…\r\n”); // <== Added

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package ess_imu_ros1_uart_driver

1.4.0 (2023-05-24)

  • adds support for G330PDG0, G366PDG0, G370PDS0, G370PDG0, G370PDT0, remove G325, G365PDx0, G370PDF0
  • adds output message at start of execution to display the device model that the executable is built for
  • adds output message to read the device model and warn if there is a mismatch with executable build

1.3.2 (2022-08-03)

  • update cmake_minimum_required to avoid unstable build on buildfarm due to CMP0048 warning
  • update README.md for name change in package.xml, CMakeLists.txt
  • add dependency geometry_msgs and tf2
  • fix for name change in package.xml, CMakeLists.txt, launch files
  • Cleanup description of applicable licensing for files BSD-3 and Public Domain

1.3.1 (2022-07-19)

  • release 1st time
  • renamed from package from epson_imu_uart_driver

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_ros1_uart_driver at Robotics Stack Exchange

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

ess_imu_ros1_uart_driver package from ess_imu_ros1_uart_driver repo

ess_imu_ros1_uart_driver

ROS Distro
melodic

Package Summary

Tags No category tags.
Version 1.4.0
License BSD
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/cubicleguy/ess_imu_ros1_uart_driver.git
VCS Type git
VCS Version main
Last Updated 2023-11-30
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

ROS1 package for Epson IMU using UART interface based on C++ wrapper of Linux C driver

Additional Links

Maintainers

  • Raymond Chow

Authors

No additional authors.

** This repo is deprecated and read-only **

** Please use ess_imu_driver instead **

README for Epson IMU Driver using UART interface for ROS

What is this repository for?

  • This code provides interface between Epson IMU and ROS using the UART interface.
  • The UART connection can be either direct or by USB-serial converter such as FTDI bridge ICs.
  • The src/epson_imu_uart_driver_node.cpp is the ROS C++ wrapper used to communicate with ROS
  • The other source files in src/ are based on the Linux C driver originally released by Epson: Epson IMU UART-only Linux User-space Driver Example
  • Information about ROS, ROS packages, and tutorials can be found: ROS.org

What kind of hardware or software will I likely need?

This will likely require the following:

  • Epson USB evaluation board or equivalent FTDI USB-Serial interface to connect to ROS host (tty/serial) See Evaluation Boards
  • Epson IMU (G320/G330/G354/G364/G365/G366/G370/V340) IMU models
  • ROS Indigo or later (via download) ROS.org

How do I use the driver?

  • This code assumes that the user is familiar with building ROS packages using the catkin build process.
  • NOTE: This is NOT detailed instructions describing step by step procedures on how to build and install this ROS driver.
  • Please refer to the ROS.org website for more detailed instructions on configuring the ROS environment & the ROS package build process. ROS.org
  • NOTE: At bare minimum, you must modify the CMakeLists.txt, or any time you change to a different IMU model, then build this package running “catkin_make”.
  • If the IMU model is unchanged, then subsequent changes to IMU settings can be done by instead editing the IMU model specific .launch file located in the launch/ folder.
  • The IMU model specific launch file should only be used in conjunction with the same catkin-built executable of the same matching the IMU model.
  • NOTE: Do not just switch .launch files without modifying the CMakeList.txt & rebuilding the executable to match the IMU model. Do not mix IMU model launch files without the matching IMU model catkin built binaries.

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

  • NOTE: In the hcl_linux.c, there are empty functions for time delays in millisecond and microseconds using seDelayMS() and seDelayMicroSecs(), respectively.
  • On embedded Linux platforms, the user may need 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 can be 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?

  • Because this driver connects to the IMU using the UART interface, the use of GPIO pins for connecting to the IMU RESET#, EXT, or DRDY is purely optional, and mainly intended for embedded Linux platforms (non-PC based).
  • When possible, connecting the RESET# is recommended to force Hardware Reset during every IMU initialization, for better robustness.
  • Although this code does not implement GPIO functions, this code is structured for the user to easily redirect GPIO control to low-level hardware GPIO function calls for ease of implementation.
  • There is no standard method to implement GPIO connections on embedded Linux platform, but the following files typically need changes:
  src/hcl_linux.c
  src/hcl_gpio.c
  src/hcl_gpio.h

  • Typically, an external library needs to be invoked to initialize & enable GPIO HW functions on the user’s embedded platform.

  • This typically requires changes to hcl_linux.c

    • add #include to external library near the top of hcl_linux.c
    • add the initialization call inside the seInit() function in hcl_linux.c

For example on an Raspberry Pi, the following changes can be made to hcl_linux.c:

``` …

#include #include #include // <== Added external library

int seInit(void) { // Initialize wiringPi libraries // <== Added printf(“\r\nInitializing libraries…”); // <== Added if(wiringPiSetupGpio() != 0) { // <== Added external library initialization printf(“\r\nError: could not initialize wiringPI libraries. Exiting…\r\n”); // <== Added

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package ess_imu_ros1_uart_driver

1.4.0 (2023-05-24)

  • adds support for G330PDG0, G366PDG0, G370PDS0, G370PDG0, G370PDT0, remove G325, G365PDx0, G370PDF0
  • adds output message at start of execution to display the device model that the executable is built for
  • adds output message to read the device model and warn if there is a mismatch with executable build

1.3.2 (2022-08-03)

  • update cmake_minimum_required to avoid unstable build on buildfarm due to CMP0048 warning
  • update README.md for name change in package.xml, CMakeLists.txt
  • add dependency geometry_msgs and tf2
  • fix for name change in package.xml, CMakeLists.txt, launch files
  • Cleanup description of applicable licensing for files BSD-3 and Public Domain

1.3.1 (2022-07-19)

  • release 1st time
  • renamed from package from epson_imu_uart_driver

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_ros1_uart_driver at Robotics Stack Exchange

Package symbol

ess_imu_ros1_uart_driver package from ess_imu_ros1_uart_driver repo

ess_imu_ros1_uart_driver

ROS Distro
melodic

Package Summary

Tags No category tags.
Version 1.4.0
License BSD
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/cubicleguy/ess_imu_ros1_uart_driver.git
VCS Type git
VCS Version main
Last Updated 2023-11-30
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

ROS1 package for Epson IMU using UART interface based on C++ wrapper of Linux C driver

Additional Links

Maintainers

  • Raymond Chow

Authors

No additional authors.

** This repo is deprecated and read-only **

** Please use ess_imu_driver instead **

README for Epson IMU Driver using UART interface for ROS

What is this repository for?

  • This code provides interface between Epson IMU and ROS using the UART interface.
  • The UART connection can be either direct or by USB-serial converter such as FTDI bridge ICs.
  • The src/epson_imu_uart_driver_node.cpp is the ROS C++ wrapper used to communicate with ROS
  • The other source files in src/ are based on the Linux C driver originally released by Epson: Epson IMU UART-only Linux User-space Driver Example
  • Information about ROS, ROS packages, and tutorials can be found: ROS.org

What kind of hardware or software will I likely need?

This will likely require the following:

  • Epson USB evaluation board or equivalent FTDI USB-Serial interface to connect to ROS host (tty/serial) See Evaluation Boards
  • Epson IMU (G320/G330/G354/G364/G365/G366/G370/V340) IMU models
  • ROS Indigo or later (via download) ROS.org

How do I use the driver?

  • This code assumes that the user is familiar with building ROS packages using the catkin build process.
  • NOTE: This is NOT detailed instructions describing step by step procedures on how to build and install this ROS driver.
  • Please refer to the ROS.org website for more detailed instructions on configuring the ROS environment & the ROS package build process. ROS.org
  • NOTE: At bare minimum, you must modify the CMakeLists.txt, or any time you change to a different IMU model, then build this package running “catkin_make”.
  • If the IMU model is unchanged, then subsequent changes to IMU settings can be done by instead editing the IMU model specific .launch file located in the launch/ folder.
  • The IMU model specific launch file should only be used in conjunction with the same catkin-built executable of the same matching the IMU model.
  • NOTE: Do not just switch .launch files without modifying the CMakeList.txt & rebuilding the executable to match the IMU model. Do not mix IMU model launch files without the matching IMU model catkin built binaries.

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

  • NOTE: In the hcl_linux.c, there are empty functions for time delays in millisecond and microseconds using seDelayMS() and seDelayMicroSecs(), respectively.
  • On embedded Linux platforms, the user may need 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 can be 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?

  • Because this driver connects to the IMU using the UART interface, the use of GPIO pins for connecting to the IMU RESET#, EXT, or DRDY is purely optional, and mainly intended for embedded Linux platforms (non-PC based).
  • When possible, connecting the RESET# is recommended to force Hardware Reset during every IMU initialization, for better robustness.
  • Although this code does not implement GPIO functions, this code is structured for the user to easily redirect GPIO control to low-level hardware GPIO function calls for ease of implementation.
  • There is no standard method to implement GPIO connections on embedded Linux platform, but the following files typically need changes:
  src/hcl_linux.c
  src/hcl_gpio.c
  src/hcl_gpio.h

  • Typically, an external library needs to be invoked to initialize & enable GPIO HW functions on the user’s embedded platform.

  • This typically requires changes to hcl_linux.c

    • add #include to external library near the top of hcl_linux.c
    • add the initialization call inside the seInit() function in hcl_linux.c

For example on an Raspberry Pi, the following changes can be made to hcl_linux.c:

``` …

#include #include #include // <== Added external library

int seInit(void) { // Initialize wiringPi libraries // <== Added printf(“\r\nInitializing libraries…”); // <== Added if(wiringPiSetupGpio() != 0) { // <== Added external library initialization printf(“\r\nError: could not initialize wiringPI libraries. Exiting…\r\n”); // <== Added

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package ess_imu_ros1_uart_driver

1.4.0 (2023-05-24)

  • adds support for G330PDG0, G366PDG0, G370PDS0, G370PDG0, G370PDT0, remove G325, G365PDx0, G370PDF0
  • adds output message at start of execution to display the device model that the executable is built for
  • adds output message to read the device model and warn if there is a mismatch with executable build

1.3.2 (2022-08-03)

  • update cmake_minimum_required to avoid unstable build on buildfarm due to CMP0048 warning
  • update README.md for name change in package.xml, CMakeLists.txt
  • add dependency geometry_msgs and tf2
  • fix for name change in package.xml, CMakeLists.txt, launch files
  • Cleanup description of applicable licensing for files BSD-3 and Public Domain

1.3.1 (2022-07-19)

  • release 1st time
  • renamed from package from epson_imu_uart_driver

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_ros1_uart_driver at Robotics Stack Exchange

Package symbol

ess_imu_ros1_uart_driver package from ess_imu_ros1_uart_driver repo

ess_imu_ros1_uart_driver

ROS Distro
noetic

Package Summary

Tags No category tags.
Version 1.4.0
License BSD
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/cubicleguy/ess_imu_ros1_uart_driver.git
VCS Type git
VCS Version main
Last Updated 2023-11-30
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

ROS1 package for Epson IMU using UART interface based on C++ wrapper of Linux C driver

Additional Links

Maintainers

  • Raymond Chow

Authors

No additional authors.

** This repo is deprecated and read-only **

** Please use ess_imu_driver instead **

README for Epson IMU Driver using UART interface for ROS

What is this repository for?

  • This code provides interface between Epson IMU and ROS using the UART interface.
  • The UART connection can be either direct or by USB-serial converter such as FTDI bridge ICs.
  • The src/epson_imu_uart_driver_node.cpp is the ROS C++ wrapper used to communicate with ROS
  • The other source files in src/ are based on the Linux C driver originally released by Epson: Epson IMU UART-only Linux User-space Driver Example
  • Information about ROS, ROS packages, and tutorials can be found: ROS.org

What kind of hardware or software will I likely need?

This will likely require the following:

  • Epson USB evaluation board or equivalent FTDI USB-Serial interface to connect to ROS host (tty/serial) See Evaluation Boards
  • Epson IMU (G320/G330/G354/G364/G365/G366/G370/V340) IMU models
  • ROS Indigo or later (via download) ROS.org

How do I use the driver?

  • This code assumes that the user is familiar with building ROS packages using the catkin build process.
  • NOTE: This is NOT detailed instructions describing step by step procedures on how to build and install this ROS driver.
  • Please refer to the ROS.org website for more detailed instructions on configuring the ROS environment & the ROS package build process. ROS.org
  • NOTE: At bare minimum, you must modify the CMakeLists.txt, or any time you change to a different IMU model, then build this package running “catkin_make”.
  • If the IMU model is unchanged, then subsequent changes to IMU settings can be done by instead editing the IMU model specific .launch file located in the launch/ folder.
  • The IMU model specific launch file should only be used in conjunction with the same catkin-built executable of the same matching the IMU model.
  • NOTE: Do not just switch .launch files without modifying the CMakeList.txt & rebuilding the executable to match the IMU model. Do not mix IMU model launch files without the matching IMU model catkin built binaries.

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

  • NOTE: In the hcl_linux.c, there are empty functions for time delays in millisecond and microseconds using seDelayMS() and seDelayMicroSecs(), respectively.
  • On embedded Linux platforms, the user may need 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 can be 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?

  • Because this driver connects to the IMU using the UART interface, the use of GPIO pins for connecting to the IMU RESET#, EXT, or DRDY is purely optional, and mainly intended for embedded Linux platforms (non-PC based).
  • When possible, connecting the RESET# is recommended to force Hardware Reset during every IMU initialization, for better robustness.
  • Although this code does not implement GPIO functions, this code is structured for the user to easily redirect GPIO control to low-level hardware GPIO function calls for ease of implementation.
  • There is no standard method to implement GPIO connections on embedded Linux platform, but the following files typically need changes:
  src/hcl_linux.c
  src/hcl_gpio.c
  src/hcl_gpio.h

  • Typically, an external library needs to be invoked to initialize & enable GPIO HW functions on the user’s embedded platform.

  • This typically requires changes to hcl_linux.c

    • add #include to external library near the top of hcl_linux.c
    • add the initialization call inside the seInit() function in hcl_linux.c

For example on an Raspberry Pi, the following changes can be made to hcl_linux.c:

``` …

#include #include #include // <== Added external library

int seInit(void) { // Initialize wiringPi libraries // <== Added printf(“\r\nInitializing libraries…”); // <== Added if(wiringPiSetupGpio() != 0) { // <== Added external library initialization printf(“\r\nError: could not initialize wiringPI libraries. Exiting…\r\n”); // <== Added

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package ess_imu_ros1_uart_driver

1.4.0 (2023-05-24)

  • adds support for G330PDG0, G366PDG0, G370PDS0, G370PDG0, G370PDT0, remove G325, G365PDx0, G370PDF0
  • adds output message at start of execution to display the device model that the executable is built for
  • adds output message to read the device model and warn if there is a mismatch with executable build

1.3.2 (2022-08-03)

  • update cmake_minimum_required to avoid unstable build on buildfarm due to CMP0048 warning
  • update README.md for name change in package.xml, CMakeLists.txt
  • add dependency geometry_msgs and tf2
  • fix for name change in package.xml, CMakeLists.txt, launch files
  • Cleanup description of applicable licensing for files BSD-3 and Public Domain

1.3.1 (2022-07-19)

  • release 1st time
  • renamed from package from epson_imu_uart_driver

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_ros1_uart_driver at Robotics Stack Exchange