User:Muhsin.King

From REU@MU
Revision as of 21:27, 18 June 2015 by Muhsin.King (Talk | contribs)

Jump to: navigation, search


Research Topic

Adviser: Dr. Andrew Williams Working with Matt Morris and the reset of the HEIRlab team, I'm working to implement the software side of a soccer-playing humanoid robot. My job is to achieve constant communication between the robot's controller, a CM-700, and an onboard Linux Mini-PC. While normally this wouldn't be a complicated task, I have to preserve the built-in firmware so that we can utilize RoboPlus motion files, and the default firmware has no support for the kind of direct PC to controller connection we need to establish.

Once I'm finished establishing this link, I will continue to work on other pieces of the project, including high-level decision making protocols based on visual input (on the Mini-PC side) and creating the RoboPlus task files that will initiate motions based on serial inputs.

Assuming we're successful in creating a soccer-playing humanoid, I would then move on to try and adapt the control scheme of the Darwin-OP to our own robot.

Milestones & Goals

1. Design and build a prototype embedded system using CM-700, mini-PC, Robotis servos and mini-PC

2. Port and adapt code to new embedded control system

3. Evaluate system on MU-L8 humanoid

4. Adapt embedded control system to ROS and evaluate

5. Learn to program OP2 vision and motion system.

6. Study the Robotis OP 2 (OP2) humanoid platform hardware and software.

Code

Find all the code for my project on its GitHub repository

Research Log

Week 1 - June 1-5

Monday

Orientation part 1

Tuesday

Orientation part 2

Wednesday

Familiarized myself with the HEIRlab
Set up workstation

Thursday

Began exploring methods of communicating with the CM-700 microcontroller from a Linux PC
  • Found methods using Embedded C
  • These wipe the factory firmware, which we need
Exploring methods of exporting RoboPlus motion files to C/C++
  • Turns out this is impossible/unsupported by Robotis
  • Moving forward: how to call roboplus files programmatically?
Attempted to explore Darwin OP2 code from source
  • Can't mount files on windows, installing Linux virtualbox

Friday

Found Python code to issue commands to a Bioloid (CM-510) from a Mac
  • Very poorly documented; might not be viable.
  • Can't test, as our LN-101 cable (connects CM-700 to USB) seems to be broken
Set up a Git repository for the HEIR lab Robocup 2015 team

Week 2 - June 8-12

Monday

Waiting for new LN101 cables so I can connect to CM-700
Set up teammate Ryan Walsh with source control
  • Created a Github repository for his vision code
  • Created a git cheatsheet for him so he can maintain it himself
Began designing hardware and software control structure for a soccer-playing robot
  • Hardware: webcam sends image data to Linux, Linux relays commands serially to CM-700, CM-700 actuates motors
  • Software: vision code detects objects, relays commands to Linux controller, Linux controller sends command signals to the CM-700 task file, task file interprets signals and initializes the appropriate motion page
Investigated dynamixel documentation
Investigated further methods of reading data into RoboPlus Task files
  • Zigbee SDK: wireless communication with CM-700
  • Not as good as a wired connection, but more officially supported
Ran through a few RoboPlus tutorials

Tuesday

Still waiting on LN-101 cables
Set up software environments to run the PySerial and Zigbee code
  • Installing dependencies for Mac (Python, PySerial, Tkinter, etc.)
  • Set up Zigbee SDK
Helped teammate deconstruct the old humanoid platform

Wednesday

LN-101s arrived!
  • New issue: LN-101 does not connect correctly
  • Does not automatically install drivers (as on Windows)
  • Found FTDI drivers
  • Not compatible with current version of OSX...
Updated OSX
Setup runtime environment on Linux MiniPC


Thursday

Installed FTDI drivers on Linux
RoboPlus tutorials
Created RoboPlus motion/task files to move a simple motor given a button push (Windows)
RoboPlus troubleshooting
REU group meeting on research presentations

Friday

Created wiki page
New issue: LN-101 doesn't show up in /dev on Linux
Investigated different FTDI drivers
  • VCP vs. D2XX

Week 3 - June 15-19

Monday

USB troubleshooting
  • Found out how to roll back drivers on Windows
  • This removes the product ID, making the Linux drivers not work
  • Found a utility to restore product ID
Exploring methods of transmitting and receiving data via LN-101
Learning about dynamixel error codes

Tuesday

Updating RoboPlus task file aimed at testing CM-700 tx/rx
Researched various methods of screening into a serial port
Successfully connected to the CM-700 via terminal
Went to a talk on research papers/presentations
Created a program that reads data from CM-700

Wednesday

Created a program that writes data to the CM-700
Created/compiled a library that properly encodes the data such that the CM-700 understands it
Tested out various commands on the task file I set up earlier: SUCCESS
Created a tutorial on git for setting up and repairing the LN-101/FTDI drivers
Spent the rest of the day debugging/cleaning codebase

Thursday

Attended talk on plagiarism & the IRB
Working on task/motion files for the final product

Friday

Week 4 - June 22-26

Monday

Tuesday

Wednesday

Thursday

Friday

Week 5 - June 29-July 3

Monday

Tuesday

Wednesday

Thursday

Friday

Week 6 - July 6-10

Monday

Tuesday

Wednesday

Thursday

Friday

Week 7 - July 13-17

Monday

Tuesday

Wednesday

Thursday

Friday

Week 8 - July 20-24

Monday

Tuesday

Wednesday

Thursday

Friday

Week 9 - July 27-31

Monday

Tuesday

Wednesday

Thursday

Friday

Week 10 - August 3-7

Monday

Tuesday

Wednesday

Thursday

Friday

-->