This repository contains code for operating the DT100 multibeam sonar from Imagenex within ROS by:
- Launching a Windows XP virtual machine (VM),
Windows_XP_32_DT100
, which runs DT100.exe automatically on VM up-start. DT100.exe has been configured with the following parameters:
- Units: m
- Range: 30m (this should be manually set to within expected depths)
- Gain: 6db (typical for silty, sand conditions)
- Sound Velocity: 1500m/s
- Sector Size: 120 degrees
- Number of Beams: 240
- Averaging: 5 shot
- Gain Equalization: off
- Automatic Gain Control: off
- Profile Point Setup
- Profile Point Filter: Maximum Return
- Minimum Depth (below sonar): 0.1m
- Maximum Depth (below sonar): 100m
- During execution, DT100.exe receives raw data from the DT100 sonar head and then processes these packets using its proprietary beam-forming algorithms. Data packets are then output from DT100.exe in 83P Profile Point format, which is a format proprietary to Imagenex
- 83P Profile Point data packets from DT100.exe are then parsed by the DT100_relay node, which converts these packets to
sensor_msgs/pointcloud2
messages. These messages are then published on the topic/DT100_scans
using the following frame convention.
See the following link for installing dependencies on beam robots.
For development, use the following commands to download and compile the package.
cd ~/catkin_ws/src
git clone git@github.com:BEAMRobotics/dt100_driver.git
cd ..
catkin build
Physically connect the sonar ethernet cable to an ethernet switch. Physically connect an ethernet cable from the host machine to the same ethernet switch. Run ipconfig
in a terminal on the host machine to find the name of the ethernet adapter, which is declared as bridge_adapter
in Parameters. Once resolved, run the following commands:
sudo ifconfig bridge_adapter 192.168.0.4 netmask 255.255.255.0
roslaunch dt100_driver dt100_driver.launch
in dt100_driver.launch
, you will see two arguments:
<arg name="bridge_adapter" value="enx000fc910b497" />
<arg name="headless" value="true" />
bridge_adapter
is mandatory and must match the name of the ethernet adapter on your host machine. When launching the driver on a robot over ssh, headless
should be left as true
, though for tuning false
may be selected to manually change parameters in the virtual machine if needed.
when exiting dt100_driver.launch
(via ctrl + c
), enter the following in a separate terminal:
VBoxManage controlvm "Windows_XP_32_DT100" poweroff
this command will kill the Windows_XP_32_DT100
virtual machine session, which is required for sonar communication. This allows the user to launch dt100_driver.launch
again.
Note that through repeat launches of dt100_driver.launch
, connection to the sonar can be lost. We observe that powering off the sonar for ~5 seconds, and powering the sonar back on again before launch seems to work.
- develop node that interrogates DT100.exe with the VM and dynamically changes operating range and gain