10 DOF ROS IMU (A)
| ||
Introduction
10 DOF ROS IMU (A) is a 10-axis IMU sensor that integrates an ARM 32-bit DSP processor, BLE5.3 Bluetooth, high-precision accelerometer, gyroscope, magnetometer, and temperature and pressure sensor. When used together, it can collect surrounding acceleration, gyroscope, and magnetic field data, and detect the motion attitude of the robot.
Features
- Adopts self-developed attitude estimation algorithm, it offers excellent real-time performance, high accuracy, and stability without drifting.
- Uses serial port and BLE5.3 Bluetooth communication to assist the robot in motion attitude and orientation detection.
- Supports Android, iOS, Windows, Linux systems, and other BLE Bluetooth devices for connection and use.
Specifications
Product | 10 DOF ROS IMU (A) |
Power supply | 3.3V~5V |
Baud rate | 115200 |
Interface package | ZH1.5-4A |
Communication format | 8 data bits, 1 stop bit, no parity bit |
Data packet format | Preamble+Start Code+Address+Length+Data Body+Checksum+End Code |
Data output | Acceleration, angular velocity, magnetic field vector, temperature, atmospheric pressure, Euler angle, quaternion |
Accelerometer | Range: ±16g Resolution: 0.00048g |
Gyroscope | Range: ±2000°/s Resolution: 0.061°/s |
Magnetometer | Range: ±8Guass Resolution: 0.12uT |
Temperature sensor | Range: -45℃~85℃ Resolution: 0.01℃(onboard temperature) |
Barometer | Range: 300~1200hPa Resolution: 0.006hPa |
Pinout Definition
Pin No. | Identifier | Description |
1 | 5V | 3.3V~5.0V power supply |
2 | G | Connect to GND, ground pin |
3 | Rx | Serial data receive pin |
4 | Tx | Serial data transmit pin |
Hardware connection
1. Serial port connection, red wire VCC, black wire GND, blue wire TXD, yellow wire RXD
2. This product does not include a USB to UART serial port module
- Assembly with same coordinate axes directions:
Axial description
The axial orientation of the 10 DOF ROS IMU (A) is shown in the figure above and conforms to the right-hand coordinate system
Dimensions
Demo
Serial communication
-
Install the serial port driver, find the device port number
Install the corresponding driver according to the type of serial port conversion module chip Take Windows as an example. The port number is shown in the following figure
-
Install the required dependencies
Windows, Linux:pip install pyserial numpy pygame PyOpenGL
-
Initialize
Replace the line 8 ser_port = "COM13" with the corresponding serial port, and rotate the Z-axis of the module more than a full circle perpendicular to the horizontal plane and the Z-axis balanced on the horizontal plane within 10 seconds
Windows, Linux:python3 imu_init.py
- Execute data parsing code
Replace the line 7 ser_port = "COM13" with the corresponding serial port
- Windows: Usually COMx.
python3 imu_uart.py
- Linux: Different ports for different systems, for example /dev/ttyUSBx, /dev/ttySx, you can query the device for confirmation of newly added devices by hot-plugging the devices
ls /dev/tty*
python3 imu_uart.py
-
GUI visualization interface
Need to stop the data parsing program in the previous step and execute the following programpython3 imu_uart_gui.py
Bluetooth communication
-
Install the Bluetooth debugging software and find the MAC address of the device
- Instal nRF Connect on Android
- Instal LightBlue on Apple
- Instal nRF Connect on Android
-
Install the required dependencies
- Windows:
pip install bleak numpy
- Linux:
sudo apt-get install bluez libbluetooth-dev
pip install gatt
-
Execute the code
Before use, it is recommended to perform the initialization steps in serial communication
- Windows: Replace line 14 par_device_addr="70:53:B2:02:20:02" with the MAC address found in the first step
python3 imu_ble.py
- Linux: Replace with the MAC address found in the first step
python3 imu_ble.py 70:53:B2:02:20:02
ROS serial communication
Take "/dev/ttyUSB0" as an example
-
Find the device port number
- Query the device for confirmation of newly added devices by hot-plugging the devices
ls /dev/tty*
- Grant serial port permissions:
sudo chmod 666 /dev/ttyUSB0
-
Install the required dependencies
- ROS1 noetic:
sudo apt update && sudo apt install ros-noetic-serial ros-noetic-imu-tools
- ROS2 humble:
Install the serial port library
cd serial && mkdir build && cd build cmake .. && make sudo make install
Install other dependencies
sudo apt update && sudo apt install libserial-dev ros-humble-imu-tools
- ROS1 noetic:
-
Compile
- ROS1 noetic:
- Go to the root directory of the workspace and compile
catkin_make -DCATKIN_WHITELIST_PACKAGES="imu"
Update environment variables
source devel/setup.bash
- ROS2 humble:
- Go to the root directory of the workspace and compile
colcon build --packages-select imu
- Update environment variables
source install/setup.bash
- ROS1 noetic:
-
- Execute data parsing code
- ROS1 noetic:
- Need to have Roscore started, or have a launch file running in the system
- (Optional) Open a new window to start roscore
roscore
- Open a new window to parse data
rosrun imu imu_node _port_name:=/dev/ttyUSB0
- Open a new window to view data
rostopic echo /imu/data
- ROS2 humble:
- Open a new window to parse data
ros2 run imu imu_node --ros-args --param port_name:=/dev/ttyUSB0
- Open a new window to view data
ros2 topic echo /imu/data
- Execute data parsing code
-
- RVIZ visualization interface
- Need to stop the data parsing program in the previous step and execute the following program
- ROS1 noetic:
roslaunch imu imu_view.launch port_name:=/dev/ttyUSB0
- ROS2 humble:
ros2 launch imu imu_view.launch.py port_name:=/dev/ttyUSB0
- RVIZ visualization interface
Demo download
1. Click to download 10_DOF_ROS_IMU_(A) Code
2. Please install the related libraries and then run the demo. For the ROS demo, please compile and use it on the ROS system
FAQ
Support
Technical Support
If you need technical support or have any feedback/review, please click the Submit Now button to submit a ticket, Our support team will check and reply to you within 1 to 2 working days. Please be patient as we make every effort to help you to resolve the issue.
Working Time: 9 AM - 6 PM GMT+8 (Monday to Friday)