# Software Setup

## Software Requirements

Currently, software for both projects is being developed on Ubuntu 18.04 64-bit and ROS Melodic.

## ROS Packages Synapse

### hector\_slam:

```
roslaunch hector_slam_launch tutorial.launch
```

Further information can be found at the hector\_slam Github and the ROS Wiki:

<https://github.com/tu-darmstadt-ros-pkg/hector_slam>

<http://wiki.ros.org/hector_slam>

### rplidar\_ros:

```
roslaunch rplidar_ros rplidar.launch
```

\
RPLIDAR is a low-cost LIDAR sensor suitable for indoor robotic SLAM applications. It provides 360 degree scan field, 5.5hz/10hz rotating frequency with guaranteed 8 meter ranger distance, currently more than 16m for A2, and 25m for A3. By means of the high-speed image processing engine designed by [RoboPeak](http://wiki.ros.org/RoboPeak), the whole cost is reduced greatly, RPLIDAR is the ideal sensor in cost-sensitive areas like robots consumer and hardware hobbyist.

### Published Topics

The published topics differ according to the device and parameters. The following list of topics will be available:

```
scan (sensor_msgs/LaserScan)
stop_motor (std_srvs/Empty)
start_motor (std_srvs/Empty
serial_port (string, default: /dev/ttyUSB0)
serial_baudrate (int, default: 115200)
frame_id (string, default: laser_frame)
inverted (bool, default: false)
angle_compensate (bool, default: false)
scan_mode (string, default: std::string())
```

Further information can be found at the rplidar\_ros Github:

{% embed url="<https://github.com/robopeak/rplidar_ros>" %}

<http://wiki.ros.org/rplidar>

### realsense-ros:

These are packages for using Intel RealSense cameras (D400 series SR300 camera and T265 Tracking Module) with ROS.  To start the camera node in ROS:

```
roslaunch realsense2_camera rs_camera.launch filters:=pointcloud enable_infra1:=false enable_infra2:=false
```

This will stream all camera sensors and publish them on the appropriate ROS topics.

Other stream resolutions and frame rates can optionally be provided as parameters to the 'rs\_camera.launch' file.

### Published Topics

&#x20;The published topics differ according to the device and parameters. After running the above command with D435i attached, the following list of topics will be available (This is a partial list. For full one type `rostopic list`):

```
/camera/color/camera_info
/camera/color/image_raw
/camera/depth/camera_info
/camera/depth/image_rect_raw
/camera/extrinsics/depth_to_color
/camera/extrinsics/depth_to_infra1
/camera/extrinsics/depth_to_infra2
/camera/infra1/camera_info
/camera/infra1/image_rect_raw
/camera/infra2/camera_info
/camera/infra2/image_rect_raw
/camera/gyro/imu_info
/camera/gyro/sample
/camera/accel/imu_info
/camera/accel/sample
/diagnostics
```

{% hint style="info" %}
The tags on the realsense launch file are for the amount of data attempting to run over the current connection causes errors. This removes the infrared data we don't need at the moment to make sure that the data we need is properly transmitting.
{% endhint %}

Further information can be found at the RealSense Github:

{% embed url="<https://github.com/IntelRealSense/realsense-ros>" %}

## Babel Development Stack (Fall 2021)

The software to run Milieu Babel was started from the ground up this semester with a fresh copy of Ubuntu Bionic Beaver 18.04 installed on the Seeed Odyssey computer.&#x20;

{% embed url="<https://releases.ubuntu.com/18.04>" %}
Link to desktop images for download
{% endembed %}

The computer was named sapling and the admin password in lab for signing in and running sudo commands in the terminal.

ROS Melodic was reinstalled from here:

<http://wiki.ros.org/melodic/Installation/Ubuntu>

From here, Arduino IDE was installed to utilize the built-in Arduino board of the Seeed for handling the serial connections to the Sabertooth Motor Controller.&#x20;

{% embed url="<https://www.arduino.cc/en/software>" %}
We used the Linux 64 bit distribution on the Seeed Odyssey.
{% endembed %}

The Sabertooth Motor Controller has its own Arduino library to download. That can be found here:&#x20;

{% embed url="<https://www.dimensionengineering.com/info/arduino>" %}

From this point a number of ROS tutorials can be ran to understand the rosserial connection and the drive commands in Arduino library code. The code that the team tested with this semester is available in the project gihub repo <https://github.com/nkilbar/Babel-Development>. Results are presented on the next page. &#x20;


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://clemson-autonomous-systems.gitbook.io/clemson-university-autonomous-systems/ground-vehicle-development/milieu-tank/software-setup.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
