Water Resistant Self Contained Mobile Robot Design
From Lofaro Lab Wiki
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 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