Skip to content

TSummersLab/super_como

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

39 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Super COMO

Super COMO is an autonomous car platfrom at the University of Texas at Dallas. It is a hardware upgrade over the COMO platform.

Check out our website for details about car assembly, build, and other guides and tutorials.

Installation Guide

Before installing the Super COMO packages, perform a full JetPack installation on the Jetson TX2. For the package, JetPack 3.2.1 was installed.

After installing JetPack, follow the steps below to setup Super COMO.

  1. Configure repositories: Configure repositories to allow "restricted," "universe," and "multiverse." Do this by following the instructions in this link.

  2. Clone super_como : Clone the repository to your home directory. In a terminal window run:

cd ~ && git clone https://github.com/The-SS/super_como
  1. Navigate to setup folder: In terminal, navigate to the setup folder in super_como by running:
cd ~/super_como/setup
  1. Configure git (if not configured): Configure git either manually or by running git_config_setup.sh. You can run the setup file as follows:
./git_config_setup.sh
  1. Run the following scripts:
./install_programs.sh

./install_ros.sh

  1. Download and install the ZED SDK:
  • Go to the ZED downloads website and download the ZED SDK for Jetson TX2 with JetPack 3.2 and CUDA 9.

  • Once it downloads, either used chmod +x <file_name> to make the file and executable or right click it --> permissions --> allow executing file as a program.

  • Run the script by cd to file location in a terminal and typing ./ followed by the file name.

  1. Setup the device rules: Run the rules set up script:
sudo ./rules_setup.sh

This script will reload the rules, but we recommend restarting the machine to ensure that the rules are in effect.

  1. Run the build script: The build.sh script at the root of the super_como package builds the catkin workspace. In a terminal window, navigate to the root of the super_como package then run the following command:
cd ~/super_como
./build.sh
  1. Generate the ros_lib libraries for arduino:
  • Go the the Arduino libraries direcotry:
cd ~/arduino-1.8.7/libraries
  • Remove any previous ros_lib directory:
rm -fr ros_lib
  • Generate the new libraries:
rosrun rosserial_arduino make_libraries.py .

For more details see the Install ros_lib into the Arduino Environment section here.

  1. Source the workspace: Every time a new terminal window is open you have to source your workspace.
source ~/super_como/workspace/devel/setup.bash

Alternatively, you can add the above to your bashrc file to avoid having to run it every time. To do that, run the following in a terminal.

echo "source ~/super_como/workspace/devel/setup.bash" >> ~/.bashrc

Once this runs you have to restart your terminal or source the bashrc file as follows:

source ~/.bashrc
  1. Add the Lidar to ethernet networks:
  • Open Network Connections.
  • Click on Add.
  • In the new window do the following:
    • Change the connection name to lidar
    • In the General tab, check the Automatically connect to this network when it is available and All users may connect to this network options
    • In the IPv4 Settings tab, change the method to Manual and add the following in Addresses:
      • address: 192.168.0.15
      • netmask: 255.255.255.0 (this will change to 24)
      • leave the gateway field empty
    • Click save.
  1. Edit the USB port names: The rules file generated by rules_setup.sh creates symbolic links for devices that should be used instead of the port names generated by Linux. The full list of symbolic links found in /etc/udev/rules/99-device-rules.rules is:
  • /dev/imu: IMU
  • /dev/vesc: VESC
  • /dev/teensy: Teensy
  • /dev/gps: GPS module
  • /dev/elp/back: back elp camera
  • /dev/elp/right: righ elp camera
  • /dev/elp/left: left elp camera
  • /dev/elp/front: front elp camera

These links should be used in the package (instead of /dev/ttyUSB*, /dev/ttyACM*, or /dev/video*). Make the following modifications to the package:

  • In ~/super_como/super_como/workspace/src/racecar/racecar/config/racecar-v2/vesc.yaml change the port parameter under vesc_driver to /dev/vesc.
  • In ~/super_como/workspace/src/razor_imu_9dof/config/razor.yaml change the port parameter to /dev/imu.
  • In ~/super_como/workspace/src/razor_imu_9dof/nodes/imu_node.py change the default_port variable to '/dev/imu' (line 110). The updated line should be: default_port='/dev/imu'.
  1. If running YOLO, change the darknet_ros camera topic: In ~/super_como/workspace/src/darknet_ros/darknet_ros/config/ros.yaml change the topic parameter under camera_reading in subscribers to the desired image topic. For example that could be the /zed/left/image_raw_color topic if using the ZED or ZED mini cameras. Check the YOLO github repository for more details.

Operating the Package

Operating the package is a two step process:

  1. Starting the sensors and hardware
  2. Starting an autonomous feature This decoupling allows for easy switching between autonomous features wihtout having to restart all sensor operation

To Start the Sensors and Hardware

  1. Open super_como/workspace/src/hardware_interface/launch/super_como.launch and edit the On/Off Switches section (and save the changes).
    • Setting the default value to true will start the component
    • Setting the default value to false will skip starting the component
  2. Run the following in a terminal window:
roslaunch hardware_interface super_como.launch

The super_como.launch provides an all-in-one solution to starting all hardware components. Nonetheless, individual scripts can be launched. Any of the scripts in super_como/workspace/src/hardware_interface/launch or any of the other packages in workspace can be run individually to control a single (or multiple) device(s).

To Start an Autonomous Feature

  1. Determine what application to run and edit the super_como.launch script to enable all the required sensors.
  2. Run the appropriate launch file from super_como/workspace/src/control/launch to perform the desired feature by running the following in a terminal window:
roslaunch control <file_name> 

Here, <file_name> is the desired launch file name.

Some of the autonomous features include the following:

  • hallway_navigation.launch: requires the Hokuyo UST-10LX lidar
  • hallway_nav_wth_object_detection.launch: requires the Hokuyo UST-10LX lidar and the camera used by darknet_ros (yolo) (ZED camear by default)
  • line_follower.launch: requires the ZED camera
  • line_follower_with_lidar.launch: requires the Hokuyo UST-10LX lidar and the ZED camera
  • darknet_ros.launch: requires the camera used by darknet_ros (yolo) (ZED camear by default)

Other autonomous driving features can be designed similar to the first four included feature

About

Package for the Super COMO autonomous car platform

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published