-
Notifications
You must be signed in to change notification settings - Fork 2
Warthog
norlab-warthog edited this page Dec 18, 2023
·
51 revisions
- The computer model is AIV-Q170V1FLS-OBD (website link)(manual link)
- 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: enp1s0f3 IP address: 192.168.1.102 (2nd lowest port on the COM ports side)
- Ethernet port connected to the radar: enp1s0f0 IP address: 192.168.4.10 (2nd highest port on the COM ports side)
- There is a Jetson Orin AGX inside the Warthog.
- For now, it is used for the ROS1 bridge and the ZED stereo camera.
- The installation was made following these setup scripts.
A wiki page is dedicated to the Warthog batteries.
- Model: Dalsa Genie Nanon C1920 (website link)
- To tranfer the images from the camera to the Warthog computer, the ethernet card called enp4s0 on linux (need to verify if it is the complete name, but is the port LAN4 of the computer) now take Jumbo Packets. Regular ethernet connection supports 1500 bytes packet, but by enabling Jumbo Packets, we can send packets as large as 9000 bytes. It allows the camera to increase its number of Frame Per Second (FPS). The command to change the size of the packet is done in the rc.local each time the computer boots.
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