Meeting Minutes: MAV
August 2020
Aug 27th
Juncheng Li
Able to pick up the crank arm and bin at different orientation using the new pick and grasp algorithm.
Adding validation test to the training network. It will use the same datasets as an input to calculate the accuracy of the result in order to evaluate the overall performance.
Arindam
Able to get the network trained. The mean average precision on the test dataset is 90.2.
Ran the network on the fetch robot. Some of the results are the following.
Aug 20th
Arindam
Loaded some wrong parameters in the detection model, so the training didn't go as planned. It failed with error value going to infinity.
Fixed the issue and now training again.
Wei Huang
Add Kinect and other sensors onto turtlebot3.
Can now project the depth image to 2D map.
Aug 13th
Arindam
Classification training is complete. 3 versions of models are there, smaller one has 11 convolution layers 92% accuracy, biggest one has 17 convolution layers 97% accuracy.
Training for detection now.
Juncheng Li
Writing new pick algorithm which can make the gripper has the same orientation with the object.
New algorithm has two parts. The first part is moving the arm a little bit above the object. The second part is to do the actual grasping which is moving the gripper down to the centroid of the object and then closes the gripper. If no IK solution find, it will change the gripper angle while maintain the same orientation with the object.
Aug 6th
Arindam
Created the network and training it now.
Wei Huang
Imported main dome into Gazebo.
Currently, different objects need to be export as .igs format separately. Then, modify and reassemble in SolidWorks before imported into Gazebo.
Still looking for an easier way.
Juncheng Li
The MoveIt motion planning result will collide with the table.
Writing code to scan the scene to generate a wide range of point cloud for occupancy grid.
July 2020
July 30th
Arindam
Created the dataset with all the objects.
Wrote the code for the neural net, encountered some bugs, trying to fix those.
Wei Huang
Looked for algorithms to do automatic 3D mapping.
Now, still learning about VSLAM (Visual SLAM) and try to modify frontier-base exploration to combine with 3D mapping.
July 22nd
Arindam
Almost done with the code to create the dataset by affixing these images with the masks on background images.
There are some bugs which I am trying to fix.
Juncheng LI
Create a Octomap for MoveIt planning scene.
Write the code transforming the pose from head_frame to base_link for MoveIt.
July 16th
Juncheng Li
Successfully recognize the crank arm as a whole unit. https://drive.google.com/file/d/1yiuW2a6TX9JxG5k18bTsYKlvWUJtcfRl/view?usp=sharing
Improved performance of multiple objects at the same scene. https://drive.google.com/file/d/1iP6iVPYHtW8efudfHu4GU8kkpxj1LoBC/view?usp=sharing
Able to use the prototype board to do the two way communication via Ethernet. https://drive.google.com/file/d/1GD8qpudx1pZzFYX0ZVWh4ccDkX3KlxXR/view?usp=sharing
Arindam
Collected all the images of the objects needed. Created the masks for all of them.
Writing the code to create the dataset by affixing these images with the masks on background images.
Wei Huang
Test with turtlebot3 and localization with AMCL package works fine.
Make two changes to bypass localization issue with Fetch.
Instead of using amcl package, use fake_localization to track robot's position.
Set global_frame in local costmap from /odom to /map. Also, reduce robot inflation radius to 0.3 to make it easier to pass narrow gap.
Now able to navigate through door and narrow gaps. Realized auto-slam with frontier-base exploration.
Successfully build the 3d map manually with fake_localization.
July 9th
Wei Huang
Done serval tests and found out that robot's odometry is not good enough for localization. Looking for solution to improve odom.
Implemented RTAB-Map package to generate 3D mapping. But the 3D point cloud currently is confusing.
Juncheng Li
Better performance for Bin recognition: https://drive.google.com/file/d/1OWPmz6mQA6mK32nigrdpnKZHj3zAVV1e/view?usp=sharing
Able to recognize the left part of the crank arm. False detection exist. https://drive.google.com/file/d/1OasKS35PQpIDCYhhNQYJjR_RrOaau2H5/view?usp=sharing
Can recognize the left part on the crank arm. Bad performance. https://drive.google.com/file/d/1XnCP8rze1YQqmKrnn4JWxLhvl4EMWPGo/view?usp=sharing
Working on recognizing the crank arm as a whole.
Arindam
Created part of the dataset with the bins. Creating more images with the crank arm parts.
July 2nd
Arindam
Creating a dataset of images of the different objects to pick up in sequence.
Juncheng Li
Improved performance for Bin recognition. https://drive.google.com/file/d/1xVV4lQex_z5xUDhAVrI_ubNt2EHZiIK_/view?usp=sharing
Affordance-templates have a lot of bugs for fetch robot. Trying to fix them.
Wei Huang
Completed frontier-base exploration in an open environment. https://youtu.be/eEGpGz41mGI
Currently not able to pass through narrow hallway or door. Possible reason.
Obstacles are inflated too much when building costmap.
Inaccurate localization using AMCL package. https://youtu.be/CvunAo6-Zfc
June 2020
June 24th
Juncheng Li
The Crank arm has bad performance in recognition.
Blue bin can only be recognized in certain orientation.
Need to change different configurations in lighting and 3d model.
Arindam
Picked up the bin with the arm.
Need to remove some of the false detections that appear sometimes.
June 18th
Arindam
Simplified the c++ code for pcl processing
There are some issues to make the python and c++ scripts work together. Trying to fix those.
The code is working in segments, but the complete pipeline is not ready yet.
Juncheng Li
Router or fetch wifi adapter limited the data transmitting speed.
The algorithm can work in real-time with Ethernet connection.
https://drive.google.com/file/d/1kO2Lph1Araqle3XI76GPdFXXP8axeaCH/view?usp=sharing
https://drive.google.com/file/d/1QXNWyDCs9CNWk_zcgOuJfojuCJNpyj1O/view?usp=sharing
June 11th
Arindam
Able to fit an unaligned (tight) bounding box to the blue bin. Will be needed for defining the proper pose for gripping.
Axis aligned bounding box Axis unaligned (tight) bounding box
Juncheng Li
Created a texture 3D mesh for crank arm.
Dateset acquisition and network training for crank arm.
June 4th
Juncheng Li
Able to recognize the position and orientation of the labeled spam.
Have issue with the processing speed.
Arindam
Able to detect the blue bins with image processing.
Trying to incorporate this detection with pcl.
May 2020
May 28th
Arindam
Was able to make a single bounding box around the blue bin.
Now trying to combine the depth and color image with it to isolate the unwanted objects.
Juncheng Li
Evaluating two ways to collect datasets. Successfully generate 20k images using NDDS.
Setting up the environments for Deep learning networks.
May 21st
Arindam
Was able to make some progress with the bounding box. The code seem to work properly when there are less objects in the scene, and when objects have a more continuous point cloud.
Juncheng Li
Understand different ways of collecting data for training.
May 15th
Arindam
Was able to segment out the table part from the scene. Now trying to separate all the individual objects.
Juncheng Li
Looking at different papers on Pose estimation.
May 8th
Arindam
Understood part of the point cloud data processing. But not there yet.
May 1st
Juncheng Li
Successfully pick the crank arm from the CMM machine.
Trying to pick the crank arm from the Bin.
Arindam
Trying to get the ar code position in to the camera image from rviz.
Still working on the point cloud data
April 2020
April 24th
Arindam
Was able to pick up the blue bin using the AR tag position.
Reading up on the point cloud documentation.
Ryan
Successfully loaded in a Fetch with a Turtlebot
ROS Melodic only supports Turtlebot3, which are very small (~15 cm tall), so not useful for tandem operations
Completed first version of Bottomley presentation & will update with recommendations
Naveed
Pix4D results are promising - periodic photos seem to be more efficient than video
Pix4D flight planner can be used with DJI, has photo planning functionality
Can export data into .obj files, but limited by free license currently
options: $45/month for Pix4Dmodel, ~$250/month for full feature suite (more analysis tools and export formats)
Juncheng Li
Able to integrate the point cloud system with the manipulation system.
April 17th
Ryan
Ran into conflicting namespace issues when loading multiple Fetch/Freight robots into the simulation
Additionally, creating a robot inside a namespace structure causes Gazebo to crash on startup
May be a limitation of underlying Fetch code -- not entirely sure
Successfully loaded in multiple Turtlebots -- maybe this is the direction to take?
Juncheng LI
Was able to identify the crank arm and putting the binding box around it in real scene.
The Fetch can reach that position and orientation.
Looking at the Ethernet communication for end-effector.
Arindam
Trying to get the arm to pick up a blue bin.
Better to use point cloud for this purpose. So looking into that.
April 10th
Arindam
Was able to pick and place the crank arm on the new cardboard stand.
Videos fetch_pickup_and_put_back_crank_arm.mp4 and testing_with_cardboard_stand.mp4 uploaded in the server.
Juncheng Li
Collected couple point cloud scenes using the real robot.
Run the point cloud pipeline on the scene in simulation environment.
Was able to put the binding box contains pose information around the crank arm.
April 3rd
Juncheng Li
Try to sampling the 3D crank model into point cloud.
Have trouble converting the ply mesh file into the pcd file for point cloud library.
Ryan
Got videos of the robots in action; saved to the server
Working on getting correct paths for autonomous navigation
Arindam
Made a model stand for the crank shaft.
Naveed
testing Pix4D mapper, still not creating model as we'd expect
need to fiddle with the settings more
March 2020
March 27th
Juncheng Li
Use PCL library for the segmentation, cropping, down-sampling, feature extraction on the saved point cloud data.
Scan through the dataset to find the nearest neighbor to do the feature matching using the extracted feature label ros bag.
Ryan
Created new world file based on test bed's current layout; added crank arm and stand
Gained control of Fetch arm
March 20th
Arindam
Tried to estimate the angle at which the object is gripped by the fetch robot, using image processing. But it is not very accurate.
Designed a stand to hold the crank arm with guided slots, so that the arm can get back to its proper orientation once placed on it.
Juncheng Li
Look at the point cloud data acquisition, segmentation, binding box and matching features.
The point cloud recognition can be done from the 3D model or point cloud data of real scene.
Look at the end-effector communication with computer and ROS interface.
March 13th
Arindam
Got the video feed from the camera, trying to run opencv functions on that. But the frame rate is very slow via ssh connection.
Juncheng LI
Create a loop of series action command from navigation to dropping the crank arm.
Naveed
continued troubleshooting on motor problems with steve
problem is not in Taranis, receiver, or motor controller.
looking into motors, some strange current draw behavior shown on diagnostics
March 6th
Ryan
Mapped simulated facility with Fetch robot
Can successfully navigate to arbitrary points using the map
Naveed
3d printed several of the new panels but they take up way too much filament
going to redesign for decreased volume
replaced motor controller and receiver, have to pair to controller
Arindam
Creating a single python script that incorporates all the functions of the fetch and can work with namespaces.
Juncheng LI
Combine the navigation function with the rotation/linear adjustment to reach the AR-tag.
February 2020
Feb 28th
Ryan
Fixed Gazebo model so others can now use it
Put a ZIP folder with all STLs on the server at /Current Projects/robots_for_factory_tasks/simulation
Included a readme with instructions on how to implement
Successfully added Fetch robot to simulated environment, still working on controlling it for mapping
Juncheng LI
Combined the AR tag code with the arm code.
Working on motion planning of the robot arm.
Created an AR tag leader and follower system, but we do not need that in the demo.
Arindam
Able to control the arm given a position and orientation.
Able to get the current position and orientation of the end effector.
Feb 21st
Arindam
The arm of fetch robot is working, was able to auto-tuck it.
Working on how to make the end effector follow a trajectory.
Juncheng LI:
Fetch and Freight can work independently going to Way-points.
The camera can find out the position/orientation of the AR tag relative to base link.
Try to make fetch robot follow the AR tag.
Ryan
Added missing components and doors to Gazebo model
Swapped out models for colored variants for ease of visualization
Feb 14th
Ryan
Switched to newer ROS Melodic distribution
PX4 and IRIS Gazebo simulation seems to be working now
90% complete on Gazebo model of IMI test bed main room
Arindam
Got the fetch and the freight robot working together. Example video uploaded to the server.
Working on getting the arm working.
Feb 7th
Arindam
Got two turtlebots running together simultaneously using ros namespaces.
Stopped the default roscore from running on the fetch and freight robots.
Juncheng Li:
Fetch and Freight navigation in RVIZ using the map that we build.
Looking into different kinds of quick change end-effector.
Naveed Riaziat:
evaluated new image processing techniques using GRIP and alternative line tracking algorithm
received new parts to add panels and replace motor controller
considerations for getting a new IR camera
steve needs the flir camera back...are there good alternatives to consider?
timeline? might be some time before things are back on track and ready to use thermal imaging
contacted "dslrpros" for quote/feedback on drone options they offer
https://youtu.be/BDh1lZikd-A
promising output video from matrice 200
DJI flight hub will do flight data collection and tracking
Ryan
Successfully extracted STL files from Revit building model
MAVROS installation still not working; attempting switch to ROS Melodic to resolve issues
January 2020
Jan 31st
Arindam
Modified the code for the turtlebots to work on the fetch.
Juncheng LI
Build a map of the facility using real fetch robot.
Try to do navigation using that map.
Jan 24th
Ryan
Contacted Kevin; he doesn't have individual models but does have a Revit file for the whole building
Can be exported as one big STL, but I feel like Gazebo would choke on it
PX4 successfully running; linking to Gazebo for simulation is a struggle
Juncheng LI
Fetch- Using Open-SLAM package to create a "fake" map of the playground environment in rviz by moving fetch robot around with keyboard
Navigation- Using the fake map i saved and do the simple way-point navigation in rviz.
Will run this on the real robot and build the map of the facility and start navigation.
Naveed Riaziat
Finding thermal camera drone options
compiled list of industry leaders (DJI and Parot options)
Communicated with Steve about replacement parts
sending replacement motor controller
sending file for new side panels - should have more space for accessible electronics
undocumented behavior still has not been resolved for HDMI to CSI bridge
going to test on new rasPi and alternative camera
miniArgo stalled testing progress until new parts come in, shifting focus to camera debugging and drone
Jan 17th
Arindam
Got the turtlebot working to move specific distance as specified by the user.
Modifying this code to make it follow a trajectory.
Ryan
Successfully created a ROS package for simulation use, importing necessary Fetch and Turtlebot packages
Loaded in Fetch robot to "manufacturing floor" environment
IRIS drone simulation will require bridging gap between PX4 autopilot and ROS - I don't know enough about this to make it happen
December 2019
Dec 13th
Ze
Synchronized LiDAR timestamp with odom timestamp in post processing
Having problem with LiDAR extrinsic transformation
Physically measured transform does not align LiDAR data
Worked with Naveed on the new Duke Energy robot
Successfully captured IR camera images with the HDMI adapter
Set up the new upboard
Can't drive motors
The motor driver would not connect to usb
Swapped the driver with the one on argo mini and motors still does not run
Could be software settings with the 24V battery setup
The onboard RPi appears to be dead
Dec 6th
Arindam
Made updates in the rebuttal documents of the RBC paper.
Working on the UNET model.
Naveed
Reworking multithreading for linetrack algorithm
Connected IR camera to Pi via CSI
Ordered new UpBoard to replace burnt one
Need to relabel voltage rails for clarity
Ze
Met with Raja and discussed the implementation of IMU and GPS
Still working on pointclouds registration
Ryan
Now able to add STL models to Gazebo map
Anything in particular you're looking for?
Looked into 3D mapping with TurtleBot
Scan angle and odometry inaccuracy will cause this to fail, as well
November 2019
Nov 22nd
Ze
Finished the code to read LiDAR frames from PCAP files and generating pointclouds using pointcloud library
Working on reading pose data and registering all pointclouds together
Ryan
Received Bottomley scholarship
A summary of research is needed to register for ME 498
Description of research, student's role, deliverables, performance metrics, etc. need to be established
Practiced PBE Lab test w/others
Naveed
Training for PBE
Received Bottomley Scholarship - need to register for ME 498 (week of dec 2)
Designing mounting plate for all electronics, will need to order acrylic sheet and hardware to laser cut and mount
Necessary for outdoor/moving test because there are not enough accessible and secure mounting points for
camera
computers
realsense
thermal camera
Nov 15th
Ryan
Environment objects are limited to online Gazebo database
Investigating 3D point cloud mapping for better results than 2D
Ze
Looked into the wheel odometry integration code
Too much integration causes more drift
Drift issue should be fixed by using LiDAR data to correct pose
Naveed
found cables for CSI-bridge, need to validate
ported nearly all electronics from old miniArgo
wasn't able to run tests in PBE yet, still need to improve mounting of electronics and cable managment
Nov 8th
Ryan
Created building interior Gazebo environment
Mapping too imprecise to create a navigable map of complex environments
Believed that it relies too much on odometry to determine position, fix unknown
Possible alternative solution: increase sensor scan angle?
Arindam
Made the prelim presentation.
Naveed
Mounting Realsense camera, begin to interface with UpBoard
Installed UpBoard and wired to new electronics
Will install and test Thermal Camera with new HDMI-CSI converter
Aiming to run tests with regular webcam (as before) in PBE this week
Nov 1st
Naveed
Evaluating CSI-2 vs CSI capture card - unclear which standard the Pi/UP board uses (how many pins for FFC cable?)
https://www.mouser.com/ProductDetail/Auvidea/70501?qs=sGAEpiMZZMuDw7xUFNwm7OMzTlXceEzJyDo7uCublDA%3D
todo on new miniArgo:
install kill switch on remote
move UP board and test code
printed tracking camera mount
install on front, taking care to avoid arm mounting area
integrate tracking and localization into code
Ze
Designed and printed an angle-adjustable holder for the camera
Calibrated the camera at ACRE
Fixed camera hot plugging issue
Recalibrated LiDAR at Mann Hall
Arindam
Made connectors for the odroids to power them from turtlebots
Installed all the required packages on the odroids after erasing the emmc cards. Kept backup of the cards.
Working on a ros script to make them follow trajectories
October 2019
Oct 18th
Ze
Finished the script to capture time tagged images using the upward-facing camera
Set exposure time to a fixed value
Tested at ACRE
Scaned the field 3 times
No significant drift though out the experiment
Arindam
Finished the first draft of the prelim report
Naveed
Capture Cards - Worth being ordered to validate. On paper, latency and format should be adequate
Designing test for antenna
considering using a recycled TV antenna for baseline feasibility test
miniArgo
reseraching controls methods for trank-tread drive ROV
Oct 11th
Arindam
Submitted the poster.
Started writing the report. Almost done with first chapter.
Ze
Wrote a script to directly log the odom data
Test the code by scanning the High Bay area
The pose has significantly less drift on flat ground
Working on the upward facing camera
Once finished, will head to ACRE to test
Naveed
Submitted IAC poster
developing BOM for antenna
composite capture card research (as Ze proposed)
Oct 4th
Arindam
Was able to move the robot hand. Fixed the error.
But the hand movement is not very consistent. Sometimes it picks up the block, somtimes it cannot.
Updated the plan of study.
Need an example prelim report to check the format.
Checked the link for the parts. Have some questions about these.
Ze
Tested all motors
Confirmed the front motors were heat damaged
Ordered new motors xm430
Moved tracking camera outwards a little bit to improve tracking
Updated wheel odom calibration file for tracking camera
Naveed
IR replacement option:
https://www.flir.com/products/blackfly-s-usb3/ (Camera - $365)
https://www.flir.com/products/computar-a4z2812cs/ (Lens - $90)
Exploring use of Antenna to detremine location relative to powerline
https://courses.engr.illinois.edu/ece445/getfile.asp?id=5212
Previous research shows it is feasible to couple with the magnetic field
Inexpensive, but does need relatively large antennae pair (determine direction of B-vector by ortho-components)
September 2019
Sep 27th
Ze
Integrated wheel odometry into tracking camera
Seems to be able to improve the z drift at Herrick lab
Working on motor overheating issue
Sep 20th
Arindam
Submitted the paper. Intel gave the permission.
Trying to move the arm of the robot.
Got errors probably because of the ros version.
Uninstalled ros kinetic and replaced with ros indigo but problem still persists. So reverted back to ros kinetic.
Now trying to write a separate script by using different examples and help files to move the arm.
Ze
Did another test at ACRE with Raja
Two front motors intermittently stopped working during the test
Could be caused by overheating as motors returned to work after a while
There is still z-axis drift in the pose data
Reconstructed point cloud looks good after noise reduction
Side view is not as good as the front view. Raja is investigating this.
Redesigned and printed the chassis
Made a power adaptor to run Agbug and LiDAR on a single battery
Working on integriting wheel odometry into tracking camera to improve the drifting
Naveed
collected video of powerlines in dirrect sun, hidden in shrubbery, and complex junctions
results are overwhelmingly positive, good detection even when under and through branches (implies heating is not solar)
working on printing intel camera mount
communicating with BIDC to see if CF printer is available to increase rigidity
otherwise, ME printers will be an option (PLA)
IR camera: current lens will not work on usb/ethernet FLIR body
having trouble consistently switching camera from write (capture) mode to read (USB host) mode
Sep 13th
Arindam
Received some edits from Jeremy, included those in the paper.
Able to navigate the fetch robot in the simulated environment using keyboard commands
Ze
Built a logic inverter cable to send ROS timestamp to LiDAR
Printed parts to fix Agbug
Performed an indoor experiment
Haven't heard back from Raja about the 3D reconstructrion results
Still working on the FPV preview issue
Naveed
finalizing design to mount intel realsense camera to Argo
accumulating powerline photos in different areas/lighting conditions
preliminary results are good: very little processing required to create distinct line in various lighting conditions
streaming options:
hdmi capture card: $250, latency, can use current camera
does high latency matter? slow response time system might no be disturbed too much
may be valuable to do some sysID before making this judgment
flir blackfly s USB3 - $365 flir camera with usb interface + ~$90 for zoom lens
todo: feedback control: (realsense camera + IMU, encoders)
Sep 6th
Arindam
Included all the edits in the 3rd draft of the paper.
Have some doubts about the naming conventions of the images.
Brushing up the old ROS concepts.
Ze
Tested Agbug at acre with Velodyne LiDAR
Chassis, LiDAR and tracking camera all worked as expected
LiDAR appears to be having a minimum detecting distance
Tracking camera had some significant drift
FPV camera was not sending onboard video stream but was able to record
Still having trouble to sync LiDAR with ROS timestamp, could be a hardware issue
Naveed
exploring IR options for live streaming video to computer
planning on testing IR camera on powerlines in sunny weather conditions this weekend
designing and installing tracking camera onto curent ArgoMini
waiting on larger ArgoMini to run outdoor tests
August 2019
Aug 30th
Arindam
Finished the second draft of the paper.
All references included.
Paper is within 6 pages.
Brushing up the old ROS concepts.
June 2019
June 18th
Daniel
Final Defense Preparations
Finished a full draft of dissertation, planning to schedule formatting consultation this week
Still haven't heard back from Prof. Chiu...
Planning for a practice presentation next Tuesday @ 1:30 (during our normal meeting time)
All packages received from last purchase order:
Power connectors (XT-60, 5.5x2.5 barrel, JST)
WiFi adapters (regular, high-gain)
5V regulators
FSRs
June 11th
Daniel
Sensor Mounting Tests @ S-BRITE
1 fully successful mount on June 6
7 fully successful mounts on June 11
June 4th
Daniel
Sensor Mounting Tests
IBC got stuck to wall and crashed on front boom
Broken force sensor, boom-prop, and push-to-release-mechanism (PTRM)
Rebuilt everything and had several successful flights
Previously had some issues with PTRM not toggling (4 failed mounting attempts)
During the rebuilding process, discovered an issue with the mechanism and fixed it so it toggles smoothly now
Performed 11 successful sensor mounting tests, with 1 failed test where PTRM did not toggle
Min/Max/Avg placement error: 1.0 / 22.0 / 9.1 cm
Writing
Still working on analyzing/plotting all flight data
Writing about target tracking method and localizing without Vicon
May 2019
May 21st
Ze
T265 odom vs. Vicon
Vicon total distance traveled: 47.3m
T265 total distance traveled: 49.5m
Daniel
Flight testing with Iris
Working on validating state machine code on Iris.
Discovered source of last week's crash and fixed the code accordingly
Successfully flew IRIS in offboard mode, sent actuator_control msgs (boom-prop commands) and hold position at "HOME" in OFFBOARD mode
Next steps:
Validate data from flight tests, including target estimation error vs. Vicon and fix altitude setpoint
Test alignment with wall, and 'approach' state code on IRIS
Finally, will test sensor-mount detection with force sensor and then do indoor sensor mounting tests
Intel Aero Tests
Successfully flew a completely autonomous mission
Armed and took off with no RC transmitter connected (all commanded by onboard computer), flew in square path, then landed.
Video here
May 3rd
Daniel
IBC Manipulation
Tried several fixes last week and early this week to solve VNC problems to no avail
Decided to stream compressed ROS images as a workaround and seems promising
Swapped I-BC Pixhawk with latest 1.8.2 PX4 firmware
Naveed
Argo Hardware Setup
Opencv setback, couldn't install and run standalone. Install with ROS works
VNC/SSH is setup and working
Physically mounted to Argo, interfaced with webcam and Sabertooth motor controller
Kill switch installed in series near battery
ready to run live tests
Documentation
Hardware/Software Overview in progress
Code commenting
Ze
Set up mynt eye and t265 on turtlebot
Did some initial test on t265
IMU appears to be only used to initialize the system
Works well against kidnapping
To do
Test t265 odom using vicon as ground truth
April 2019
Apr 25th
Daniel
DC House
Recorded RGB and IR videos with Iris and uploaded to SPIRA
Localization
Integrated new target tracking code into state machine
UP board is unable to run all of the processes simultaneously - the image processing drops to < 5 Hz.
Trying again to get the D435 to run on Odroid XU4, if that doesn't work, may try to use R200 with Odroid and see if the depth quality is sufficient for flight testing.
Naveed
Argo
installed and wired UP board
working on setup for UP board to run opencv
problems with 18.04 compared to our documentation, taking a bit longer than anticipated
planning to run live tests as soon as kill switch is installed
added centering logic to controller in addition to angle
Apr 18th
Ze
Realsense's depth images are too noisy to be used for 3d reconstruction
3D printed a holder to mount mynt eye on the turtlebot
Wrote a script to record depth images and greyscle images using mynt eye
Planning on redo the scan of PBE lab using mynt eye
Daniel
Sensor Mounting w/o Vicon
Finished debugging "click_tracker" program.
Working on modifying the previous state machine code to do sensor mounting using the new click_tracker setup.
Will do initial flight tests on Iris then switch to IBC
Aero Drones
Helping Nadia figure out fully autonomous multi-drone flight setup
Everything is working in simulation (which uses a GPS simulator), but some changes need to be made to work with the Vicon setup.
Did an initial flight test to test takeoff code, but discovered that a different method needs to be used, working on implementing that.
CHPB IR Video Capture Recap:
Planning to use the Odroid/R200 setup from the Ag field tests for regular video capture (will need to have Asus Router with us to log in and start/stop recording)
If possible, will use D435 bracket to mount IR camera, or else 3d print a new bracket
Need to check weight of IR camera to see if Iris can carry Odroid + R200 + IR camera. If not, we may need to do separate flights to get each video type
Naveed
Argo Status:
Functional and reliable code can track mock powerlines in test setup
will need to be tuned for different powerline material and lighting potentially
can reliably discern location relative to powerline center and angle to powerline
line follow both attempts to control heading and location
control is done over serial to sabertooth
basic proportional control needs to be tuned for Argo dynamics
safety
need to install killswitch for all processes
current killswitch only can switch between code or remote control
IR Camera
very promising results
not simple to stream live video, may need to use low frame rate photos and read of USB
HDMI Capture Card?
Apr 11th
Daniel
Localization
Initial analysis of position estimation with EKF2 is promising, generally under 10cm error
Working on adapting state machine code to work with the new target tracking method
Goal is to do some hand-held tests of the state machine code by this weekend
Looking into methods for automatically detecting whether the I-BC is aligned with the clicked target point
Currently planning to use a virtual reference point based on the measured offset between the camera and end effector
ROVer
All components received
Ubuntu 18 is installed on NUC and UP Board, now they just need all the usual software packages to be installed (ROS, OpenCV, etc.)
Naveed
Argo Tests
Ran non-live test in PBE with faux powerline
Image Processing works very well on low resolution image, robust up to low angles of missalignment
outputs angle of line to robot, centroid of line to controller
Thermal imaging
Flir tests on large power lines (by Grand Prix track)
very strong lines against relatively mixed condition sky
still struggling to find a robust way to stream video to controller
Next step: running driving tests on Argo
safety concerns preventing "alive" tests
Ze
Creating pointclouds of PBE lab from the depth images taken for the VIP class
Having issues converting Vicon Euler angles to quaternions
Apr 4th
Daniel
Localization
Re-recorded data with correct ROS topics
Finishing up script to calculate OF and target position estimation errors
Writing to CSV file for plotting, etc.
Planning to set up state machine to align in front of clicked target
Initial tests will be hand-held to test settling logic, etc.
Looking to revisit possibility of running D435 on Odroid so don’t have to change I-BC computer
PBE Lab
Song has moved in some furniture and Dr. Davies would like us to make a procedure for setting up experiments
May want to cut zip-ties on netting in SouthWest corner of PBE
Would like to use our carpet to help with acoustic dampening, aesthetics, etc.
Moved all boxes to High Bay and posters between inner/outer PBE walls
Planning to move force plates to NorthEast corner
Naveed
Image Processing
3 Distinct Methods - HoughLines, "Arindam Method", simple findContour
Hough Lines - Strong ability to find dominant lines
poor noise rejection
need to implement location masking
Arindam Method
finds contours effectively, but struggles with thin lines
tuning of contour detection may prioritize thin objects vs. boxes
center of mass calculation is not robust
findContour
high false positive rate
thresholding may aid remove false positives
Argo Bot
Run test line follows in lab today
March 2019
Mar 28th
Daniel
Aero drones
Prepared video recording script for Video Drone Class on Friday
Made a ros version of the recording script that can also record Vicon data
Localization
Recorded data from a few flights with Ze. Clicked a few different points in the lab to track
Working on analyzing the data to calculate the error in the optical flow position estimation and the 3D target point estimation
ROVer project
We've started receiving the CPU components we ordered. They are in an Amazon box on my desk in HLAB 1024.
So far we have: Barrel connectors, Arduino Uno, SSD & RAM for NUC, USB OTG cable
Mar 21st
Daniel
Aero drones
Got PX4/Gazebo simulator working
Nadia is now working on simulations for auto takeoff and landing of multiple drones.
Localization
Can “track” a user click in an image
Simultaneously calculates desired yaw heading for perpendicularity
Tracking script compatible with R200 and D435
Works with Vicon or optical flow as position estimation source
Optical flow does drift a lot sometimes depending on conditions, so multiple clicks may be required
Now ready to update state machine code to generate waypoints
May need to change flight control firmware on I-BC...
Ze
Worked on the Botshot project
Converted Lidar's data from polar coordinates to cartesian coordinates
Used hough transform to find straight lines
Successfully measured the hoop distance
Got a Jetson tx2 for the project
Did a benchmark
The cpu performance is about the same as Odroid
Naveed
Controlled Argo over PySerial
Started looking through Sabertooth software package
allows for various reconfigurations of control logic
safety logic allows for controller take over - no universal e-stop
FLIR Camera
Windows/Android/iOS only?
may need to mess with linux drivers to get it functioning on Odroid
Exploring E-field measurment for line follow
Mar 14th
Ze
Still working on finding continuous surface in depth images
Now using the method of surface normal
Tested on depth images captured on flying drone for VIP class
Results are really bad as R200 images have low depth resolution and quite a lot noise
Trying to update the kernel pattern for gradients so that it can work with realsense cameras
Mar 7th
Daniel
Aero Drones
Resolved issue with OFFBOARD switch on transmitter
Successfully flew autonomously around a square path in PBE
Connected both Aero drones to QGC simultaneously
Working on streaming Vicon data to both drones simultaneously
Localization
Updating wall angle tracking script to work with R200 and respond to user click
Ze
Working on using gradient of depth image to find continuous surface
February 2019
Feb 28th
Daniel
Aero Drones
Got EKF2 working with Vicon data
Attempted 1st autonomous flight, had issue with transmitter switching to OFFBOARD
Will attempt autonomous flight again, probably Monday
Localization
Got green circle tracking file from I-BC, working to run it on D435 with Iris
Next step: flight test to determine position and orientation hold capabilities with optical flow only
ASME Papers
Submitted IDETC, finished JMR review
Naveed
Continued OpenCV tuning
Line detection works reasonably but false positive rejection needs work
Working with webcam, better info once faux powerline and camera are in
ROS
Line tracking node created and can communicate with motor controller listener
Some bugs with repeat/unwanted messages
Ze
Wrote the code to create pointclouds from given pose and RGBD images
Tested on nyu dataset
To be tested in PBE lab with vicon pose
Feb 21st
Naveed
Line Follow
Experimenting with different edge detection algorithms and OpenCV schemes
Trying to determine best method for discerning desired heading from dominant edges
Up Board Setup
SSH and VNC setup on up board and personal computer
Power Line Info
Rough estimate ~1" diameter at 6' height should be comparable in size ot actual powerline
found black, flexible 1" OD PVC tubing to span in hallways or office?
Ze
Installed px4flow and lidar on iris
Did a test fly without the odroid and realsense
Altitude hold and position hold seem to be very stable without the payload
Daniel
ASME Papers
About 1/2 way through review, planning to finish by tonight
Compiled RA-L reviews and highlighted main comments, will look at modifications after I finish JMR review
Aero Drones
Updated the flight controller to latest PX4 (1.8.2)
Successfully streamed Vicon data to drone, but basic control became unstable
Currently using LPE estimator, with Alt Ctrl somewhat unstable
Discovered that we need to publish to a different topic for mocap to work on EKF2
Tours
Recruitment and MEP tours went well
Things are set up for Girl Scouts, what time today?
Feb 14th
Naveed
Getting up to speed with Upboard and TX
Power line simulation in Gazebo struggles to run on my laptop, maybe try moving to desktop
Running line follow on ground works, trying to reposition kinect model to look upwards and run same code
increase straight line preference
consider using GPS, accessing preloaded map and localize within
Thermals in Gazebo are not feasible
flir camera tests will have to be done by hand
Testing
purchase tubing for running across high bay to simulate powerlines
powerlines against sun
simulating wind in Gazebo
Daniel
Intel Aero
Finished software install (Ubuntu, ROS, OpenCV, etc.)
Working on Vicon setup for autonomous flights
Working on accessing front and down facing cameras
IDETC submission
Converted to ASME style
Planning to re-read reviews and edit content as necessary to address concerns
Localization:
Next step: reuse green circle detector to hold position in front of wall, and maintain perpendicularity
Office PC:
Finished Ubuntu install
Feb 7th
Daniel
Found a VNC server that can display OpenCV videos and capture keys
Flew Iris+ with D435 video displaying through VNC
Refocused PX4Flow for next flight test w/position hold over carpet
Calibrated D435 Depth measurements
This improved wall angle measurements
Need to submit request for waiver of 2-semester rule to Graduate School
Ze
Continue to read through the SLAM book
Started exploring the px4flow sensor
Jan 31st
Daniel
Indoor localization:
Fixed issue with D435 not running on battery power (changed 5V regulator configuration)
Iris+ weight current payloads and no battery is about 100 g more than a plain Iris+ with battery, so we may be exceeding the 400g spec, but it hovers at about 60% throttle, so it should be ok for testing
Planning to calibrate depth measurements under 2 meters to improve accuracy
For wall detection, I may just measure Continue to read through the SLAM book wall angle using a fixed rectangular region in the camera frames (e.g. in the center of FOV).
Arindam
Ran the algorithm on the training images. Some images are well segmented, but many of them are having the background as well. Trying to fix that.
Jan 24th
Daniel
Localization without Vicon
Mounted UpBoard and D435 on IRIS+ for flight testing
3D-printed front-mount bracket
VHB tape was too flexible
Moved camera further forward to help with overall COG
Working on wall-angle detection code to maintain perpendicular heading relative to wall
Able to measure angles with decent accuracy at close range
Detecting the wall may be somewhat intensive, but may be able to merge with target tracking?
Likely need to calibrate D435 depth measurements like we did with the R200
Intel Aero Drones
Performed initial flight tests, both drones work
PX4 Firmware should be updated eventually
Nadia is planning to put Ubuntu on Aero Compute board and begin developement
Collaboration w/Prof. Culurciello's Lab
Juan emailed me about a new intern working on the project with AirSim and Pixhawk, etc.
R200 depth data wasn't accurate enough for their algorithms
Would like to get some new sample videos with D435 to see if that helps
NRI 2.0 Proposal
Got some more detailed information from Yuanzhi and Tianyi about their module
Working to flesh out the collaborative navigation section
Arindam
Got some results for the segmentation on the sample images.
But there are a lot of images where it is not producing good segmentation.
Trying to make it work entire training set.
Ze
Reworked Agbug's code
Opencv's imshow is too slow. Now directly write to linux's framebuffer to show images. No need for x server.
Using multiple cameras simultaneously
Takes YUYV raw images from cameras
Automatically detects new cameras
Switches camera views from the transmitter
Dropped resolution to 640 x 480 to increase FPS
December 2018
Dec 18th
Arindam
Trying to install tensorflow on odroid. Some error is coming while trying to import into python. Fixing that.
Ze
Not able to directly write to frame buffer.
Tried to tweak picamera library
Can show the webcam images as overlays on top of the pi camera images
Max 20FPS
Occasionally memory error
Switched to OpenCV to show the image
Able to get both cameras to work at the same time and switching between each other
Now showing images relies on X server
Might cause some issue if the program starts before system login
Daniel
Met with Prof. Ramani's group, discussed goals/areas for new project
Installed OKVIS on Upboard, but don't have proper calibration for time-synced IMU to test
Working on attaching Upboard + RealSense to IRIS
Added new power distribution board and attached Serial4 FTDI adapter
Working on full setup with Lidar, PX4Flow, Upboard and RealSense to test real-time visual servoing without Vicon
Replaced thermocouple on Makerbot, test print worked well
Dec 4th
Daniel
EPRI-UAS Workshop went well, got some good insights from the utilities industry and made some good contacts
VINS-Mono SLAM
Got VINS-Mono installed and tested with UpBoard, D435 & Pixhawk IMU
Localization seemed very unstable on live camera data (may be an issue with sensor calibration/configuration)
CPU usage was almost 100% on all four cores, so likely wouldn't be able to run other ROS packages simultaneously
EuroC dataset seemed to work fine, but with a massive time lag ~ 60 seconds
Ze
Rewrote video recording code. Unified all cameras and moved everything to opencv.
Using separated threads to pull images
Fixed fast-forwarded video problem
Sync frames to have a steady FPS
Trying to directly write to framebuffer
Arindam
Modified the segmentation part to find out more pure segments.
Removed the autoencoder plots as segments are more pure now.
November 2018
Nov 27th
Arindam
Made some changes in the code to make the overall detected segments as pure as possible.
Matched texture with the heat map to find out the segments which can be included in the output annotation label.
Che Kun
Performance with carpet texture improved significantly for pure rotation
Able to complete a square path by moving slowly and smoothly - Primary bottleneck is the rotation aspect
Multiple overlaying arrows is when localization is lost and regained.
Ze
Swapped Agbug files to new SD card
Compiled and installed OpenCV
Now save video files directly on SD card
Nov 20th
Ze
Able to record videos with USB cameras
Need to use opencv for better integration:
Will be able to switch video sources and add text overlays
Had issues to compile
Arindam
Filtered the segments with the Hue channel and that gave better results in purifying the contours from unwanted parts.
Will apply the texture filtering now.
Che Kun
ORB SLAM 2 performance on rotations is fairly poor.
Likely due to featureless environment. To investigate further
Half circle test
Worked with Daniel to integrate ORB SLAM with Robot Localization
TFs integrated
Also facing issues with rotation.
Nov 13th
Daniel
Pose estimation with robot_localization package
Created ROS driver for MPU 9250 which publishes sensor_msgs/Imu topic
Set up MAVROS with Pixhawk to stream Imu topic from Pixhawk as well
Tested EKF fusion of Turtlebot 2's odometry with the Pixhawk IMU topic (using robot_localization package)
Performs pretty well within a few meters, but after traveling 10+ m, some error starts to accumulate
Working on incorporating ORB_SLAM2 data into the estimator, and then will measure the error with ground truth
Che Kun has already made a ROS package to publish ORB_SLAM2 data in the necessary topics, just need to work with him to get all the data into the right format to work together.
Arindam
Using rank of matrix to find the good matches in the texture of the image. But this is not giving the complete result.
Trying to find better alternative metrics for this.
Nov 6th
Che Kun
ORBSLAM2
Square loop test (1m x 1m)
Robot seems to lose tracking during pure rotation
Writing wrapper to output image with ORB features over ROS topic to aid debugging
Camera mount for RealSense on TB3 design done
To print and test
Arindam
Trying to find the best texture in order to filter out the unwanted textures by using the heat map.
October 2018
Oct 30th
Ze
Fixed USB flash drive mounting issue
Fixed video naming issue (now base on file sequence)
Added a ROS param to start/stop recording
Assigned a switch on the transmitter to trigger the ROS param
Che Kun
ORBSLAM2
Managed to get RGBD code working by using a launch file
Did a 2m straight line test for visual odometry for TB2
Estimated pose seems to be relatively accurate
Going forward 2m: Translation: [1.983, -0.356, -0.051] [x, y, z]
Returning back to start point: - Translation: [-0.041, -0.147, -0.003]
Note: I took the images in portrait but they were auto-rotated when I uploaded them
Daniel
Found some 9-axis IMUs in the AgBug parts box (Sparkfun MPU9250 breakout)
Got data streaming through Arduino Uno
Will make a ROS node to publish the data as "sensor_msgs/IMU" ROS topic
Looking at using "robot_localization" ROS package as a starting point for implementing a 6D Pose estimator using EKF
Arindam
Trying to seperate the excess background parts from the segments using the heat maps and the texture images from the first layer of the network.
Oct 23rd
Che Kun
ORBSLAM2
Added scaling factor for monocular code
Able to visualize without Pangolin viewer in Rviz on a separate computer
Tested RGBD code with depth stream: Seg fault. To debug
Modified cover to place RealSense
Arindam
The vectors corresponding to each segment is a 3 dimensional vector (as we have 3 classes). Converted them into 2 dimensions by an autoencoder to visualize them better.
Daniel
RealSense D435
Solved issue with converting depth images to laserscan
Got rtabmap_ros working with D435. Quality seems ok, but need to do more tests to see how accurate/robust it is compared to Kinect
SLAM
Continuing to search literature for best camera-based localization setup.
Planning to implement Extended Kalman Filter using IMU from old AgBug, or Pixhawk to estimate 3D pose
Goal is to potentially use that in combination with a SLAM approach to improve performance
Ze
Warpped the pi cam streamer with ros
Measured power consmption:
Idling: 8 ~ 10W (FPV 3W, Pi & OpenCR 6W)
Running: 17 ~ 20W
Field tested range:
FPV: 160m(0.1 mile) line of sight (FPV signal dropped below 40%)
Radio: >= 160m
Video uploaded to spira server under agbug folder
Oct 16th
Arindam
Plotted the vectors of each of the segments of each image individually along with the mean vectors to see how well the segments are representing the detected class.
Che Kun
Able to control/teleop TB3 with Upboard
Fixed issue due to OpenCR firmware, ROS TB3 code mismatch
Modifying/Designing cover for AgBug to place RealSense camera
Daniel
New UP Board Setup
Got Ubuntu 16, ROS, OpenCV, etc. installed on new UP Board
Installed drivers for Kinect and RealSense D435
Basic Turtlebot Demos working with Kinect (teleop, follower)
Able to access color, depth and pointcloud streams from D435 using both OpenCV and ROS wrapper
SLAM
Found some papers comparing different SLAM versions and sensor types
Planning to evaluate various SLAM algorithms using D435 to see if it is good enough to use as a direct replacement of Vicon
Oct 9th
Che Kun
Finished ROS wrapper/code to output camera pose from ORB SLAM as an odometry message
Able to visualize in Rviz
To look into robot_localization ROS package for sensor fusion between visual odometry and wheel odometry
Debugging Upboard to OpenCR interface issues for TB3
Unable to teleop control it
Ze
Fixed the auto startup
Swapped the FPV module and added a heat sink
Tested, having some hiccups but overall working well
Daniel
Finished RETH and IAC posters
SLAM
Looking at different options for 3D SLAM, starting with R200 camera
Found some parameters to tune for rtabmap, planning to try on Turtlebot
Arindam
Retrained the network using some background images.
Oct 2nd
Che Kun
Wrote ROS wrapper for ORB SLAM2 to output camera pose as a TF message
To write code to convert TF message into odometry message for integration with AMCL
Daniel
Continuing SLAM Literature Review and considering most viable options for I-BC localization without Vicon
Current options I've considered
Use PX4 optical flow on Pixhawk with real-time visual servoing based on forward-facing camera
Update rate may be too slow, and may not have enough features during manipulation
Implement some SLAM algorithm with forward- or down-facing camera, possibly fused with IMU data
Latency may be an issue if we obtain IMU data from Pixhawk and then try to time-sync with camera data
May also be limited by computation power of SBCs
Combine downward and forward-facing cameras to improve Option 2 in various environments
Again, may be limited by computation power of SBCs
Planning to try out some existing SLAM options from OpenSLAM and look into the robot_localization ROS package for state estimation
Visited the Bechtel Innovation Design Center
Considering different material options for gripper fingers to make them more resilient
Ze
Merged ROS files for AgBug and and created a launch file
Setup the system to automatically launch ROS during startup
ROS will start by itself but does not have access to system files(ttyAMA0 and ttyACM0)
September 2018
Sep 25th
Daniel
IAC
Mostly finished with Quad Chart, deciding on figure(s) to use
Planning to update I-BC poster with door opening figures from recent submission
Optical Flow Flight Testing
Flew several times over the carpet with the Iris+
Position holds pretty well, with occasional cyclic drifting
Added ESP8266 to IRIS+ to stream Vicon and calculate absolute positioning error
Documentation Round-up
Arindam and I consolidated the documentation for the Odroid software installation into a single Markdown file
Also installed software on one of the spare Odroids so we will have a reliable base for testing SLAM, etc.
Plan is to create similar '.md' files for all other lab documentation and store on SPIRA in a single location
SLAM / Localization without Vicon
Reviewing literature on SLAM & brainstorming ideas for I-BC localization without Vicon
Che Kun
ORB SLAM 2 works on Monocular live camera feed
Investigating camera depth image stream
Depth stream does not seem to be published as a ROS topic
To check with launch files on ODROID
TB on straight path in HLAB room
To Do
Write ROS wrapper/code to output pose/odometry from ORB SLAM
Ze
Made a USB receiver dongle to use on the turtlebot
Fixed the motor issue
Re-plugged all the wires
Reset the OpenCR board several times
All motors run now but the OpenCR board randomly throws a failed to connect error
AgBug is fully functional now
To do
Clean up the catkin work space
Create a launch file for AgBug to automatically start everything
Arindam
Separated out the most important feature from the image using the heat map.
Working on overlaying it on the segmented image to find out more segments.
Sep 18th
Ze
Can publish cmd_vel message to Agbug using the remote control now
Can publish front camera image now
A few issues
Motors won't run
Might try re-flashing the OpenCR board
Sometimes RPi won't automatically connect to WiFi after startup
Che Kun
Installed and tested ORB SLAM 2 on Intel Joule
Working with live camera data
To test on robot to see trajectory generated
Daniel
Optical Flow
Got about 12' x 18' of carpet (extra length cut on each 4' roll)
Flight tests:
Tested Iris+ Position control using PX4 v 1.8.0 and PX4 optical flow sensor
Holds position pretty well, with some occasional oscillations on the order of ~0.5 m
Streamed Vicon to the Pixhawk (for logging only) to compare with optical flow pose estimate
Having some issues with the quaternion conversion to Euler angles (yaw)
Tours
Two Turtlebots ready to go, one with UpBoard, one with Odroid
Arindam
Implemented a graph cut algorithm for segmenting the input image.
Checking the response of the network on each of these segments and grouping the important ones together to create an outline around the object.
A bounding box can be extracted from this outline.
Sep 11th
Ze
Wrote a cpp code to transfer SBUS signals to turtlebot velocity commands
Tested on turtlebot2 using the SBUS receiver and FTDI232
To be tested on Agbug
Che Kun
Trying to setup Intel RealSense D435 on Intel Joule
Debugging errors during kernel patch
Setting up ORB SLAM on Intel Joule
OpenCV 3.x bugs - Debugging missing shared libraries
ORB SLAM tested on OpenCV 2.4.x and Ubuntu 14.04 (On their wiki). OpenCV 3.x not mentioned
Approach 2: Try ORB SLAM 2 which is mentioned to be compatible with OpenCV 3.x and Ubuntu 16.04
Sep 4th
Daniel
Door Opening
Compiled video of door opening with mini quad fly-through
Updated OverLeaf project to v2
Working on writing everything up
UWB Project
Comparison experiments to highlight the efficiency of the Ke/Tianyi's UWB-surveying ROS node
Built an arena in the PBE lab using posters and cardboard boxes
Autonomous exploration still struggled, so manually created a 2D map of the PBE using gmapping
Wrote program to search the full space
Ready to test Ke/Tianyi's UWB-surveying ROS node in the space
Added Vicon markers to TurtleBot for experiments
Still need to write a timing script and set up a Vicon stream to simulate proximity-based UWB detection
Arindam
Planning on using the network to detect qr codes first. Just to see if it is able to create boxes for less complex objects.
Creating the dataset for that.
Che Kun
Install/Setup ORB SLAM on RPI3
Memory issues: Insufficient RAM to compile C++ code (Internal Compiler Error)
M1: Use another SDcard with more memory space (Create swap file)
Con: RPI3 only has USB 2. Not ideal for RealSense (R200/D435) due to limited bandwidth
M2: Try ODROID/Up Board
Setup TB3 files on ODROID. To test interfacing with OpenCR board
August 2018
Aug 28th
Arindam
Network is having some trouble training. The training error is not reducing. Modifying the network to tackle that.
Daniel
Door Opening
Successfully flew mini drone through door with I-BC flying in corner of the lab
Got information about the fan in the PBE lab
At 2 meters from the fan, wind speed is only about 4 mph, so probably need a larger fan.
Also, need to set up obstacles in PBE lab for UWB experiments, so probably will hold off on wind experiments for now
UWB Project
Tested several autonomous exploration ROS packages
explore_lite and frontier_explorer are two of the more stable packages, but they still struggle to give consistent results and crash pretty frequently. If we have larger obstacles in the PBE lab, then explore_lite may be able to work well.
Tested QR code reading packages in ROS
Most packages just extract the text without giving the 3D position of the code itself
Also, detecting QR codes requires either additional cameras (e.g. facing left/right) or a more complex/exhaustive search path through the map, which will likely take too long to implement given the pending deadline
Helped Tianyi debug some issues with detecting the desks/obstacles in their lab with the Kinect (modified the depth-to-laserscan package), and sending waypoints in rtabmap. Got their Turtlebot to successfully travel to desired waypoints even without a complete map.
Met with Ze, Ke, Tianyi and Muzhi and decided to revise the experiment
Instead of scanning the space for QR codes, we’ll do two related experiments:
Efficiency test
Follow a predetermined path through the map and discover UWB devices based on proximity (e.g. distance reported < threshold), and measure how long it takes to locate all devices (or, see if it fails in some instances)
Use Ke’s UWB registration algorithm to discover/localize the UWB devices and compare that time and success rate
Accuracy test
Place UWB devices in various locations and measure the positioning error of Ke’s algorithm
Ze
Solved Linux custom baud rate serial communication issue
Need to set all flags(c_cflag, c_lflag, c_cilag) for driver to work properly
https://www.cmrr.umn.edu/~strupp/serial.html
Aug 21st
Daniel
Door Opening
Cut out back of electrical enclosure
Opened the door about 65˚ using a yaw setpoint of 20˚
Attempted many times to fly mini drone through doorway with I-BC in the air, but the turbulence/wind was too much for the mini drone to overcome.
We do have some videos recorded of the mini drone flying through the door without the I-BC in the air
UWB Project
Got the localization working with a Kinect and rtabmap_ros (SLAM package), brought the kinect and a Turtlebot to Tianyi and Muzhi, so they can test the UWB integration
Built the 3rd Turtlebot and mounted our second Kinect sensor on it to test other algorithms
e.g. Google Cartographer
Waiting to hear from Tianyi about what aspect we can help with next...
Arindam
Found a bug in the code because fo which the training was not giving proper results.
Retraining the network with the artificial and natural images again.
Aug 14th
Arindam
Installed pytorch on Odroid successfully.
Having some issues with the combined training still.
Aug 7th
Arindam
Training for the network is still going on.
Facing some issues with installing Pytorch package on the Odroid. Working with Juan and Manav for that.
Ze
UWB Project
Dumped and edited a Tango param YAML file so that the frameIDs could be renamed before the Tango ROS streamer starts
Connected the Tango to Turtlebot navigation stack
Having some noise issue. Trying to play with the setting
The static TF publisher needs to be tuned
Debugging the SBUS receiver script
Finished designing the top shell for Agbug
Daniel
UWB Project
Working with Ze to get Tango SLAM to work with Turtlebot's path planner
Will meet with Tianyi/Muzhi to integrate the path planning to navigate to the physical UWB locations
As a backup for Tango SLAM, I've been working on getting the RealSense drivers for the D435 to work with Odroid
Drivers have now been installed on Odroid, just trying to test them with OpenCV to see if they are working correctly
Door Opening
Has been somewhat on hold while working with the UWB project, but the OverLeaf document has about 2-3 pages of content about the gripper and image processing from my prelim document
July 2018
July 31st
Daniel
I-BC Door Opening:
Adjusted I-BC yaw to 5, 8, then 10 deg. and opened the door ~60 degrees
May try 15 deg. yaw, but I'm thinking 60 deg. may be close to the max for this method
RA-L/ICRA paper
Started writing (transferred some sections from ch. 4 of my prelim document as a starting point)
Arindam will go over what I wrote about the image processing and flesh out that section
UWB Project
Met with Tianyi & Prof. Ramani on Saturday
Working on a 10-day plan to get all sub-system experiments done, followed by 10 days of integration and refinement, and then 10 days for write-up
Planning experiments to quantify accuracy of Turtlebot navigation using Tango SLAM
Also looking to potentially improve the localization accuracy using the UWB, but still not sure how
Prof. Ramani offered Ze and I temporary workspaces in the C Design Lab while we work to integrate the UWB nodes with the Turtlebot, so we may bring the Turtlebots to ME for a few days
Ze
Redesigned and 3D printed a chassis for Agbug
Wrote a script to read SBUS receiver signal
Mounted and wired all core components on Agbug
Tested FPV transmitter
July 24th
Ze
Debugged way point publisher
Tested agbug
Video stream, drivetrain and LiDAR worked
GPS and sensor probe not working
Need FPV and radio receiver
Created bottom shell for agbug
Daniel
I-BC Flight Tests:
Modified BoomCopter code to change yaw during door opening
Vicon had to be recalibrated (possibly due to HVAC repair?)
Ready for flight tests as soon as tours are done today
UWB Project:
Looking at related work to see what has already been done and how we can contribute to the field
Tianyi brought a Tango device (Asus Zenfone) and the RealSense D435 for us to test w/Turtlebot
Arindam
Created some dummy images and their corresponding bounding boxes.
Trained the network on that.
Now, need to create and train another network that will take in the localized images and output bounding box information.
Ganesh
Finished documenting the GEP PAGE workshop and Gazebo SITL simulation
Working on the AirSim project document.
July 17th
Arindam
Created a fresh dataset of images that has a custom random object in it. Will start training with this dataset.
Ganesh
Finished setting up for Prof. Eugenio's project
they are planning to get the same hardware
preparing a guide for the set up.
Ze
Finished the coding for way point selecting for path planning
To be tested
Daniel
Met with Prof. Ramani's group, got homework to do lit. review of SLAM/Path Planning
Taking time off with family this week, but plan to do flight tests on Friday with Arindam
July 10th
Ze
Tested rtabmap_ros with kinect2. Printed a holder to keep the sensor staying upright.
Trying to find a method to make move_base planner use unknown cell for path planning
Daniel
UWB Collaboration Project
Met wit Tianyi to discuss SLAM strategy & answer ROS questions
Found ‘frontier_exploration’ ROS package
Working on a custom ROS node to compute and send exploratory waypoints given a known UWB location
Door Opening
Fixed the gripper, ready for next test flights, planning to include yaw motion during door opening
RealSense Tuning
Got the RealSense to work outdoors, recorded some videos for reference
Arindam added sliders to tune parameters as needed
Arindam
Localized the objects in the images using the gap layer.
Now modifying the network to make some bounding box predictions.
Will be flying the iris for the ai project.
Ganesh
Finished writing the script and tested it
MAVROS - RC data - rospy
AirSim - Images - AirsimAPI
Workshop: Finished setting up 21 robots in groups of 3. Tested.
Will set up the remaining stations this week
Will go over the other course materials
July 3rd
Daniel
Door opening
Completed several flight tests, but the door still only opens about 10 cm, looking at videos to see what is causing the early release.
Will perform more flight tests after repairing one of the compliant fingers (broke during a test yesterday)
Imported the RA-L paper template into OverLeaf
RealSense tuning
Found some parameters to try for outdoor use, will test this week
Localization w/out Vicon
Got IRIS 2 set up with PX4Flow, LIDAR, and latest PX4 firmware
Made some texture patterns for the floor in PBE that give optical flow 100% quality
Trying to get PX4 to switch to position hold with just optical flow (no Vicon), but need to debug an issue with the compass causing a failsafe
Collaboration w/Prof. Ramani's group
Need to meet with them to get more specifics about what is needed before we can proceed on our end
Arindam
Improved the accuracy of the network to 93% from 87%. Stopped Training and working with the Global Average Pooling (GAP) layer now.
Will do some flight test this week for AI+ project.
Ze
Created a new launch file for rtabmap_ros to work with kinect2
Trying to change the parameters to get a better mapping result.
June 2018
June 26th
Ganesh
Have some Unreal Engine environments that we could use for the project - meeting Juan and his team this thursday
Reading up on how to create our own robot
Workshop: Soldered 6 robots - the 2 sample QR holders printed - will go today to pick it up and check on the chassis using the velcro -Will place an order for that to be printed as well
Will goto 1030 to test the robots and install the software in the computers this week.
Daniel
Battery recommendation for Intel Aero:
Turnigy 4S 4000 mAh 30C Lipo, Amazon
LiPo Balance Charger, if needed: SkyRC iMAX B6AC v2 (same as we use in our lab), Amazon
SLAM & Motion planning
Mapped out the Turtlebot's navigation ROS launch files and configuration files
Learned how to change path planning algorithm parameters and tested with autonomous navigation demo
Installed SVO monocular SLAM and got it running on Odroid
Got rtabmap_ros working on Turtlebot/Odroid, working on getting Turtlebot navigation demo to work
rtabmap_ros has a demo using Google Tango on Turtlebot, so this may be a solution for our work w/Prof. Ramani's group
Arindam
Created the model for classifying the images with Global Average Pooling layer. Training is still going on.
Need to check how well it can localize, once the training is over.
Will be flying the drone with obstacles to get the training data.
Ze
Tested VISLAM on Snapdragon Flight
Newest Machine Vision SDK is not compatible with the official demo
Modified the demo code to work with an old SDK(1.0.2)
The "SLAM" only gives pose and odometry and relies heavily on IMU data
Trying to modify the rtabmap launch file to work with Kinect2
Currently having some issue with the TF topics
June 19th
Ze
Looked through snapdragon flight user guide and developer guide
Reinstalled firmware and ROS
Tested all debugging tools and ROS
Applied for Machine Vision SDK license
Looking into camera and IMU APIs and trying to write a ROS publisher node
Daniel
Got pull sensor data from 2 more door opening flights
Still need to analyze the data, but at first glance it seems to have much more detail
Learning about the path planning / SLAM pipelines in ROS
Mapped HLAB 1st floor and tested autonomous navigation
Looking into switching the planning and SLAM algorithms for Turtlebot
Tours:
Made separate power connectors for the Odroid on the Turtlebots
Ganesh
Built a custom environment with AirSim with a working Quadrotor model and tested - can now buy any environment and integrate the simulator in it.
Fixed the issues with HITL and got it working - https://photos.app.goo.gl/F7pPxbTjvddSWdFq6
Received the packages from Sparkfun and Polulu - can begin soldering - Amazon yet to arrive - expected tomorrow
Meeting the 3D printing team at WALC to finalize things - They approved the design for the holder as it is.
Arindam
XYZ position data from vicon is synchronized with the video frames. Need to set up some dummy obstacles and perform a flight test.
Working on the bounding box code.
June 12th
Ganesh
The environment file downloaded from Windows wasn't opening on the version of Unreal Engine on my Linux partition
Met with Juan's group. They suggested coming to their lab and working on the server when Juan is present. Going to their lab today in the afternoon to set things up.
Simultaneously working on setting it up on my Linux partition as well, to check the feasibility of setting everything up on a new laptop - probably get an idea of required GPU specs
Workshop: When can we expect the 3DP filament to arrive? I'm planning to do a test print of the QR holder using my June material quota at WALC and find out if any design changes need to be done.
Daniel
Finished Prelim Exam
Planning to do door-opening flight tests with the new pull sensor, and look at ROS packages for collaboration w/ Prof. Ramani's group
Also planning to test out some monocular SLAM algorithms on RealSense/Odroid
Ze
Tested rgbd slam in the office room with kinect. It did not work very well without external odometry.
Started working with snapdragon flight. Installed all the environment software.
Looked through the SVO paper. Trying to run the code on snapdragon board
Arindam
Fixed the errors on the gpu and started training the yolo network.
Will be working on synchronizing the vicon x, y, z coordinates with the video frames on Odroid.
June 5th
Ganesh
Trying to do HITL on Linux
Had some trouble downloading the environment on Epic Games using Linux - Lukas suggested doing it on windows and copy the files
GPU was not being used for the engine - fixed that
Daniel
Preparing for Prelim Exam
Finished Prelim Report
Working on Presentation
Looking into using WebEx in Eisele Conf. room
Arindam:
The commands from the teleoperated controller are synced with the video frames from realsense.
Tried running the model on paperspace gpu. Got an error that gpu is running out of space. Working on that.
Ze
Looked into two slam packages: rtabmap and rgbdslam.
Tested kinect v2 with rtabmap_ros
May 2018
May 8th
Daniel
Force sensor replacement arrived
Removed old pull force sensor
Clear plastic layer was delaminated from back of sensor: I assume this is the cause of failure...
Made a new cable for the pull force sensor that can be more easily detached from the end-effector side in the event of another failure
Verified that the pull sensor is now working as expected:
Response of pull and push force sensors looks about the same (raw analog output to terminal)
Door closing algorithm
Was stuck on best way to calculate and store actual handle position after collision
Came up with an idea to use an existing projection function to get the right coordinates
Will put all of the door closing code into a new file separate from working door-opening code
Will perform some flight tests with working force sensor to see if the door-opening logic needs to change and/or if the door opening can be improved with better pull force data
Working on compiling previous work into prelim proposal document
Apr 2018
Apr 23rd
Ganesh
Finished importing and creating the boom-copter Tricopter
Created the model with all the plugins, links and joints
Was crashing all the time, has to play around with the inertial model and collision models to simpler geometry to achieve takeoff
Tested flight - no issues - works perfectly
Tested the boom-prop separately - uses two channels (one for forward motion and other for reverse
Daniel wrote a code to check if the tricopter accepts commands
Got MAVROS running - Have access to all the data on board - have flight logs saved after every flight (can be used for debugging)
Given a target X, Y and Z, the copter takes off, transitions into off board mode and goes to the target position
Works perfectly
Added a camera
Coded the camera with properties into the model file
Other suggested methods did not work
Image gets published to a topic
Addition of camera - caused the copter to oscillate and crash - even when added along the center of mass - couldn't takeoff and hover in place
Manipulated the different parameters
Solved that issue and was able to takeoff and hover
List of sensors:
IMU - data can be accessed through MAVROS - Logs saved for each flight to visualize and for diagnosis
Has a error modeled into the plugin to simulate sensor errors in real life.
Camera - available raw image
GPS - ROS topic - has a error modeled into it to replicate positioning errors
Lidar - can add to get depth data
Intel Real-sense - Found a plugin for the Intel Real-sense hardware - not compatible with the version of gazebo - will try it on another laptop before changing the version (if possible)
Daniel
Compiled the door-detection position estimation error in a single document
Errors are similar to what we had for sensor mounting
Average error:
Total: 5.8 cm
X: 5.3 cm, Y: 0.012 cm, Z: 0.021 cm
Made poster for RoSe-HUB
Arindam
Tested the yolo v2 code for training.
The training error reduces with the iterations which means the model is learning the features. So all parts of the code is working properly.
Need to test the model on the Amazon cloud services.
Che Kun
To redesign linear actuator to be more robust with grooves/slot.
Characterization Experiments for
Max Incline
Max obstacle size
Battery life
Maximum Speed Calculations
Theoretical Maximum Speed (No load): 0.3488 m/s
Calculation = 0.05461 m * 8.063421135 rad/s
Experimental: 0.3 m/s
Calculations based on motor with higher no load speed 77 rpm
Based on motor with lower speed. As there are 2 different sets of motors used on TB3
http://www.robotis.us/dynamixel-xl430-w250-t/
Speed Limit is limited due to motors used.
Trying to setup OpenCV 3.3 to utilize Deep Neural Network (DNN) module
Setup in progress
Apr 16th
Ganesh
Finishing up the boom copter model.
Some issues with COM and axes for rotation
Fixed those
Added a tiltrotor variables in the model file => +/- 15 degrees
will add the model to the simulator and set it up
Working on the 'world' file with the door
Arindam
Understood the yolo code and rewrote several parts of the scripts.
Prepared the datasets so that they can be read by the model properly.
Will start the training. If it trains properly that means the codes are all working properly.
Daniel
Flight tests
Successfully opened the door in 11 different flights
Had a few failures due to gripper positioning
Typically happens if the battery is getting low and position-holding capability decreases
Also can struggle if door handle is grabbed at the top
Currently analyzing the data...
Che Kun
Laser Filter: Implemented
Pre-Filter
Post-Filter
Case for linear actuator to prevent it from falling
To fine-tune. Print 1 more iteration
Characterization Tests
Max Speed: 0.3 m/s
Max Incline: 35 degrees
Use Case: Under-Canopy Plant Phenotyping
https://dailyillini.com/news/2018/01/23/university-startup-develops-5000-agricultural-robot/
Plant Phenotyping Lab (Purdue ABE Faculty)
Apr 9th
Ganesh
Got hold of the parameters and list of code changes in the package to get tricopter working
Implemented it using a test model of tricopter
Works :D - has a tiltservo - takes off fine
Next steps:3
Verify working of the model and find bugs if any (tiltrotor code is not available as an official release - not tested yet - in experimental stage)
Add boom prop
Add depth camera
Import environment
Test
Arindam
Reading the papers on bounding box detection in neural networks.
Daniel
Flight Testing
Finished integrating the box detection image processing into the state machine
Performed several flight tests
3 tests successfully opened the door
Force sensor only worked for one of these flights
The remaining tests had various network lag issues
Planning to perform several more flight tests for validation of the error data
Static Thrust tests
Set up and performed thrust tests for 16" vs. 15" propeller with Che Kun
Che Kun
Added undercarriage
Tested LiDAR: Only linear actuator part detected.
Teleop to control linear actuator: Works, but sluggish - To tune pub/sub
Setting up udev for USB devices connected - To debug with Daniel
Point to point navigation ok
Recovery behaviour affected as it cannot rotate due to linear actuator behind.
Apr 2nd
Tianqi
belt length 221.65mm, find a belt might fit:
https://shop.sdp-si.com/catalog/?cid=p348&filter=a17%3A2%3A225.0&sort=undefined&view=table
Ganesh
A model for QUAD-Plane with tiltrotor was added to the package - I made the boomcopter model (tri) following the same steps (Changes made to the files of the package)
Created a make variable
Added a custom mixer file <--
Added a parameter file <--
Modified the physics and the SDF file
Modified the mavlink file to add a case for tricopter
Still not working perfectly - most likely some issue with mixer or the parameters specific to the simulator.
Waiting for the tricopter parameter update inside the package
Developers of the package are still finishing the model
Che Kun
AgBug Packaging
LiDAR: 3D printed standoffs to raise LiDAR height
Managed to place USB hub under LiDAR. Saving space and enabling lipo batteries to be placed on top.
Cleaned up cables. Cables are below LiDAR detection plane. To validate with testing.
Cameras
RPI Camera (Front facing): Tested and working with ROS on RPI3, designed camera mount for it.
USB Camera (Downward facing): Tested on ROS on VMware
Unsure of optimal placement.
Current Weight:
AgBug: (1.768 kg with 2 cameras)
Cage: 0.309 kg
To Do
Systems test check if everything is working
Change to 16" diameter propellers on Boomcopter
Add undercarriage to shield RPI, OpenCR boards from dirt, dust from the ground.
Daniel & Arindam
Calibrating Realsense door detection program
Went through several iterations of the code to make it multi-threaded
Frame rate is now ~14 FPS
Added a formula to center the X error
Working on formulas to offset Y & Z errors so they are centered around 0
Mar 2018
Mar 26th
Ganesh
Mainly worked on setting up the tiltrotor tricopter
Recreated the boomcopter (without boomprop) - just a tiltrotor tri - with the latest sitl_gazebo package
Made series link Base_link>motor_2>rotor_2 (rear)
'rotor_2' moves even when 'motor_2' is active.
Created make variables for tricopter inside the package
Setup mixers and parameters for this setup
Still not working completely - one of the developers said that he will update the package with some values of the parameters specific to tricopter in a couple of days
Che Kun
Mainly worked on packaging/streamlining AgBug
Reduced 1 module
1.61kg
Daniel
Modified state machine code to use Realsense camera instead of webcam
Updated simulator to test/calibrate the Realsense image-tracking code
Planning flight tests for this week to calibrate Realsense data & open door
Arindam
Measured distance from the size of the box by image processing (beyond 2m from wall).
Distance measurement switches to realsense within 0.5m to 1.5m from the wall.
Mar 19th
Ganesh
Direct PWM test for each motor is not supported anymore (>1.5)
Unable to give PWM inputs directly to check the bi-directional motor
Made 2 models: One with bidirectional motor with a single plugin and another with 2 plugins for each direction (2 channels)
Made the Enclosure with a door hinge - Need to attach handle - need link for the handle
Upgraded to Ubuntu 16.04 and ROS Kinetic.
Was facing build errors with latest firmware and simulation packages
Installed all the required dependencies
Some new changes in the simulation package - was able to arm the rotor with series link
there is a chance that the tiltrotor could be simulated - simultaneously working on that
Tianqi
Latest flight test
Weight with 4s battery : 1873g
Weight without 4s battery : 1244g
water jet cutting project submitted, waiting for approve
Che Kun
Able to teleop AgBug out of cage
Ag Faculty (Dr Jian Jin)
https://abephenotyping.weebly.com/
Expertise: Hyper-spectral imaging to predict plant yield
Planning to build a mobile robot platform for ag sensing in Fall 2018
Large robot: Higher throughput
Daniel
I-BC Repairs
Reprinted all broken parts and reassembled I-BC
Will do another flight test once RealSense is mounted
Finished ICRA Workshop paper
Arindam
Detected the door in the recorded videos.
Need a depth video recorded by the Real-Sense for having the distance estimate.
Originl image Image with white bounding box
Mar 12th
Che Kun
Finished version 1 of AgBug-Boomcopter cage
Weight of AgBug with battery: 1.5 kg
Extra layer beneath : 200g
Cage: 300g
To Do
Drill some holes on carbon fiber shaft/Use set screw
Arindam
The stereo images in opencv is flickering a lot during the depth map generation.
Intel realsense is giving a more stable depth map than the stereo vision in opencv.
Daniel
Door-Opening Task
Performed several flight tests to attempt to open door
Successfully opened the door autonomously
Pull force clearly shows door opening
Boom-Prop timer expired just before pull force indicated door was open in state machine
Crashed IBC During a subsequent flight test
Still investigating root cause
Damage was minimal, mostle 3d-printed pieces broke:
Gripper mount, gripper fingers, gripper finger standoff, sonar mount, tail-rotor top mount
Working on reprinting the parts to continue flight tests
Mar 5th
Ganesh
Follow up on Image processing on Gazebo:
The camera view is published under a topic just like how it would if you connect a camera to a Ubuntu based computer
You can use OpenCV on that stream to process the image
And send back commands to the virtual UAV
Started working on the enclosure
Have the SolidWorks model for the box from McMaster Carr
Couldn't find the Handle
Once the assembly is complete, I can import it on to Gazebo
Should I add any color coded patch or anything for Image processing ?
Follow up on the Boomcopter
Met with Daniel and he wrote a code to test the motor - entering a value of 0-1 for the Main flight control group
The boom prop motor works - still have to test the reverse direction part
Need to find the part of the code where the PWM limits for the motors are specified - working on that
Daniel
Gripper modifications for door-opening detection
Modified gripper design to prevent flexing of motor mount plate while gripping door handle
This was causing the gripper to bind on the slider and was preventing detection of pull forces
Modified gripper finger thickness to improve grip on handle
Makerbot slicer makes the fingers non-symmetric, so had to compromise on thickness
IBC State Machine Edits
Coded the grip and retreat states
Currently finishing up the actual door-opening state logic
Working on a failsafe for turning off the boom-prop if the pull sensor fails to detect the door-opening
Makerbot Replicator 2X Maintenance
Getting heating error messages when printing parts
Usually we can restart the print and it works, but we're getting the errors more regularly
Thermocouple on right extruder most likely needs to be replaced:
Emailed Steve Florence to see if he has advice and/or a spare thermocouple
Replacement part link on Makerbot's website
Che Kun
Working on cage design.
Need to redesign some parts to prevent potential failure
Feb 2018
Feb 26th
Ganesh
Learning how to program robots on gazebo - for simulating the gripper with force sensor - from tutorials
Some issues with PWM range in the motor plugin for boomcopter
Have identified some PWM related parameters
Will discuss with Daniel this week and try to simulate the BoomProp separately
Both forward and backward
Once that is done, we should have a working model as the quad part is already setup
Che Kun
Design cage for dropoff/pickup
In progress
Streamline AgBug design
Need to raise height of LiDAR. As LiDAR detects the wheels
To raise by approx. 10mm
Need to order M2.5 x 30 mm screws + 3D print standoffs
Found on Amazon/McMaster
Current screws is M2.5 x 18 mm
AgBug detects its own wheels
AgBug detects the linear actuator (circled in red)
Packaged sensors on a single breadboard
Arindam
Implemented stereo vision in opencv with two cameras.
Working on refining the images to make them more clear.
Tianqi
All the new components are ready to use
New transmitter, new receiver...
Pixhawd with ardupilot, calibration and tuning done.
Todo:
One more flight test this week and finish the top plate
organize wires
Daniel
Gripper modifications
Added cable across gripper fingers for better impact performance
Pull force sensor seems to be working now, possibly due to sensor manager battery
Can't find the robotic hand in the lab anywhere...
Planning to do flight tests to grab the white board eraser for now (to test the multiple-attempt state machine)
Feb 19th
Ganesh
Update on Gripper/Contact sensor
Made a simple gripper model on gazebo using tutorials
Added a contact plugin to the last link
Update on Boomprop motor plugin
Force formula governing the motor: Force = Motor_const * joint_vel * joint_vel;
Modified the model with an 'if' loop to change the magnitude of force to negative if 'joint_vel' is negative
Will have to finish setting up the rest of the simulation - hopefully this will work
GPS/Positioning
GPS plugin available
<gpsNoise>false</gpsNoise> - setting this parameter to false will provide error free GPS data - can be used instead of Vicon
Got MAVROS and virtual Quad communication setup - able to access the topics
Daniel
Door Opening Task Prep
Wrote a Python script to simulate an I-BC test flight.
This will allow me to test and debug changes in the state machine for opening the door
Printed thicker gripper fingers
With a thicker finger, the gripper transmits force more reliably to the force sensor, but the thicker finger doesn't conform as well to objects
May need to use velocity (e.g. vel <= threshold) to indicate contact with the wall/door, rather than force sensor
ICRA Paper Edits
Added review_summary.docx to Google Drive/BoomCopter/ICRA_2018_Paper/ICRA_2018_Reviews
Addressed issues from reviews in OverLeaf (see red text)
1 or 2 changes still pending
Started a PPT digest slide (Google Drive/BoomCopter/ICRA_2018_Paper/) based on last year's slide
Just need to update the bullet point list
Deaf Kids Code
Received quote for PCB assembly & updated BOM prices to adjust automatically for quantity
3D printed the spacers for the light sensors & tested on prototype
Che Kun
Soil Sensor/Linear Actuator Integration (Software)
Able to control linear actuator via ROS
To Do
Redesign linear actuator to fit new offroad wheels
Design cage for dropoff/pickup
Streamline AgBug design
Feb 12th
Ganesh
Talked to Daniel to find out the requirements for simulating the BoomCopter:
installed MAVROS for communication and sending offboard commands
working on modifying the motor model for the boomprop (since it is bi-directional)
Tianqi
To do:
Reprint/design battery holder to correct the center of mass
Print/design holder/box for ESC & wires
Swap the recevier/Pixhawk
Recaliberate controller with 4S battery on
Finish everything with the top carbon fiber layer
Arindam
Going through different codes of reinforcement learning.
Daniel
Gripper Design
Increased the finger length to expand the gripper span
Previous span was ≈ 10 - 12 cm, new span is ≈ 17 cm
Longer fingers introduce a few issues with force transmission
They are much more compliant, so they absorb impacts (this is good and bad)
They induce more torque on the gripper with single-finger impacts
Made finger tips elliptical rather than spherical, and increased the major diameter to prevent pull-out while gripping
Testing:
Set up the IBC on wheels to test gripper response to different handle approach angles
Gripper reliably closes around handle from most initial positions
Currently trying to make the impact detection more reliable & prevent gripper from grabbing edge of door
Che Kun
Swapped to offroad wheels
Briefly tested. Able to go from 1 waypoint to another
Further lower height of the platform
Seems plausible to put the OpenCR board on the underside
Cage Idea for transporting the AgBug
https://www.cmu.edu/news/stories/archives/2016/january/autonomous-ground-air-mission.html
To Do
Attach OpenCR board to underside, shift LiDAR forward
Parameter tuning for robot to account for changes in configuration
Feb 5th
Ganesh
Finished modeling a barebone version of Quadcopter with a boomprop for initial testing
Will discuss with Daniel to figure out how to get his code running
Tianqi
New arm printing finished
To do:
Ready for next flight test
Waterjet cut anothor carbon fiber sheet
Che Kun
Designed and 3D printed mounts for offroad wheels
Research on soil moisture profile
https://www.delta-t.co.uk/product/pr2/ (Sensor)
http://www.mdpi.com/1099-4300/17/6/4454/htm (Soil Moisture Profile)
Seems like typical soil moisture profiles look at the soil moisture level in the soil at different depths across time
Arindam
The training without bounding box is reducing the number bounding boxes, but the size of the bounding box around the object is increasing.
Trying to use some bounding box data to improve the performance.
Jan 2018
Jan 29
Daniel
Flight Tests:
Redesigned gripper slider to use nylon rollers instead of a 3D-printed peg-in-slot to reduce sliding friction under torsion (when the gripper makes contact off-center)
Performed several flight tests to verify that the new rolling design is effective
Collision was detected every time the gripper made contact, regardless of which part of the gripper made contact
Mounted a whiteboard eraser in the center of the red square to test the gripping success rate
Successfully grabbed the whiteboard eraser and removed it from wall (see YouTube video)
Only 2/6 flights successfully grabbed the eraser, 3 tests missed it completely, and 1 test hit the eraser with just the right fingers and closed the gripper in front of the eraser
Based on the data from the successful flight tests, it should be possible to determine if an object has been grabbed using the gripper position and state data (see gripper data below from the flight test shown in the YouTube video):
Che Kun
Modified chassis to be lower
Soil/Humidity sensor + Linear Actuator
Code integrated into a single ProMini
Weighted AgBug: 1.22kg
Add-on Camera Functionality
RPI3 uses USB 2.0
RealSense uses USB 3.0
Camera performance might be sluggish
To test TB3 with ODROID
Arindam
Separated the background from 30% of the dataset.
The process is still going on for the rest of the dataset.
Once the background is extracted from all the images, the network has to be retrained all over again and the internal filters have to be analyzed based on their total weights for creating bounding boxes.
Ganesh
Turtlebot 3 Burger model setup on Gazebo - ROS Indigo
Set up the camera and LiDar
Will discuss with Che Kun about the changes in the model and programs that he runs on the TB3
Working on Quad with Boomprop - Have a similar model file - Changing the code
Jan 22
Ganesh
Working on modifying the IRIS to attach boom-prop.
Turtle-bot simulation on Gazebo - installed the required libraries etc. - Learning how to add peripherals and program it.
Daniel
Flight Testing
Solved the yaw deviation problem while in OFFBOARD mode
PX4 parameter: MC_YAWRAUTO_MAX, was preventing the necessary yaw control action when in OFFBOARD mode
Yaw performance seems to be back to the way it was
Gripper force transmission issue
Working on a new slider design that will still slide freely in the presence of torque (due to off-center contact with gripper)
3D printed a few test sliders, but they still bind
Che Kun
Modified AgBug TB design to be lower
To seek feedback if it should be lowered further
Packaging Sensors/Linear Actuator to run on a single Pro-Mini:
Temperature sensor working
Linear Actuator: working
To integrate both code together
Placed order for off-road wheels
Side Project: Working on Vehicle Detection and Tracking with Computer Vision
Building an image pipeline for vehicle tracking using a sliding window approach
Trained a linear SVM to recognize cars
Currently not real-time, still building the image pipeline
Potentially extend to tracking some features of interest for AgBug in the future
To Do/Pending
Further chassis modification (if necessary)
Redesign linear actuator so that standby position is higher than center of the wheel
Wait for off-road to arrive before designing
Characterize force from linear actuator with sensor mounted
Arindam
Prepared a GUI to visualize the output of the internal layers of the network.
Working on segregating the image into regions of high and low scores using the network.
Jan 8
Daniel
Flight Testing
Several flight tests have confirmed issues with maintaining yaw setpoint while in autonomous OFFBOARD mode.
This problem never occurred during the sensor mounting experiments, and it doesn’t happen in Altitude Hold or Position Hold modes.
I’ve ruled out Center of Gravity changes with the new end-effector, and sensor calibration as culprits
Next steps I'm considering:
Update the PX4 firmware on the Pixhawk, or perhaps switch out the Pixhawk
Swap the front motors/ESCs to make sure there isn't some kind of imbalance
Outreach
Made a first-pass on the light follower redesign
We should be able to get all of the chassis parts separately for close to the same cost, as long as we laser-cut the frame here at Purdue.
I found a few different options for PCB assembly ranging from $6.00 - $10.00 per board, but I’m not sure about shipping costs as some of the options may require us to collect the parts here and then ship them out for assembly.
Dec 2017
Dec 12
Daniel
Flight Tests
Performed multiple flight tests with Ze
The IBC will not settle at the NTP, due to significant fluctuation in the yaw angle
The Yaw setpoint looks ok, we may need to adjust the static offset again (from ≈4.5˚ to ≈ 9˚)
(Unable to upload plot of yaw since this website's storage quota is full)
Still trying to determine what may be causing the yaw angle to deviate so drastically after ≈30 sec. of trying to settle at target position
DKC Outreach
All kits in the suitcase in the High Bay area, ready to be handed off to Shireen
Dec 4
Ze
Solved the image retrieving problem
Compared image quality with old Kinect
Che Kun
Linear Actuator working
Shifted Wheels Backward
Daniel
Flight Testing
Can't determine reason for crash
Flight test today with Ze
DKC
Finished all kits, ready for packaging
Nov 28
Tianqi
New chassis able to fly without issue
Todo: Add optical flow & sonar
EPM pick-up demo
Ze
Modified Kinect v2 to use a 12V power adatper
Tested Kinect v2 with two different drivers: Microsoft(Win), libfreenect2(Linux)
NOTE: Microsoft's driver does a hardware integrity check so I put all the parts back.
Compiled and installed the driver on XU4
Using kinect2_bridge to work with ROS
Having some compatibility issue(OpenCV 2.4 & 3) with kinect2_bridge (Somehow I managed to get it work but still having errors compiling the whole package )
Working on getting the image from Kinect v2
When I fire up the kinect I can see the rostopics published by it but I'm not able to retrieve the images
Che Kun
Finished CAD and 3D printing of linear actuator
To test and integrate with Daniel's code/library to control
Able to send humidity/temperature data into ROS from Arduino
Possible Monster Truck Wheel
https://www.tetrixrobotics.com/TETRIX-All-Terrain-Tire
Waiting for supplier to reply regarding details about mounting
https://www.servocity.com/4-3-off-road-robot-tires
Out of stock on website
Tires avail on Amazon
Arindam
Finished the top part of all the kits.
Need to hot glue the wires so that they are all firmly attached.
Need to create a manual for assembly. Need packing boxes.
Checked out some of the potential improvment in the Deep Learning framework.
Creating bounding boxes even when the training images do not have bounding box information.
Automatic increment of the learning rate of the model.
Creating dummy training examples to train itself, if not enough training data is available.
Automatic segmentation of the input image without training on segmented images.
Nov 21
Tianqi
Che Kun
Finished CAD and 3D printed
To Do
Some fine-tuning to be done for CAD to account for placement of fasteners
Raise height slightly
Printing right now
Arindam
Assembled the battery case and switch of all the robots.
Created a training dataset that has bounding box in their images. Need to train the system using this set of training images.
Nov 14
Arindam
Assembled some light follower robots with Daniel.
Pcb, sensors and motors for all the bots are ready.
Battery case has to be mounted and motors and pcb has to be soldered.
Still working on the neural network model to create a bounding box on the detected pattern.
Training dataset also needs to have the bounding box information in order to have bounding box in the output, which was not there in my dataset. Trying to fix that.
Ze
Worked on the light follower robots
Got a new sensor Kinect v2. The hardware requires some modifications to work with PC. Trying to get it work with ROS
Tianqi
Carbon fiber plate purchase?
Assembly chassis and some fly testing
Che Kun
Finished CAD model of linear actuator for soil sensor
To Do
3D print and test mechanism
Nov 7
Ze
Tested Realsense R200 with various settings(http://wiki.ros.org/realsense_camera):
r200_dc_preset
Works best with default setting or medium setting
r200_lr_gain
No effect
r200_lr_auto_exposure_enabled
No effect
depth_width, depth_height
Higher resolution improves image quality
depth_fps
R200 only works at 30fps or 60fps
Maximum effective range is below 4 meters
Indoor lights have an slight effect on R200
Che Kun
Collected Vicon data for a box test for TB3
Processing data from ROS side
Working transformation matrix to map to Vicon coordinate frame before comparison with ground truth
Plot of Vicon Data
Concept design for linear actuator done
Working on detail design
Tianqi
Carbin fiber cut done (need more material)
New arm printed
Daniel
Finished mounting gripper hardware on I-BC
Modified the state machine code to close gripper after impact with wall
Updated I-BC schematic
Will do flight test with red square to test impact of gripper
Arindam
Found a c code for detecting the qr codes in video frame. But it is having some bugs that I need to resolve. Probably the opencv version used are not compatible.
Still working on making the qr codes with neural nets to be scale invariant.
Oct 31
Tianqi
Carbon fiber plate sketch final draft
EPM Test
ToDo
Carbon fiber plate cut
New arm print
EPM pickup demo Manually
Arindam
Removed the false detections while detecting QR codes.
Need to make the code more scale invariant and light invariant.
The speed of detection is increased from 10 Hz to 15 Hz. (Webcam default frame rate: 30 Hz)
Che Kun
Wrote code for TB3 to navigate to multiple waypoints (x, y coordinates) indoors
GPS messages read by ROS has checksum error
Hardware test: GPS device works fine with Arduino
Still able to get GPS coordinates (Lat/Long) in ROS
UTM Conversion code for Lat/Long -> UTM did not seem to work
To debug
UTM Conversion code
Ze
Scanned PB lab with both realsense and kinect
Realsense failed the scan due to short distance and accumulated errors
Working on changing realsense parameters
Oct 24
Ze
Re-flashed Odroid
Tested SLAM with R200
RealSense
Kinect
Che Kun
Soil Sensors
Current sensor is difficult to insert into dry soil
Searched for alternatives
Challenge is to stick it deep into the soil
Non-Contact Temperature Sensor
Arindam:
Working on creating a convolution network that can process the bigger image (320x240).
But this kind of network takes a very long time to train on a CPU. So looking for other options like (google cloud) where the GPU can be accessed online.
Tianqi
EPM effect distance test
3Dprinting
battery cover piece
EPM piece
Daniel
Gripper
Incorporated Gripper control & sensing into Arduino Pro Mini Sensor Manger (renamed to Device Manager)
Still need to quantify gripping ability (pull-out force, etc.)
IAC
Cleaning done on Monday, and Posters arrived
Both posters look good
I will be presenting for our 2 posters and 2 of Prof. Gibbert's posters
Our demo will be during the 3rd hour
Videos
Manual Sensor Placement
Autonomous Sensor Placement 3rd person view
Autonomous Sensor Placement onboard view
Robots:
Turtlebot driving with Leap Motion controller
Turtlebot follower
Possibly demo gripper grasping different objects
Oct 17
Che Kun
IAC Poster done
TB3
Tuned goal tolerance
yaw_goal_tolerance: 0.15 rad
xy_goal_tolerance: 0.10 m
Re-positioned front and back wheels to be closer center of robot to minimize robot turning radius
AgBug Navigation
If it overshoots the goal, it is able to re-position itself based on the smaller turning radius
Rviz Visualization
To Do
Look at soil sensors and see how to integrate it into current platform for sensing
Current Ideas
Turtle3 Bot Open Manipulator
https://turtlebot3.readthedocs.io/en/latest/manipulation.html#turtlebot3-waffle-with-open-manipulator
Design a simple mechanism to place the soil sensor onto the ground
Research on setting up a wifi network outdoors for field testing
Current Ideas
Wifi hotspot with mobile phone
Portable wifi router/mobile broadband device (With SIM card inside)
Tianqi
EPM Test done
PWM control
AFL Waterjet Cutter avaliable
Registration
Quiz & safety test
To Do:
EPM magnetic field effects test
Check carbon fiber sketch dimensions
Daniel
Gripper
Finished low-level control code for gripper
Implemented as an Arduino library
Finished CAD assembly
Animated Open/Close (YT: Gripper Open/Close) (YT: Gripper Open/Close) (YT: Gripper Open/Close) (YT: Gripper Open/Close) (YT: Gripper Open/Close) (YT: Gripper Open/Close) (YT: Gripper Open/Close) (YT: Gripper Open/Close) (YT: Gripper Open/Close) (YT: Gripper Open/Close) (YT: Gripper Open/Close) (YT: Gripper Open/Close) (YT: Gripper Open/Close) (YT: Gripper Open/Close) (YT: Gripper Open/Close) (YT: Gripper Open/Close) (YT: Gripper Open/Close) (YT: Gripper Open/Close) (YT: Gripper Open/Close) (YT: Gripper Open/Close) (YT: Gripper Open/Close) (YT: Gripper Open/Close) (YT: Gripper Open/Close) (YT: Gripper Open/Close)
Door Opening Task Prep
Gripper
Designed and 3D-printed the complete assembly
Quite a bit of compliance, but seems sturdy enough to hold up to some impacts
Assembled gripper with force sensors and everything at least fits together
TODO: Quantify the force and torque limitations for gripping
Finished low-level control code for gripper
Implemented as an Arduino library
TODO: Modify sensor_manager ROS node to have gripper control and feedback
Arduino Pro Mini Integration (for Sensor_Manager ROS node)
Interrupt Pins
Verified that sonar measurements can be done with pin change interrupts instead of external interrupts
TODO: Test use of encoder and sonar simultaneously (check for interference)
TODO: Modify sensor_manager ROS node to include gripper control and feedback
IAC
Poster submitted
I will be presenting for our group and Prof. Gibbert's group again this year
Allison asked if we would like to do a demo this year? (Would need a response by end of this week at latest)
Arindam
Detected the QR code with convolutional neural network, but has some false detections as well.
Need to make it more robust and more precise so that it bounds only the QR code part with a rectangle.
Ze
Tested Turtlebot 2 with kinect
Tested SLAM with Kinect
Mounted Realsense on Turtlebot 2
To do
Test Realsense camera
Generate a map with Realsense and compare to Kinect
Oct 10
Tianqi
CAD revised
Che Kun's poster figure
new idea about all electro-components position
To Do:
Test the EPM
Print new parts
Carbon Fiber cut
Daniel
BC Gripper
Designed a 3D-printable linear actuator to replace glue stick housing
Printed whole gripper assembly, including gripper arms out of ABS
Gripper now fully opens in 1 - 1.5 sec
IAC Poster
Will remove AgBug and add in graphs from latest papers
Arindam
Implemented the convolution neural network for the qr codes. But the accuracy is low (15%) and error is high.
Possible reasons:
The network might be too big (2 convlution layers and 3 linear layers)
The data set might need to be larger (right now it has 4000 qrcodes and 4000 dummy images)
Hyperparamenters like learning rate and momentum and error functions might need to be changed
Oct 3
Tianqi
Fly test done (very stable!)
https://youtu.be/_9xQTC-Hkuw (YT: IMG 2484) (YT: IMG 2484) (YT: IMG 2484) (YT: IMG 2484) (YT: IMG 2484) (YT: IMG 2484) (YT: IMG 2484) (YT: IMG 2484) (YT: IMG 2484) (YT: IMG 2484) (YT: IMG 2484) (YT: IMG 2484) (YT: IMG 2484) (YT: IMG 2484) (YT: IMG 2484) (YT: IMG 2484) (YT: IMG 2484) (YT: IMG 2484) (YT: IMG 2484) (YT: IMG 2484) (YT: IMG 2484) (YT: IMG 2484) (YT: IMG 2484) (YT: IMG 2484)
https://youtu.be/2tklwE7eSaA (YT: IMG 2485) (YT: IMG 2485) (YT: IMG 2485) (YT: IMG 2485) (YT: IMG 2485) (YT: IMG 2485) (YT: IMG 2485) (YT: IMG 2485) (YT: IMG 2485) (YT: IMG 2485) (YT: IMG 2485) (YT: IMG 2485) (YT: IMG 2485) (YT: IMG 2485) (YT: IMG 2485) (YT: IMG 2485) (YT: IMG 2485) (YT: IMG 2485) (YT: IMG 2485) (YT: IMG 2485) (YT: IMG 2485) (YT: IMG 2485) (YT: IMG 2485) (YT: IMG 2485)
Beagle bone learning
ROS installed (working on the tutorial)
To do
Design change?
Modify the design make the chassis more rigid and stable
reprint parts, Carbon Fiber cuts
Che Kun
Motor ID swapped - With Ze's help
Closed Loop Control
In-Built Function (Odometry/Encoder Test) - Works
Move fixed distance
Rotate fixed angle
No data clash due to 2 identical motor IDs
Tested autonomous navigation
Not working perfectly as kinematic model slightly incorrect
Teleop test
Global robot velocity to local velocity model slightly incorrect
Front -> Right
Right -> Front
Left -> Back
Back -> Left
To Do
Debug and resolve error with kinematic model
Ze
Wrote a program to change dynamixel motor EEPROM settings
Daniel
Made gripper prototype for testing
Will probably need 3 gripper arms offsetting each other to grab door handle
PLA gripper is quite flexible, but may also try with ABS
The current motors we have are too slow for this configuration
IAC poster deadlines coming up next week
Arindam
Tried to train the neural network with the 320x240 size image. But that is creating a huge vector of 230400 (320*240*3) elements.
Spatial information of the pixels are list.
So trying to use convolutional neural network for the training.
September 2017
September 26
Che Kun
Setup monster variant hardware
Able to perform open-loop control for motors
For closed loop, having 2 daisy chained motors with same motor ID may cause issues when reading encoder readings
2 same ID publishing encoder information causes signal errors
Found skid steer robot model for
Odometry - Get odometry from encoder readings
https://www.coursera.org/learn/robotics-learning/lecture/YdleV/odometry-modeling
https://link.springer.com/chapter/10.1007/978-3-319-38771-0_53
Velocity - To map global robot velocity into local motor velocities (Jacobian matrix)
http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.565.755&rep=rep1&type=pdf
To Do
To cross validate robot models with more sources and test
Arindam
Working with different Image datasets like CIFAR10 (dataset of simple image, like car, horse, bird, truck etc.) and MNIST (dataset of handwritten digits) to train a neural network for images.
But these images are small (32x32 pixels) and simple.
Right now accuracy on MNIST is 95% and that on CFAR10 is 70%.
Trying to improve the accuracy be different modifications on the network structure.
Daniel
Got Realsense camera working on the Odroid XU4
60 fps depth images, 30 fps rgb video
Sensor weighs 8 grams
Need to submit IAC poster title to Cindy by tomorrow
Working on problem definition and strategies for opening the door in the air
Considering different end-effector options, including a simple gripper
September 19
Che Kun
Clock Skew Error - Fixed
Implemented changes suggested by Daniel to update with Chrony
Tested controlling Dynamixel motors with Daisy chain method - Success
To purchase USB2Dynamixel communication device to switch motor ID
http://support.robotis.com/en/techsupport_eng.htm#product/auxdevice/interface/usb2dxl_manual.htm
http://www.robotis-shop-en.com/?act=shop_en.goods_view&GS=1289&GC=GD080300
Waiting for Robotis to confirm part before purchase
Torque calculations to determine suitable motor/if current motors are suitable - Completed
Based on assumed mass of 2 kg
N = 2*9.81 = 19.62
Friction Coefficient (Mew) of 0.6 (Rubber on Concrete)
Weight evenly distributed across 4 wheels
F = Mew * N/4 = 0.6*(19.62/4) = 2.943 N
r = 0.033m (Current wheel on TB3)
Torque = r * F = 0.033 * 2.943 = 0.097119 Nm
From torque performance graph
http://support.robotis.com/en/product/actuator/dynamixel_x/xl_series/xl430-w250.htm
At 30 rpm, Torque = 0.4 Nm
Safety factor of 0.4/0.097119 = 4.118
http://turtlebot3.readthedocs.io/en/latest/appendix_dynamixel.html
To Do/In Progress
Software Tuning for Burger
Robot recovery behavior
Default behavior is to rotate on the spot to "clear obstacles" - Which may be undesirable
Inflation radius tuning
Software
Research on which code should modified as we transition from a 2WD (Burger) to 4WD (Monster)
To change differential drive kinematic model to skid-steer
Tianqi
Pixhawk setup finished, ready for the flight test
Ubuntu 16.04 installed for BBB, start using OpenCV packages
Will work on the gripper design once the megnet received
Daniel
Finished 1st draft of JMR paper
Working on installing realsense drivers for XU4 in preparation for door-opening task
Arindam
Planning on using a machine learining model to detect a qr code from a video feed.
September 12
Ze
TurtleBot3 Waffle
Flashed newest BIOS
Installed Ubuntu & ROS
username: waffle
password: turtlebot3
Looked through online ROS tutorials
Note: need Herrick door swipe access
Tianqi
ESC, Motor, Controller all tested (working good)
Need a receiver (with SBUS) from the LAB
EMP
this product is not widely used so there is only a few review/comment about it
Looks like the imu(compass) will get interfered
Faraday cage
Magnetic Shielding Foil
Che Kun
TurtleBot3 Burger
Able to perform autonomous navigation
Robot able to move from point A to B in a pre-generated map file
TB3 Rviz visualization with AMCL running (Office in Herrick lab)
Clock Skew Error still present
Chrony method suggested by Daniel does not seem to work
Tried to utilize a startup script, my script relies on internet access to update the time, not sure if at boot time, startup scripts will have internet access
As wifi connection may not have been established yet
Current Solution: Manually run a script to fix it after booting
To Do/In Progress
Working on System/Detail Design for Monster
System Design
Drivetrain (4 motors)
Software
Research on which code should modified as we transition from a 2WD (Burger) to 4WD (Monster)
Detail Design (Drivetrain)
Research on which exact motors to use and how exactly to interface them (TTL/RS485)
Torque calculations to determine suitable motor/if current motors are suitable
To test out controlling current motors with Daisy chain method
Daisy enables control of multiple motors with 1 single TTL/RS485 interface port
Reason for using daisy chain is there are 3 TTL ports and 3 RS485 ports
Meaning that to control 4 motors
I would either have to daisy chain 2 motors to at least 1 TTL port
Or
Use 3 motors with TTL interface and 1 motor with RS485 interface
Software Tuning for Burger
Robot recovery behavior
Default behavior is to rotate on the spot to "clear obstacles" - Which may be undesirable
Inflation radius tuning
Daniel
Finished RA-L paper & video
RealSense/Kinect
Got the Turtlebot 2 fully operational with Odroid XU4 (Ubuntu on eMMC)
Able to run follower program with Kinect
Working on getting RealSense libraries/drivers working with Odroid
Updated Kernel to 4.8.0, but still didn't work
May require Ubuntu 16 to work on arm architecture...
JMR Paper
Looking at outline to start writing
September 5
Che Kun
TurtleBot3 Waffle
Facing difficulty installing driver (Needed to flash BIOS to flash Ubuntu image)
Unable to find a fix
Tested on 2 different laptops
Posted on Intel help forums
Intel Joule
To be discontinued by Intel
https://communities.intel.com/docs/DOC-112092
Intel is discontinuing Intel® Joule™ compute modules and developer kits. To help customers manage through the Intel Joule discontinuance, Intel will support last time orders of Intel Joule products through September 16, 2017 and will fulfill those orders through December 16, 2017. The current level ofcommunity forum-based support for Intel Joule will continue to be available through September 15, 2017. The final release of the BIOS (1Jx) and Reference Linux OS for IOT (1706) developed for use with Intel Joule is anticipated in July 2017. After September 15, 2017, Intel will archive its online resources and maintain availability to the Intel Joule community until June 15, 2020. Files licensed under open source licenses will continue to be generally available in binary and source code on GitHub.
Assembled TurtleBot3 Burger
To test hardware
August 2017
August 29
Tianqi
EPM688-V2.5
data sheet: http://nicadrone.com/img/Datasheet%20EPM688-V2.0.pdf
http://ardupilot.org/copter/docs/common-electro-permanent-magnet-gripper.html
Parts need for the new chassis:
Pixhawk
Receiver
Arindam
Almost done with the section "Real time image processing" in the paper. Need to put 2 figures and revise the writing.
Che Kun
Assembled TurtleBot3 Waffle
To test hardware
August 25
Daniel
RAL Paper
11 Successful sensor mounting flights
Plotted sensor placement errors, all within about 4" of the target
Made 1st 3 figures and wrote Autonomous Control & Vehicle Design Overview sections
Now working on Experimental Results figures & writing
DKC Outreach
Finished Light Following Robot prototype and purchase list
Cost per kit is $20 - $24
Issues/Questions
Should we include 20-30 flashlights for demonstration (kids don't keep)?
Significantly cheaper bulk light sensors on Amazon, but quality not verified...
Low quantities of robot chassis available... (< 20)
Updated PCB with power indicator, cost is $1.67 per board
August 17
Daniel
State Machine
Wrote code to drive boom-prop in reverse after mounting sensor
Failsafes:
5-6 second timeout
sonar distance to wall > WALL_DIST
Vicon position within threshold of tuned NTP (starting point for mounting operation)
Flight Tests
Front left motor stopped working.
Removed ESC, discovered one phase output connector melted and shorted with an adjacent phase.\
Desoldered phase wire from ESC and replaced with new wire and bullet connector
Did one quick flight test in PBE and verified that the front left motor spins up and the IBC can fly again
Next flight tests hopefully on Monday (Arindam has TA trainings for rest of week
RAL Paper
Made outline with Arindam
Started Overleaf template, added bibliography from ICRA paper and filled in the skeleton of the outline
Started looking for good reference papers from Special Issue organizers
DKC Outreach
Received both robot chassis from EmGreat (Amazon)
Assembled one robot and tested variable-speed control with a spare potentiometer and transistor
Got the motor specs @ 5.3V (4x NiMH AA): stall current ~1A, free-run current: ~0.25A
NOTE: The circuit diagram from Robotshop.com might have the voltage divider backward
Designed a simple PCB (if we decide we want to go that route)
0.85 in. x 1 in. (or 1.15 in.) ~ 0.85 - 0.98 sq. in.
$1.38 - $1.60 per board
Still waiting for Sparkfun components (photocell, transistor, power switch)
August 10
Ganesh
Gimbal plugin didn't work for BoomCopter as it is. - some parameters specific to gimbal is present in the plugin which doesnt apply to tiltrotor - throws errors
Writing a plugin with some parts from Gimbal and Motor plugins
Have taken the parts where forces are applied - from Motor plugin
Have taken the tilt servo part - from Gimbal plugin
Studying to get some clarity on working of these two plugins - to make our own plugin.
Discussed the possibility of using gimbal plugin with the developers. Nobody is currently working on tricopters anymore but some are working on tiltrotor VTOL aircraft. No working gazebo simulation yet from them as well.
August 3
Daniel
State Machine:
Finished code for 'approach' state, including failsafes for excessive yaw angle, mis-alignment with wall, and undetected payload release
Added 'tcp_nodelay' to ROS Subscriptions to minimize topic latency
This effectively removed the MAVROS mocap timeouts and other occasional sensor timeouts
Added a function to ramp up the boom prop instead of making abrupt throttle changes
Updated data logger to also log informational messages from state machine (instead of just state transition and error messages)
Flight Testing (flew about 25 flight tests)
Successfully pressed sensor into target autonomously (boom prop stopped after force sensor triggered)
The VHB didn't adhere well to the glossy paper used for the red target, so the payload didn't stay on wall
Youtube link for sensor placement video (without tape)
Tried multiple additional attempts with more VHB and it still didn't stick
Will try laminating the paper with packaging tape (I think the VHB will stick better to that)
On last flight yesterday (Aug. 2) smelled burning, so stopped flight tests to investigate
Smells like a small component fried, or maybe some plastic melted
Smell comes from main hull, but haven't pinpointed the source yet...
Arindam
Installed tensorflow successfully. Working on how to use the machine learning packages to detect the images.
July 2017
July 27
Daniel
State Machine:
Added a logger class to the state machine to allow for synchronized data logs
Working on 'approach' state code
Added code to calculate setpoints along desired trajectory (while boomprop is on)
Flight Tests:
Balanced the vehicle frame
Good estimation of target position, but large drift occurs near wall
Networking issues with router (causing mocap timeouts)
Possibly due to the router placement near pillars in wall
Next Tests:
Align with target at a further distance from the wall (0.8 m instead of 0.5)
Fly with boomprop along desired trajectory in pos-hold mode
If that doesn't work, will need to do althold + yaw control mode
July 20
Daniel
State Machine Code Improvements:
Waypoint "Breadcrumbs"
Wrote functions to generate intermediate waypoints on path to Near-Target Position (NTP) to limit the vehicle speed and thus limit the overshoot
Sonar Filtering
Wrote a filter to ignore invalid sonar data, validated with measurements in the office
2-Stage "MOVING_TO_NTP" State
1st stage follows breadcrumbs to a "coarse NTP" approximately 1.5 meters from the target
2nd stage uses filtered sonar distance measurements to calculate a "fine NTP" 0.5 meters from the target
Flight Tests
Successfully limited the flight speed by sending "breadcrumb" waypoints with time delays
Approached within 0.5 meters of the wall using filtered Sonar distance measurements
Estimated the target position within ~4 cm in-flight (based on image processing and sonar data)
Had some significant drift problems when near wall
Need to determine if this is due to wall-effects or just a low battery
Also had some sonar filter lag (see plot above)
Arindam
Working with tensorflow package for detection of the target pattern.
July 13
Daniel
State Machine:
Image-Processing and NTP tuning
Redesigned the target-position tuning filter (adjusts near-target position with image-tracking data)
Resolved issues with matching camera and vicon coordinate frames
Had an issue with ROS topic timestamps on different machines
Resolved with "chrony" on my laptop, but still working on implementing the fix on the lab laptop
Tested the NTP filter with the BoomCopter's camera and it works in the lab
Ready to test in PBE lab (will need extra pair of hands)
Wall approach with boom-prop
Decided to use sonar to do initial wall approach, so need to modify first state, then ready for flight test
Arindam
Used a package to detect a qr code in opencv.
The detected pattern flickers a lot, but there are no false detections.
The detection only occurs within a range of 0.8 m from the camera.
Also need to check if the pattern can be detected through the elp camera on the boomcopter, without the dewarping.
July 6
Ganesh
Modified the SDF code
first version uses 'position_gztopic' for servo
second one uses 'c3go_gimbal' and 'propeller_joint' for servo and back_rotor respectively
trying to trace the code written for gimbal to understand how it works - some unknown parameters in the gimbal plug-in
subscription topic format, nomenclature, joint control PIDs may vary for our use
Found a model with gimbal plugin implemented
Unlike other model, it has a series link - no work around in that regard
Parent is not same for all sub links
Need to run MAVROS to get a better understanding of what is going on in the Pixhawk side
Workshop testing progress
3D Printing chassis for workshop - changing model scale to get the correct dimensions so that the motor fits perfectly
Estimated 3D Printing time will be ~60 hours if one chassis is built in a machine
Once the scale and dimensions required are achieved, can we divide the spool and run on multiple machines in ME blg? Extra material if need be ?
Saw some soldering tutorials, will do once in Daniel's presence
Emailed the People who did the project, they sent a new STL File. But they say, depending on printer scaling needs to be changed to get the right dimension.
Daniel
State Machine:
Implemented filter to tune the near-target-position using the camera data.
Performed several unit tests to verify that the state machine behaves as expected, at least for the obvious scenarios
Will run a flight test with the camera and print out the tuned position setpoints to verify they are correct
Working on updating the position control to use the setpoint_raw topic instead of setpoint_position in MAVROS
(This should allow for hybrid altitude/yaw control during forward flight with boom-prop
3D printer
Watched tutorial video about adjusting the extruder height
Will level the extruders next time I'm at Herrick
Arindam
Implemented the SURF algorithm with the color detection.
But still having issues with false detection.
Experimenting with other kinds of target patterns so that the keypoint positions stay consistent.
June 2017
June 29
Daniel
Flight Tests:
Corrected the yaw offset of the vehicle so it will now hover around the target yaw setpoint
Maxed out the MC_YAW_P parameter (proportional gain on yaw)
It looks like the best performance we can get with this airframe is about +/- 3 degrees
PX4 Firmware
Figured out how to control the boom-prop through software and also have RC failsafe
Modified the PX4 firmware (specifics on GitHub)
State Machine Code
Working on a filter in the state machine to update the setpoint based on the camera data
Re-calibrated the image processing code with Arindam
Verified boom-prop control and safety mechanisms work on actual BoomCopter
Ganesh
Motor model plug in works independently even if there is a series joint, but not if actuated
Modified the motor_model plug-in functions slightly using a 'Gazebo functions' cheat sheet with description for all the functions under Gazebo class;
Have prepared a flow chart with all the functions and variables used
Motor_model plug in needs to be further tuned to get the 'motor constants' right for our particular model
Checked for Axes conflicts by comparing with working default model.
Servo_plug-in and Motor_model plug-in don't work together - some conflicts might occur inside gazebo when these two different plug-ins are running at the same time.
Will start tracing the function calls to debug this problem
Found two ways to actuate the servo.
Arindam
Calibrated the ELP camera with Daniel.
The current calibration has an error of 2.5 cm in Y (left) and Z (upward) direction, and 5 cm error in X (forward) direction.
Working on using the SURF algorithm for tracking.
Algorithm causes a time lag of about 1 second.
Requires a number of keypoints.
Also not able to check if the target is removed.
June 22
Ganesh
Understood the working of the motor model plug-in code
It uses a function called GETVELOCITY() to get the joint velocity - The joint is driven by subscribing to the topic MOTORSPEED/*
It uses the motor constants defined in the SDF file and uses a bunch of formulae to calculate the rolling moment torque at that particular joint
Uses a function called GetParentJointsLinks() to get the parent link - then applies the calculated rolling moment to that link
Technically, this shouldn't cause any problem for our model
Figured out how to print values running inside the plug-ins on the terminal using gzdbg which is a debugging serial print command for gazebo.
Wrote debug lines into the code at several points to test how it operates - Found that some of the serial print lines don't get printed on the terminal - Debugging that
Ubuntu root got corrupted and no application was running - Had to backup all the files and then reinstall 14.04 again and set everything up again from scratch
Talked to the person who is working on tilt-rotor SITL. He said that he tried modifying the plug-in but it didn't work. Have emailed him asking which all files he had modified and what results he obtained.
Daniel
Flight Tests
Improved yaw tracking performance by increasing proportional gain parameter (MC_YAW_P)
Still has more oscillation than IRIS, within ~ 5 degree envelope of target
Probably a limitation of the hardware (e.g. physical coupling of yaw and pitch via tail servo)
Yaw also has static offset (maybe due to unbalanced vehicle with extra camera on right arm)
Will try one more test with maximum yaw proportional gain, otherwise we'll assume +/- 2.5 degrees as operating range
Sensor Delivery State Machine
Moved to GitHub for better version tracking
Wrote code for 'ALIGN' state to update position setpoint based on image-processing
Ready to test on ELP camera once it is mounted and de-warped
Working on code for 'APPROACH' state to move forward/push with boom-prop
Requires some changes to MAVROS setpoint publisher (setpoint_position/local -> setpoint_raw/local)
Had to modify PX4 Firmware to allow software-controlled actuator
Changes documented on our "msral-purdue" fork of the Firmware
Arindam:
Printed the camera mount. The angle is adjustable to 0 to 37 degrees on either sides.
Created a program to get an undistorted image from the original warped frame of the elp camera.
But need to recalibrate it with a more leveled version of the chess board pattern.
June 15
Daniel
Odroid XU4 SD Card
Finished documentation for complete Linux Kernel Installation and Setup
Kernel Build includes drivers for the new ELP camera and all of our Netgear WiFi USB adapters
SD card has OpenCV 3.2.0 + opencv_contrib + OpenNI + Libfreenect
Mocap Timeout Issue
Finally resolved this issue
Several tests indicated that the timeouts were resulting due to noise/interference on the 2.4GHz frequency
The ESP8266 which sends the Vicon data straight to the Pixhawk uses 2.4 GHz, as does the DX8 RC transmitter, so publishing ROS topics and streaming vncserver/video data via the USB-WiFi adapter would increase interference on the line, causing timeouts
With the new Linux setup on the Odroid SD card, we can use a 5GHz WiFi adapter instead, which is 5x faster than the 2.4GHz adapter and also has zero noise/interference in the PBE lab
I've performed several flight tests with no mocap timeouts, and better OFFBOARD performance than before
Autonomous Flight Tests
Camera issues
The Logitech currently being used has a faulty connection to USB, so it keeps freezing and aborting the image processing program the moment the BoomCopter takes off.
With the new ELP camera, we get higher framerates, but a slight fish-eye effect.
We are currently checking to see if this adversely affects the target tracking, if not, we will transition to using the ELP camera instead
Position Hold Performance
Good performance in XYZ (within about 0.1 meters in each direction), but the Yaw performance thus far has been unacceptable (with 30+ degrees of error)
I am working on adjusting the yaw gains to get the yaw to line up with the commanded setpoint yaw.
Also still looking into texture size needed for PX4Flow, but need to do some tests with the camera
3D Printer
Brought the Replicator 2X to Steve Florence's office in ME
We cleaned out both extruders and the left extruder now works well
The right extruder nozzle appears to be damaged (most likely it got jammed into the build plate or something)
Steve has a replacement nozzle and offered to fix it for us, but he has to take apart the whole extruder assembly so it will take some time, but he said it should be done this afternoon
Ganesh
Someone from the developer network contacted me. He was also facing the exact same issue with the back rotor. He tried rewriting the plugin file to get it working. But didn't work out either.
There exists an SITL simulator for Tiltrotor tricopter plane in ArduPilot firmware stack which runs but doesn't use Gazebo.
It opens up a GUI with the location of the UAV in the map and other flight data
Similar work exists for IRIS and other copters with Gazebo support (including a model file in a virtual envt.)
The ArduPilot firmware stack is different from PX4 in a lot of way but ultimately they both can be interfaced to MAVROS to run the same flight codes, irrespective of which stack the SITL uses
Reg. force sensor, found some relevant materials and doing gazebo plugin developer tutorials.
Bogdan Vlahov
Gripper
Set up Arduino code for grasping objects as well as accepting commands over a serial connection.
Started on a python script for ROS integration and have nearly finished the Arduino portion of the python script.
Read more ROS tutorials and integrate ROS communications to the python script
In terms of the grip itself, the current location of the force sensor does not always detect when an object is grasped.
I will continue to experiment with placement but I think using a longer force sensor on the stationary finger could provide better results.
Another improvement could be to use rubber finger tips to improve grip. I could also calibrate the force sensor to get the grip force in pounds.
Arindam:
Writing a program to offset the fisheye effect of the ELP camera.
Working on integrating the image tracking into some of the built in algorithms in opencv
June 8
Ganesh
Tried to fix the gazebo topics publishing issue:
Downgraded to gazebo6
Built gazebo from src in the same workspace
Didn't make any difference
Went through the code - debugging the model without seeing the motor speeds is the only option
The problem is with the 'multirotor_base_plugin'
What does it do?
The 'motor_model_plugin' simply gives the direction and RPM to the motor
'multirotor_base_plugin' applies the forces/torque to the 'parent_link' based on the 'motor_speed'
This could be the reason why our model took off properly but went crazy later
Another important factor:
They model the propellers speeding up and slowing down as a first-order system based on the time_constant arguments. After building the model properly, we need to adjust these constants to better reflect the performance of our MAV.
The 'librotors_multirotor_base_plugin.so' is the lib-file that our model calls. It is built using the 'multirotor_base_plugin.cpp' and several other files from Gazebo and some math functions in the C++/include folder (Eigen, Ignition, math etc - over 500 .hh files inside these packages).
Searching for that piece of code which relates all these packages together - then the plan is to modify the force vector input to the parent link based on the servo angle.
For quick testing of the flight codes, it is possible to use the simulator to see if there is any mistake in the code as both quad-rotor and tri copters 'offboard' code will still be the same.
Arindam
Created a 3D model for a mount for the camera for the Boomcopter.
May 2017
May 25
Ganesh
Got a reply from the developers - told me to ignore the warnings - They didn't know why the gz topics are not getting published - should get published even with the warnings
Going through the c++ codes of the plugins - most likely have to rewrite the following plugins for our model:
Mavlink_interface
Motor model
Need to get a good understanding of the firmware tree
Daniel
Mocap Timeout Issue
Trying to isolate the source of the mocap timeout issue (to see if it is from WiFi interference, WiFi adapter stability problems, or some other source)
I can use the ESP8266 to send the mocap data to the BoomCopter with no timeouts, but if there is wireless traffic on the WiFi adapter, then mocaps occur, but at large intervals
The problem worsens if I publish ROS topics from the Odroid
Solar Outreach Project
Found some simple circuits to try out, but unable to verify motor driving portion without the components in-hand
Simple LED circuit that only turns on in the dark
Raspberry Pi Light-detecting DC motor drive circuit (seems like exactly what we want)
May 17
Daniel
Odroid XU4
Setup / Installation
We ran into several problems with the SD card pre-loaded with Ubuntu 15.04 and ROS Jade (all of the non-basic ros packages and their dependencies had to be installed manually, and some had incompatibilities with the arm version of Linux)
Arindam and I found an Ubuntu 14.04 LTS SD card image for the Odroid and were able to install OpenCV 3 and ROS Indigo (to match all of our other systems)
We got the network interfaces (WiFi adapters) up and running and loaded all our custom ROS packages
BoomCopter + Odroid Integration
Vicon streaming
With the Iris we sent the Vicon data directly to the Pixhawk from the ThinkPad laptop (using ESP8266), but with the BoomCopter there is a different flow: ThinkPad publishes /vicon/pose topic, Odroid ROS package subscribes to /vicon/pose and republishes as /mavros/mocap/pose, which MAVROS streams to Pixhawk
I found a way to auto-start the ROS scripts so we don't have to log into the Odroid for basic flights, but am still working out some bugs with the WiFi adapter freezing (I think we just can't have it plugged into the USB 3.0 ports)
Flight Tests
I had some successful flight tests yesterday to test the Altitude and Position hold performance. The PID gains from the IRIS seemed to work well for Altitude hold.
Motion Capture Timeout Issues:
Occasionally getting "mocap timeout" message from Pixhawk indicating dropped Vicon packets, suspect we need new WiFi adapter
May 1
Tianqi
Need 188mm x 194mm x 76mm space to print it, should I print it in two parts or use the lager printer in ME lab?
Daniel
Autonomous Flight Prep
Flew several successful autonomous flights with IRIS+ going between two waypoints
Changed BoomCopter to run on PX4 flight stack, had a short flight to make sure it works
Will need to tune down the yaw sensitivity
Installed MAVROS on the BC's BBB and ported over the state machine code
Built a custom cable to connect the BBB UART to the Pixhawk Serial4 port
Everything now runs on the BBB
Keep getting occasional mocap timeouts (possible bandwidth issue with wireless links)
Once I figure out the timeout issue I'll tune the altitude and position control gains on the boomcopter and then try the autonomous waypoint following
Dell Projector Lamp Info...
April 2017
April 24
Ganesh
Met with Daniel to sort out the firmware issues that caused the unstable flight
Issues (Solved):
By default, the SITL simulation starts in QUAD mode and cannot be changed through QGroundControl software - We changed the mode to use Y+ mixer file and other parameters
By default, it loads iris model and world file - We have changed to BoomCopter and its world
Have figured where the flight params can be changed in the firmware for SITL.
Debugged some of the issues in the firmware - Going through the code to fix the remaining issues
Issues (Remaining):
Servo link not working as expected in the model - The 'Y airframe' mixer needs to provide inputs to the servo as well for smooth flight
Need to use a different plugin for servo motor (Brushless DC motor plugin doesn't have angle limitations and direction changing commands - which we need in the servo)
PID gains needs to be changed for our mode
Che Kun
New soldered PCB board is more stable, occasionally freezes
All previous hardware works on new PCB, except IMU
IMU does not work on new PCB
Erratic jumps on sensor values
PCB connection to BBB headers are fine
Suspected cause is some sort of interference leading to signal corruption
Direct connection to BBB headers works
Soldered header pins on a separate strip board for IMU to have direct connection with BBB headers
CAD
3D printer extruder struck (Where you fit in the filament)
To Do
Heading alignment test
GPS navigation test
Jason Lee
Completed mounting design of the robot claw on a 0.6in boom.
Completed force sensor mounting mechanism using 3M tapes.
Force sensor picked up response when in contact with cylindrical bodies.
The response was minute for the analog signal detected was around 30-50.
Video (YT: Implementing Force Sensor on Robotic Claw) (YT: Implementing Force Sensor on Robotic Claw) (YT: Implementing Force Sensor on Robotic Claw) (YT: Implementing Force Sensor on Robotic Claw) (YT: Implementing Force Sensor on Robotic Claw) (YT: Implementing Force Sensor on Robotic Claw) (YT: Implementing Force Sensor on Robotic Claw) (YT: Implementing Force Sensor on Robotic Claw) (YT: Implementing Force Sensor on Robotic Claw) (YT: Implementing Force Sensor on Robotic Claw) (YT: Implementing Force Sensor on Robotic Claw) (YT: Implementing Force Sensor on Robotic Claw) (YT: Implementing Force Sensor on Robotic Claw) (YT: Implementing Force Sensor on Robotic Claw) (YT: Implementing Force Sensor on Robotic Claw) (YT: Implementing Force Sensor on Robotic Claw) (YT: Implementing Force Sensor on Robotic Claw) (YT: Implementing Force Sensor on Robotic Claw) (YT: Implementing Force Sensor on Robotic Claw) (YT: Implementing Force Sensor on Robotic Claw) (YT: Implementing Force Sensor on Robotic Claw) (YT: Implementing Force Sensor on Robotic Claw) (YT: Implementing Force Sensor on Robotic Claw) (YT: Implementing Force Sensor on Robotic Claw)
Unable to implement interrupts to code because interrupts rely on digital input.
For the current design, object relied upon full range of motion of the finger so that it is held in place tightly. Halting the motion of the finger prematurely might cause the object to not be clasped properly.
Moving forward: reduce weight of the device and making design changes and look into other software alternatives for interrupts.
Arindam
Got an estimate of the x, y and z position from the target patch.
The error in distance estimate is lower in the x direction than in y. Error increases with the distance.
Usable range of this estimate in 40 cm to 180 cm from the target patch. Error in this range is 0 to 5cm.
Need to 3D print a mount for the camera.
April 17
Daniel
Autonomous Sensor Mounting
Working on tuning gains for Altitude and Position Control
I was able to improve the Altitude Control so it isn't quite so bouncy
The differences are more easily seen during the actual flights, but below are some plots comparing the velocity errors
Left: Original settings, Right: Tuned gains. Really the only noticeable difference in the flight logs is the lower velocity errors, but when visually observing the flights, the current gains feel more steady.
Currently working on tuning the XY position gains
Ganesh
Got the IMU sensor working properly
Solved jitter issues and other instability issues.
Only the firmware (I think) needs to be modified similar to the one used in the real-life BoomCopter.
Discussed with Daniel. Will meet during this week to get the firmware params and flight modes right.
Tianqi
Revised shell design
Karl Ang
Plans for wrapping up:
Compile all gripper designs
Update latest Instructions book for MarkOne
Che Kun
Soldered new AgBug PCB board
New PCB board with BBB does not freeze
To perform validate PCB connections with previous working codes (IMU, GPS, motor) and then test navigation with GPS
Sharp IR sensor working in ROS
Able to get a distance output
CAD
Redesigned AgBug chassis to be bigger
Printed lower half of the frame
To include slot for Sharp IR sensor for upper frame
Arindam
There was noise in the data used for calculating the distance from the size of the patch. This is because the label stickers used as distance markers on the ground were not accurately positioned. And also, every time the boom-copter is positioned in a new place there were variations in the yaw angle. So a new set of data is collected using the vicon markers to locate the position. The collected data is much cleaner.
Collecting data for measuring lateral movements.
April 10
Daniel
PX4 Flight Stack
Working on stabilizing Altitude Control mode by tuning Z position and velocity gains
Found some discussions on the PX4 forum with similar altitude issues, so it may be an issue with the current firmware version
I made some progress in stabilizing the altitude, and I have collected a lot of flight data to analyze which should help lead to even better performance
Below are some altitude (Z position) plots from the flight logs.
Key: Red = setpoint, Blue = actual altitude. Left plot = original gains, Right plot = preliminary tuning of Z velocity controller integral gain
ME 290 Tours
3 tours this week: Tue., Wed., Thur. About 10 mins. per group
Planning to do the usual PBE and poster discussion and then show some videos
Jason Lee
Force sensor mounting prototype employs springs and a 3D printed part.
The mounting mechanism disrupts natural gripping of the claw. This can be alleviated by using 1 spring and a shorter adapter.
Software
To allow sensors to run continuously in the background, interrupts are being looked at.
Che Kun
BBB Freezing - 3 Possible solutions
Change Kernel (3.8 -> 3.12) - Device tree ovelay may change
CPUfreq utility - Tried, doesn't work
dmesg (Device message) -
Device freezes, unable log the latest device error (if any) which froze it
Not possible to tell if it is due to a hardware driver
Sharp IR Sensor working in BBB
To characterize sensor performance by getting best fit line and linearizing area of interest
So as to get linear relationship between Distance of Output Voltage of Sensor
To Do
Daniel's suggestion to use 2 best fit lines too get more precision in the mapping between distance and output voltage
From datasheet
Best fit line to get linear relationship between Distance of Output Voltage of Sensor
Tianqi
April 3
Daniel
Vicon System
Determined that 3 cameras are defective
Unplugged the defective cameras, left cameras in original mounting position
Recalibrated system with 9 cameras, and got all pixel errors very low
Subject tracking is smooth throughout the workspace
If we are ok with the current performance, we can go ahead and remove scaffolding
IRIS+
Replaced the Pixhawk in the IRIS_2 due to bad gyro errors, ready for a test flight
Sensor Mounting
Now that Vicon is working again, ready to move forward with position hold testing
After Position/Altitude Hold Performance is tuned to satisfaction, will incrementally test state machine
Autonomously command vehicle position, activate image processing, turn on Boom-prop, etc.
Filming setup
What should we plan to demonstrate in the videos?
Printed some spare push-to-release-mechanism attachment knobs in case one breaks
Che Kun
Sharp IR sensor analog voltage > 1.8V ADC limit of BBB
15cm > Distance > 5cm
Wrote code for IMU alignment and moving forward
To validate with hardware
Unknown hardware error when with Agbug PCB
BBB sometimes freezes
Swapped new BBB to use with Agbug PCB, but error still occurs
Looked up motion planning algorithms for future use
Discrete Cell Decomposition: Dijkstra, A*
Potential Fields
Sampling-based planning methods seem to be the state of art
PRM (Probabilisitc Roadmap), RRT (Rapidly-exploring random tree)
ROS - Open Motion Planning Library (OMPL) available in MoveIt
To explore if MoveIt can work in BBB
Jason Lee
Force sensor did not register analog response when tested with cylindrical object.
The amount of force exerted by the cylinder onto the force sensor is less than 100g.
Currently experimenting with flex sensors and its potential.
Arindam
Got an estimated distance of the target along the x-axis from the size of the image patch.
The measurement accuracy is +/- 2 cm in a distance range of 45 cm to 200 cm.
The resolution of the measurement is also 2 cm.
March 2017
March 27
Daniel
Vicon Status
Attended scaffolding training this morning with Arindam
Ron is trying to get some red/green tags from REM, otherwise he'll buy some
Once we have the tags, we will set up a call with Vicon support and finish focusing the cameras
Tour summaries
Tour on Friday for Roshni (prospective grad student) went well
Monday tours went well, lots of interest/good questions from the visiting sophomores
Sensor Mounting
Designed an Extended State Machine (ESM) for the autonomous sensor mounting
See LucidCharts diagram
Implemented the ESM in Python
State & Trigger classes allow for event-driven state changes
Ths should be able to run either on ground station computer or onboard the BBB
Once Vicon is ready, will test first state "Moving to Near-Target Position"
Optical Flow position hold
Having stability issues, vehicle flying off course
The flow data seems pretty good in the Vicon room, suspect failed Gyro sensor on IRIS+ Pixhawk
Will swap out Pixhawk to see if stability improves
BC v3 Motors
Found 2-3 strong candidates for main motors on new BoomCopter
Recommend 10 - 11" propellers with Multistar Elite 4006 740 Kv Motor motor
Made simple excel spreadsheet to verify our previous estimates of all-up vehicle weight
Sent motor links to Tianqi
Karl
M1_Mat1:
Working Principle of Mat1
Stress Analysis of Mat with 3 mm thick base
Ganesh
Added chassis, motor, landing gear and BoomProp's (in Tianqi's new model) physical properties - COM, Mass etc. on solidworks
Whole assembly in 6 parts.
Trying out different conversion settings in the SolidWorks plugin to get the model's properties right.
Doing the same process of conversion (Solidworks Plugin) and modifying the generated SDF code to get the physics of the model right.
After getting the code right,
Tuning the controller - locking servo and boomprop temporarily
Introduce Servo and BoomProp one by one
Interfacing the Virtual vehicle with QGC and ROS
Tianqi
Made landing gear for Ganesh's model
Need to know what else will be added to the new chassis
Jason Lee
Arduino Uno encountered slow upload rate issue
Troubleshoot: antivirus, ports, update drivers, reinstall Arduino IDE
Conclusion: Personal Arduino Uno faulty and resorted to using Che Kun's Arduino.
Calibrated force sensor by fitting line of best fit through set of data points of analog value vs load (g) applied.
Depending on the applied load range (g), software chooses the appropriate best fit line to predict analog value.
Che Kun
Solved BBB wifi issue
Used a wpa_supplicant file with /etc/network/interface file
Changed /etc/network/interface code to use a wpa_supplicant file and some other parameters in the file
auto wlan2 -> allow-hotplug wlan2
iface wlan2 inet dhcp -> dhcp -> iface wlan2 inet manual
To backup current AgBug image in case of similar incidents in the future
Arindam
Able to track the known pattern. This is using the logistic regression model.
Working on finding a way to track unknown pattern, with limited training.
March 20
Jason Lee
Enabled servo motor to halt drawing current from battery upon completion of motion using servo.detach(). After servo motor completes task, it temporarily shuts down when servo.detach() is called until re-activated using servo.attach(pin number).
Manipulated servo motor rotation speed using for loops and delay functions.
- The flowchart below explains the function of the code.
- video (YT: Variable Servo Speed using for loops and servo.writeMicroseconds) (YT: Variable Servo Speed using for loops and servo.writeMicroseconds) (YT: Variable Servo Speed using for loops and servo.writeMicroseconds) (YT: Variable Servo Speed using for loops and servo.writeMicroseconds) (YT: Variable Servo Speed using for loops and servo.writeMicroseconds) (YT: Variable Servo Speed using for loops and servo.writeMicroseconds) (YT: Variable Servo Speed using for loops and servo.writeMicroseconds) (YT: Variable Servo Speed using for loops and servo.writeMicroseconds) (YT: Variable Servo Speed using for loops and servo.writeMicroseconds) (YT: Variable Servo Speed using for loops and servo.writeMicroseconds) (YT: Variable Servo Speed using for loops and servo.writeMicroseconds) (YT: Variable Servo Speed using for loops and servo.writeMicroseconds) (YT: Variable Servo Speed using for loops and servo.writeMicroseconds) (YT: Variable Servo Speed using for loops and servo.writeMicroseconds) (YT: Variable Servo Speed using for loops and servo.writeMicroseconds) (YT: Variable Servo Speed using for loops and servo.writeMicroseconds) (YT: Variable Servo Speed using for loops and servo.writeMicroseconds) (YT: Variable Servo Speed using for loops and servo.writeMicroseconds) (YT: Variable Servo Speed using for loops and servo.writeMicroseconds) (YT: Variable Servo Speed using for loops and servo.writeMicroseconds) (YT: Variable Servo Speed using for loops and servo.writeMicroseconds) (YT: Variable Servo Speed using for loops and servo.writeMicroseconds) (YT: Variable Servo Speed using for loops and servo.writeMicroseconds) (YT: Variable Servo Speed using for loops and servo.writeMicroseconds)
- Github
VarSpeedServo library
- Library was experimented where servo.write( value, speed, boolean) was utilized in code. However, servo.write(value, speed, boolean) only accepted angle values (not pulse values in microseconds), the result was inaccurate and the library was abandoned.
Force sensitive resistor
- detects physical pressure, squeezing and weight and changes the out resistive value in ohms.
Ganesh
Got all 3 motors working
Problem was not in numbering
Several mistakes in the 'back_motor' code
Incorrect Model directory name in the code
Hidden files in the /home folder with Gazebo Models
Understood the structure of the SITL better
BoomCopterV2 Test 2 (YT: BoomCopterV2 test2) (YT: BoomCopterV2 test2) (YT: BoomCopterV2 test2) (YT: BoomCopterV2 test2) (YT: BoomCopterV2 test2) (YT: BoomCopterV2 test2) (YT: BoomCopterV2 test2) (YT: BoomCopterV2 test2) (YT: BoomCopterV2 test2) (YT: BoomCopterV2 test2) (YT: BoomCopterV2 test2) (YT: BoomCopterV2 test2) (YT: BoomCopterV2 test2) (YT: BoomCopterV2 test2) (YT: BoomCopterV2 test2) (YT: BoomCopterV2 test2) (YT: BoomCopterV2 test2) (YT: BoomCopterV2 test2) (YT: BoomCopterV2 test2) (YT: BoomCopterV2 test2) (YT: BoomCopterV2 test2) (YT: BoomCopterV2 test2) (YT: BoomCopterV2 test2) (YT: BoomCopterV2 test2)
Figured out how to communicate with the virtual copter through QGroundControl (Ground Station) and MAVROS through UDP port.
Controller Tuning and Physics tuning pending
Better to get the latest model with Landing Gears and Boom-Prop
Lock the BoomProp and Revolute Joint
Then do tuning
Better if we can create a more accurate model this time
will work with Tianqi to get all the Part masses,COM coordinates,Inertial matrices right at the SolidWorks level itself
Since manual manipulations in the code may result in unrealistic physical behavior of the copter
Tianqi
Next step:
Print/use the 3DR drone landing legs
Print the parts for connecting Karl's click mechanism and the camera
Will use the original motors (from the turnigy tricopter) for now
Che Kun
Wifi issues
Previous wifi adapter spoilt
Tested on 2 different BBBs, unable to detect device
2 spare wifi adapters work with BBB (TurtleBot) but not BBB (AgBug)
Likely wifi related software issue
Likely not hardware as swapped SDcard card to BBB (TurtleBot) and still not working
Wrote code for heading alignment for IMU
To Do
Debug wifi software issue
IMU code
Arindam:
Recorded a video with the patch on the wall. The properties of the target pattern from this patch will be fed into a logistic regression model.
The output of this model will give a measure of the probability of whether the correct pattern is detected or not.
Karl Jin
Created a M1 model. It is a modification to C1.
C1 is too bulky and is unfeasible for picking up Agbug. To implement C1, Agbug will have to be very large.
M1 operates based on similar principles as C1
Advantage of M1: operation is very simple
March 13
Che Kun
MPU 9250 IMU outputs angles correctly after IMU calibration
Written code to publish/subscribe IMU data over ROS
Soldered wire underneath PCB to connect 3.3V line to IMU Vcc
Currently writing code for closed loop control with IMU
Daniel
Purdue Drone Policy Update
Compiled all related documents in one place
For indoor operations, we just need to submit Drone Notification Form(s) to Risk Management
For outdoor operations will need CoW or CoA from FAA
Looking into possibility of “tagging on” to an existing CoA, but seems unlikely
Automated Sensor Mounting
Next steps for software:
Write event-based ROS node to respond to OFFBOARD switch
Send position and yaw setpoints and check vehicle response time
Test RC override commands to activate boom-prop, verify safety mechanisms
Try out multiple forward motion options
Update setpoints in forward direction only (cur pos, or feed forward based on BP vel)
Move forward with BP in altHold mode, see how much left/right drift occurs
Vicon Cameras
Bob will talk with Ron about scaffolding tomorrow and then build it within a few days
Need account number for this
Once the scaffolding is up Arindam and I can get trained and use it as much as we need, then have them take it down when we’re done
March 6
Ganesh
Incorporated the following Plugins into the 'sdf' code of the model
IMU Plugin at the Center - Provides IMU data for flight
Controller plugin - Flight controller
Lift-Drag Plugin at propellers - Aerodynamics
Rotor plugin
Created a World file and placed it into the sitl_gazebo folder inside the PX4 firmware package
Ton of make errors and build errors when trying to build the firmware
Solved the errors one by one
Built the firmware successfully
'back_motor' not getting actuated - need to debug it thoroughly to check where the problem is.
Test Video: BoomCopterV2 SITL TEST#1 (YT: BoomCopterV2 test SITL (1)) (YT: BoomCopterV2 test SITL (1)) (YT: BoomCopterV2 test SITL (1)) (YT: BoomCopterV2 test SITL (1)) (YT: BoomCopterV2 test SITL (1)) (YT: BoomCopterV2 test SITL (1)) (YT: BoomCopterV2 test SITL (1)) (YT: BoomCopterV2 test SITL (1)) (YT: BoomCopterV2 test SITL (1)) (YT: BoomCopterV2 test SITL (1)) (YT: BoomCopterV2 test SITL (1)) (YT: BoomCopterV2 test SITL (1)) (YT: BoomCopterV2 test SITL (1)) (YT: BoomCopterV2 test SITL (1)) (YT: BoomCopterV2 test SITL (1)) (YT: BoomCopterV2 test SITL (1)) (YT: BoomCopterV2 test SITL (1)) (YT: BoomCopterV2 test SITL (1)) (YT: BoomCopterV2 test SITL (1)) (YT: BoomCopterV2 test SITL (1)) (YT: BoomCopterV2 test SITL (1)) (YT: BoomCopterV2 test SITL (1)) (YT: BoomCopterV2 test SITL (1)) (YT: BoomCopterV2 test SITL (1))
Observations:
Aerodynamics plugin works
Landing gear ?
Karl Jin Ang
Gripper integrated with the boomcopter.
The smoothened female grippers have less friction. However, due to some dimension alteration caused by acetone, the hooks does not follow the proper path and backtracks.
Che Kun
IMU working
Able to detect MPU 9150 (Old IMU)
Able to detect MPU 9250 (New IMU)
Isolated previous fault
PCB 3.3V line not connected to pin used for IMU Vcc
Error found in PCB schematic
Old IMU code (MPU 9150) does not compute orientation
Angular Velocity
Angular Acceleration
New IMU (MPU 9250) code able to run in ROS
Able to compute orientation (Roll, Pitch, Yaw)
Orientation issues
Turning 90 degrees yield 60 degrees change in rotation (LHS)
To Do
IMU calibration
Write software filter to compensate
Look into code in library to see how orientation is computed
Solder wire underneath PCB to connect 3.3V line to IMU Vcc
Closed loop control of AgBug with IMU complete a square
Path planning code (GPS + IMU)
Arindam
Pixycam is able to detect objects based on color, but it is not accessible as a usb camera. Hence it cannot be accessed through opencv.
Looking for other usb cameras with higher frame rates. Industrial usb webcams may be an option.usb webcams may be an option.usb cameras with higher frame rates. Industrial usb webcams may be an option.usb cameras with higher frame rates. Industrial usb webcams may be an option.usb webcams may be an option.usb cameras with higher frame rates. Industrial usb webcams may be an option.
February 2017
February 27
Jason Lee
Link: https://www.youtube.com/watch?v=lnyVjjiDWq4
Claw Weight: 336g vs Yale Claw: 375g
Percent Infill: 12%
Uneven rotation resolved but replacing screws with polymer wire.
Moving Forward: Optimization of software and mechanical design.
Daniel
Tours
Feb. 24 (next Friday) Grad recruitment & FIRST high schoolers
The tours and the demo went well
Mar. 27 (Monday)
Engineering sophomores from other universities
1:45 - 3:30
Issues in High Bay Area:
2nd pair of wire cutters (red handle) missing
IRIS+ screws (3 x SS, button-head screws ~M2 or M3) missing
Were on top of middle black drawers on north workbench
Need to clean up 3D printing messes, especially e.g. spills of desiccant packets
Soldering Iron training?
Autonomous Sensor Mounting
Finished building ESP8266 adapter boards & power supply connectors
Made a ROS package that streams Vicon data to ROS topic @ 120 Hz
Working on configuring mavros to stream ONLY the Vicon data to Pixhawk
Will do test flight with IRIS to verify Vicon data in flight logs
This requires change to PX4 flight stack
Next:
Test AltHold & PosHold mode with Vicon data
Test state-change (e.g. into OFFBOARD mode) event handling with ROS
Send position commands from ROS
Ganesh
BoomCopter model - complete with Mass/COM/Inertia/Collision properties
Collision (Orange in the figure) - changed from box model to overlap the exact dimensions of the vehicle
Not perfect but definitely more accurate than the box model
Half way into integrating the basic sensors and defining the rotors for the PX4 firmware to recognize (debugging)
Adding more lines of code to the SDF file for the PX4 firmware to take over the robot controls
Using the plugins for IMU/Rotors from existing models - trying to incorporate that into BoomCopter's SDF
Modifying PX4 simulator package's launch & world files to take to accommodate BoomCopter.
Che Kun
GPS Lat/Long to UTM conversion code working
Validated results with Google Maps
GPS coordinates from recorded data
Lat/Long
40.4222833333, -86.92021 (More Right)
40.4222183333, -86.9203116667 (More Left)
UTM
x: 506768.71052036894, y: 4474631.308293675
x: 506760.092484, y: 4474624.08606
Measured Difference in coordinates (Google Maps)
x: 8.51 m, y: 7.27 m
Calculated Difference in coordinates (UTM code)
x: 8.618036 m, y: 7.22268000059 m
Error
x: 0.101924 m, y: 0.03731999941 m
Horizontal Distance Vertical Distance
Next steps:
To measure steady state GPS fluctuations/drift at at fixed point/coordinate
New IMU (MPU 9250) Testing
Tested with BBB, Arduino
Unable to detect device in BBB using ic2detect function
Arduino reports wrong I2C address: Unable to output IMU readings
To check if SDA/SCL (I2C) pins on BBB are working fine
To try another different library for Arduino to test device functionality
Tianqi
All arm prints finished (include the stress test arms)
Need to laser cut the body plates
Arindam
Tracking is working when target is moving slowly, but during fast movement it is losing track.
Having some issues in the pixycam software update. The camera is detected, but then it is throwing an error.
February 20
Ganesh
Errors in the physics of the model generated by the the SolidWorks pluginthe SolidWorks plugin
Center of mass of the individual parts in wrong locations, caused the tipping and eventually resulting in the model to roll
Modifying the COM in the SolidWorks assembly/part files didn't work either - model went crazy.
Calculated the Inertial matrix, COM coordinates and mass for individual parts using MeshLab.coordinates and mass for individual parts using MeshLab.
Manually wrote the 'sdf' model file using a template file with these values. sdf' model file using a template file with these values.
Model is now quite stable, needs more tuning of these values - https://youtu.be/DN4408KA41o
Solidworks plugin error in coding the joint limits - added a section in the sdf file to limit the joint angles
Che Kun
Found ROS code for conversion of GPS coordinates from MGRS to UTM format
Working on integrating it into AgBug
Found C++ and ROS code to interface with new IMU
Successfully compiled C++ code
To test ROS code
Arindam
Used opencv to detect an approximate QR core pattern. But still not getting enough speed.
Checking if the pixycam will be suitable for use.
Karl Jin Ang
Built an equipment that can smoothen ABS parts
Successfully smoothened an ABS part with equipment.
February 8
Daniel
IDETC Paper
Finished 1st draft and figures
Working on Proof-reading
Upcoming Tours
Feb. 24 (next Friday) Grad recruitment & FIRST high schoolers
Plans so far:
Poster on display
Turtlebots in follow mode with UAVs and AgBug on display
Videos: Door opening & Sensor placement
Possibly:
Have Turtlebots use our custom image detection for object following to show what BC will be doing
Autonomous Sensor Mounting
Working on a Linux program to read Vicon and send MAVLink commands to Pixhawk
Planning Test flights with Optical flow on IRIS
Arindam
The meanshift algorithm is losing track of the target when it moves too fast or goes out of the frame. The boundary drawn around the target is also not changing with the size of the target as the vehicle moves closer.
Trying to track the target by dynamically updating the image. Also looking into another version of the algorithm called the Camshift algorithm, that can resize the boundary around the target automatically.
Trying to incorporate some other feature detection along side with the meanshift so that the tracking becomes more robust.
Tianqi
Arm dimensions checked and printed
Chassis plates are ready to print
Will try to assemble the arms this week and print another one for stress test
February 6
Karl Jin Ang
Bending Moment Test on Side Arm Results:
Bending Test Experiment Setup:
Smoothening
I am experimenting with a setup that uses Acetone to smooth parts. This is not a new idea; many people in the FDM 3D printing world has tried this. The idea is to place the printed part in an enclosed space filled with acetone-soaked paper towels. The acetone vapor dissolves the rough surface of the part and producing a smooth finish. Image of the setup is shown below.
Force test on Gripper C1:
Test carried out on unsmooth part
Hooks broke during test. Catastrophic failure @ 34 N.test. Catastrophic failure @ 34 N.
Conclusions:
Weight of agbug must be at least 7.6 N
ABS is not a suitable material for the hooks.
Jason Lee
Completed servo motor housing for wrist movement. [ Incomplete link: http://a360.co/2lgUTuq]
Printed most of the CAD parts. Some failed to print due to user error: the filament spool was installed in the wrong direction.
Moving forward:
3D print and assembly all the parts by the end of the week.
Drill holes for tendon routing at machine shop by the end of the week.
Ganesh
Modified the BoomCopter model with Tianqi to reduce the number of joints for quicker simulation
Using the SolidWorks add-on, created the URDF tree:
Baselink
Revolute MOTOR_BACK
PROP_BACK
PROP_LEFT
PROP_RIGHT
Entered the link properties
Created Collision model - required for interacting with the environment
Successfully generated URDF file - Imported into Gazebo Environment - Links and Joints working as expected
https://www.youtube.com/watch?v=IKl9nR0nTdI
Issue with CoG. Studying the causes from documentation and codes to understand simulation physics.
Tianqi Ye
Boomprop arm revised
16 % carbon fiber printing
Carbon fiber sheet received
Che Kun
IMU Testing
Tested IMU with Arduino - Not working
With BBB - I2C device detect prog (i2cdetect) - Device address not shown (i.e: No I2C connection present)
To purchase new IMU
MPU-9250 - Newer version of current IMU, has compatible pin configuration with current PCB
https://www.sparkfun.com/products/13762
9 DoF Sensor Stick (LSM9DS1) - Compatible pin configuration with current PCB
https://www.sparkfun.com/products/13944
Desolder IMU on old BBB prototype to test if it is an IMU hardware issue
Transferred BBB to new chassis
Arindam
Detected the features of an image using the SIFT algorithm, but it seems to slow.
Working on using the Meanshift algorithm that uses histogram matching to detect features.
Working on how to match these features with a live camera feed.
January 2017
January 30
Karl Ang
Completed a flight test with AR drone:
Result: Unsuccessful in executing a pick up with the C2 gripper.
Reasons for failure:
There is a lot of latency with the video feed, thus difficult to use the video as an aiming instrument. We had to visually attempt to dock the C2 gripper.
AR drone has distance sensors underneath, preventing it from reaching down to the ground while blades were running. We had to kill the power to make the drone land.
Conclusion:
AR drone is unsuited for the tests.
The drones that we are developing cannot have manual video feed docking.
Characterization tests with the C2 gripper this week:
Design parameters to be acquired:
The force required to push into C2 female.C2 female.
The minimum and maximum weight of the object that is to be picked up
Tianqi
Carbon fiber sheet order placed
Boomprop arm revised
New side arm printed
Ganesh
RotorS simulator from ethz-asl (different from hector_quadrotor - more elementary)
PX4 and APM - modified versions of these packages
IMU, Odometry sensor and VI sensor (stereo camera) modules included
Sensor noise models integrated into sensors for realism
Ground truth for the sensors are also available for evaluation
State Estimation algorithm - position, linear and angular velocities are known.
Plan of action:
Selecting the model
Build our own model - Boomcopter (Need to take new files from Tianqi)
Baselink
Servo link x 1
Prop link x 3
Attach sensors to the model
Use the Xacro for the sensors in the RotorS package for IMU and Odometry sensor
Use external plugins for additional sensors
Add a controller to the model
Can't use the default controller with RotorS package - based on AscTec Firefly
Need to replicate the PX4 controller from their Simulator package
Add state estimator for the controller
initially use the ideal sensor data as input for controller
Noise models later on - MSF etc. to tackle that
Add joystick control directly from RotorS package (tested with pre-built MAVs - working)
Jason Lee
Ordered and received Mcmaster-carr parts.
Ordered placed for power HD high torque servo from vendor Pololu.
Finished 3D printing thumb of robotic claw. robotic claw.
Successfully embedded m3 nuts in the thumb to provide threading for bolts.
Design can be improved by placing tighter dimension for m3 nuts.
Moving forward: finish design for wrist actuator housing and 3D printing of the rest of the claw.
Che Kun
AgBug Trajectory testing
Drawing a square
Open Loop Control with time used to control motion
Video 1 - 1 motor not working
Video 2 - All motors working
https://youtu.be/GV0NQOJstVg
To perform closed loop control by incorporating IMU data
Camera Test
Camera working when moving Agbug with hands around the lab
Slight latency
When moving in a square path with motors running
Same issue as before that is camera image is struck at the initial frame
Floor on Herrick lab
January 23
Karl Jin Ang
Finished the Male Assembly. Ready for test flight.test flight.
Met Mr Sherwood regarding bending test on the side arm.
His machine is capable to do a three point test on the side arm but requires the three point fixture which he does not have.
Alternative would be to do our own test by clamping/bolting the side arm at one end and add weights to the other end of side arm until failure.
Che Kun
Motor code
Implemented new teleop code for "stop" functionality when no command input
All movement directions of motor code correct
1 motor connection disconnected during testing (Back Right)
To resolder
Ultrasonic sensors
Tested MaxBotiz sensor on Arduino to ensure sensor is working
Tested HC-SR04 senor on Arduino to ensure sensor is working
Working on Serial comms code for Arduino Pro Mini -> BBB communication
Camera
Still significant latency
Camera with teleop, significant latency
Tested with longer camera cable - Working
To order new camera cable
GPS
Device testing with Arduino to ensure no hardware faults
Managed to get a GPS fix after several minutes
Obtained location outside Herrick lab (Close enough to where I was, outside of High Bay area)
+40 25.3557’, -086 55.2198’
Tianqi Ye
Arm CAD revised
Carbon fiber sheet
https://hobbyking.com/en_us/woven-carbon-fiber-sheet-300x100-1-5mm-thick.html
http://www.ebay.com/itm/RC-Woven-Carbon-Fiber-Sheet-300x100-2-0MM-Thick-/262428349060?hash=item3d19f2d284:g:tF4AAOSwiONYLrJI
Arindam
Finished the assembly.
Finished the KCF report.
Jason Lee
Finished BOM. Pending discussion with team regarding cost breakdown.
January 12
Ganesh
Edited Tianqi's model for initial simulation
Removed boomprop and battery cabinet
Basic tricopter simulation using existing modules
PX4 stack
Completed ROS and Gazebo intgration tutorials
Creating SDF/URDF models
Subscribe/Publish on ROS nodes
Daniel
Designed end-effector assembly in Solidworks
3D-printed 3 pieces: Clamp, Slot, and Sled
The rails glide very smoothly with very little play and no binding
Estimating payload width/height within ~ 50cm (2 in.)
Still waiting for 2nd Push-latch from McMaster, but will take current latch apart today to reverse-engineer it
Lidar & PX4Flow
Designed and 3D-printed mount for IRIS+
Working on wiring both devices to the Pixhawk inside IRIS+
PWM mode is preferred for LIDAR, but not working so far... will use I2C if needed, but this requires large capacitors
Sensor Wiring
Decided to use Arduino Pro Mini to handle all sensor input
Has a USB/UART-accessible serial interface for easy customization
Collects all sensor data and streams it efficiently (binary) on serial port
Will allow for use of Beaglebone or Odroid without having to deal with the custom libraries for handling I/O on each platform
Vicon DataStream
Planning to convert to ROS package and use MAVROS to send pose as MAVLink messages (on IRIS+)
When switch to BC, may need to use Telem4 for XBee connection so companion computer can connect to Telem2.. or could just hook companion computer to Telem2… not sure yet
Che Kun
Motor code
Fixed Turning Right command which was slightly off due to incorrect (opposite) wiring connection on one motor previously
Exploring new teleop code to implement "stop" functionality
Camera
Tested camera latency
Less latency when nearer to lab wifi router
Unable to see camera output directly on monitor with BBB connected on HDMI (Possibly due to UbuntuARM distrib used)
GPS
Tested GPS outside Herrick lab
Unable to get a fix on GPS when testing at 2 different locations
January 5
Karl Jin Ang
Created a new concept of a gripper. I have created the first prototype, called Gripper C1 (Clinger 1). Its function is similar to the previous V-series Grippers: to grab and release an object by using only linear forward and backward motion.
This design is more reliable such that it does not jam so easily as the V-series. It has fewer ABS plastic moving parts that are in contact with each other, thus reducing friction and smoother performance. It has two main parts: Male and female sub-assembly.
The red is Male sub-assembly and grey is Female Sub-assembly.
The first push of the Male shaft into the female, which has grooves on its inner surface, will guide the Hooks (part of the male) to the locking position. The second push will lead the Hooks out of the path and to the exit. There are ramps in the grooves that prevents the back-tracing of the hooks in the path. See image below.
A link to the video showing the operation of the gripper C1: https://youtu.be/p5VG6valmKY (YT: Prototype C1) (YT: Prototype C1) (YT: Prototype C1) (YT: Prototype C1) (YT: Prototype C1) (YT: Prototype C1) (YT: Prototype C1) (YT: Prototype C1) (YT: Prototype C1) (YT: Prototype C1) (YT: Prototype C1) (YT: Prototype C1) (YT: Prototype C1) (YT: Prototype C1) (YT: Prototype C1) (YT: Prototype C1) (YT: Prototype C1) (YT: Prototype C1) (YT: Prototype C1) (YT: Prototype C1) (YT: Prototype C1) (YT: Prototype C1) (YT: Prototype C1) (YT: Prototype C1) .
December 2016
December 22
Arindam
Detected both the model and the real stairs. Combined the programs into one code.
December 8
Lexi
Ran thrust tests for new Turnigy 840 kV motor
At 50% throttle, this motor with the 3 blade propeller would not generate enough force to take off when the weight is 2.5 kg
In order to achieve takeoff at 50% throttle with a weight of 2.5 kg, a propeller of at least 12 in will be needed.
Che Kun
Motor code working
Turning Right command is slightly off due to incorrect (opposite) wiring connection on one motor
Will fix it on software side
IMU
I2C write error still present
Likely not due to hardware issue due to improper connections as BBB is able to interface with motor driver
Grant
Continued working on arduino based AgBug but cannot determine problem with operation (wiring, code)
Plan to complete wheel tests using actual AgBug
Have test plan
3 different wheels
Finishing Semester Report (Due next week)
Karl Jin Ang
Currently learning about the Pareto efficiency
Trying to find a metric that can represent friction for the Pareto efficiency
Have beginning creating CAD model of the male X2; requires the final dimensions acquired from Pareto Efficiency Analysis
Arindam
Refined the stairs detection algorithm so that it can keep detecting stairs continuously as we climb down. https://youtu.be/IYZqW-zHM3w
Kinect is mounted at 88 cm from the ground level, at an angle of 45 degrees with the horizontal.
Modify the code for detecting the model stairs. What should be the height from which it needs to be detected?
Do we need to detect real stairs going up as well?
December 1
Daniel
Decided to try PX4 flight stack for Vicon control
Optical flow should be able to help stabilize further if Vicon has some drift
HK: https://hobbyking.com/en_us/hk-pilot32-optical-flow-kit-with-sonar.html (not pin compatible)
GFPV: http://www.getfpv.com/holybro-px4flow-kit-v1-31.html (Holybro brand)
Use of laser for altitude measurement is most recommended, but Sonar may also be used
Need to modify Vicon DataStreamer to use MAVLink protocol
May want to switch to a Wi-Fi link and use UDP to send Vicon packets to get higher stream rate
Che Kun
Debugging motor code on BBB
Enabled relevant permissions to solve GPIO permissions error
New error regarding device tree overlay for BBB cape
Ganesh
Karl Jin
- Identified Governing Equations Related to the dimensioning of the clicker mechanism.
- Application: Use these governing equations to find the smallest possible clicker dimension for new grippers.
- Failed to find a mathematical solutions to the optimization of the dimensions. I plan to use a brute force method to find a optimum.
- There are multiple optimum conditions with different variations of dimensional values.
Arindam
Able to detect the steps in the downward moving stairs using a linear regression model.
Worked on the training set, and some test samples.
Working on testing in real time.
Grant
Continued assembling "testing ag bug"
Need to adapt code to new pin positions
Creating summary report of semesters work
Lexi
Found motor for 3 blade propeller that gives ~47% throttle for takeoff
http://www.ebay.com/itm/RC-Turnigy-Aerodrive-SK3-3548-840kv-Brushless-Outrunner-Motor-/281861259525
https://www.amazon.com/Turnigy-Aerodrive-3548-840kv-Brushless-Outrunner/dp/B01876Q6SI
Need max 40 A ESC, possible smaller one based on testing
Order one motor so that testing can be done to make sure combination is strong enough
November 2016
November 17
Grant
Printed full set of wheels (4), will need to reprint 1 because of printer error
Assembling Ag bug testing rig
Finishing Code and troubleshooting
Che Kun
Completed hardware setup on AgBug
Able to power Agbug from lipo battery
Sub-System Testing
Camera: Working
Sluggish video streaming perhaps due to network latency
IMU: I2C write error
To further debug
GPS: Preliminary test shows no errors
To run minicom to decode GPS coordinates and verify that the values are appropiate.
Motors: Error in motor code (pin initialization code)
Isolated source of pin initialization error to be either
permissions error
non-existent/invalid pins on BBB being initialized
To check with PCB/actual hardware which pins are to be initialized and look into permissions error.
Tianqi
Still working on 3d printing frame parts.
Lexi
Using 2.5 kg for the weight, the Tiger Motor MT2820 should be used with the 3 blade propellers. This will use ~55% throttle to take off and requires a 40 A ESC.
http://www.rctigermotor.com/html/2013/Professional_0912/47.html
In order to gain a lower throttle for takeoff while still keeping the current relatively low, larger propellers will need to be used.
Arindam
Collected sample images of stairs in the following configurations:
Distance from the stairs: 1 m ; Angle of camera: 30 deg
Distance from the stairs: 1 m ; Angle of camera: 45 deg
Distance from the stairs: 0.5 m ; Angle of camera: 45 deg
Each of the 3 sets has 30 pairs of rgb and depth image. Height of the camera from the ground was 90 cm
Mounted the kinect on a turtlebot in a similar configuration for testing with real stairs.
Prepared a list of components to buy.
November 10
Grant
Finished printing 5-lobe wheel (will add picture)
Working on testing rig hardware
Ordering other test wheels
Ganesh
Found a plugin to convert the SolidWorks assembly files to UDRF format - Unable to open the SOLIDPART/ASM files on SolidWorks (Mac? Version issue?)
Can I take files from Tianqi for the end effector model?
Watching tutorials how to manually define links in Gazebo using the plugin
Learning how to perform rotor simulation on Gazebo to create a UAV using the BoomCopter frame and endeffector
Karl Ang
Completed a Mathematical Model that characterizes the dimensions for Rotating Rack, Upper Driver and Tube (slots) based on Push Distance, Y (displacement required to cause the click), Contracted Distance, H (displacement from extended state (spring extended) and contracted state (spring compressed)), Diameter of Tube, D, Spring Compressed Length (L_o) and Spring Natural Length (L).
Uses of this Model:
Quickly calculate new dimensions of Clicker Parts by adjusting several parameters (bolded) that will suit needs
Find the limits of Y, H and D for a working Clicker.
Find suitable dimensions for the X1 based on the limitations of Y, H and D.
Results/Outcomes:
The model was very useful in generating dimensions for clicker parts based on parameters.
The model only utilizes geometric properties of the clicker. With the model based on geometry, it is impossible to optimize as there is an overly very wide parameter values that can work. Dynamic elements of the clicker must be implemented to improve constraints that can give more meaningful optimization results.
Lexi
Completed Thrust Tests
Purple motor (850 kv) with 3 Blade Prop
Purple motor (850 kv) with 2 Blade Prop
Motor from Octocopter (770 kv) with 3 Blade Prop
Motor from Octocopter (770 kv) with 2 Blade Prop
Graphs from Testing
Conclusion: In order to take of at 50% throttle, a new motor will need to be purchased. For a 2 kg robot, the T-Motor MT2814 should be used with the 10" 3 blade propellers.
http://www.rctigermotor.com/html/2013/Antigravity_Motors_0916/77.html
Tianqi
Modified some details parts and made the COM in an appropriate position.
Will print the arm first once the printer is available next week.
Arindam:
Taken some images of stairs going up and down. Need to collect more of those.
Writing a program to extract the defining features from the images.
November 3
Karl Ang
Design X has two modules: Clicker Module and Docking Module.
I am currently attempting to create a mathematical model that relates geometry of Clicker to the Docking Module
I created means of eliminating the Interface, reducing the number of moving parts. The design of the Driving Rod is changed such that it can attach itself to the Rotating Rack when it is at the contracted state, making the Interface obsolete.
Ganesh
Working on importing the end effector model into gazebo. Facing some compatibility issues. Going through documentation to solve it.
Simulated wind effects (external force) on the Quad during flight
Found codes to convert ROS image to OpenCV image using cv_bridge
Fixed some errors to get access to all the data from the simulated model. Got depth data on a rostopic.
Che Kun
Hardware preparation for Agbug PCB before testing IMU, GPS code
Finished soldering 23x2 header pins on Agbug PCB
New motor drivers and voltage regulator
Tianqi Ye
Finished the arm design for Boomprop.
Did test in Solidworks simulation, looks like there will be a displacement.test in Solidworks simulation, looks like there will be a displacement.
Will 3D print one next week to check the durability.
Grant
Printing 5 lobe wheels (mark one)
Using extra chassis for testing rig (assembling all parts)
Finishing arduino code
Arindam
Working on the detection of stairs using two approaches.
Using edge detection - Modifying the parameters and threshold values of the program for detection at an angle.
Extracting features from several images of different stairs and creating a regression model.
Daniel
Finished our portion of WM paper and sent to Praveen, still waiting for response
Worked with Arindam to modify the electrical enclosure detection program to work in ROS simulations (for Ganesh)
IAC Presentations and Demo went well, we can use same demo for NAVAIR visitor
October 2016
October 27
Che Kun
Updated Agbug documentation to reflect proper motor code file name
Working on debugging the motor code for AgBug (Pin initialization error)
Ganesh
Found some contact sensor plugins for gazebo. Can sense contact (True/False) but is the magnitude necessary ?
Going through some ROS Tutorials and Gazebo-ROS interaction tutorials
Fixed some errors in both PX4 and ArduCopter SITL codes.
Tried some hinged door models on gazebo and applied external force to open and close.
Figuring out how the 4th rotor of BoomCopter can be simulated - Type of on-board control for BoomCopter during flight ?
Lexi
Reviewed data from thrust test
More testing could be done with 10" 2 blade propeller
Comparable motor was found T-Motor 2814 770 kv (according to eCalc this motor with 3 blade prop should produce 1.2 kg at 100% throttle)
https://www.amazon.com/High-Performance-Brushless-Electric-Multi-Rotor-Aircraft/dp/B00FAD5A1G
Possible find lock washer with teeth to order or drill holes in propeller to attach directly to motor
Would testing using the power supply instead of the 4S motor affect results? (Testing was conducted at 14.66 V)
Data Daniel found to compare with thrust tests
Tianqi
Finished tail arm design for boomprop
Will do analysis in SolidWorks check if the boomprop fit
October 20
Tianqi Ye
All elect components fitted in the frame
Printed one arm as prototype
Che Kun
Done preparation work for header pins on Agbug PCB
Testing out Raunaq's motor code on the Agbug
Spotted minor error in documentation and code
File name on Agbug BBB is different and
Code initialises with an error
Working on debugging the code
Daniel
BoomCopter Ground Tests
Modified the enclosure door height by 1/2” to prevent the end-effector from hitting the handle when closing the door
Succeeded with autonomous door closing
Also took a video of a successful autonomous door opening & closing all together
WM Paper
Met with Praveen on Monday, meeting again next Monday (Oct. 24)
Over the weekend we plan to:
Compile/generate all the figures we plan to use
Make a list of talking points not already covered by RAL paper
Make an outline of our portion and get a rough estimate of content length
Shooting for < 4 pages
Paper requirements can be found here: (https://www.xcdsystem.com/wmsym/files/48-7B%20Paper%20Preperation%20Instructions.pdf)
IAC
Herrick Lab cleaning on Monday 24th, 8am - ? (10am doughnut break)
We are committed to doing a demo:
Meeting on Monday w/Dr. Davies for speakers, tour guides and demo people
Currently planning on teleoperated door opening with live video feed from BBB
We will do a practice run on Wednesday to get everything set up
Lexi
Ran test with two different motor using the 3 blade propeller
Motor from Octocopter (770 kv)
Purple motor from cabinet (850 kv)
Graph of forces
Ganesh
Got Gazebo7 to work consistently without crashing - setup a clean ROS environment
Built some basic robot models on Gazebo7 Model Editor with different types of joints and links - Applied external forces to the body
Going thorough tutorials for ROS-Gazebo interface
ArduCopter SITL platform - all packages and dependencies were deprecated and not maintained anymore
Pulled a prev. working version of ArduCopter v3.4 firmware for SITL and got it working with MavProxy and MAVROS - ROS Topics published through MAVROS
Found camera models for Gazebo - Fixed it on top of the Quad - Feed published under a rostopic - just like any other camera
https://www.youtube.com/watch?v=yBiWm5fk10E
Grant
Finalized wheel design with correct dimensions (5-lobe), D=110mm
Continued with Arduino tutorials and have basic motor controller code
Plan to print wheels and chassis for testing rig
Arindam
The flickering of the detected stairs is reduced.
Used a voltage regulator to run the Kinect with a 12v battery. Will use it to test on real stairs.
October 13
Ganesh
Built a few basic robots on gazebo using the tutorials - using Revolute Joints and Links
Learnt how to navigate the gazebo work-space and import and modify models
Fixed the error in the launch file that hindered the communication between the simulated model and MAVROS
Able to send commands through mavros and receive sensor information - similar to the on-board computer
Learning how to convert Solidworks files to Gazebo compatible model file
Tianqi
The weight of the original frame is about 350 gram the new frame can save about 50~70 gram weight.
Decided the material for printing.
Che Kun
Sent order list for components needed on Agbug PCB, Grant's test Arduino test platform and other lab items
Stackable headers for BBB
Voltage regulator
Motor driver
298:1 microgear motor
Motor brackets/hub
Getting ready to solder components on Agbug PCB for testing
Discussed with Daniel on how to solder the components appropriately
Will use existing components on AgBug (motor drivers, accelerometer, GPS module)
Previous accelerometer on Agbug is a retired product. To source for new accelerometer
Arindam
Able to get the depth readings from the kinect, stairs can be detected.
But there are some redundant detections as well, need to remove those. Mean distance from the stairs has to be calculated.
Not clear how to detect if the stairs are going down.
Daniel
Finished IAC poster and submitted to Cindy
Met with Professor Ramani's students and discussed VICON options
They will discuss some things and then get back to us about moving forward
Door closing
Updated the state transition diagram with door-closing state
Working on modifying the code to implement the door closing state robustly
Took sample force data of door closing with BoomProp so we can determine a stop condition
Grant
Researched compatibility of arduino with BBB
Motor drivers for arduino and BBB (TB6612FNG dual motor driver)
Learning arduino (tutorials)
Karl
Completed all components of gripperV7
Found that lock washers improves stability of hinges
Need M3 nuts to finish assembly
October 6
Ganesh
Started watching ROS and Gazebo tutorials.
Found some ways to provide relative x, y, z commands in the place of GPS coordinates.
Found some modules for Camera, Optical flow sensor, Laser scanners and Laser distance sensors.
Should be able to get Camera View on Rviz.
Lexi
New combination that uses smaller ESC (30 A)
10x7 3 blade prop with Turnigy Multistar 4220-880 Kv 16 Pole Multi-Rotor Outrunner
For 1.2 kg as weight, can fly with ~45% throttle
I think using the 10x7 3 blade prop is a good choice
Should we order it to test with the motors that Daniel found
Karl
Completed the first fully working clicker prototype.
Next steps are to complete the acrylic frame, find methods to test the claw and explore means of mounting the claw to chasis.
Grant
Torque calculations for testing wheels
Plan to create a wheel testing agbug (arduino controlled
Wheels chose and cad models created (5 different options)
Che Kun
Sourcing for components needed on Agbug PCB
Stackable headers
Voltage regulator
Motor driver
September 2016
September 29
Karl
Figure: Completed Assembly
Finished Upper Driver, Rotating Rack, Interface, Cap and TubeV7
Daniel
BoomCopter
Added a force-sensor to the outside of the end-effector for closing the door
Collected data points to calibrate the sensor
Plan to do door-closing tests tomorrow or Monday.
SPIRA Lab Parts
Picked up several useful components including: 8-channel RC Transmitter/receiver, sonar, GPS, servos, octocopter frame (8 heavy-lift motors), AR-drone frame, computer monitor and keyboard, miscellaneous electronics
Some has been brought to Herrick, the rest is set aside in our lab space in SPIRA
Arindam and I made a draft of the IAC poster abstract based on last year's, (didn't change the ground robot part).
Details for the presentation with Prof. Dyke's group?
Arindam:
Able to run connect the Kinect with OpenCV.
Having trouble in connecting the Kinect with BBB. The OpenNI framework is not campatible with BBB.
Working on the KCF report.
Grant
Created cad model for 5-lobe wheel and will be looking at FEA in the future. (plan to 3-d print and use on the current agbug for testing) - dimensions not set yet
Other test wheels can be bought as comparison (traditional v-tread, sand paddle)
Designed testing procedure to test effectiveness of the wheels (testing: speed, maneuverability, durability)
Will be designing another wheel set for the carbon 3-d printer (similar to sand flea design)
Still looking into molding options for modified 3-lobe wheel
Lexi
3 Blade Propellers are give better thrust but are less efficient
Motor Propeller Combinations
Master Airscrew Prop 9x7 with Multistar Elite 2810 -750kv motor
~65% throttle for model weight of 2 kg
Possible vortex ring state issue
Need 40 or 50 A ESC
http://www.hobbyking.com/hobbyking/store/__8095__Master_Airscrew_Propeller_9x7_1pc_CW_.html
http://www.hobbyking.com/hobbyking/store/__86414__Multistar_Elite_2810_750kv_Multi_Rotor_Motor_CCW_.html
Master Airscrew Prop 10x5 with Turgnigy Multistar 2834 -800kv motor
~40% throttle with model weight of 2 kg
Need 20 or 30 A ESC
http://www.hobbyking.com/hobbyking/store/__8096__Master_Airscrew_Propeller_10x5_CCW_1pc_.html
http://www.hobbyking.com/hobbyking/store/__39039__Turnigy_Multistar_2834_800Kv_14Pole_Multi_Rotor_Outrunner.html
Master Airscrew Prop 10x7 with Turnigy Aerodrive SK3 3548 -700kv motor
~40% throttle
Need 40 of 50 A ESC
http://www.hobbyking.com/hobbyking/store/__8098__Master_Airscrew_Propeller_10x7_1pc_CW_.html
http://www.hobbyking.com/hobbyking/store/__18166__Turnigy_Aerodrive_SK3_3548_700kv_Brushless_Outrunner_Motor.html?gclid=CjwKEAjw97K_BRCwmNTK26iM-hMSJABrkNtb2krkjxNK1GSRFwfDG4y7xIWvLmWqznCtnG6uf2PS0BoCDc7w_wcB
Che Kun
Sourced for PCB suppliers/makers
Opted for OSHpark due to lower overall lead-time and ease of ordering (for business office)
China has National Holiday from 01 Oct - 07 Oct (PCB fabrication orders will not be processed)
So overall lead time for China suppliers will delayed by an additional week.
BBB Board Dimensions based on EAGLE: 86.36 x 55.88mm
September 22
Grant
Plan to focus on wheel design
Create different wheels for different terrains, weather conditions
5-star wheel
Original three lobe wheel
Modified three lobe wheel (flexible silicon ends)
Traditional off-road v tread wheel
Paddle type wheel
"Sand flea" type wheel
Plan to create testing procedure/stand to determine wheel effectiveness
Tianqi
Karl Jin
Figure 1: Top, side, front view of assembly V7
Figure 2: Top, front, side view of Tube V7
Version 7 Tube Design Upgrades:
four inner guide slots (the slots that are inside the tube) instead of three (see figure 2 top view). This creates symmetry suitable for the slot (see fig 2 front view) that cuts through the middle.
Two flanges, one on each side of the tube, creates symmetry that serves to distribute the force on the Rotating Rack (blue piece, figure 1) - this is if we choose to place the claw module on either side of the tube. As of now, in figure 1, the claw module is set to be placed on one side.
Height of TubeV7 is smaller than TubeV6. Height is similar to TubeV4, which is approximately 5 cm.
Lexi
Looked at starter kits for drones to see various options
Looked at some more motor options
Next week:
Look at props with 3 blades
Assume the overall weight would be 2 kg (because we don't know exactly what it will be right now)
Try 3S and 4S batteries
Sep 15
Daniel
RAL Paper
Submitted on Saturday with video attachment
Lab Items
Got internet port switched to South side of room
Received 2 of the Robotshop items: force sensor & power distribution board
IAC Poster upcoming
Abstracts due Sep. 30
Poster PDF due Oct. 12
Tianqi & Karl
Karl
Lexi
Use Turnigy Multistar 3525 - 850 Kv Motor
http://www.hobbyking.com/hobbyking/store/__36767__Turnigy_Multistar_3525_850Kv_14Pole_Multi_Rotor_Outrunner.html
Keep current propellers (9x4.5")
That way there is no interference because Karl's design keeps the same spacing
This combination can lift almost 6 pounds and should be able to take off using just under 50% throttle.
Sep 8
Daniel
BCv3
Received new force sensor from Amazon (receipt coming) and mounted/calibrated it in the end-effector
Made ROS package: bc_ground_demo with 4 nodes
1) Python Force sensor reader (publishes force data as bc_force_info)
2) Python Image sensor simulator (publishes image data as bc_cam_info)
3) C++ Image detection node 'bc_ground_demo_node'
4) Python controller node 'bc_gc2.py' which uses the Pololu Micro Maestro servo controller to drive the motors
Sucessfully approached and opened the electrical panel with full autonomy
Detected door opening with force sensor
RAL Paper
Made an Overleaf project for easier collaboration
Karl
Designed Grid Chassis
Lexi
Researching new motor/propeller combinations for V1 Boomcopter
Are ducted fans an option?
Sep 1
Daniel
BCv3
Reassembled wheels & camera onto BC for testing
Got the Pololu serial servo driver working with Beaglebone and ROS
Made a ROS package to control the servos and working with Arindam to get data from image sensing program
Next step is to write controller node in ROS that calculates Boomprop and tail fan servo values based on sensors
Also need to get data from force sensor
RAL Paper
Made Google Drive folder for LaTex files
Plan to automate door opening with image feedback and then move on to trying to automate the approach
August 2016
Aug 18
Karl
Completed the Claw Module.
Completed the new Clicker Module.
Tianqi
Recoded the program based on the calibration
Aug 11
Karl
July 2016
July 28
Tianqi
Copter ready for test
Daniel
3d-printed a new mounting bracket for thrust rig which has hole patterns that will fit any brushless DC motor, along with the BoomProp axle
BoomProp Thrust Tests (3 variables)
Number of Propeller Blades
More blades yield more thrust per RPM, as expected.
Efficiency (grams/Watt) actually is better for 3 than 2, but is about the same or worse for 4 vs. 3
Pulley Size
Lower gear ratios allow for higher prop speed and thus more thrust with 1000Kv motor
Lower gear ratios are also slightly less efficient for both motors, effect is more pronounced with 1400Kv motor
New (faster-spinning) Motor
In general, the 1400 Kv motor is slightly less efficient than the 1000 Kv motor, but is able to reach higher speeds and thus give more thrust
Except for the case of 4-blades and 2:1 gear ratio, in which case the efficiency is nearly identical
Conclusion
A maximum thrust of 878 grams (1.94 lbs) was achieved with the 1400 Kv motor, 4-blades, and a 2:1 gear ratio. This configuration maxes out the motor and ESC, so we would probably need to use the XRotor Pro 40A ESC unless we just use the BP in bursts
Arindam:
Able to detect the straight lines in the edge detected image and combine them into continuous line segments.
Working on making the line segments continuous and combine the closely spaced lines into single line.
Working on the KCF report for this month.
Karl:
Redesigned the new Clicker
July 21
Arindam:
Able to obtain edge detected image and also edge detected video with the webcams.
Working on detection of the key-point features in the edge-detected images.
July 14
Karl
Clicker Mechanism:
Identified problem with clicker mechanism: the upper driver does not slide down when engaged with rotating rack.
In the process of re-designing the clicker to solve this problem; it should be a quick fix.
In the process of designing a frame and layout for the gripper and clicker together.
Daniel
Performed Thrust tests with assembled BoomProp
2-blade version produced 350 grams of thrust (0.77 lb)
3-blade version produced 457 grams of thrust (1.01 lb) and was also more efficient
Based on the results of the thrust tests, will try a few things to increase thrust:
Test a 4-blade version (will need to order some more Gemfan propellers to make more blades)
Use a lower gear ratio to make the propellers spin faster (currently at about 6000 rpm)
Will achieve this by increasing the pulley size
Will 3d print 16-tooth and 20-tooth pulleys for 1.5:1 and 1.2:1 gear ratios, respectively, which should allow for higher propeller speeds and better utilize the motor’s capacity
May also try using a Higher KV motor e.g. 1500 instead of 1000
Made a CAD model of the 3d-propeller blade so the BoomProp CAD assembly is complete (animation video (YT: BoomProp Assembly (3 propeller blades)) (YT: BoomProp Assembly (3 propeller blades)) (YT: BoomProp Assembly (3 propeller blades)) (YT: BoomProp Assembly (3 propeller blades)) (YT: BoomProp Assembly (3 propeller blades)) (YT: BoomProp Assembly (3 propeller blades)) (YT: BoomProp Assembly (3 propeller blades)) (YT: BoomProp Assembly (3 propeller blades)) (YT: BoomProp Assembly (3 propeller blades)) (YT: BoomProp Assembly (3 propeller blades)) (YT: BoomProp Assembly (3 propeller blades)) (YT: BoomProp Assembly (3 propeller blades)) (YT: BoomProp Assembly (3 propeller blades)) (YT: BoomProp Assembly (3 propeller blades)) (YT: BoomProp Assembly (3 propeller blades)) (YT: BoomProp Assembly (3 propeller blades)) (YT: BoomProp Assembly (3 propeller blades)) (YT: BoomProp Assembly (3 propeller blades)) (YT: BoomProp Assembly (3 propeller blades)) (YT: BoomProp Assembly (3 propeller blades)) (YT: BoomProp Assembly (3 propeller blades)) (YT: BoomProp Assembly (3 propeller blades)) (YT: BoomProp Assembly (3 propeller blades)) (YT: BoomProp Assembly (3 propeller blades)) on YouTube)
3d-printer
Right extruder seems to have unclogged itself after multiple heating cycles, however, there still may be an issue with the tensioning spring. Will do a few tests prints to make sure everything is working at 100% (left extruder still works perfectly)
July 07
Tianqi Ye
Done support assembly
Done 3d printing new hook parts
Karl
Clicker Mechanism
Printed three parts
Upper Driver
Cap
Tube
Parts fit nicely
Soil Sensor Box
printed the base part of the box
the cover is too tight; unable to fit box
made the cover larger - waiting to be printed
the arduino pro-mini voltage regulator is damaged, according to Daniel
Daniel
BoomProp
Finalized the CAD models based on 3d prints
Finished printing all the parts and everything fits together well
Just need to drill and tap a set-screw hole in the pulley and then can do thrust tests
Electrical Enclosure
The box and handle we received from McMaster should work for what we're doing
The magnetic strip is much weaker than advertised
Plan to order some small disc magnets instead
MakerBot
Still waiting for everyone to finish printing and then will clean out the right extruder with Steve Florence
Raunaq
Agbug -- Beaglebone Black
Designed the Cape on EAGLE
First draft of the Quad Chart for the presentation
https://docs.google.com/presentation/d/1ZIqf2oBwRtyXH7Wm9SbmrNd5xzcAwoH3pB10ckGIik0/edit?usp=sharing
Snapdragon Flight Kit
Planning to try to Listen on ESC UART using an Arduino to explore alternatives to the 4-in-1 ESC connector
Received a reply from Intrinsyc. They do not provide any support for interfacing with the pins that are part of the 60-pin expansion.
Arindam:
Got the webcams working with the Ubuntu and OpenCV.
Able to differentiate objects based on color.
Working on segmentation with OpenCV and with Processing.
Updated the comparison chart with the Scanse Lidar details.
June 2016
June 30
Karl
The Clicker Mechanism
Printed three parts:
Rotating Rack (blue)
Upper Driver (red)
Cap (grey, top)
Faced difficulties on Monday with printer; only managed to print three out of five parts planned.
Problems with parts:
Rotating Rack and Upper Driver are does not slide freely along the insides of the Cap; contact surfaces are too rough and parts fit too tightly.
Solution:
Make the Cap and Tube larger in terms of diameter
Make the male slots of Tube thinner
Further sanding
May consider using some sort of lubricant
Soil Sensor Box
Design changes made to the box. It will be reconfigured to minimize size.
Plans for next week (before next meeting)
Finish printing the Lower Driver and Tube of the Clicker
Get the Clicker working
CAD and print the Soil Sensor Box
Daniel
Makerbot
Noticed the X-axis belt was loose so tightened it and greased the Z & X-Axis rods
Updated the maintenance/usage log and put it in the binder next to the printer
Right extruder nozzle is clogged
Will be taking the printer to Steve Florence’s office to repair it once we have finished our current print queue
Just replaced the Kapton tape now that the Agbug is done printing
BoomProp
Modified some dimensions based on the 3d printed components to get the belt to fit snug and get the cylinders to fit on the bearings and 16mm tube
Received the remainder of the components from the June 20 purchase request
Modified the Gemfan propellers to fit on new BoomProp
Designing another spinner option with 3 blades instead of 2 (may give more thrust?)
Power supply connectors
Met with Will & recommended bullet connectors to purchase
As for connecting to power supply, discussed 2 options:
Use a single wire from the supply and split it to each motor through power distribution board
Use a separate wire from the supply to each motor.
Either way, might need to buy some spade terminal connectors, depending on what comes with the power supply
RA-Letters Paper
Working on compiling references and writing Introduction
Signed up for the free Overleaf account through Purdue, which may be a good way to collaborate on the writing with Arindam online
Raunaq
Agbug -- Beaglebone Black
Made changes to the chassis design
Printed the new design
Snapdragon Flight Kit
Setup the cross compiling environment for the apps processor and the aDSP.
Issues with linking libraries while compiling on the DSP.
Can get data from the IMU.
Will look into motor control this week.
Tianqi
Done laser cutting the support
redesigned the hook part
Arindam:
Installed processing open source package for kinect in ubuntu. Able to access the depth and RGB data.
Tested with some programs involving the depth image data.
Received the new beaglebone black. Working on installing the new drivers for wifi and kinect.
Will be testing on Angstrom linux.
Updated the KCF report.
June 23
Karl
Almost finished with soil sensor box just need to find suitable acrylic glass.
Completed cad models for the clicker. Ready to make first prototype.
Tianqi
Program be able to work wirelessly
Tested on the copter, works fine
Issues:
Motor rotates reversely
Support need to be redesigned
Hook need to be redesigned
Daniel
BoomCopter
Redesigned BoomProp for larger BC V2 tube
Modeled all parts in Solidworks, including full assembly (to verify dimensions and calculate belt length)
3D-printed all BP components, waiting on bearings from AvidRC and Gemfan propellers to complete assembly
Purchasing
Received McMaster components, still waiting on: Sparkfun, AvidRC, Pololu, Heli Direct, Horizon Hobby
Soil Sensor
Completed the Hardware soldering including Arduino Pro Mini, XBee, connector for Soil sensor, LED & battery monitor (voltage divider)
Ready for Karl's 3D-printed enclosure & Arduino code
Ordered an On/Off switch for the housing which will be the last piece of hardware to be added
Discussed outline of communication protocol with Karl, just needs to be formalized and coded
Other Notes:
Made a Maintenance Log for the 3D printer so we have a record of what has been done and when
MIEP Tours were a big success (multiple tour guides said we were the student's favorite lab to visit)
Raunaq
Agbug -- Beaglebone Black
Integrated the code modules into a cleaner script, with comments
Implemented differential drive on the Agbug
Fried another Beaglebone
Snapdragon Flight Kit
Attempted to calibrate sensors over Wi-Fi. Haven't been able to get it working yet.
Arindam
Preparing the write-up for the updates on the KCF project.
The drivers for the kinect are not compatible with the ubuntu installed on Beaglebone.
Will try out with the new Beaglebones as they have a different linux versions on them.
The ASUS team has replied that they no longer manufacture the Xtion PRO. So we might have to try out with the smaller usb cameras.
June 16
Raunaq
Agbug -- Beaglebone Black
Made a cape for connecting the GPS, magnetometer and the motor controllers
The cape was tested and worked fine with both GPS and Magnetometer connected.
Ran the codes for camera, GPS, magnetometer and motors simultaneously. No significant lag was noticed on the video stream.
Tested the motors on the Agbug, no issues there
Fried a Beaglebone
Snapdragon Flight Kit
Set up PX4 on the Snapdragon
The firmware on the Snapdragon Flight does not support serial connection to QGroundControl.
QGroundControl requires a serial connection to reliably calibrate sensors. Does not let the Snapdragon calibrate over WiFi
Working on compiling and running code independently, outside the framework of PX4
June 8
Raunaq
Agbug -- Beaglebone Black
Received the 5V voltage regulator. Will test the setup with battery power in the coming week.
Wrote rough guides to run the GPS and Aceelerometer modules.
Snapdragon Flight Kit
Set up the SDK and the environment for cross-compilation on the Flight Kit. Wrote a rough guide for the same.
The whole setup works on Linux
Tested the setup with a Hello World program. Also, tested the DSP Abstraction Layer with a sample program
Working on understanding the development environment and cross-compilation details.
Daniel
BoomCopter
NTM 28-26s motor may be burned out (was drawing a lot of current)
Switched to purple (RCX a-2830/12 motor)
Collected thrust data for ZEAL 3D Propellers
Surprisingly, produced noticably lower thrust than Gemfan propeller & consumed more power
Afro 30A ESC
Figured out how to flash the reversible SimonK firmware using the USB adapter
ESC is able to change motor directions almost instantaneously (no delay built into the software)
Not sure if this has any negative side effects on the motor or the ESC
With no load, the Watt'sUp Meter didn't show any noticable spikes in current draw when switching directions
End Effector
Considering making a 3D-printed attachment to extend off of front, and reducing length of front tube
Purchasing
Received the Pololu items (voltage regulator and LEDs) and about 1/2 of the Amazon items
Still waiting on Sparkfun items
MIEP Tours on June 16 & 21 (1:15 - 3:00 pm)
Plan to have one Turtlebot set up with follower program & one with LEAP controller and ideally visualization on Laptop
Soil Sensor
Arduino Nano
Got the Arduino Nano to work (must be powered by battery before connecting USB)
Once we receive the Pro mini we will have 2 good platforms for embedded applications
ROS
Got a Serial communication node working on my laptop that can communicate over XBees with the Soil Sensor
Next Step is to get the ROS node working on the BBB using the C++ I/O libraries
Need to establish a communication protocol for sending/receiving data from the sensor
What info will be stored there? GPS Data? Several days/weeks of sensor data?
Arindam
Working on the interfacing between the Kinect and the PCL.
The ASUS Xtion Pro is also a good option for 3D scanning and for using with PCL.
Updated the specification of the ASUS Xtion Pro in the comparison table.
ASUS (2.5W power) is better than the Kinect (12W power) in terms of power requirements. Can be powered by USB only.
Working on the ROS packages on Beaglebone.
June 1
Daniel
Reversible BoomProp
Collected thrust data for Gemfan 3D Propellers
500g thrust in either direction
Approximately halfway between the forward/reverse thrusts from the regular multi-rotor propellers
3D-printed hub adapter for ZEAL 3D Propellers and will perform thrust tests today
XRotor Pro 3D ESC
Verified that it can spin a motor in forward and reverse
Has a built-in 3 second soft-start, but after that the switching is very fast
Compiled list of soldering supplies and other electronics for summer
MIEP Tours on June 16 & 21 (1:15 - 3:00 pm)
Donna/Dr. Davies are looking for volunteers for interactive demos
June 16 = 6th - 8th graders
June 21 = 9th - 10th graders
Do we want to do a demo, perhaps with the TurtleBots?
Soil Sensor enclosure
Tried to get Arduino Nano working, but can't get serial connection to work
We can use Due unless we want to purchase a separate board (e.g. Uno or Pro/Pro-Mini)
Arindam
Got the Kinect working. Loaded the drivers.
Also found a software which can be used to create 3D model of any arbitrary object with the Kinect.
These models are also compatible with Solidworks and can be 3D printed.
Working on the ROS packages for the Kinect.
Raunaq
Agbug -- Beaglebone Black
Got the GPS and accelerometer/gyroscope/magnetometer integrated with ROS and publishing data
Camera cape also uses the same I2C bus as the accelerometer, leading to occasional transmission failures from the accelerometer
Live video stream was working fine until it froze in the meeting. Will look for possible reasons
All individual modules interfaced and working
Snapdragon Flight Kit
Add-on to Hexagon SDK required for the Flight Kit is only available for Windows
Working on a Breakout board for the 60-pin connector
Trying to find a way to gain access to the GPIO pins
May 2016
May 23
Daniel
Reversible BoomProp
Performed propeller thrust tests with propellers running in reverse
Tested 8" and 9" APC MR (multi-rotor) propellers
Thrust in reverse was about 50% less, with about 10% increase in RPM and power consumption
Ordered reversible ESCs & 3D propellers
Still thinking about potential tests to demonstrate functionality
BeagleBone Black Development
Verified that we have 3 working BBB boards
Tried to copy Linux image to the microSD cards we have... didn't work
Need 1 or 2 more microSD cards for Linux images
May eventually need 1 or 2 WiFi modules and USB splitters for the other BBB
SnapDragon Flight Kit
Signed up for an account with support.intrinsyc.com, waiting on verification to get access to documentation
Username: msral, pwd: same
May 12
Daniel
Reversible ESCs
So far, it looks like none of our existing ESCs support dynamic reversing of motor direction
May need to flash separate firmware with this added capability
Looking into the necessary hardware for this...may need different ESCs or just a programming card
Reversible propellers
Planning to do a thrust test running propeller in the "correct" direction, and then in reverse and comparing thrust
Found some propellers that may be optimized for reversing
April 2016
April 21
Arindam
Intel Edison
Comparison between the Teraranger Lidar and Lidar 1 is updated in the wikipage. The Lidar lite is still a better option.
Erased the windows files from the Edison. Installing Linux.
Got response from the Qualcomm drone team. They are running the board on Linux, not ROS, as of now there are also no ROS package or help or support files in place. The board supports C++ and Python.
Daniel
BoomCopter V2
Finished flight log analysis
Accelerations in boomcopter mode with maximum throttle are about the same as they were with the previous boomprop.
The tricopter mode gets a wide range of accelerations from about 2 to 6 m/s^2
The boomcopter mode consistently accelerates between 1.3 and 2.3 m/s^2
Lexi
Ran thrust tests with new spinner
Overall results were lower than expected
Part of the driving gear broke during test
Still printing test stand, the prints keep failing
April 14
Daniel
BoomCopter V2:
Calibrated Pixhawk along with all 4 ESCs
Performed several successful flight tests last Saturday (Apr. 9) at the Gold Intramural Fields
Qualitatively, the BoomCopter felt much more stable with the BoomProp rotating in the opposite direction (counter-clockwise as seen from the back)
Plotted the acceleration and power consumption for each flight/flight mode
The results with the T-Motor and 12" propeller are almost identical to the results with the previous BoomProp
The BoomCopter uses significantly less power for forward acceleration when used in standard Tricopter mode rather than in BoomCopter mode.
Arindam
Intel Edison
Got some papers from Vanderbuilt lab, reviewing those.
Need to know if any knee and ankle joint angle/torque data about lower limb movement, available at KCF's end.
Lexi
Received new propellers and printed new spinner. Still assembling them with the bearing and motor.
Design proposal for HVAC test is done.
Using casters from robotshop:
April 7
Lexi
Looking at casters from McMaster Carr
In process of redrawing spinner with extra support
Updated Arduino code to ramp up to entered speed
Looking into PVC pipe and net shield for future thrust tests
Daniel
Finished building BoomCopter, just need to calibrate Pixhawk
Using T-motor with 12" prop for BoomProp
Planning for test flight on Saturday with Arindam (whenever there is the least wind)
March 2016
March 31
Arindam
Intel Edison
SSH connection problem resolved. Need to discuss with KCF about a common platform for coding.
Simulation
Got some hands on with Sim-mechanics. Going through the Solidworks tutorials.
Lexi
Tested new motor propeller combination
Propeller shattered at 80% power
at 60% power the force was 1160 g (2.55 lb), Current = 18.5 A, RPM = 6340
Should reach the 3 lb requirement
Link to order new propeller: http://www.espritmodel.com/aeronaut-cam-folding-propellers-rudi-freudenthaler.aspx
For test with HVAC system
Use lab bench to put BoomCopter on
Add axle to slots in bottom of BoomCopter
Attach two fingered hook on end of shaft
March 24
Arindam
Intel Edison
Facing some trouble with SSH connection with Edison. Mailed Mark at KCF.
Simulation
Working on Sim-mechanics to check how simulations are done there. It can be interfaced with Solidworks models.
Lexi
New motor and ESC arrived
Attached new motor to old propeller with gear ratio
Ready to test
Daniel
BC V2:
Received PPM encoder and SMA antennas
Can now rebuild the BC with new BoomProp & longer RC range
Planning for test flight next time weather permits
May need to get AMA membership if Intramural fields are too crowded
March 10
Lexi
Need 3.1 lbs to open HVAC door
Ducted Fans that we have
E-Flite 69mm Delta V 15
Static Thrust: 1.7 lb (3S)
Static Thrust: 2.8 lb (4s)
Make testing structure to test 2 together?
Aeorce 55mm
Static Thrust: 1 lb (450 g)
Make testing structure to test 4 together?
Other Ducted Fans
E-Flite 80mm Delta V 32
Static Thrust: 5.4 lb (6S)
Current: 62 A
Voltage: 22.2 V
Cost with Motor: ~$100
http://www.servoshop.co.uk/index.php?pid=EFLM3032DFA
LEDF86-1A21
Static Thrust: 3.5 lb (1.6 kg) (6S)
Current: 29-34.5 A
Price: ~$160
http://www.hobbypartz.com/lealalel90du.html?gclid=Cj0KEQiAsP-2BRCFl4Lb2NTJttEBEiQAmj2tbUZOnrzXDbbYH3OrArU4b4-M754X4OsYP_PA7QCGePEaAjnL8P8HAQ
Propeller and Motor Combination
Propeller: Aeronaut CamCarbon 13"-7"
Gear Ratio: 2:1
Motor: Turnigy NTM 3542-1250
Need to buy: $14.99
http://www.hobbyking.com/hobbyking/store/__16092__NTM_Prop_Drive_Series_35_42A_1250Kv_600W.html
Static Thrust: 3.44 lb (1561 g)
Arindam
Intel Edison
Was able to connect the Edison board to wifi
Currently working on how to enable and access the peripheral ports
Still some more manuals to go through
Daniel
Upcoming:
Test flight of BC v2 with T-motor and 11" prop.
Gazebo or V-rep simulation of BC dynamics
Develop/Integrate ROS nodes for sensor reading and mission control via MAVlink
March 3
Daniel
BoomCopter V2
Performed several motor/prop thrust tests
Used digital tachometer for RPM curves
Tested the existing boomprop setup and our Tiger motors
Based on the results, I plan to use a Tiger motor as the boomprop motor with an 11 or 12 inch prop for extra thrust
Gazebo Simulation
Installed Gazebo on Linux USB Stick
Still going through the tutorials to see if we can integrate a custom dynamic model into the simulator
Lexi
Force from first BoomCopter reached maximum of 2.3 lbs not enough to open HVAC door (needed 3.1lbs)
Used eCalc to find possible combination - stall thrust of 1561 g (3.441 lb)
ESC - 40A
Turnigy NTM3542-1250
Aeronaut Camcarbon 13"-7" with 2:1 gear ratio
February 2016
February 25
Daniel
BoomCopter V2
Reversed direction of boomprop rotation
Discovered that the boomprop servo wires were severed... this has been repaired
Intramural fields were packed with people on Saturday so couldn't fly
Decided to do some motor/prop tests with existing boomprop and T-motor with 10-12 in. propellers to see if we can improve performance
Simulation
Found some information on difference between Gazebo and rviz
Gazebo is a 3D rigid-body physics simulator (including a graphical interface). rviz is a tool for 3D visualization of data from other ROS nodes as well as some support for sending commands to other ROS nodes. (http://answers.ros.org/question/45791/relation-between-gazebo-and-rviz/)
Gazebo only runs on linux
Mission planner simulation will run on Windows and can interface with Mission Planner
Lexi
Force from first BoomCopter reached maximum of 2.3 lbs not enough to open HVAC door (needed 3.1lbs)
Difficult to find motor propeller combination that generates enough force
Exploring other options:
Robot that attaches parallel to door (suction cups)
Multiple Propellers on boom
February 18
Daniel
BoomCopter V2 flight log analysis
Extracted acceleration data for portion of flight when BP was at full throttle
The BC did not seem to accelerate any faster with the BP at full throttle than in standard Tri-copter mode, in fact it actually looks like it accelerates less
Ardupilot Simulation
Downloaded and installed all necessary packages on the Windows laptop
Performed a few simulated flights, but still trying to figure out all the features
Specifically, looking into:
Using Spektrum transmitter as input
3D Simulators
Importing custom vehicle frames into simulator
Links for airspeed sensor and ppm encoder
https://store.3dr.com/products/pixhawk-airspeed-sensor-kit
http://www.amazon.com/Usmile%C2%AE-Encoder-Output-Pixhawk-Control/dp/B019V59KCS
Lexi
Work on testing motor propeller combination from first BoomCopter to see if it generates enough force (3.5-5 lbs)
Test almost ready to run
Using a clamp instead of shield or netting to secure test
Continuing to learn more about pairing motors and propellers
February 11
Daniel
BoomCopter V2 Test flights
Had successful test flights on Thur/Fri/Sat.
Tested BoomCopter with and without the boomprop, with and without added payloads
Compared energy/power used in each configuration
Boomprop uses significantly more energy than the standard tricopter orientation
Using a lower Kv motor and larger propeller for boomprop may improve this ratio
Lexi
Work on testing motor propeller combination from first BoomCopter to see if it generates enough force (3.5-5 lbs)
Continuing to learn more about pairing motors and propellers
February 4
Daniel
BoomCopter V2 Rebuild
Finished rebuild
Recalibrated all sensors, had trouble with accelerometer, but eventually got it calibrated
Tested motors/ESCs and tail servo, all functioning properly
Suspect excessive accelerometer vibration as culprit in crash
Auto-Analysis in Mission Planner indicates vibration failure
Vibration plots & Alt/RelAlt graphs show strange behavior
May be able to fly without using Auto modes (AltHold, Loiter, RTL), otherwise may need to try switching out Pixhawk but we don't currently have any more mounting foam (it is ordered though)
Planning to fly at Gold Fields next time weather allows
Lexi
Tested force required to open HVAC door (average of 3.14 lbs)
Requires force of roughly 25 lbs to close
Continuing to learn more about pairing motors and propellers
January 2016
January 28
Lexi
HVAC door testing - TBA
Using Shimpo Digital Force Guage (up to 50 lbs)
Find motor and propeller system with necessary thrust
Learning more about propellers and motors in order to pair them correctly
Daniel
BoomCopter V2 Rebuild
Received all ordered components
900 MHz SMA antenna & Extension Cable
Carbon Fiber Tubes
Main Arms (16mm)
Undercarriage Tubes (10mm)
Landing Skid Kit
Got access to the ME machine shop and milled tube snap pieces
Remaining:
Drill remaining holes in top of main frame carbon fiber
Reassemble frame & repair electronics
Recalibrate sensors and verify health of GPS, Pixhawk, etc.
January 21
Daniel
BoomCopter V2 Rebuild
Emailed list of remaining components needed, waiting to receive
Pending Repairs
Center tail servo and mount to tail motor (need to modify tail motor mount bracket to accommodate screws)
Drill holes in center frame top piece (or just use the old top piece)
Mill the edges of the snap brackets for the front and back arms
Documentation on RTL in software doesn't indicate why it would cut power to motors
Found a list of Arducopter RTL parameters to check on Pixhawk
Worst case, we will just refrain from using RTL during test flights
Flight Tests
Most people recommend flying at or above 0 Celsius, but I have seen successful flights at colder temps. on YouTube
Planned experiments
Battery life (hover, normal flight)
Top Speed (with and without BP)
Max. Payload
Lift produced during forward flight (with just boom prop engaged)
BBB MAVLINK and sensor communications
Implemented MAVROS and connected with Pixhawk (on Laptop, not BBB yet)
Wrote a serial node that opens a serial connection and can communicate w/XBee
Copied the BBB microSD image
Unable to boot the Green BBB, but power light comes on, indicating it may just be a software failure
Will test the existing BBB to make sure microSD is not corrupted
Pending
Write a ROS service which requests and interprets sensor data from soil sensor
Modify the soil sensor code to communicate with the ROS service
Figure out the appropriate MAVLINK commands to send in order to obtain GPS data and set mission waypoints
Write a launch file to load all of the appropriate ROS nodes and allow for autonomous sensor-reading missions
December 2015
December 19
AgBug
Notes for future development:
-After lots of troubleshooting it has been determined that the HD Camera Cape is preventing proper use of pins on the Beaglebone and will not be used, a USB camera will be used insteadtroubleshooting it has been determined that the HD Camera Cape is preventing proper use of pins on the Beaglebone and will not be used, a USB camera will be used instead
Camera
Create new camera mount for USB camera
Frame
Remove motor controller mount
Increased strength of CAD models, not printed yet
Needs to be wider for USB splitter
Needs to be longer for power jack clearance
or find right-angle connector and keep same length
can increase "wheel" diameter if frame gets longer
BBB
Switch to PWM for speed control
Use Turtlebot keyboard node instead for more options (variable speed)
Components
5V regulator was added - needs a designated space
move motor drivers to proto cape to reduce wire mess
potentially on standoffs
All CAD files are located at \\spiralab.ecn.purdue.edu\MSRAL\Current Projects\AgBug
December 10
Daniel
BBB/Pixhawk Software
ROS
Went through the first 11 ROS tutorials to get a better understanding of ROS in order to make a plan for how to implement the BBB sensor data collector and mission controller
Made a .txt file with detailed notes on how to install ROS and develop packages, also included good resources on useful linux terminal commands.
BBB ROS Programs
Plan to use a launch file, which starts up several different ROS nodes and sets up their parameters to work together.
This will likely call up MAVROS, a BBB data collector, and the BBB mission controller
Learned about minicom (for Linux Terminal) so I can debug and test the BBB serial connection
Was able to connect the BBB to the Pixhawk using MAVROS and verify that they were connected (receiving heartbeat messages) on TELEM2
Was not able to send MAVLink commands and request GPS data
This most likely needs to be done from within a ROS node, but I'm still looking into this...
Tyler
BoomCopter V2 Completed
It flies!
Waiting on 5.5mm bullet connectors to test flight times, current usage, etc.
December 3
Daniel
BBB/Pixhawk Software
Next Milestones:
BBB Reads Data from Soil Sensor
Sensor is set up to send data via XBee
BC Reads Data from Soil Sensor During Mission
Plan on using TELEM2 port on Pixhawk for BBB to Pixhawk Comms
See this page for details on connecting the companion computer
Downloaded MAVROS, working on using it to verify communication between BBB & Pixhawk
Have a few questions for Mark about available UART ports and BBB MAVROS support
Next Steps:
Write a ROS node to run an APM mission (Sensor Collect Mission)
See this page for updated list of MAVLink mission commands
Node will ideally:
Start up MAVROS
Set WP to soil sensor position
Poll GPS and request sensor data when within range
Return to home after data is received
Transfer sensor data to base station (or just save to file, etc.)
Chris
Successful live video streaming through Beaglebone, as well as high res photos
Works with HD camera cape as well as usb cameras
Can be streamed via HTTP for anyone to view, or through GUI on ROS
Maximizing speed through ethernet, 480p video with 15 fps and ~1 sec delay
46% CPU usage, seems to be independent of video quality or streaming source
Tyler
BoomCopter V2 almost completed
Working on tilt mechanism
Waiting on BEC, 3mm shaft, and RP-SMA extension
Finish Build and test this weekend
November 2015
November 19
AgBug
Changed kapton tape on Makerbot. See video below for reference:
https://www.youtube.com/watch?v=sjb3SmaVtc4
Revised CAD model and attempted printing
Parts keep lifting from the build plate - will adjust settings and continue trying.
Successfully have the beaglebone controlling servos with ROS and recognizing encoder databeaglebone controlling servos with ROS and recognizing encoder data
Assembled/soldered a motor for testing
Still testing video feed
Tyler
BoomCopter V2 partially built
Trying to finish before break, test after break
Need to order BEC, tilt servo, 3mm shaft, RP-SMA extension
November 12
Daniel
Soil Sensor
Wrote a program that sends data as a text string when requested through XBee
Need to get serial header requirements from Mark written down (they faded off the whiteboard)
[MessageID SystemID Message crc endLine
[0,0,0,0, 1 data data data data , crc , \n]
Message - Tell me what data you want to send/ number of ints/doubles etc.
crc - you will have to calculate this.
You have to replace all \n (other than the last) with \n \n
I bit of hard coding will need to happen for System ID 1 but I'll handle that. It'll take 5 minutes. I just need to know the data you want first.
ROS/Pixhawk Integration
Made a bootable USB with Ubuntu 14.04.3 LTS and installed ROS
Loaded it with all of the custom ROS modules Mark has written
Also installed ROS on my laptop so we have multiple platforms for developing ROS code
High Bay Storage
Labeled all of the blue tool and component bins
Just need to label some more bins in the cabinet and go through the small drawers
Andrew/Chris
AgBug Chassis
Continuing work on physical frame.
Need to confirm overall dimensions are acceptable.
Imported Catkin library into BBB, added AgBug package
Updated network settings to be more flexible
Issues came up with running servos, not smooth motion
Might be because of topic or message refresh rate in ROS
Tested out current camera shield, can take photos using Ubuntu
Integrating with ROS may be complex as the shield has little support online, USB camera may be a better choice
Will continue researching camera options
Mark
Didn't have time to work on anything. :(
Plan for next test - set Copter Parameter for Telem 2 to GCS Mavlink
Tyler
BoomCopter V2 parts ordered
Starting 3D print of onboard pieces
Still finishing up some CAD design
November 05
Mark
MavLink Integration
Looking into adding the following to the startup script. Sadly, this command must be used will in elevated security status so it is a bit difficult
echo ttyO1_armhf.com > /sys/devices/bone_capemgr*/slots
Attempted to enable MAVLINK on Telem2 with MavProxy - I this might be for PX4 only though :(
Apparently Telem2 is ttyO2 (https://github.com/mavlink/c_uart_interface_example)
The tutorial I need to follow -> http://dev.ardupilot.com/wiki/raspberry-pi-via-mavlink/
Also, forget UART. I could have the beagleboard connect by usb.
What devices are currently active -> dmesg | grep tty
USB python interfact location
/usr/local/lib/python2.7/dist-packages/
Command Line Call -> sudo mavproxy.py =/dev/ttyACM0
Daniel clearly uses this port as well.
Was able to issue MAVLink Commands
Successss! The BBB is connection to the USB and showing Daniels Messages.
Sample Output
APM: APM:Copter V3.4-dev (deda1198)
APM: PX4: b0cb142b NuttX: d447403a
APM: Frame: TRI
APM: PX4v2 0023002D 32334718 31363032
Flight battery 100 percent
msgDrop_IGNORE: 0
msgDrop_BAD_LENGTH:
Sample Terminal Message (PS, we probably can implement this all in python just because)
param show ARMING_CHECK
param set ARMING_CHECK 0
arm throttle
Tyler
Flew and compared Current Draw / Max Speed
Without Boomprop
Max Current: 31.5 A
Average Current: 29 A
Max Speed: 18 m/s
Average Speed: 16 m/s
With Boomprop
Max Current: 39 A
Average Current: 32 A
Max Speed: 15 m/s
Average Speed: 14 m/s
Finished optimized electronic selection for V2.0 - Sent spreadsheet to Prof. Cappelleri
Chris
Currently importing all of the catkin workspace information to the BBB from my PC
Python PWM script is now part of the servo subscriber node
Looked into camera feed view through Ros and displaying IMU data
Started adding encoder section in Ros node for when servos are built
October 2015
October 29
Mark
Use Screen to manually view the BBB come port
http://www.cyberciti.biz/hardware/5-linux-unix-commands-for-connecting-to-the-serial-console/
The COM port is correctly connected and updating
screen /dev/ttyO1
Daniel
Vicon Loiter
Had 3 successful Loiter flights
Started in various orientations and all held position well
Haven't tried leaving the IRIS in Loiter for more than 1 or 2 minutes
Remaining issues
Altitude oscillation when switching between flight modes
Maximum position error (for a 1-2 minute flight) of about 8 inches
High Bay Storage
Finished assembling the shelving unit
Moved over a turtlebot and the Boomcopter, Omnicopter and an IRIS
IAC
Demo due Monday
Chris
Continued troubleshooting ROS subscriber node
Created alternative program that works successfully in MATLAB
Still cannot manipulate message data once received, the message can be retrieved with "data" or "msg"
ROS claims the data hasn't been declared
Discovered flexible filament for 3D printer, maybe it could be used for trends on AgBug?
Tyler
Boomprop switched to a switch with a 3 second time delay for easier transition to flight
Current sensor not enabled so amperage and Voltage were not recorded - will fly again next week
Presented proposed electronics and design for V2.0 boomcopter
October 22
Daniel
Vicon Loiter
Plotted the simulated roll/pitch calculations from overwriting cos_yaw in AC_PosControl
The simulated values look promising
Adjusted the code to overwrite cos_yaw in the position controller
It wasn't as straightforward as hoped, but still only required about 3 files to be edited
Flight test on Thursday...
High Bay Storage
Received all the bin boxes and bench-top shelf
Sorted everything into bins, including tools & project components
Still need to add bin labels
Received the missing components for the shelving unit
Assembled the shelf frame, will add shelves based on height of MAVs
IAC
Submitted poster PDF to Cindy
Demo?
Chris/Andrew
Used Ubuntu to control GPIO pins on BBB
Created Python script to run servo motors at various speeds
Integrating scripts with ROS using the turtlebot keyboard node
Current program can receive data from publisher, working on manipulating messages to output different values
Working on running Python scripts within new ROS node
Tyler
Boomcopter able to be initiated with a POT on the transmitter
Test flown with boomprop
Requires 50% throttle to fly level with boomcopter enabled
Requires 60-70% throttle to hover without boomcopter
Boom motor may be maxing out battery
October 15
Daniel
Vicon Loiter
Initial plots of lean angles calculated from cos_yaw and sin_yaw look correct
Will perform test flight with adjusted values
Storage area
Received and assembled bench-top storage unit
Will unpack bin boxes today
October 11
Andrew
After looking into the components required for the robot, it is my opinion that major changes will need to be made from the previous design.
Motors
The previous motors are rated for about 2 oz-in torque. With the proposed "wheels" having a radius of about 2" the robot would have had a combined driving force of about 4 oz. It is questionable whether it could have even driven on flat ground. Furthermore, there was no motor encoder so syncing the "wheels" would have been impossible.
Camera
The previous design proposed the use of an independent spy camera requiring a 9V power source and an independent wireless receiver plugged into a TV. There was no connection to the beaglebone. This would limit the camera's ability. There would be no way for the robot to record video if it were to operate autonomously outside the range of the camera's transmitter. Furthermore it would have been necessary for the robot to carry an additional 9V battery. I don't think there was space for a traditional 9V battery, and it's not efficient to have two power sources.
The other proposed option was to use a camera cape. This theoretically would work, but the current robot does not have enough space for it.
Battery
The proposed battery is a small 3.7V li-po coupled with a "power booster" board to up the voltage to the beaglebone's required 5V. It will be necessary to use a larger battery, probably a 7.4V li-po because the larger motors we are looking at run at 6V, and we could eliminate the use of the "power booster."
The robot is going to have to get bigger. I don't see a way around that. I am working on a new component list, "purchase list.xlsx", which can be found in the AgBug folder on the network drive.
October 8
Daniel
Vicon Loiter
Still investigating the process of converting desired pos/vel/acc to lean angles
Found a potential issue in the _dcm_matrix values, but need more information on dcm_matrix to modify it
AgBug
Troubleshooting wifi connectivity issues
Seems to drop unexpectedly and software has to be restarted
Still investigating Ubuntu/BBB interfacing with I/O pins
Motor selection
motors with encoders are larger
stepper vs DC w/encoder?
Smallest are approximately 20mm diameter and 50mm long
Wheels
prototype 1 design complete
will print trial soon
Frame
frame work pending motor selection
battery access door first concept complete - need to print
current CAD model is unstable - will need to redraw it
various other tweaks competed
Tyler
Test flown & Tuned
Working on getting the motor to manually turn on via transmitter switch
Looking into V2 frame design and electronic components
October 1
Daniel
Vicon Loiter
Began looking at flight logs from last flights
There is some discrepancy between the actual waypoint commands and the EKF-estimated roll/pitch and actual velocities
The internal coordinate transform matrix may need to be updated when yaw is overwritten so that valid roll/pitch commands are generated from desired x/y velocities
BoomCopter
We need to machine a flat onto the new BoomProp motor shaft & drill and tap a set-screw hole in the timing pulley
The ME shop has not responded to emails or phone calls about what is available (in terms of drill/tap sizes)
IAC
Poster Title and Abstract due tomorrow (Fri. Oct. 2)
I emailed a draft for discussion last night/this morning
Office space
I propose that we make the transition to the high-bay area sooner than later so that we can get a better feel for what additional cabinetry/shelving we will need moving forward
This could be done at the same time as IAC clean-up
Mark
Manufactured a PixHawk - BBB uart connection cableuart connection cable
Uses Serial 4 on Pixhawk.
MavROS runs through UART, FTDI, or usb though usb is highly discouraged
Messages are being sent from Pixhawk but are currently not valid.
BBB damages being incurred
Silver BBB no longer can be powered off usb. Its been this way for a while but i don't think I even informed people. Also, I forgot this over the weekend and thought I broke the BBB.
Some BBB sd degradation is occurring. Not sure the implications, no issues from this yet (device format is now unrecognizable to windows but still can be imaged fine)
Magically now the BBB can connect to the internet through wifi
Tyler
BoomCopter fully put together and assembled
Having problems with getting autotune to work
September 2015
September 24
Chris & Andrew
Finalized timeline with manufacturing and testing
On SPIRA at: 'AgBug/AgBug Timeline.xlsx
Updated hardware list with items in lab and parts that will need to be purchased
Installing ROS on BBB
Investigating how to control BBB with Xbox controller
Tyler
BoomCopter 3D Prints finished and components mounted
Test Flown - still needs tuning
Ordering new hardware
September 10
Daniel
Vicon Loiter
Contacted Vicon Support
They explained how the GetSegmentLocal... functions work, and they won't give us the information that we want
Any local position/orientation information we need must be calculated manually
We have already resolved this:
Local Orientation information is calculated through a quaternion
Local Position information is calculated through an inverted rotation matrix
Each of these methods has been tested and seems to give correct results
SD Flight Logs
I figured out how to get the flight log converter (from .BIN --> .csv) to extract the data based on the Vicon update rate, so we now have flight logs that match the resolution of the Vicon data
This will be very helpful in comparing the Vicon data to the EKF estimated data, and the Waypoint Navigation (XY controller) estimates
Performed several flight tests on Sep. 4 (data is on SPIRA at: MAVs/Flight_Data/sep4)
Discovered that even the Loiter code that is "working" only works with the IRIS oriented in 1 specific direction
The APM position/orientation estimators and XY position controllers are very unclear about the coordinate frame in which the vehicle position/orientation data is supposed to be.
Thus, I performed several flight tests that use Global (NED) Vicon data, starting out with various headings (e.g. facing north, south, west, and east)
I also performed several flight tests that use Local (FRD, front-right-down) Vicon data, also starting out with various headings
So far, the IRIS can still only hold position when facing in one specific heading
I still suspect that somehow the x and y positions need to be adjusted, but I'm still looking at data to pinpoint the problem
Safety Training
Talked to Bob about what everyone will need
Each person will need to have:
Right-to-Know training up to date
A separate copy of the Safety Checklist form with parts A & B filled out.
A copy of the Experiment Checklist (the Excel spreadsheet we created outlining procedures)
A thorough understanding of everything in both checklists mentioned above
During the safety check, each person will take a turn going through the entire checklist
To save on time, they will probably just have one person physically go through the Vicon calibration portion, and the others will just talk through the Vicon calibration to demonstrate that they know how.
They also probably will NOT be required to fly a UAV during the safety check
Tyler
BoomCopter
Still working on rearranging the components (GPS, Telemetry, etc.)
3D Printing some new mounts
Looking into places (outside) where we can tune the PID gains
This will require a large open space (perhaps just use the Gold intramural field?)
May contact the local RC club(s) -- Orkan (2nd Floor HLAB) might have contact info.
Chris & Andrew
Made a timeline with major milestones for CM Robot (AgBug).
On SPIRA at: 'AgBug/AgBug Timeline.xlsx'
It includes primary/secondary objectives and deliverables
Will update with more specific manufacturing and testing objectives
Created hardware list with available parts and parts that will need to be purchased
Reviewed previous CM robot design and documentation
Began organizing division of labor for electronic and mechanical objectives
Currently researching hardware that is compatible with BBB/ROS/Ubuntu
September 3
Daniel
BoomCopter
Met with Tyler & discussed how to move forward
Made a timeline with milestones for development
Vicon Loiter
The CSV file made by the default SD log converter (distributed with Pixhawk SD card) has about 0.3 - 0.5 sec. between data points
Found a way to get more resolution, but one file is about 274 MB... working on finding a middle ground
Plotted data from the spiraling flight log files and still can't find anything to suggest what may be causing the problem
Working on a flight test with roll/pitch overwritten
August 2015
August 27
Daniel
Vicon Loiter
Working on fixing spiraling:
Only happens in Loiter mode, once in Stabilize mode, roll/pitch very stable
Adjusted and/or removed integral gains
Replaced global yaw with local yaw
Next: reset roll/pitch
Added Vicon data to flight logging
Matlab Log file reader
Wrote Matlab converter to go from .bin log file to .csv
Made a GUI to plot Vicon &/or SD Log data for analysis
August 19
Daniel
Vicon Loiter
Had multiple successful test flights with accurate position hold
After holding position in Loiter mode for about 3-7 mins., the quadcopter begins spiraling and becomes unstable
This is very similar to the toilet-bowl effect discussed in the forums, but we are not using the onboard compass, so magnetic interference doesn't seem like the culprit
It may be that we need to use the local yaw, rather than the global yaw when we overwrite yaw
While trying to send the local yaw rather than global, we discovered that the Vicon GetSegmentLocal... functions do not work properly, they just return the same data as the global functions
We may need to call Vicon and ask about this
More recent flight tests have had problems losing the Vicon link
The Vicon packet-reading function in the ArduCopter code had a few bugs that may have caused some packet loss in boundary cases, but this doesn't seem to be primary cause since Loiter was working reliably last weekend
It would be good to get "ladder training" just in case we need to use a ladder in the lab
Mark
comPort_node Program
I've uploaded my entire coding directory to the repository
(MSRAL\\Current Projects\MAVs\COM_Port_Synchronizer)
Inside there is a file at (\COM_Port_Synchronizer\ros_ws\src\comPort\src) called comPort_node.h which has a long description of how to use this code.
These classes will need to be compiled on the devices you want to use them with. This can be done by installing ROS and calling "catkin_make" in the ros_ws folder.
Note: you will need to delete the leap motion program from the src folder to compile on the BBB. They don't support the drivers included.
Deleting the build folder in ros_ws sometimes helps with the first build
If you have clock sync issues on the compile step you have to "touch [file]" each file that it mentions having a edit time stamp in the future. This is primarily an issue on the BBB which rarely have access to the internet.
Vicon Position Control
Worked with Daniel to get the copters to hold position.
August 12
Daniel
Vicon Position Control
Fixed some bugs with velocity calculation, still working on getting Loiter to hold XY position
Working on Vicon data plotter in Matlab to help with PID analysis
BoomCopter
Did thrust tests on BoomProp
Pulley is not compatible with current design, so couldn't do full throttle
Got to just under 50% throttle with 375 g thrust
Need to build a harness to do first flight test
Got Vicon code compiled and uploaded to TriCopter, verified tail servo works properly
Mark
BBB - COM Serial Program
Functional and Tested!
Drove the Turtlebot using the leap without any wifi or wires connected.
All required features are included and working.
Continuing to Extend Features
Currently Extending use to further ROS Message Types (So far string, int32, twist(what the turtlebots use), uint32)
Framework present for extension to resolve connection differences between devices, unsubscribe connections, printout system status, message stats, etc.
QuadCopter
Downloaded code base and succeeded in compiling.
Fixed Example sketches to compile with our Vicon edits.
Looking into implementing waypoint controls.
August 5
Mark
BeagleBoard Black Wifi Controls (Written for future reference)
/etc/network/interfaces
Also note domain issues might be solved in /etc/hosts (can't ping self and issues of that like)
BBB - COM serial program
Compiles and runs on both the BeagleBoard and computer
Working through bugs: currently one relating to receiving messages.
July 2015
July 30
Daniel
Vicon Position Control
Software
Matlab
Made a class that can stream binary messages through XBee
Used it to test the Vicon library on Pixhawk
Wrote a script to calculate maximum theoretical bandwidth (best and worst cases) for XBees with various baud rates and message sizes
Visual Studio / C++
Modified existing Vicon DataStreamer code to send binary messages
Added a "fake" message option, which will stream fake Vicon data for testing purposes
Added QueryPerformanceCounter() functions to make the data stream rate much more precise
Sleep() function in Windows is unreliable
Made the streamer more user friendly
Can now start and stop the Vicon stream by pressing any key, and can change the stream rate on the fly
Useful Vicon data is displayed in the command prompt once per second for easy monitoring
ArduCopter
Did a major overhaul of the Vicon library to make it more robust, readable and flexible
Added velocity calculation onboard at 25 Hz (so that the minimum detectable speed is 25 mm/s)
Enabled Loiter mode without GPS & overwrote yaw in EKF estimator
Lorenz Meier posted on a thread as recently as July 28, requesting for someone to submit and maintain code for motion-capture integration
We may be able to submit a pull request and have our code added to the ArduCopter code base
Saw another video suggesting that circling/spiraling motion is caused by compass errors
I will revisit the PX4 code and see if inverting yaw direction (i.e. should be +CW instead of +CCW) solves the problem
Flight tests
Success! Able to hold position in Loiter mode without any input from the RC controller
Still may need to tune the gains a bit to increase the stability
Much more info to come, including videos and data plots...
BoomCopter
Finished assembling all of the components, now just need to add the props and calibrate
Will try to perform BoomProp thrust tests tomorrow before I have to return the power supply
3D-printed a mounting plate for the Pixhawk
Noticed that the BBB mount is cracking near the screws
May need to laser-cut an acrylic piece, or else strengthen the 3D-printed design
Packages
We have received all of the items that we ordered
July 29
Mark
Programming ROS-COM program.
July 22
Daniel
Packages
We've received everything we ordered over the past few weeks except 3 items
XBee adapter boards (Parallax, ordered July 16), timing belt (Amazon, ordered July 17), 4mm bullet connectors (HobbyKing, ordered July 10)
BoomCopter
Finished thrust/amperage tests with different propeller sizes (will most likely use 9" propellers)
Designed & 3D-printed a mount for the Beaglebone Black & buzzer/safety switch & optional battery strap
BoomProp
Received all of the hardware except for the timing belt
Discovered that the BoomProp components are designed for a longer boom, some options:
Modify some of the 3D-printed components to be shorter
Use smaller folding propeller blades
Use the extended versions of the carbon fiber booms (~4.33" longer)
Modified the power harness to include connectors for:
LEDs (2mm bullet connectors)
Beaglebone Black power (barrel connector from the 5V BEC built into the 3DR power adapter)
Next steps:
Mount the tail motor & servo & make custom power connector to go through boom
Mount Pixhawk, GPS, telemetry module, RC receiver & XBee adapter with 2-sided foam tape
Balance propellers & set up a rig to dynamically balance the motor/propeller combinations
Connect all servos to servo rail on Pixhawk (possibly secure with hot glue)
Add Loctite for all screws in frame, calibrate sensors and perform test flight
Vicon Position Control
Worked with Guangying
Added a Vicon library to the ArduCopter code
Discovered that significant changes have been made to the overall code structure and the flight controllers in the latest version of ArduCopter
We decided to override the sensor fusion since it is overly complicated (5000+ lines of code in 1 file) and substitute the Vicon position and velocity where the estimator would normally calculate them
The modifications are very similar to what was done in the PX4 firmware, but with Arducopter it seems much cleaner and more straightforward
Next steps:
Modify the Vicon data stream code (on Windows laptop) to send binary messages to be received by the ArduCopter Vicon library we added
Verify that yaw data from Vicon should come in radians from -pi -> pi, with clockwise from X-axis as positive.
Check in the PX4 firmware and/or flight logs to see if this may be what is causing the IRIS to spiral out of control
Test flight with ArduCopter & Vicon
Mark
3D-Mapping
Ran the g-slam gmapping software which created a 2D room map.
Attempted to create a 3D map using kinect feed and g-slam positioning.
Successfully accessed the kinect depth field but haven't yet worked out how to stitch together a 3D image.
COM ROS node
Reached a complie-able version with bare minimum features.
Code now properly adds and manages subscriptions and publications.
Still integrating functionality and protocols for understanding the control messages sent across the serial port (We need to communicate between the nodes what topics to subscribe real time.)
Still also need to hand code how to handle each data type but that's inevitable.
BeagleBones
In spirit of how much ArduCopter was improved over PX4 I tested Angstrom build for control with PWM.
long story short.. its much easier though I haven't gotten ROS working so I'm not making any recommendations yet.
Luckily if we do switch, we really don't loose any coding progress. All c++ will still work when compiled again.
We would have to re-setup the devices which means installing turtlebot, wifi, compliers, etc which is probably more work than sticking with ubuntu.
July 15
Daniel
BoomCopter
Received several components... primarily waiting on propellers (for thrust/amperage tests)
May need some hardware to mount tail servo
Finished 3D-printing all of the parts for the BoomProp
Sourced the remaining BoomProp components: bearings, pulley, timing belt, fasteners
Prepared another purchase request
Includes BoomProp components
I will likely need a few more odds and ends for building the BoomCopter frame, but have been holding off so I can get as many into one order as possible
We can also add a router to the list if needed (Tentatively looking at the ASUS router recommended on PX4 website)
ArduCopter
Tested Sparkfun XBee adapter boards with ArduCopter, still couldn't get 2-way communication
Received Parallax XBee adapter board & soldered on DF-13 connector... ready to test it with ArduCopter
Made a "vicon" branch in the Github source and began making modifications to include VICON library
Position controller has changed from previous version (formerly AHRS/INav... now NavEKF hybrid)
Mark
Sensing
Scanning LIDAR
http://www.robotshop.com/en/rplidar-360-laser-scanner.html
Have one personally we can test with to make sure its useful (Might take some time today to figure out BBB pwm and digital I/O
DUO M - Lightweight ARM supported depth camera ($595 - $1000)
https://duo3d.com/product/duo-mini-lv1#tab=overview
ASUS XTION - probably best bet for rgbd camera unless we do depth field ourselves ($160)
xBee communication
Bare minimum version created. Testing
Able to submit a Duke Proposal?
July 8
Mark
BeagleBoards
XBee communication
C++ program works in the terminal. Currently expand to connect to ROS nodes (Technically can replace wifi all together if completely successful)
MAVLink nice but not really meant for two ROS running devices. We're too high tech.
Software Design Review
Turtlebots
Now completely wireless (We benefited by wireless camera)
Kinect may need some specialized controllers to not overwhelm beagleboards
Suggest investigation into hobbyist camera systems
Daniel
BoomCopter
Finished assembling the Turnigy Talon Frame
1 faulty thumb-screw needs to be replaced or re-ordered
May need to design a mounting plate (3D-printable or Laser cut) for peripherals
Updated Bill of Materials to include Servo motor (for tail/yaw control)
Next steps:
Balance motors and propellers
Plan component layout and assemble power/control system
Thrust/Amperage tests to select propeller size
Vicon Control
Guangying Jiang from Prof. Voyle's group wants to team up to get position control working on Pixhawk hardware
Next Steps:
Finish reviewing APM example sketches and Yangbo's code
Test XBee communication with APM software
Found an alternate XBee adpater from Parallax to try out
Modify ArduCopter to accept vision position estimate & attempt loiter
Collaborate with Guangying for debugging and/or fine-tuning the controller
Guangying borrowed one of our FrSky D4R-II RC transmitters to test out a prototype hexacopter
Should return sometime this week
July 1
Mark
BeagleBoards
We have serial communication! (with xBee)
http://www.armhf.com/beaglebone-black-serial-uart-device-tree-overlays-for-ubuntu-and-debian-wheezy-tty01-tty02-tty04-tty05-dtbo-files/
Fix for missing /sys/devices/bone_capemgr.9
sudo apt-get install linux-3.8.13-bone68
sudo reboot
This rolls back the beagleboard linux kernal to before they tried switching how serial is done. Its possible that by the time this comes up again they will have the new system perfected.
must run echo ttyO1_armhf.com > /sys/devices/bone_capemgr*/slots each time you boot (can be put into a script)
run sudo su if permission isn't allowed.
Currently building COM ROS node
Router
Router the gave us is actually a switch (aka doesn't really solve any problems)
E Shop is unable to support/provide routers
Exceptions are processed by ITAP (ME 365 for example) but complications result from our web connected devices having motors.
Any router that is used must be self sourced and not be connected to the ECN/ITAP/Internet
Static IP's did not solve any problems with BBB connecting to internet
Daniel
Pixhawk programming: APM flight stack (Ardupilot)
Learned about the SVN server that is running on the spiralab server
'svnserve' is a dedicated SVN server that handles file locking properly so the repository doesn't get corrupted
We now have a software repository on Spira for Ardupilot (APM flight stack)
Unfortunately, we discovered that the source code will not compile unless you use git
Created a Github account for the lab
username: msral-purdue, pswd: QC1
Forked the Ardupilot source code
Made a local copy of the code on my laptop, compiled and uploaded to the IRIS
Flight tests
Had a successful flight test with the Ardupilot binary compiled from source
Getting familiar with APM code structure so we can implement position control with Vicon
BoomCopter
Received several items: Propellers, power distribution wires, heat shrink, soil temp/humidity sensor
Wrote a simple Arduino program to read data from sensor
Can successfully get temperature (Celsius or Fahrenheit) and humidity readings via Serial communication
Found a video demonstrating GPS position-hold stability for Turnigy Talon Tricopter (link)
Attended seminar on distributed UAV control (formation flight using relative positioning obtained from computer vision algorithms)
June 2015
June 24
Daniel
BoomCopter
Selected components (motors, props, battery, ESCs, etc.)...
Finishing up BOM & formatting for purchasing
Motor/Prop Testing
Checked out power supply from E-Shop and wrote Arduino motor driver for testing
Performed Thrust tests (in PBE) for two different propellers on 850 kv motor
Mark
Beagleboards
Beagleboard controlling the turtlebot through with LEAP used for control - success
Router pending
BBB getting static IP addresses. Hopefully this solves the internet issue.
Power Adaptors Created for use with Turtlebot
June 17
Mark
Beagleboards
Returned to research however not a single BBB can connect to the internet at Herrick
Tried switching to network cable with/without router inbetween BBB and ECN network
Tried to repeat USB internet connection
Move to my apartment and the BBB connected perfectly with the network cable.
Worked even when buried behind 2 routers and a modem.
Creating Fresh Build that is designed to compile on the BBB instead of Cross Compile
Will bypass all the ROS/Leap/BBB issues I was having during the year
Advantage - Works
Disadvantage - Compile Times Double
Daniel
Vicon
Resolved Nexus video capture issue by rolling back the NVIDIA driver
Performed a few test flights and verified that the video did not cut out
BoomCopter
Found that the Turnigy Talon Tricopter is sold as a frame only (no ready-to-fly versions are available)
April 2015
April 30
Daniel
Vicon Position Control
Flight tests with POSCTL
Locks position, then slowly spirals out of control (this is intensified if the IRIS is moving when switching to POSCTL)
Encountered some calibration issues, may need to re-update Firmware
XBee
Serial communication works fine with 3V logic on Arduino Due
Tested outputs on Pixhawk with multimeter, voltage is identical to Arduino Due setup
May need to turn on flow control and/or handshaking bits
Chris
Brought BBB home, network sharing starting working again
Finished installing ROS, installed turtlebot software and some other needed software packages
Tested BBB with turtlebot, worked successfully with wired connection
Controlled turtlebot with teleop command by SSHing to BBB
Bought wifi adapter, still need to find molex cable for powering BBB through 5v on the Kobuki base
Network sharing issues still present and unpredictable
Mark
SD Card Imaging
mount | grep "/media/username". This will show the sdcard device (/dev/sdXX). Then run:
sudo umount /media/username
sudo dd if=/dev/sdXX of=~/BBB_IMAGES/15_04_27/imageName.img
dd if=~/BBB_IMAGES/15_04_27/imageName.img of=/dev/sdXX
April 23
Daniel
DX8 controller
Discovered that the controller has a charging circuit built-in, we just need to buy the right DC power adapter
Needs 12VDC (>= 200mA) adapter with 4.0mm OD x 1.7mm ID barrel plug
Will find a link to purchase (should be pretty inexpensive)
Vicon Position Control
Made a Matlab class to use for quickly verifying Vicon data output
Successful test flight in ALTCTL mode
Next:
Test POSCTL mode, would like to have another person present to help with this
XBee
Planning to test with the Arduino Due (since it has 3V Serial logic)
April 16
Daniel
Vicon Position Control
Removed the hard-coded setpoint at (0,0,-1) and still have instability in altitude
Heard back from Vicon support
Discovered that we can at least record sessions without the video stream
Vicon support recommends reverting the computer back to older Windows version since the newer Nexus software has not been updated to work on later Windows versions
When reviewing the recorded flight data, discovered that Vicon was "seeing double" on the markers and gave some inconsistent readings
I think that this is just a glitch that is easily resolved by reloading the IRIS object in the session, but I will verify with some tests
Finished writing the code to test the VISION_POSITION_ESTIMATE topic
Learned about the PX4 coding style and branching guidelines and used them in the latest code
Need to recalibrate the sensors and perform a flight test with the new code
Mark Schmidt
Mapped the Spira Server in Ubuntu and Windows
Ateev Gupta
The presentation of the poster went well
Daniel and I met James.goppert@gmail.com
He worked on some of the position control for the pixhawk
Currently running a startup to help users with the pixhawk
April 9
Daniel
Vicon Position Control
Next things to try:
Remove hard-coded (0,0,-1) setpoint to see if POSCTL stabilizes
Try running mc_pos_control by ONLY writing to the Vicon_Position_Estimate (can start by doing this over Serial 5, and switch to MAVlink when ready
This should be done by making a new branch on a new clone of the Firmware from Github
Sparkfun XBee adapters
Verified that MAVlink works on Serial 5 with c_uart_interface_example
Found a topic on px4users Google group, other people have the same problem with XBee: topic
Chris/Ateev
BBB
Formatted SD cards with .ext4 format, successfully installed Ubuntu 14.04, made sure it booted automatically, and installed ROS Bare Bones (no GUI)
Ubuntu will boot off of SD card, and all information will be stored on it as well
Installed other required programs such as Ubuntu common software packages, etc
In process of copying to one card to another
ROS installation went much smoother than previously, installing Turtlebot software is next
April 2
Daniel
Vicon Position Control:
Met with Jian (in Prof. Deng's group) about position controller
Found some issues with mc_pos_control:
Adjust thrust_int (integral of error) calculation
Need to set _vel_ff to zero to get position to go to zero
Adjust proportional gain on position control
Test flights:
Adjusting thrust_int caused IRIS to drop out of sky
setting _vel_ff to zero seems to have resolved the position error
still have altitude control problems
XBee:
Heard back from customer service
Everyone in their tech support group is stumped
They want us to send back some of our devices so they can test them and see what's happening
Will make a mavlink program and then test XBees on the SERIAL 4 or TELEM 2 port
March 2015
March 26
Daniel
Vicon Position Control:
Added z position setpoint, but still have altitude oscillation during position control
Will contact Jian in Prof. Deng's group for help with position controller
XBee Debugging
No response yet from Sparkfun
Want to set up MAVLink on Serial 4 and see if that helps (since using Serial 5 is strongly discouraged)
Ateev & Chris
Installing ROS and Turtlebot on the beagle bone black - Summary
kobuki base is still having difficultly installing.
We have been modifying the repositories
March 19
Daniel
Vicon Position Control:
Made Vicon receiver on Pixhawk more robust
Cleaned up the velocity calculation and prevented corrupt data from being used
Performed multiple flight tests with Vicon velocity being used in the position controller
IRIS+ was able to move to the x=0, y=0 position and stay without any controller input
PID gains will need to be tuned
The altitude (z position) had some large fluctuations while the IRIS was moving to x=0, y=0, but then settled down
Recorded video, Vicon DataStream and output of Pixhawk during position controlled flight
Uploaded video and plots to SPIRA server
Flight video (YT: IRIS Pos Control 1) (YT: IRIS Pos Control 1) (YT: IRIS Pos Control 1) (YT: IRIS Pos Control 1) (YT: IRIS Pos Control 1) (YT: IRIS Pos Control 1) (YT: IRIS Pos Control 1) (YT: IRIS Pos Control 1) (YT: IRIS Pos Control 1) (YT: IRIS Pos Control 1) (YT: IRIS Pos Control 1) (YT: IRIS Pos Control 1) (YT: IRIS Pos Control 1) (YT: IRIS Pos Control 1) (YT: IRIS Pos Control 1) (YT: IRIS Pos Control 1) (YT: IRIS Pos Control 1) (YT: IRIS Pos Control 1) (YT: IRIS Pos Control 1) (YT: IRIS Pos Control 1) (YT: IRIS Pos Control 1) (YT: IRIS Pos Control 1) (YT: IRIS Pos Control 1) (YT: IRIS Pos Control 1) (excuse the low-quality... Nexus apparently stops recording if a frame is skipped, so I could not record any videos longer than a few seconds, and I was alone in the lab so I had to improvise with my iPhone)
Learned that data rate decreases when RC controller is turned on (~96 Hz --> ~ 77 Hz)
Next Steps:
Possibly use centered difference for velocity calculation (cuts data rate in half)
Add Z setpoint in position controller to see if it helps stabilize altitude
Find out how to use Vicon position status in commander app to allow POSCTL mode
Currently hard-coded as if(true)
Tune velocity PID and position P gain, and if necessary, add Integral and/or Derivative gains for position
Allow for waypoint changes during flight
Work on a Mavlink program to potentially send data more efficiently
IRIS 2 RC Receiver Repair
Discovered that the connector is actually Molex PicoBlade brand, and not JST-ZH
I was able to use the slightly oversized JST-ZH connector by trimming it and crimping it in the smaller die (1.0mm)
Re-assembled the "fixed" IRIS 2... Test flight pending
Sparkfun XBee Breakout Board Debugging
Set up one of the stand-alone Pixhawk boards to test the XBee communications.
Verified that we can send from the computer to the Pixhawk using the current setup, but cannot receive information back from the Pixhawk
Emailed Sparkfun tech support again with more details to see if they can help resolve the problem
March 12
Daniel
Vicon position control:
Incorporated Yaw into attitude estimator and position controller
Performed multiple successful test flights with the incorporated yaw measurements
Added code to calculate and store velocity from Vicon data
Experiencing some issues when the IRIS crosses into and out of the Vicon boundaries
X,Y,Z positions become unstable for some time, and then settle back to normal
Working on finding the source of the problem:
Could be in C++ Vicon_DataStreamer, Pixhawk: io_test, or temporary spike from Vicon DataStream (not likely)
Reformatted the XBee transmitters for easier debugging
Vicon data sent directly to IRIS 1 instead of broadcasting
IRIS 1 data sent to XBee 99 (for debugging), set up on a separate laptop
Submitted BOM for replacement components to repair the RC receiver on IRIS 2
We will also need some heat shrink, but electrical tape can work temporarily
Ateev Gupta
Built 2nd turtlebot
Signed up for the Poster Presentation which will be April 14th
BBB almost working.
Need Mark to change the password on his laptop
Need the E-shop to give me Sudo access on the red hat computer
Looks like I'm in trouble: http://i.imgur.com/JH7VBCj.jpg
Mark Schmidt
Helped Daniel with Vicon Flight Test
March 5
Daniel
Vicon pos control:
Spoke with Stephen and Jian in Prof. Deng's group
Things to test with existing position controller:
Use Vicon derivative for velocity
Overwrite Yaw in attitude controller
On a separate code branch:
Implement a new position controller, with mc_pos_control as starting point
Decided that optimal control should just be PD on position
Once the controller is working, switch to mavlink and SERIAL4 port.
February 2015
February 26
Daniel
Vicon controlled flight:
Adjusted the PID gains in the position controller.
Improved the overall performance of the system, but there is still a significant drift leading to instability
Recalibrated the ESCs to see if this will help with the drifting...
Helped significantly with forward drift
Looking into changing from Serial 5 to Serial 4 (so we are not using the debugging/log communication line)
Planning to switch to DX8 controller for more reliability
Can't find charger, so will try the new 3DR controller
Turtlebot Link
Mark
ROS/BBB
Successful Compilation of ROS with Leap Motion.
A CPP file that prints out and roll, pitch, yaw has capacity to print all leap generated position and vector data (only takes uncomments).
Working to control TurtleBot with Hand Tilting
February 19
Daniel
Vicon -> GPS
Performed several more flight tests in POSCTL mode
We had a successful test flight with fake GPS (to allow POSCTL mode) and Vicon position overwriting position estimator.
We hard-coded the position set point to x=0, y=0 and the IRIS actually circled around the setpoint.
We have some videos and QGroundControl log files to analyze the control action
Next Step(s)
We now need to find out a few things inside the Pixhawk position controller code:
The minimum error threshold (e.g. the controller may stop applying control action if it's within ~1-2 meters, since that is all you need for GPS positions, but we would want more like a few inches for our setup)
The PID controller gains (these will probably need to be adjusted for this indoor setup, or at least scaled so we can get closer to the target position
Also noted that the PX4 flight stack Firmware continues to be updated daily, with some updates requiring a re-calibration of sensors (link)
February 12
Daniel
Vicon -> GPS
Performed test flight in ALTCTL and POSCTL modes
ALTCTL works great
POSCTL does not work properly with fake gps data
Adjusted GPS weight, made system unstable
Now using a different method to directly send Vicon XYZ to position estimator
Test flight soon
3DR RC Controller
Customer support says RC is on backorder and will ship as soon as available
Limonene container is now labeled
XBee Explorers
Discovered that we can send data to the Pixhawk successfully, we just can't receive messages back
Thus, the boards should work for now, but I will still try to get them working properly when I can give it some more time.
February 5
Daniel
Vicon -> GPS
Successfully converted Vicon XYZ to a GPS latitude/longitude and transmitted to Pixhawk
Calibrated the RC to map necessary flight modes (altCtl, posCtl)
Modified existing drivers and operating settings in the PX4 software to accept fake GPS
Next Step: Test flight
Limonene labels
Obtained necessary labels from Bob
Waiting to hear back from Ron about MSDS so I can fill out the labels and then put them on the container
3DR Controller
Last correspondence was Wed. Jan. 28. - said they would send an email when the RC shipped
Could this email have gone to the ME Business office like the shipping labels?
If not, I will email 3DR requesting an update
XBee Explorer Regulated
On hold until Vicon->GPS is working...
January 2015
January 29
Daniel
Vicon -> GPS
Successfully uploaded the custom-built firmware onto IRIS+
Successfully transmitted Vicon data to Pixhawk
Next Steps:
Working on converting the XYZ to a valid GPS coordinate
"Publish" the Vicon gps data on the Pixhawk for position control
XBee Explorer Regulated
Soldered a "fresh" regulated board
Verified that it works properly using Serial comm. on Arduino Due (3.3V logic)
Did not work with Arduino Uno (5V logic)
Next Steps:
re-wire the connectors to go through the DIN/DOUT ports on the regulated board (instead of bypassing them)
3DR Customer Support
Said they didn't receive controller in mail, but ordered a new controller for us
We should receive an email with tracking number when it ships
Tools/Supplies
Received Limonene & container and the other tools from Amazon
Rechargeable batteries installed in IRIS+ controller
Chris
BBB
http://robotic-controls.com/learn/beaglebone/beaglebone-internet-over-usb-only
This shows how to connect the BBB to the internet over the usb connection of your computer
Make sure to change the internet interfaces to match your computer
Add the command line from the first comment on the page as well
Keep in mind that the BBB has an ARM processor. I have installed ROS on the green BBB using this
This is in contrast to the usual ROS installation page, which did not work with the BBB
Mark
BBB
Program Compiling + Sending Script Finished
syntax compileSend.sh executableFileName source.cpp
Current Directory must include source.cpp
Compiling requires compiler arm-linux-gnueabihf-g++
saves files to ubuntu@arm:~/compiledPrograms
Leap Motion
Successfully streamed hand data from leap
goal - write c++ file to integrate into ROS
January 22
Mark
Continuing to improve compiling for BBB
Program Compiling Script created
Cross Compiling Script Working
Copying Script to BBB in progress
Testing programming for Digital In-Out Functionality
Next up - ROS cross-compiling next (For use with turtle-bots)
Discussion: Code Repository? (Possibly on the Red Hat Machine) VPN?
January 15
Daniel
Continuing to work on installing custom-built firmware onto the Pixhawk
We have encountered some error states that are not documented in the Pixhawk API/forums
Red-->Yellow Breathing LED, with slow beep
Posted on the px4users Google Group
We recently learned that the IRIS+ ships with APM firmware (ArduCopter), but we have been developing with PX4 flight stack
Details about the differences are described here.
We will need to use QGroundControl rather than MissionPlanner software
This also seems to include a different calibration scheme (see this px4users topic)
Discovered a potential bug in the source code specific to the IRIS+ on Github.
This appears to be an ongoing issue related to the Pixhawk hardware installed in the IRIS+.
Uninstalled the Firmware Development Toolchain and will reinstall with the latest code release to see if that fixes our problems
December 2014
December 11
Daniel
Connected to the Pixhawk using XBees and the Serial 4/5 port
Found a mounting location on the IRIS+ frame for the XBee module
Currently using velcro strip to mount XBee receiver
Working on substituting GPS data with Vicon data in the Pixhawk control loop
December 4
Andrew
to dissolve the the Makerbot support, technical grade Limonene can be - as opposed to food grade.
in the reviews I read, they did not dilute the solution out of the bottle
something like this would work: http://www.amazon.com/Florida-Chemical-D-Limonene-Gallon/dp/B00HGFTSIW/ref=sr_1_2?ie=UTF8&qid=1417708167&sr=8-2&keywords=limonene
for storage, the container will need to be compatible with limonene (does not dissolve in it). I have not yet found a bucket or tub that I can confirm the type of material for
here are some guidelines:
http://www.usplastic.com/knowledgebase/article.aspx?contentkey=950
http://www.floridachemical.com/dlimoneneproductcare.htm
November 2014
November 25
Daniel
Ran Nexus Pipeline (post-processing) on recorded trials from connected flights
Saved the videos as .wmv files in the SPIRA server
Also saved the .csv data in the SPIRA server
Unpacked the XBees and programmed them to stream Vicon data
Each XBee has been assigned an address and has a label/sticker to identify it
Next step will be to solder headers and connectors on XBee breakout boards and find a place to mount the XBee on the IRIS+
November 20
Daniel
Adapted the example C++ program to connect into the Vicon DataStream
Program obtains position/orientation for all subjects in the space
Also adapted a C++ program that connects to the COM port and can send data with standard serial protocols
Verified serial communication by controlling an Arduino Uno through the COM port
Working on integrating this into the Vicon DataStream program so the Vicon data is sent out in concise messages
Messages will start with Object ID and contain global XYZ & EulerXYZ
Submitted list of XBee components to order, and will integrate them with the C++ programs when they arrive
Vicon-Pixhawk Communications with ROS:
https://github.com/pixhawk/mavconn/blob/master/src/comm/mavconn-bridge-vicon.cc
November 13
Andrew (unable to attend)
limonene can be purchased on Amazon
to hold the solution we could use a 5 gallon bucket with a lid such as:
UPDATE: need to confirm bucket material is compatible with limonene
http://www.homedepot.com/p/Homer-Bucket-5-gal-Orange-Bucket-05GLHD2/100087613#specifications
November 6
Daniel
Implemented proportional control on x-y position and yaw angle for AR.Drone
Working on outline for demo
Opened fully assembled TurtleBot
The TurtleBot's netbook has the following software
Ubuntu 12.04.5 LTS (a.k.a. Precise)
ROS Hydro (installation instructions)
This is what we will install on the BBBs
The TurtleBot came with an Ubuntu image with ROS pre-installed on a USB stick
Depending on the requirements of the BBB, we might be able to use this to get them setup with Linux/ROS
Mark (Unable to attend meeting)
Programmed a simple javaScript LED flash program on BBB.
Attached the BBB to the TV and explored the existing Linux installation.
It was suggested by BB to update the OS on the BBB before doing anything else. We should make sure we all agree upon the same OS so that everything is compatible. Most sources suggest Angstrom but let me know if another distribution is preferred like Ubuntu.
Ångström - recommended by BBB and has a separate ROS distribution.
http://www.angstrom-distribution.org/
https://github.com/vmayoral/beagle-ros
The TV crops incoming HDMI images which is a symptom of computer and TV standards not agreeing. Are there any free computer monitors with HDMI ports? If not, the TV can be setup but it would take the remote which I couldn't find. (or an HDMI to DVI converter)
Goal going forward:
Update/Install Angstrom with SD card.
Get Laptop prepared to compile for the BBB (BBB cannot self compile code)
Play around in BBB and external LEDs or simple sensors.
Tom (Unable to attend meeting)
Confirmed that the Replicator Z-18 is a single extrusion printer
Direct quote from Makerbot contact "Because the MakerBot Smart Extruder is easily swappable, the potential to be able to utilize different extruders for different materials is one of the great advantages of our latest platform. While I can't say when or how exactly that will work, that is definitely the thinking behind the platform. I don't have a product roadmap to share for 2015."
In order to use two different filaments we would have to pause the printing process, swap filaments, and continue.
Unfortunately they do not have any information regarding the flexible filament besides what is on the website http://store.makerbot.com/flexible-filament
Andrew
Makerbot flexible filament cannot be printed at the same time as or bonded to another type of filament
the flexible filament is for the Replicator 2 which only has a single extruder
the flexible filament has a very low melting temperature compared to ABS and PLA so bonding would be very difficult
Continued work on CAD models
October 2014
October 30
BBB reference manual: https://github.com/CircuitCo/BeagleBone-Black/blob/master/BBB_SRM.pdf?raw=true
New lab server:
“Map network drive”:
MAC:
smb://spiralab.ecn.purdue.edu/MSRAL
PC:
\\spiralab.ecn.purdue.edu\MSRAL
Login with your Purdue Career account credentials
For PC users, double check the domain is "ECN" and not your own computer
Current Projects --> MAVs
Andrew
Confirmed there is no Arduino in the cabinet at Herrick
Test stanchion and fan/prop mounts measured and some CAD produced
Next Step: finish CAD and fabricate/print mount to hold fan/prop to stanchion
Tools desired for Herrick:
calipers, tape measure, screw drivers (philips and standard - small sizes), allen wrench set, needle nose pliers, small channel-lock pliers
Note: I have not inventoried the tools we have in ME 1164
Printed flexible part in ABS to investigate feasibility of 3D printed compliant mechanism
I am concerned that the printed layers may delaminate after prolonged repeated flexing
Still in progress: actuation concept modeling
Daniel
Got Vicon DataStream information into a useable form in Matlab
Discovered that Vicon DataStream is not compatible with Simulink
Working on an alternate controller based on the ARDrone class
Tom
Asking Makerbot about the properties of the flexible filament as well as if the Z18 Makerbot can use other filaments even though it is not optimized. (Flexible, dissolving, etc.)
October 23
Daniel
Completed a 1st draft for the "MAV Reference Sheets" to supplement the safety checklist
One "Sheet" (2 pages) for each of the 3 MAVs
Working on getting AR Drone to go through waypoints
Simulink files won't build because of a compiler issue
Andrew
Located batteries, motors, controllers, fans, propellers, tachometer, Watts Up meter, and thrust scale mechanism
Next Step: charge batteries, devise test parameters, circuit, and logic
Generated potential actuation concepts: pin and arm/cable, direct servo, compliant 2 arm
Next Step: evaluate and choose design to prototype
http://ieeexplore.ieee.org.ezproxy.lib.purdue.edu/stamp/stamp.jsp?tp=&arnumber=6564711
paper on tilt-rotor quadcopter including example of pin and arm mechanism and calculations for gyroscopic effects induced by tilting propeller
Tom
The only recommended filament for the Z18 Makerbot is the Makerbot PLA plastic, however off-brand PLA should work as well.
Here is the material strength comparison between the Makerbot PLA and ABS:
Next step is to examine current design and find areas for improvement
October 16
Daniel
Updated NEXUS instructions and added them to the binder in the lab
Finished the MAV poster for the IAC (submission due Oct. 22)
Submitted to Donna on Wed.
Researched autopilot for MAVs
Pixhawk is definitely the best choice (more expensive though)
Key points: 32-bit vs. 8-bit, and future support (APM phasing out)
October 2
Follow up on getting CAD files - DC sent follow up e-mail on 10/5
Send out Paul Pounds IROS 2013 paper - DC
3D printing contact: Mike Sherwood / Mike Logan - TD
buy own material? account numbers? etc.
ME 3D printers / AFL 3D printers --> check out different types/kinds
TurtleBot contact: Luke @ Clearpath Robotics - DC
Send NEXUS doc to group - Done (DC sent to DM)
Daniel, please modify by incorporating screenshots from ppt file
Completed Nexus Instructions - DM
Finalize testing checklists - DM
Get Omnicopter instructions - DC
Send copy of MAV poster to Daniel - Done
Send abstract - Done
Helicopter swashplate dynamics - AW
How much equivalent "servo angle tilt" can we get?
September 2014
September 25
Adminsitrative
E-mail IDETC paper on Omnicopter to group - DC
E-mail IROS paper on 3D printing parts with polymer resin injections to group - DC
Get Omincopter CAD files and send to group - DC
Vicon testing for flapping wing robot on 9/26 @ 3:30pm in PBE Lab - ALL
Order TurtleBot robots for easier system level testing - DC
Find out spec's, get quote, with and without laptops - DM
Vector servoing mechanism design and fabrication - Andrew
Investigate 3D printing with sheet metal/foil overlays for improved performance
Investigate propellers with swash-plate mechanisms to replace ducted fans with servos
Power comparison
Weight comparison
motor mounting and control
comparison with variable pitch propellers
Reinforced compliant airframe design - Tom
Investigate IROS paper on 3D printing with polymer resin injections
Identify what polymer resins and accessories we need to try this
Modify/Create CAD files for new compliant airframe
Modeling and Control - Daniel
Investigate the dynamic model for the 3 propeller swash-plate mechanisms to replace the ducted fans and servos
What do we gain / lose with this approach?
Have others tried this? why or why not?
What about a quadorotor with 4 propeller swash-plate mechanisms? full control?
Draft a testing procedure check-list for Vicon testing
Start with ROS-Beaglebone-Ardupilot interfacing
Prototype on ground vehicles first
Goal: multiple UAVs/ground robots operating at same time by end of semester
Need wireless router
ark