Water Resistant Self Contained Mobile Robot Design

From Lofaro Lab Wiki
Jump to: navigation, search

Due Date: 2019-05-08

The goal of this project is to extend your design for Project 2, Cloud Controlled Mobile Robot Design, to be IP-68 compliment (see IP Rating here). Other modifications and requirements are as follows:

  • All capabilities from Project 2 must be built and must be useable without re-programming it
  • The IP-68 design should be in CAD ONLY, again ip-68 design is in CAD only and should NOT be printed out. Please use your previous design for the integration. (feel free to change that design if needed).
  • The connection between the SBC (the RPI) and the micro-controller should be a direct wifi link (i.e. the micro-controller is in AP mode). Do NOT use eduroam or another structured network such as a personal hotspot or router.
  • The arrow keys should drive the robot around with the following attributes:
    • Up arrow: increase velocity (10 velocity increments from stop to max speed)
    • Down arrow: decrease velocity (10 velocity increments from stop to max reverse velocity)
    • Left Arrow: Changes the heading set-point by 15 degrees in the positive direction (i.e. CCW)
    • Right Arrow: Changes the heading set-point by 15 degrees in the negative direction (i.e. CW)
  • The W-A-S-D keys should do the following:
    • W - have the robot turn to magnetic North
    • A - have the robot turn to magnetic West
    • S - have the robot turn to magnetic South
    • D - have the robot turn to magnetic East
    • Note: The robot should keep it's previous velocity set point as set from the arrow keys
  • The space bar should stop the robot (i.e. set velocity to zero).
  • All control should be closed loop
    • Wheel speed should be closed loop using the encoders
    • Heading should be closed loop using the compass or a combination of the compass and the encoders
  • The robot should return its state (i.e. odometry location/orientation, IMU information, and compass orientation) in the following format:
    • It should be a packed c-type structure
    • It should be returned to the SBC at a rate of 10hz.
    • It should be returned to the SBC via UDP on port 4242. Note: this should be a different port than you are using to drive/command your robot with.
    • The order of the structure variables should be as follows with these exact name:
      • double odo[3] // 0 = x pos, 1 = y pos, and 2 = z pos
      • double imu[6] // 0 = ax, 1 = ay, 2 = az, 3 = mx, 4 = my, and 5 = mz where a = accelerator and m = magnetometer
      • double heading
      • Notes:
        • All position units should be in mm
        • All acceleration units should be in m/sec
        • All orientations should be in degrees
        • The magnetometer should be in degrees
  • You should have a BASH installer and program as explained in class for the SBC portion of your project.
  • Recommended (but not required): Pick an opensoruce license and apply it to your source and your installer
  • Device and software should be clean and neat. You will be graded on looks/neatness/orderliness/etc.
  • All specifications defined in Project 2, Cloud Controlled Mobile Robot Design, should be followed unless specifically modified above.


To submit:

  • Write up of your project
    • What you did
    • How you did it
    • Key points
    • Pictures of your designs
    • Pictures showing functionality of your work
    • Links to youtube videos of your device working
    • Github link
    • and all other normal items you normally submit.
    • Note: make sure I know that you know what you are doing
  • Must be in IEEE-RAS Conference format
  • Extra Credit: You will get extra credit if you do all of the following:
    • Write your document in Latex
    • Provide the archive of your entire latex project (must be able to be compiled) with the primary document named as main.tex
    • Include a one page background of odometry methods with a minimum of 5 IEEE citations
  • Live demo to be given in class