-
Notifications
You must be signed in to change notification settings - Fork 0
Sensor_setup
We are using VN-100 mdoule
Hardware Setup - We connect the 5V output from the USB to the 5V input of the IMU. The ground lines are all connected together, including a branch to the GPS ground. The RX and TX lines between the IMU and GPS are connected. Additionally, the GPS PPS (Pulse Per Second) signal is connected to the IMUβs TimeSyncIn input. TimeSyncOut is disconnected.
Inside vectornav.yaml, in the BO1 settings change:
- baud rate: 921600
- asyncMode: 2
- rateDivsor: 4
After plugging in the Ouster:
avahi-browse -lrt _roger._tcp
This will help you identify the IP address of the sensor.
Once the Ouster is plugged in:
- It will appear as
enx...
inifconfig
, or check with:
nmcli connection show
- Try pinging the hostname (replace with actual serial number on your Ouster):
ping os-<SERIAL_NUMBER>.local
Example result:
PING os-122145304889.local (<ouster_ip>)
sudo nmcli connection modify "Wired connection 1" ipv4.addresses 192.168.1.10/24 ipv4.method manual
sudo nmcli connection down "Wired connection 1"
sudo nmcli connection up "Wired connection 1"
You should now be able to:
- Ping the Ouster at <ouster_ip>
- Access its web UI by visiting:
http://<ouster_ip>
in a browser
sudo sysctl -w net.core.rmem_max=26214400
sudo sysctl -w net.core.rmem_default=26214400
Adjust the value to the maximum supported by your system.
Signal | GPS Pin | Ouster Pin |
---|---|---|
Ground | GPS GND | Ouster GND |
UART NMEA | GPS TX2 | Ouster Multipurpose_IO |
PPS Pulse | GPS TP2 | Ouster sync_in |
Set the following values in the web interface:
-
Timestamp Mode:
TIME_FROM_SYNC_PULSE_IN
-
Multipurpose IO Mode:
INPUT_NMEA_UART
-
NMEA Baud Rate:
BAUD_115200
Click Apply Config, and if everything is working, click Persist Active Config.
Run:
ros2 topic echo --field header.stamp /ouster/points
If properly synced with GPS, you should see epoch timestamps:
---
sec: 1749413166
nanosec: 188819712
---
sec: 1749413166
nanosec: 288812288
---
sec: 1749413166
nanosec: 388752128
β οΈ Without a GPS fix, the timestamps may default to a PTP clock or a large meaningless value (often interpreted as 1969-12-31).
Manually download the Spinner SDK for Linux Ubuntu 22.04 (ARM64) from the FLIR website. This would require making an account. Otherwise ask either Aniket or Andrew for the downloaded binaries.
During installation, make sure to:
- β
Add your user to the
flirimaging
group - β Set USB FS memory to 1000MB
- β
Add Examples to
PATH
- β Register the GenTL producer
This should be straightforward as these are the default options.
Then:
sudo reboot
Use the SpinView GUI tool (included with the SDK):
spinview
You should be able to see and interact with the camera and also get their serial numbers.
Navigate to the launch file and update the serial numbers in line 37.
/spinnaker_synchronized_camera_driver/launch/follower_example.launch.py
Run the launch command:
ros2 launch spinnaker_synchronized_camera_driver follower_example.launch.py
- Changing the camera ID in the launch file should be sufficient to start streaming.
- Other parameters (e.g., exposure, gain, frame rate) can be modified if needed.
Issue: Log shows very large or very small
gain
values
Fix: Reset the camera configuration in SpinView.
- Open
spinview
- Select your camera
- Go to User Device Control
- Click
Load Default
- Execute both default load commands
Tool Used: U-Center v25.03 (Windows only). For Linux, PyGPSClient can also be used.
- Run U-Center as Administrator
- Connect to your GPS device
- Navigate to:
View β Generation 9 Configuration View β Advanced Configuration
Set these parameters under CFG-TP
.
After each setting change, click:
- β
Set in RAM
- β
Set in BBR
- β
Set in Flash
Parameter | Value |
---|---|
CFG-TP-TP1_ENA | 1 |
CFG-TP-USE_LOCKED_TP1 | 0 |
CFG-TP-PERIOD_TP1 | 1000000 |
CFG-TP-LEN_TP1 | 50000 |
CFG-TP-ALIGN_TO_TOW_TP1 | 1 (default) |
CFG-TP-POL_TP1 | 1 (default) |
CFG-TP-TIMEGRID_TP1 | 1 (default) |
Parameter | Value |
---|---|
CFG-TP-TP2_ENA | 1 |
CFG-TP-USE_LOCKED_TP2 | 0 |
CFG-TP-PERIOD_TP2 | 50000 |
CFG-TP-LEN_TP2 | 25000 |
CFG-TP-ALIGN_TO_TOW_TP2 | 1 (default) |
CFG-TP-POL_TP2 | 1 (default) |
CFG-TP-TIMEGRID_TP2 | 1 (default) |
β
After all are set, click Send config changes
β You should now see:
- Yellow LED blinking at 1Hz (PPS)
- Green LED blinking at 20Hz (NMEA)
-
CFG-UART2-BRAUDRATE:
115200
- Set all inputs to 0 (UART2 will not be used for input)
- Set only:
NMEA = 1
-
CFG-NMEA-MAINTALKER = 1 β
GP
(default talker ID)
Enable only the following NMEA messages on UART2:
Message | Value |
---|---|
CFG-MSGOUT-NMEA_ID_GGA_UART2 | 1 |
CFG-MSGOUT-NMEA_ID_GSA_UART2 | 1 |
CFG-MSGOUT-NMEA_ID_GSV_UART2 | 1 |
CFG-MSGOUT-NMEA_ID_RMC_UART2 | 1 |
π Disable the rest (e.g.,
GLL
,VTG
,ZDA
)
GPS Pin | Jetson Pin | Description |
---|---|---|
GND | PIN 6 | Ground |
TX2 | PIN 10 | UART RXD |
sudo apt install minicom
ls -l /dev/ttyTHS* # should be /dev/ttyTHS1
sudo minicom -b 115200 -D /dev/ttyTHS1
Expected output (1Hz NMEA):
$GPRMC,200737.00,A,4220.24878,N,07105.24422,W,0.019,,080625,,,A,V*1C
$GPRMC,200738.00,A,4220.24880,N,07105.24416,W,0.028,,080625,,,A,V*11
$GPRMC,200739.00,A,4220.24882,N,07105.24411,W,0.082,,080625,,,A,V*15
Each line updates every second if GPS is functioning correctly.
Go to:
Settings β Network β USB Ethernet (click βοΈ gear icon) β IPv4
Method: Manual
Address 1
-
IP Address:
10.19.30.X
(choose X based on payload) -
Netmask:
255.255.255.0
-
Gateway:
10.19.30.1
Address 2
-
IP Address:
10.223.100.100
-
Netmask:
255.255.0.0
DNS: 10.19.30.1
-
Open browser and go to:
http://<IP_LISTED_ON_DOODLE_LABS_RADIO>
-
In the web UI:
- Click on the three-dot menu β
Settings
- Go to Simple Configuration
- Click on the three-dot menu β
-
Apply the following settings:
Option | Value |
---|---|
DHCP/br-wan | Disabled |
Number of devices | 6β10 |
MeshID | mini-mesh |
Password | minimesh |
Once connected to the Doodle Labs mesh network and with static IP set, you may run into security or certificate errors in browsers like Firefox or Chromium.
Even though Jetson has internet access (you can ping google.com
), browser access may be restricted due to snap-related policies or SELinux.
sudo snap revert snapd # If you encounter SELinux or snap confinement errors