-
Notifications
You must be signed in to change notification settings - Fork 2
Warthog
Official Warthog documentation from Clearpath
Diagram's draw.io file is located here.
The high-level computer is a Neousys NUVO-9006DE-POE (Link)(User Guide). To access the bios, press F2 when the computer is booting. Four ethernet ports on the USB ports side support PoE. Per-point PoE can be deactivated in bios.
- Ethernet port connected to the router: enp1s0f1 IP address: 192.168.0.3 (Lowest port on the COM ports side)
- Ethernet port connected to the lidar: enp6s0 IP address: 192.168.1.102
- Ethernet port connected to the radar: enp1s0f0 IP address: 192.168.4.10 (2nd highest port on the COM ports side)
- Ethernet port connected to the ls128s1: enp5s0 IP address: 192.168.1.103
- Ethernet port connected to the rear (Basler) camera: enp7s0 IP address: 192.168.7.2 (3rd highest port on the USB ports side) with deactivated PoE. Cable speed (tested) 1 Gb/s.
The computer has hardware support for PTP.
The 2TB SSD model is Innodisk DEM28-02TDD1EWAQF-W56. Write and read speed are 1850 and 2000 MB/s, respectively.
The old computer model was AIV-Q170V1FLS-OBD (Link)(User Guide)
- There is a Jetson Orin AGX inside the Warthog, its IP address is 192.168.0.5.
- For now, it is used for the ROS1 Bridge and the ZED X stereo camera.
- The installation was made following these setup scripts.
- The GPIO pinout can be found here. There a confusion in the I2C bus naming convention. SCK/SCL pin corresponds to I2C5_CLK and the SDI/SDA to I2C5_DAT.
The router's model is RouterBOARD 962UiGS-5HacT2HnT, equipped with 5 1 Gb/s ports. Specifications
A wiki page is dedicated to the Warthog batteries.
There are two cameras installed on the Warthog.
-
The front one is a ZED X Stereo camera, which is oriented 15 degrees downward and connected via a GMSL2 link to the Jetson Orin AGX.
-
The rear one is a Basler A2a1920-51gcpro with a Theia Technologies MY125M lens, also angled 15 degrees downward and connected through an ethernet cable to the high-level computer. Jumbo packets should be enabled to increase the FPS capabilities.
Note: The old camera, still available, was a Dalsa Genie Nanon C1920 (Link)
Warthog's CAD is available in OnShape.
- Baseline (on tracks) : 1.1652 m
- Wheel radius (on tracks) : 0.3 m
To modify the speed sends by the controller, follow these steps:
- Connect to the low-level computer with SSH and go in this config folder
roscd warthog_teleop_twist_joy/config
- Enter the file
vim hri.config.yaml
- To change the linear speed, comment the line with the
scale_linear
value and create your ownscale_linear
value. The speed value is calculated like this:
We know from experiements that a value of 0.0015 is approximately 1.5 m/s with the wheels.
We need to apply a speed factor related to type of wheels mount on the Warthog.
For the wheels, the factor is F = 1. For the tracks, the factor is F = 0.6632.
So, if by example you want a speed of v = 0.25 m/s with the tracks, you will do the following:
speed_value = [(v/1.5) x 0.0015] / F
speed_value = [(0.25/1.5) x 0.0015] / 0.6332
speed_value = 0.000395 m/s
- When the speed is changed, save the file. You now need to kill the node and restart it to apply the changes. There are two methods:
- Manually kill and restart the node from the terminal.
- First, kill the node
rosnode kill /hri_teleop_twist_joy
- Then, in a screen, restart it
roslaunch warthog_teleop_twist_joy teleop.launch
- Just reboot the whole computer by powering off the Warthog and reboot it.
A tutorial on how to perform a basic teach-and-repeat session with the Warthog can be found here.
Param | Value |
---|---|
Name | ME1117 |
Company | Motenergy |
Type | BLDC |
I_continuous | 120 A |
N° poles | 8 poles / 4 pairs |
|
0.088 mH |
0.10 mH | |
5000 RPM | |
V | 0-72 VDC |
Torque constant | 0.13 Nm/A |
Armature inertia | 52 |
I_{continuous} | 80 A AC |
I_{peak} | 220 A AC (1 min) |
Weight | 23 lbs |
Peak stall torque | 38 Nm |
Note : This list of topics may vary depending on when the data was/is taken
Data | Topic | Frequency (Hz) | Notes |
---|---|---|---|
Electrical | |||
MCU global data | /mcu/status |
1 | |
Left drive | /left_drive/status/battery_{current,voltage} |
1 | |
Right drive | /right_drive/status/battery_{current,voltage} |
1 | |
Speeds | |||
Control speed | /cmd_vel |
||
Encoders speed | |||
Left drive speed | /left_drive/status/speed |
4 | |
Right drive speed | /right_drive/status/speed |
4 | |
Odometry | |||
ICP odometry | /icp_odom |
||
IMU odometry | /imu_and_wheel_odom |
100 | no twist |
GPS odometry | Postprocessed data from REACHRS | 5 | |
Warthog odometry | /warthog_velocity_controller_odom |
20 | no twist |
Inertial | |||
IMU data | /MTI_imu/data |
||
Warthog IMU | /imu/data |
35 | noisy imu, upside down |
GPS | |||
GPS message | /gps/* |
graph LR
commanded([<strong>Commanded<br/>velocities</strong><pre>/vel_cmd</pre>])
commanded --> cmdvel([<pre>/cmd_vel</pre>])
commanded --> rcteleopcmd([<pre>/rc_teleop/cmd_vel</pre>])
commanded --> warthogcmd([<pre>/warthog_velocity_controller/cmd_vel</pre>])
odometry([<strong>Odometry</strong></br><pre>/odom</pre>])
odometry --> icpodom([<pre>/icp_odom</pre>])
odometry --> imuodom([<pre>/imu_and_wheel_odom</pre>])
imu([<strong>IMU</strong></br><pre>/imu_data</pre>])
imu --> imudata([<pre>/MTI_imu/data</pre>])
wheels([<strong>Wheel</br>velocities</strong></br><pre>/wL, /wR, /velL, /velR</pre>])
wheels --> wL([Angular speed ω - L<pre>/left_drive/status/speed</pre>])
wheels --> wR([Angular speed ω - R<pre>/right_drive/status/speed</pre>])
wheels --> vL([Speed - L<pre>/left_drive/velocity</pre>])
wheels --> vR([Speed - R<pre>/right_drive/velocity</pre>])
elecmot([<strong>Motor</br>electrical</strong></br><pre>/voltL, /voltR, /IL, /IR</pre>])
elecmot --> voltL([Voltage - L<pre>/left_drive/status/battery_voltage</pre>])
elecmot --> voltR([Voltage - R<pre>/right_drive/status/battery_voltage</pre>])
elecmot --> ampL([Current - L<pre>/left_drive/status/battery_current</pre>])
elecmot --> ampR([Current - R<pre>/right_drive/status/battery_current</pre>])
- The screws attaching the external ethernet ports of the Pelican case have dried out o-rings which could enable water to get in (low risk).
- Warthog Teach and Repeat (ROS1)
- Warthog Teach and Repeat (ROS2)
- Time Synchronization (NTP)
- Time Synchronization (PTP)
- Deployment of Robotic Total Stations (RTS)
- Deployment of the backpack GPS
- Warthog Emlid GPS
- Atlans-C INS
- How to use a CB Radio when going in the forest
- IP forwarding
- Emlid Data Postprocessing (PPK)
- Setting up a reliable robot communication with Zenoh
- Zenoh rmw
- Lessons Learned
- Robots' 3D Models
- Order Management
- Fast track Master → PhD
- Intellectual Property
- Repository Guidelines
- TF Cheatsheet
- Montmorency Forest Wintertime Dataset
- RTS-GT Dataset 2023
- Deschenes2021 Dataset
- TIGS Dataset
- DRIVE Datasets
- BorealHDR
- TimberSeg 1.0
- DARPA Subterranean Challenge - Urban Dataset
- How to upload a dataset to VALERIA
- ROS1 Bridge
- Migrating a repository to ROS2 (Humble)
- ROS2 and rosbags
- MCAP rosbags
- DDS Configuration (work in progress)
- Using a USB Microphone with ROS2
- ROS2 in VSCode
- ROS2 Troubleshooting