Skip to content
Kazu Otani edited this page Jul 26, 2017 · 16 revisions

Welcome to the MRSD Team D (2016-2017) loco_car wiki! This wiki contains information that we collected throughout the two semesters that we worked on our project. We hope that some of this can be useful for future MRSD teams and roboticists.

For more information on the project, see: http://mrsdprojects.ri.cmu.edu/2016teamd/

See the code section of this repo for all the code that was in our ROS workspace.

You may also be interested in the BARC project from UC Berkeley's MPC Lab. They build a similar platform and implement their controller using Julia and JuMP for a clean, simple formulation of MPC.

**

Some of our notes were specific to our project. Those points have been moved to the bottom of each section.

Links to other important docs:


Quick Start Guide

Assuming that the basic support infrastructure is in place on the robots, this section provides high-level guidelines on working with the major functionalities of our system. Specific details about some of these steps can be found on other sections of this wiki.

  • Make sure both the robot and operator's computer are connected on the same network and SSH to the robot
  • Export ROS_MASTER_URI and ROS_IP on the client machine to connect to the robot's ROS Master.
  • Source folder organization:
    • Top-level folders represent subsystem packages (navigation/, robot_localization/, etc.)
    • ilqr_loco/ contains our planning and control stack for evasive maneuvers.
    • loco/ contains general purpose scripts, data logs, launch files, and code.
    • utilities/ contains miscellaneous third-party packages.
  • System startup:
    • loco/launch/openloop_sve.launch is the primary launch file, and it runs state estimation and teleoperation. Other nodes have to be launched separately.
    • loco/launch/nav.launch runs state estimation, teleoperation, and the TEB-driven navigation stack (Our FVE system).
  • Running a Moose Test:
    • In separate terminals, run: (i) roslaunch ilqr_loco traj_action_client.launch to launch the planner and obstacle detector (v2_traj_action_client.launch uses more advanced/slower obstacle tracking, but the system as a whole is much less robust) (ii) rosrun keyboard_command keyboard_command.py for user command interface.
  • General safety measures (IMPORTANT)
    • This system is designed to run at high speeds. Following proper safety measures can be the difference between a perfect experiment and a fatal crash.
    • Review parameters in ilqr_loco/config/ilqr_params.yaml to ensure test conditions are as expected.
    • Ensure plenty of free space in the lab prior to running any tests.
    • Always be prepared to manually override control as well as to kill the system in the event of unexpected or risky behavior.
Clone this wiki locally