https://www.sensonor.com/products/inertial-measurement-units/stim300/
Run with:
rosrun driver_stim300 stim300_driver_node
or
roslaunch driver_stim300 stim300_driver.launch
see launch file for available parameters.
For testing and configuration during development it can be useful to comunicate with the STIM300 IMU directly over terminal. Here is a simple example for how to that using minicom.
Install minicom:
sudo apt-get install minicom
Look for device:
dmesg | grep tty
Open minicom with setings:
sudo minicom -s
Setup minicom for stim300:
Serial port setup:
A - Serial Device: /dev/ttyUSB0
E - 921600 8N1
F - Disable hardware flow control
Modem and dialing: (Clear option A...I)
A -
* -
* -
* -
I -
Screen and keyboard:
P - Add linefeed
Save setup as dfl then Exit minicom, and enter again in hex display mode:
sudo minicom -H
The stim300 is in normal mode and will reapeatidly send the standard datagram.
Enter service mode: write "SERVICEMODE" and press enter
SERVICEMODE
Clear the screen:
Ctrl-A c
If the incomming datagram feed stopped it means you enter service mode sucsessfully. While in service mode the stim 300 will comunicate with asci characters. Exit minicom and enter in normal ASCI mode:
Ctrl-A x
sudo minicom
Write ? and press enter, and the STIM300 should send info about available commands
?
This will show a list on available commands including how to go back to normal mode. For example:
c
will perform a system check.
The following commands are used to calibrate the stim300 driver with the ESKF (Error-state Kalman filter)
First launch the stim300 driver
roslaunch driver_stim300 stim300_driver.launch
Then move to another terminal and do the following
rosservice call /IMU_calibration
Now head over to the stim300-driver.launch terminal window and take note of the roll and pitch alignment errors.
Find the parameter list for the ESKF and put in the roll and pitch errors in the following parameters
sr_accelerometer_alignment
sr_gyro_alignment